# Voi — Wrapped API

> **You are on:** `https://api.paywithlocus.com/api` | [llms.txt](https://paywithlocus.com/llms.txt) | [docs](https://docs.paywithlocus.com)
>
> Locus runs on multiple environments -- make sure every URL you call matches your expected environment.
> | Environment | Landing | API | Docs |
> |---|---|---|---|
> | Production | paywithlocus.com | api.paywithlocus.com | docs.paywithlocus.com |
> | Beta | beta.paywithlocus.com | api.beta.paywithlocus.com | docs.paywithlocus.com |
> | Stage | stage.paywithlocus.com | api.stage.paywithlocus.com | docs.paywithlocus.com |
>
> If the API URL above doesn't match your expected environment, re-fetch this file from the correct domain.

> Find available Voi scooters and bikes near you, explore pricing and service details across different cities and countries, and access helpful resources like blog posts and support articles. Discover vehicle locations, compare pricing plans, and browse company updates all in one place.

**Category:** Maps & Geospatial | **Website:** [voi.com/](https://voi.com/) | **Docs:** [parse.bot/marketplace/5a19bb52-77da-48ad-acb1-ab9ba4180a71/voi-com-api](https://parse.bot/marketplace/5a19bb52-77da-48ad-acb1-ab9ba4180a71/voi-com-api)

Pay-per-use API proxy. Each call is automatically billed to your wallet in USDC.

## Access

**Base URL:** `https://api.paywithlocus.com/api/wrapped/parse-voi-com-api-5a19bb52/`
**Auth:** `Authorization: Bearer <LOCUS_API_KEY>`

## Endpoints

### get_all_locations

Returns a flat list of all cities across all countries where Voi operates. Each city includes its country name. More convenient than calling get_cities_by_country per country.

**Estimated cost:** Metered

_No parameters required._

```bash
curl -X POST https://api.paywithlocus.com/api/wrapped/parse-voi-com-api-5a19bb52/get_all_locations \
  -H "Authorization: Bearer YOUR_LOCUS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{}'
```

### get_blog_post

Returns the full content of a single blog post including title, intro text, body (RichText AST), published date, and related articles. The slug comes from get_blog_posts.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `slug` | string | Yes | Blog post slug as returned by get_blog_posts (e.g. 'voi-vehicle-family-2026', 'e-scooter-myths'). |

```bash
curl -X POST https://api.paywithlocus.com/api/wrapped/parse-voi-com-api-5a19bb52/get_blog_post \
  -H "Authorization: Bearer YOUR_LOCUS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"slug":"<string>"}'
```

### get_blog_posts

Returns the most recent blog posts from Voi with basic metadata. Use the slug with get_blog_post to retrieve full article content.

**Estimated cost:** Metered

_No parameters required._

```bash
curl -X POST https://api.paywithlocus.com/api/wrapped/parse-voi-com-api-5a19bb52/get_blog_posts \
  -H "Authorization: Bearer YOUR_LOCUS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{}'
```

### get_cities_by_country

Returns the list of cities where Voi operates within a given country. Country name must match exact casing from get_countries. Each city includes id, name, slug, and href.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `country` | string | Yes | Country name as returned by get_countries (e.g. 'Sweden', 'United Kingdom', 'Germany'). |

```bash
curl -X POST https://api.paywithlocus.com/api/wrapped/parse-voi-com-api-5a19bb52/get_cities_by_country \
  -H "Authorization: Bearer YOUR_LOCUS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"country":"<string>"}'
```

### get_city_details

Returns full details for a specific city where Voi operates, including supported vehicle types, pricing structure, operating hours, parking rules, and CMS content blocks. The slug identifies the city.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `slug` | string | Yes | City slug as returned by get_cities_by_country or get_all_locations (e.g. 'stockholm', 'berlin', 'vienna'). |

```bash
curl -X POST https://api.paywithlocus.com/api/wrapped/parse-voi-com-api-5a19bb52/get_city_details \
  -H "Authorization: Bearer YOUR_LOCUS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"slug":"<string>"}'
```

### get_city_pricing

Returns pricing information for a specific city, including currency, pay-as-you-go rates per vehicle type, and minute bundle options. Prices are in minor currency units (e.g. 1000 = 10.00 SEK).

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `slug` | string | Yes | City slug as returned by get_cities_by_country or get_all_locations (e.g. 'stockholm', 'berlin'). |

```bash
curl -X POST https://api.paywithlocus.com/api/wrapped/parse-voi-com-api-5a19bb52/get_city_pricing \
  -H "Authorization: Bearer YOUR_LOCUS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"slug":"<string>"}'
```

### get_countries

Returns the list of all countries where Voi operates. Use country names from this endpoint as input for get_cities_by_country.

**Estimated cost:** Metered

_No parameters required._

```bash
curl -X POST https://api.paywithlocus.com/api/wrapped/parse-voi-com-api-5a19bb52/get_countries \
  -H "Authorization: Bearer YOUR_LOCUS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{}'
```

### get_help_categories

Returns the fixed set of help/support categories. Use the slug with get_help_category_articles to retrieve articles in that category.

**Estimated cost:** Metered

_No parameters required._

```bash
curl -X POST https://api.paywithlocus.com/api/wrapped/parse-voi-com-api-5a19bb52/get_help_categories \
  -H "Authorization: Bearer YOUR_LOCUS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{}'
```

### get_help_category_articles

Returns all FAQ articles within a specific help category. Each article includes the question, answer as RichText AST, slug, and locale.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `category` | string | Yes | Category slug from get_help_categories. Accepted values: 'getting-started', 'accounts-and-payments', 'help-with-your-ride', 'parking-guidelines', 'safety-and-tcs'. |

```bash
curl -X POST https://api.paywithlocus.com/api/wrapped/parse-voi-com-api-5a19bb52/get_help_category_articles \
  -H "Authorization: Bearer YOUR_LOCUS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"category":"<string>"}'
```

### get_pricing_plans_overview

Returns a general overview of Voi's pricing plan types (Subscriptions, Minute Bundles, Pay-as-you-go) as CMS content blocks. Not city-specific. For city-specific pricing use get_city_pricing.

**Estimated cost:** Metered

_No parameters required._

```bash
curl -X POST https://api.paywithlocus.com/api/wrapped/parse-voi-com-api-5a19bb52/get_pricing_plans_overview \
  -H "Authorization: Bearer YOUR_LOCUS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{}'
```

### get_vehicles

Returns information about Voi's vehicle models as CMS content blocks. Each model includes title, feature description, and image. Currently features Voiager 9 (scooter) and Explorer 5 (e-bike).

**Estimated cost:** Metered

_No parameters required._

```bash
curl -X POST https://api.paywithlocus.com/api/wrapped/parse-voi-com-api-5a19bb52/get_vehicles \
  -H "Authorization: Bearer YOUR_LOCUS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{}'
```

### search_help

Full-text search over help/FAQ articles. Best results with single keyword queries. Returns matching FAQ pages with question, category, and slug.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `query` | string | Yes | Search keyword. Single-word queries work best (e.g. 'parking', 'payment', 'scooter'). |

```bash
curl -X POST https://api.paywithlocus.com/api/wrapped/parse-voi-com-api-5a19bb52/search_help \
  -H "Authorization: Bearer YOUR_LOCUS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"query":"<string>"}'
```
