BettyBeta APIbettybeta.com ↗
Search Fontainebleau boulder problems by sector and grade. Returns boulder name, grade, sector, slug, and URL for trip planning and climbing apps.
What is the BettyBeta API?
The BettyBeta API exposes 1 endpoint — search_boulders — that returns Fontainebleau boulder problems filtered by sector slug, difficulty grade, or both. Each result includes 6 fields: boulder name, grade, sector name, sector slug, boulder slug, and a direct URL to the problem page. The endpoint covers the full Fontainebleau bouldering area, one of the largest and most catalogued bouldering destinations in the world.
curl -X GET 'https://api.parse.bot/scraper/6c10341c-ebde-4717-88a5-ba19aed627c2/search_boulders?grade=7a§or=91-1' \ -H 'X-API-Key: $PARSE_API_KEY'
Search for boulder problems in Fontainebleau filtered by sector and/or grade. When sector is provided, fetches all boulders in that sector (optionally filtered by grade). When only grade is provided, fetches all boulders of that grade across all sectors. When neither parameter is provided, returns all boulder problems across all sectors and grades. Returns all matching boulders in a single response with no pagination.
| Param | Type | Description |
|---|---|---|
| grade | string | Boulder grade to filter by (e.g. '6a', '7a', '5+', '7b+'). When sector is also provided, results are filtered to only boulders matching this grade. |
| sector | string | Sector slug (e.g. '91-1', 'bas-cuvier', 'apremont-desert'). Use hyphenated lowercase form as it appears in the site URL. |
{
"type": "object",
"fields": {
"count": "Total number of matching boulders returned",
"grade": "The grade used for filtering, or null if not provided",
"sector": "The sector slug used for filtering, or null if not provided",
"boulders": "Array of boulder objects with name, grade, sector, sector_slug, slug, and url"
},
"sample": {
"data": {
"count": 7,
"grade": "7a",
"sector": "91-1",
"boulders": [
{
"url": "https://bettybeta.com/bouldering/fontainebleau/91-1/defi-supplementaire",
"name": "Défi Supplémentaire",
"slug": "defi-supplementaire",
"grade": "7a",
"sector": "91.1",
"sector_slug": "91-1"
},
{
"url": "https://bettybeta.com/bouldering/fontainebleau/91-1/hot-spring-assis",
"name": "Hot Spring (assis)",
"slug": "hot-spring-assis",
"grade": "7a",
"sector": "91.1",
"sector_slug": "91-1"
}
]
},
"status": "success"
}
}About the BettyBeta API
What the API Returns
The search_boulders endpoint queries Fontainebleau boulder problems and returns a boulders array alongside a count of matching results and echo fields for the sector and grade filters applied. Each boulder object contains name, grade, sector, sector_slug, slug, and url. The url field links directly to the boulder's detail page on BettyBeta.
Filtering by Sector and Grade
The sector parameter accepts hyphenated lowercase slugs such as bas-cuvier, apremont-desert, or 91-1. The grade parameter accepts standard Fontainebleau grading notation including 5+, 6a, 7a, and 7b+. When both parameters are provided, results are restricted to boulders matching both criteria. When only grade is supplied, the endpoint returns matching problems across all sectors. At least one of the two parameters must be present per request.
Coverage
The API covers the Fontainebleau forest bouldering area in France. Data includes problems across the major named sectors accessible on BettyBeta. Grade coverage spans from beginner to advanced Fontainebleau grades. The endpoint does not paginate — all matching boulders for the given filter combination are returned in a single response.
The BettyBeta API is a managed, monitored endpoint for bettybeta.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when bettybeta.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 bettybeta.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.
Will this API break when the source site changes?+
Is this an official API from the source site?+
Can I fix or extend this API myself if I need a new endpoint or field?+
What happens if I call an endpoint that has an issue?+
- Build a trip-planning tool that lets climbers browse all problems in a specific Fontainebleau sector like
bas-cuvier - Generate a filtered tick-list of problems at a target grade (e.g.
7a) across the entire forest - Populate a mobile climbing app with sector-specific boulder data including direct links to each problem page
- Cross-reference sector slugs with GPS coordinates in a separate dataset to build a map-based problem finder
- Aggregate boulder counts per sector and grade band for visualizing difficulty distribution across Fontainebleau
- Create a session planner that accepts a climber's grade range and outputs suitable boulders with URLs for beta lookup
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 200 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 100 req/min |
| Team | $300/mo | 20,000 | 300 req/min |
| Company | $1,000/mo | 100,000 | 500 req/min |
Each endpoint has a fixed posted price per successful call — most fall between 1 and 10 credits — shown on this API's page before you run it. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.
Does BettyBeta have an official developer API?+
What does the search_boulders endpoint return for each boulder?+
boulders array includes six fields: name (the problem's name), grade (Fontainebleau grade string), sector (human-readable sector name), sector_slug (the URL-safe sector identifier), slug (the boulder's own URL slug), and url (the full link to the problem's page on BettyBeta).Can I retrieve detailed beta, topos, or ascent history for a specific boulder?+
search_boulders endpoint returns summary data — name, grade, sector, slug, and URL — for matching problems. Per-boulder detail pages on BettyBeta contain additional information such as topos and ascents, but those are not exposed by this endpoint. You can fork this API on Parse and revise it to add a detail endpoint that fetches that data for a given boulder slug.Does the API cover bouldering areas outside Fontainebleau?+
Are there any known limitations with sector slug formatting?+
sector parameter requires the hyphenated lowercase slug exactly as it appears in the BettyBeta URL structure — for example 91-1 or apremont-desert. Submitting a human-readable name like Bas Cuvier or Apremont Désert will not match. If you are unsure of a sector's slug, you can inspect the URL pattern on the BettyBeta site for the sector you want.