# Komoot — 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.

> Search and explore outdoor routes on Komoot by location and sport type, accessing detailed GPS coordinates, elevation profiles, trail maps, and route photo galleries. Browse curated regional collections and public user profiles to discover hiking, biking, running, and climbing routes worldwide.

**Category:** Maps & Geospatial | **Website:** [komoot.com/](https://komoot.com/) | **Docs:** [parse.bot/marketplace/0aec9660-5240-47d5-afa3-06745f962627/komoot-com-api](https://parse.bot/marketplace/0aec9660-5240-47d5-afa3-06745f962627/komoot-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-komoot-com-api-0aec9660/`
**Auth:** `Authorization: Bearer <LOCUS_API_KEY>`

## Endpoints

### get_location_elements

Get regional discovery elements including curated collections, guides, and editorial content for a given location. Results include collection names, intros, sport types, creator info, and summary statistics like tour counts and upvotes.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `lat` | string | Yes | Latitude of the location (e.g. 47.3769) |
| `lng` | string | Yes | Longitude of the location (e.g. 8.5417) |
| `page` | integer | No | Zero-based page number for pagination |
| `sport` | string | No | Optional sport filter for collections |

```bash
curl -X POST https://api.paywithlocus.com/api/wrapped/parse-komoot-com-api-0aec9660/get_location_elements \
  -H "Authorization: Bearer YOUR_LOCUS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"lat":"<string>","lng":"<string>","page":"<integer>","sport":"<string>"}'
```

### get_route_details

Get comprehensive details for a specific route including GPS coordinates with altitude (elevation profile), way types, surfaces, timeline with highlights and tips, and cover images. The coordinates array provides the full trackpoint set for map rendering. Way types and surfaces describe trail composition percentages.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `route_id` | string | Yes | The unique ID of the route (e.g. e1985976155), obtainable from search_routes results |

```bash
curl -X POST https://api.paywithlocus.com/api/wrapped/parse-komoot-com-api-0aec9660/get_route_details \
  -H "Authorization: Bearer YOUR_LOCUS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"route_id":"<string>"}'
```

### get_route_gallery

Get the image gallery (photos) for a specific route. Returns paginated images from both user tours and highlights along the route. Each image includes a templated URL, geographic location, creation date, and creator info.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `limit` | integer | No | Number of photos per page |
| `page` | integer | No | Zero-based page number for pagination |
| `route_id` | string | Yes | The unique ID of the route (e.g. e1985976155), obtainable from search_routes results |

```bash
curl -X POST https://api.paywithlocus.com/api/wrapped/parse-komoot-com-api-0aec9660/get_route_gallery \
  -H "Authorization: Bearer YOUR_LOCUS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"limit":"<integer>","page":"<integer>","route_id":"<string>"}'
```

### get_user_profile

Get public user profile information including display name, avatar image URL, account status, and premium membership indicator. Accepts either a username slug or numeric user ID.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `username` | string | Yes | The username slug or numeric ID of the user (e.g. komoot, visitzurich) |

```bash
curl -X POST https://api.paywithlocus.com/api/wrapped/parse-komoot-com-api-0aec9660/get_user_profile \
  -H "Authorization: Bearer YOUR_LOCUS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"username":"<string>"}'
```

### search_routes

Search for outdoor routes by geographic coordinates and sport type. Returns paginated route summaries including distance, duration, elevation gain/loss, difficulty grade, creator info, and rating. The search is centered on a lat/lng point within a configurable radius. Results are ordered by relevance to the location.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `difficulty` | string | No | Difficulty grade filter for routes |
| `lat` | string | Yes | Latitude of the search center point (e.g. 47.3769) |
| `limit` | integer | No | Number of results per page |
| `lng` | string | Yes | Longitude of the search center point (e.g. 8.5417) |
| `max_distance` | integer | No | Search radius in meters from the center point |
| `page` | integer | No | Zero-based page number for pagination |
| `sport` | string | No | Sport type filter for the routes |

```bash
curl -X POST https://api.paywithlocus.com/api/wrapped/parse-komoot-com-api-0aec9660/search_routes \
  -H "Authorization: Bearer YOUR_LOCUS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"difficulty":"<string>","lat":"<string>","limit":"<integer>","lng":"<string>","max_distance":"<integer>","page":"<integer>","sport":"<string>"}'
```
