RCDB APIrcdb.com ↗
Access roller coaster specs, park details, photo galleries, and search across the RCDB database. 6 endpoints covering coaster stats, status, and location data.
What is the RCDB API?
The RCDB API provides structured access to roller coaster and amusement park data across 6 endpoints, pulling from the world's largest roller coaster database at rcdb.com. The get_coaster_details endpoint alone returns over a dozen fields including track dimensions, train configuration, operating status, and status date. Whether you need to look up a specific coaster by ID, browse a park's full ride inventory, or pull photo gallery metadata, the API covers the core data rcdb.com publishes.
No input parameters required.
curl -X GET 'https://api.parse.bot/scraper/8a18aea2-34a6-477e-827d-dd8792ab477c/get_random_coaster' \ -H 'X-API-Key: $PARSE_API_KEY'
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 rcdb-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.
from parse_apis.rcdb_roller_coaster_database_api import RCDB, Coaster, CoasterSummary, Park, ParkCoaster, Gallery, QuickResult
rcdb = RCDB()
# Search for coasters with "Steel" in the name
for coaster in rcdb.coasters.search(query="Steel"):
print(coaster.name, coaster.park, coaster.opened)
# Get full details for a specific coaster by constructing from ID
details = rcdb.coaster(id="15411").pictures.gallery()
for pic in details.pictures:
print(pic.name, pic.width, pic.height)
# Look up a park by ID and explore its coasters
park = rcdb.parks.get(park_id="4529")
print(park.name, park.location)
# Quick autocomplete search
for result in rcdb.coasters.quick_search(query="kingda"):
print(result.t, result.s, result.l)
# Get a random coaster from the homepage
random_coaster = rcdb.coasters.random()
print(random_coaster.name, random_coaster.park, random_coaster.status)
Returns details of a randomly selected roller coaster from the rcdb.com homepage. Each call returns a different coaster with varying fields depending on available data. Fields like speed, height, length, layout, and manufacturer appear only when the site provides them for that coaster.
No input parameters required.
{
"type": "object",
"fields": {
"id": "string, numeric coaster ID",
"name": "string, coaster name",
"park": "string, name of the park",
"status": "string, operating status",
"park_id": "string, numeric park ID",
"location": "string, comma-separated location"
},
"sample": {
"data": {
"id": "1576",
"name": "Souris Mécaniques",
"park": "Jardin d'Acclimatation",
"speed": "18.6 mph",
"height": "23 ft",
"layout": "Wild Mouse",
"length": "711.9 ft",
"status": "Operating",
"park_id": "5113",
"location": "Paris, Île-de-France, France",
"manufacturer": "Reverchon",
"roller coaster": "Souris Mécaniques"
},
"status": "success"
}
}About the RCDB API
Coaster and Park Detail Endpoints
The get_coaster_details endpoint accepts a numeric coaster_id and returns a structured object that includes the coaster's name, park, location, status, status_date, general_info array, and a stats object segmented into sections like Tracks, Trains, and Details. These stat sections contain key-value pairs for measurements such as height, speed, length, inversions, and design type — the same figures listed in the statistics table on rcdb.com. The get_park_details endpoint takes a park_id and returns the park's name, location, and a coasters object where each key is an operating status (e.g. "Operating", "Removed") and each value is an array of coaster objects with name and id.
Search Endpoints
Two search endpoints handle different lookup patterns. search_coasters accepts an optional query string and returns a flat list of all matching coasters with fields name, id, park, park_id, and opened. Omitting the query returns the full coaster list with a total count. quick_search is designed for autocomplete scenarios: it takes a required query and returns a small result set where each item has a title (t), subtitle or location (s), and a relative link path (l). A sequence integer is also returned, which is useful for ordering out-of-sequence async responses.
Photo Gallery and Random Coaster
get_coaster_pictures returns the full photo gallery for a coaster by coaster_id. The response includes a pictures array where each item carries an id, url, name, per-picture dimensions, and multiple size variants. Sprite sheet metadata (sprite_url, cols, width, sizes) is also returned for efficient thumbnail rendering. The get_random_coaster endpoint takes no inputs and returns a randomly selected coaster's basic details — id, name, park, park_id, status, and location — useful for discovery features or sampling the dataset.
The RCDB API is a managed, monitored endpoint for rcdb.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when rcdb.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 rcdb.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 coaster comparison tool using
statsfields like height, speed, and inversions fromget_coaster_details. - Populate a park directory with ride inventory grouped by status using
get_park_detailsand itscoastersobject. - Implement a coaster autocomplete search bar using
quick_searchwith thet,s, andlresponse fields. - Display photo galleries for individual coasters by feeding
pictures[].urland size variants fromget_coaster_pictures. - Generate a 'coaster of the day' feature using
get_random_coasterto surface ride names, parks, and locations. - Export a filtered dataset of coasters with opening years using the
openedfield fromsearch_coasters. - Track historical operating status changes by reading
statusandstatus_datefromget_coaster_details.
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 100 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 100 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.
Does rcdb.com have an official developer API?+
What does `get_coaster_details` return in the `stats` object?+
stats field is a nested object with section keys such as Tracks, Trains, and Details. Each section contains key-value pairs like height, drop, speed, length, duration, capacity, or number of inversions — depending on what rcdb.com lists for that specific coaster. Not every coaster has every stat populated; fields vary based on available data.Does `search_coasters` support filtering by country, coaster type, or manufacturer?+
search_coasters filters only by a keyword query matched against coaster names, and returns name, id, park, park_id, and opened fields. You can fork this API on Parse and revise it to add filter parameters for attributes like location or coaster type.Are user reviews or visitor ratings for coasters available?+
How does `quick_search` differ from `search_coasters` for finding a coaster?+
quick_search is optimized for fast, autocomplete-style lookups and returns a small result set with title, subtitle, and a link path per result — it also covers parks, not just coasters. search_coasters returns a more complete result set with park_id and opened fields, and omitting the query returns all coasters with a total count. Use quick_search for type-ahead UI and search_coasters for full dataset queries.