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

> Discover climbing routes and areas, search by location and difficulty, and access detailed route information including user reviews and beta. Find your next climb with comprehensive area hierarchies and filtered route recommendations tailored to your skill level.

**Category:** Sports | **Website:** [mountainproject.com/](https://mountainproject.com/) | **Docs:** [parse.bot/marketplace/9be670dd-9f87-4484-a4a1-7e04e17f48a2/mountainproject-com-api](https://parse.bot/marketplace/9be670dd-9f87-4484-a4a1-7e04e17f48a2/mountainproject-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-mountainproject-com-api-9be670dd/`
**Auth:** `Authorization: Bearer <LOCUS_API_KEY>`

## Endpoints

### get_area

Get detailed information for a climbing area, including sub-areas and classic routes listed on the area page. Sub-areas are extracted from left-nav links; classic routes from the Classics table.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `area_id` | string | Yes | Numeric area ID (e.g. '105833388' for Yosemite Valley). |
| `slug` | string | No | URL slug for the area. Used in the URL path but does not affect data returned. |

```bash
curl -X POST https://api.paywithlocus.com/api/wrapped/parse-mountainproject-com-api-9be670dd/get_area \
  -H "Authorization: Bearer YOUR_LOCUS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"area_id":"<string>","slug":"<string>"}'
```

### get_route

Get detailed information for a climbing route including difficulty, type, first ascent, GPS coordinates, description, and location directions. The route page is parsed for structured metadata from the description-details table and content sections.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `route_id` | string | Yes | Numeric route ID (e.g. '105924807' for The Nose). |
| `slug` | string | No | URL slug for the route. Used in the URL path but does not affect data returned. |

```bash
curl -X POST https://api.paywithlocus.com/api/wrapped/parse-mountainproject-com-api-9be670dd/get_route \
  -H "Authorization: Bearer YOUR_LOCUS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"route_id":"<string>","slug":"<string>"}'
```

### get_route_comments

Fetch user comments and beta for a specific climbing route. Returns all comments sorted oldest first. Each comment includes the author, date, and full text body.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `route_id` | string | Yes | Numeric route ID (e.g. '105924807'). |

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

### get_route_finder

Query the Route Finder with filters to find highly-rated climbs in a given area. Returns a list of matching routes filtered by difficulty range, star rating, and climb type. Results are not paginated; the site returns a fixed batch of top-rated routes matching the criteria.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `area_id` | string | Yes | Numeric area ID to search within (e.g. '105833388' for Yosemite Valley). |
| `climb_type` | string | No | Climb type filter. Accepted values: boulder, rock. |
| `diff_max` | string | No | Maximum difficulty value as a numeric code string. |
| `diff_min` | string | No | Minimum difficulty value as a numeric code string. |
| `stars` | string | No | Minimum star rating threshold as a decimal string (e.g. '3.8'). |

```bash
curl -X POST https://api.paywithlocus.com/api/wrapped/parse-mountainproject-com-api-9be670dd/get_route_finder \
  -H "Authorization: Bearer YOUR_LOCUS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"area_id":"<string>","climb_type":"<string>","diff_max":"<string>","diff_min":"<string>","stars":"<string>"}'
```

### search

Search for routes, areas, users, and other content on Mountain Project using the internal v2 search API. Returns paginated results with metadata including location, rating, and breadcrumbs. Paginates via offset. Each result includes type, category, breadcrumbs for navigation context, and a location array for geo-aware filtering.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `offset` | integer | No | Result offset for pagination. |
| `query` | string | Yes | Search keyword (e.g. 'Yosemite', 'El Capitan'). |
| `types` | string | No | Comma-separated content types to search. Accepted values include Route, Area, Forum, User, Photo. |

```bash
curl -X POST https://api.paywithlocus.com/api/wrapped/parse-mountainproject-com-api-9be670dd/search \
  -H "Authorization: Bearer YOUR_LOCUS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"offset":"<integer>","query":"<string>","types":"<string>"}'
```
