Discover/Voi API
live

Voi APIvoi.com

Access Voi e-scooter and e-bike data across all operating cities and countries. Get pricing, vehicle models, help articles, and blog posts via 12 endpoints.

Endpoint health
verified 4d ago
get_pricing_plans_overview
get_city_pricing
get_all_locations
get_vehicles
get_blog_posts
12/12 passing latest checkself-healing
Endpoints
12
Updated
26d ago

What is the Voi API?

The Voi API covers 12 endpoints that expose city and country coverage, per-city pricing plans, vehicle model details, blog content, and a full help center — all for Voi's e-scooter and e-bike network. Starting with get_countries and drilling into get_city_pricing, you can retrieve unlock fees, per-minute rates, and minute bundle options for any city where Voi operates, keyed by city slug.

Try it

No input parameters required.

api.parse.bot/scraper/ddb5768b-9984-437b-870b-d02cd2112c4d/<endpoint>
Ready to send
Fill in the parameters and hit sign in to send to see live response data here.
Call it over HTTPgrab a free API key at signup
curl -X GET 'https://api.parse.bot/scraper/ddb5768b-9984-437b-870b-d02cd2112c4d/get_countries' \
  -H 'X-API-Key: $PARSE_API_KEY'
Python SDK · recommended

Typed, relational, agent-ready

A generated client with real types, enums, and the links between objects — the structure a flat JSON response can't carry. Autocompletes in your editor and reads cleanly to coding agents.

  • Fully typed · autocompletes
  • Objects link to objects
  • Typed errors & pagination

Typed Python client. Set up the SDK in your uv project, then pull this API’s typed client:

uv add parse-sdk
uv run parse init
uv run parse add --marketplace voi-com-api

uv run parse add --marketplace pulls a pinned snapshot of this canonical API — it won’t change underneath you. To customize it, subscribe and swap to your own copy.

"""Walkthrough: Voi SDK — bounded, re-runnable; every call capped."""
from parse_apis.voi_scooters_api import Voi, HelpCategorySlug, LocationNotFound

voi = Voi()

# List all countries where Voi operates
for country in voi.countries.list(limit=5):
    print(country.country, country.country_code)

# List cities in Sweden
for city in voi.cities.list_by_country(country="Sweden", limit=3):
    print(city.name, city.slug, city.country_code)

# Get full details for Stockholm
stockholm = voi.cities.get(slug="stockholm")
print(stockholm.name, stockholm.slug)

# Get pricing for a city via sub-resource (constructible)
pricing = voi.city("stockholm").pricing.get()
print(pricing.currency, pricing.minute_bundle_minutes)

# Get general pricing overview
overview = voi.pricingoverviews.get()
print(overview.slug, overview.locale)

# Get vehicle models info
vehicles = voi.vehicleinfos.get()
print(vehicles.slug, vehicles.locale)

# Browse blog posts and drill into one
post = voi.blogposts.list(limit=1).first()
if post:
    full_post = voi.blogposts.get(slug=post.slug)
    print(full_post.title, full_post.published_date, full_post.intro)

# Get help articles using constructible HelpCategory + enum
category = voi.helpcategory(slug=HelpCategorySlug.PARKING_GUIDELINES)
for article in category.articles.list(limit=3):
    print(article.question, article.slug)

# Search help articles
for result in voi.helparticles.search(query="payment", limit=3):
    print(result.question, result.category)

# Typed error handling
try:
    voi.cities.get(slug="nonexistent-city-xyz")
except LocationNotFound as exc:
    print(f"Location not found: {exc}")

print("exercised: countries.list / cities.list_by_country / cities.get / city.pricing.get / pricingoverviews.get / vehicleinfos.get / blogposts.list / blogposts.get / helpcategory.articles.list / helparticles.search")
All endpoints · 12 totalmissing one? ·

Returns the list of all countries where Voi operates, including country name and ISO country code. Use country names from this endpoint as input for get_cities_by_country.

Input

No input parameters required.

Response
{
  "type": "object",
  "fields": {
    "items": "array of country objects with country name and ISO code"
  },
  "sample": {
    "data": {
      "items": [
        {
          "country": "Austria",
          "countryCode": "AT"
        },
        {
          "country": "Sweden",
          "countryCode": "SE"
        },
        {
          "country": "United Kingdom",
          "countryCode": "UK"
        }
      ]
    },
    "status": "success"
  }
}

About the Voi API

Coverage and Location Data

get_countries returns every country where Voi operates with ISO country codes. get_cities_by_country accepts a country name exactly as returned by get_countries (e.g. 'United Kingdom', not 'UK') and returns city objects with id, name, slug, countryCode, and defaultLocale. get_all_locations returns the same city list but flattened across all countries in one call, which is useful when you need a full slug inventory without iterating country by country.

Pricing and City Details

get_city_pricing accepts a slug and returns the full pricing structure for that city: currency, payAsYouGo with min/max fee details, payAsYouGoV2 broken down by vehicle type, and minute bundle options. get_city_details goes further, adding supportedVehicles, operating hours, parking rules, and CMS content blocks for a given city. Both endpoints key off the same slug field returned by the location endpoints.

Vehicles and Content

get_vehicles returns vehicle model descriptions and feature lists as CMS content blocks — useful for building a vehicle comparison view. get_blog_posts lists recent posts with title, slug, locale, and image metadata; get_blog_post fetches full content including the body as a RichText AST and publishedDate. The help center is exposed through get_help_categories, get_help_category_articles (covering categories like getting-started, accounts-and-payments, parking-guidelines), and search_help, which accepts single-keyword queries and returns matching FAQ articles with their category and slug.

Practical Notes

City slugs are the primary join key across location, pricing, and detail endpoints — always source them from get_cities_by_country or get_all_locations rather than constructing them manually. search_help returns best results with single keywords; multi-word queries may return an empty result set. Help article and blog post bodies are returned as RichText AST objects, so your client needs to render or serialize that format rather than treating the body as a plain string.

Reliability & maintenanceVerified

The Voi API is a managed, monitored endpoint for voi.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when voi.com changes and a check fails, the API is automatically queued for repair and re-verified. It is built to keep working as the site underneath it changes.

This isn't an official voi.com API — it's an independent, maintained REST wrapper over public data. Where the source has no official API (or only a limited one), Parse gives you a stable contract over a source that never promised one, and keeps it current. Need a new endpoint or field? You can revise it yourself in plain English and the agent rebuilds it against the live site in minutes — contributing the change back to the shared API is free.

Last verified
4d ago
Latest check
12/12 endpoints passing
Maintenance
Monitored & self-healing
Will this API break when the source site changes?+
It's built not to. Every endpoint is health-checked on a schedule with automated test probes. When the source site changes and a check fails, the API is automatically queued for repair and re-verified — that's the self-healing layer. Each API page shows when its endpoints were last verified. And because marketplace APIs are shared, any fix reaches everyone using it.
Is this an official API from the source site?+
No — Parse APIs are independent, managed REST wrappers over publicly available data. That is the point: where a site has no official API (or only a limited one), Parse gives you a maintained, monitored endpoint for that data and keeps it working as the site changes — so you get a stable contract over a source that never promised one.
Can I fix or extend this API myself if I need a new endpoint or field?+
Yes — and you don't have to wait on us. This API was generated by the Parse agent, which stays attached. Describe the change in plain English ("add an endpoint that returns reviews", "fix the price field") in the revise box on the API page or via the revise_api MCP tool, and the agent rebuilds it against the live site in minutes. Contributing the change back to the public API is free.
What happens if I call an endpoint that has an issue?+
Errors are machine-readable: a bad call returns a clean status with the list of available endpoints and a repair hint, so an agent (or you) can recover or trigger a fix instead of failing silently. Confirmed failures feed the automatic repair queue.
Common use cases
  • Build a city selector that lists all Voi operating cities and displays per-city unlock fees and per-minute rates from get_city_pricing.
  • Aggregate pricing across all cities using get_all_locations plus get_city_pricing to compare ride costs by country or currency.
  • Display supported vehicle types and parking rules for a specific city using the supportedVehicles and parking fields from get_city_details.
  • Embed Voi's help center articles in a third-party app by fetching categories from get_help_categories and articles from get_help_category_articles.
  • Power a keyword-based support search UI using search_help, returning FAQ slugs and categories for matched queries.
  • Sync Voi blog posts to an internal CMS by polling get_blog_posts for slugs, then fetching full body content via get_blog_post.
  • Map Voi service coverage by iterating get_countries and get_cities_by_country to build a structured country-to-city hierarchy with ISO codes.
Pricing & limitsSee full pricing →
TierPriceCredits/monthRate limit
Free$0/mo1005 req/min
Hobby$30/mo1,00020 req/min
Developer$100/mo5,000100 req/min

One credit = one API call regardless of which marketplace API you call. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.

Frequently asked questions
Does Voi have an official public developer API?+
Voi does not publish a public developer API or documentation for third-party data access as of mid-2025. The Parse Voi API provides structured access to city, pricing, vehicle, blog, and help center data.
What does `get_city_pricing` return and how does it differ from `get_pricing_plans_overview`?+
get_city_pricing returns city-specific pricing: the local currency, payAsYouGo fee structure, payAsYouGoV2 rates broken down by vehicle type, and minute bundle options for a single city identified by its slug. get_pricing_plans_overview returns general CMS content blocks describing Voi's plan types (subscriptions, bundles, pay-as-you-go) without city-level fee figures.
Does the API return real-time scooter or bike locations on a map?+
Not currently. The API covers city and country coverage, pricing plans, vehicle model descriptions, blog posts, and help articles. It does not expose individual vehicle GPS coordinates or real-time availability counts. You can fork this API on Parse and revise it to add a live vehicle location endpoint if that data becomes accessible.
Are there any quirks with the city lookup endpoints I should know about?+
Yes. get_cities_by_country requires the country name to match exactly the casing returned by get_countries — for example 'United Kingdom' works but 'UK' or 'united kingdom' will not. Always use the country field from get_countries as the input rather than constructing country names independently.
Does the API cover Voi business accounts, trip history, or user-level data?+
Not currently. The API covers public-facing data: operating locations, city pricing, vehicle models, blog content, and the help center. User accounts, trip history, and booking flows are not exposed. You can fork this API on Parse and revise it to add endpoints targeting any public data surfaces that aren't currently covered.
Page content last updated . Spec covers 12 endpoints from voi.com.
Related APIs in Maps GeoSee all →
data.lime.bike API
Access real-time availability data for Lime bikes and scooters, including station locations, vehicle status, system alerts, and geofencing zones across multiple cities. Monitor micromobility inventory and service information to find nearby vehicles or plan your trips effectively.
hertz.com API
Search Hertz rental locations and instantly compare available vehicles with real-time pricing, fees, and vehicle features for your desired pickup and dropoff dates. Find the perfect rental car deal by browsing inventory across multiple locations and filtering by your travel needs.
avis.de API
Search and explore Avis Germany rental locations with autocomplete functionality, view detailed location information and available vehicles, and discover current special offers. Find rental options by country or city to compare fleet availability and pricing.
volosports.com API
Browse and discover sports programs, drop-in slots, leagues, and venues available on Volo Sports, with the ability to filter by city, sport, and program type to find activities that match your interests. Get detailed information about specific drop-in sessions, leagues, and venues to help you decide where and when to play.
99bikes.com.au API
Search and browse 99 Bikes' complete product catalog, find nearby store locations, and discover workshop services all in one place. Get instant access to product collections, store details, and help centre information from Australia's leading bike retailer.
trekbikes.com API
Browse Trek's complete bike catalog by category, view detailed specifications and customer reviews, and search for specific models to find exactly what you're looking for. Locate nearby Trek shops and compare bikes to make an informed purchase decision.
turo.com API
Search for peer-to-peer car rentals across Turo by location and dates to browse available vehicles with pricing, specifications, and real-time availability. Get detailed information on specific cars to compare features and make rental decisions.
wolt.com API
Browse and discover restaurants, stores, and food items available on the Wolt delivery platform, with access to detailed menus, venue information, and the ability to search across categories and cities. Filter venues by location, explore their complete offerings, and find specific items to compare options across the Wolt network.