Discover/9292 API
live

9292 API9292.nl

Search Dutch public transport stops, plan multi-modal trips, and retrieve leg-by-leg journey details including fares, platforms, and transfer counts via the 9292.nl API.

This API takes change requests — .
Endpoint health
verified 4d ago
plan_trip
get_journey_details
search_locations
3/3 passing latest checkself-healing
Endpoints
3
Updated
20d ago

What is the 9292 API?

The 9292.nl API exposes 3 endpoints for querying the Dutch public transport network, covering trains, buses, trams, metros, and ferries. Use search_locations to resolve station names or addresses into location IDs, plan_trip to retrieve multiple route options with pricing and operator data, and get_journey_details to pull full leg-by-leg breakdowns including platforms, intermediate stops, and fare class information.

This call costs1 credit / call— charged only on success
Try it
Maximum number of results to return (1-50).
Free-text search query for a location name, station, stop, or address.
api.parse.bot/scraper/1f75bb0f-f76b-47f6-9036-0d839252dfe4/<endpoint>
Ready to send
Fill in the parameters and hit sign in to send to see live response data here.
Call it over HTTPgrab a free API key at signup
curl -X GET 'https://api.parse.bot/scraper/1f75bb0f-f76b-47f6-9036-0d839252dfe4/search_locations?limit=10&query=Amsterdam+Centraal' \
  -H 'X-API-Key: $PARSE_API_KEY'
Python SDK · recommended

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 9292-nl-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.

"""Walkthrough: 9292 Dutch Public Transport SDK — bounded, re-runnable; every call capped."""
from parse_apis.api_9292_nl_api import NinetyTwoNinetyTwo, RequestType, LocationUnknown

client = NinetyTwoNinetyTwo()

# Search for locations to find valid station IDs.
for loc in client.locations.search(query="Utrecht", limit=3):
    print(loc.label, loc.category, loc.place)

# Plan a trip between two stations.
origin = client.locations.search(query="Amsterdam Centraal", limit=1).first()
for trip in client.trip_plans.plan(
    from_location=origin.id,
    to_location="station-rotterdam-centraal",
    request_type=RequestType.DEPARTURE,
    limit=3,
):
    print(trip.departure_time, trip.duration_minutes, "min", trip.price_euro_cents, "ct", trip.operators)

# Get full journey details for the first trip found.
trip = client.trip_plans.plan(
    from_location="station-amsterdam-centraal",
    to_location="station-rotterdam-centraal",
    limit=1,
).first()

try:
    detail = client.journey_details.get(journey_id=trip.journey_id)
    print(detail.from_, "→", detail.to, "|", detail.duration_minutes, "min")
    for leg in detail.legs:
        print(" ", leg.departure.name, leg.departure.platform, "→", leg.arrival.name, leg.modality)
except LocationUnknown as e:
    print("location not found:", e)

print("exercised: locations.search, trip_plans.plan, journey_details.get")
All endpoints · 3 totalmissing one? ·

Search for public transport locations (stations, stops, addresses) by free-text query. Returns matching locations with their unique IDs, which are used as inputs to plan_trip. Results are ranked by relevance to the query.

Input
ParamTypeDescription
limitintegerMaximum number of results to return (1-50).
queryrequiredstringFree-text search query for a location name, station, stop, or address.
Response
{
  "type": "object",
  "fields": {
    "locations": "array of location objects with id, label, category, place, lat_long, and location_type"
  },
  "sample": {
    "data": {
      "locations": [
        {
          "id": "station-amsterdam-centraal",
          "label": "Amsterdam Centraal",
          "place": "Amsterdam",
          "category": "Treinstation",
          "lat_long": "52.378706,4.900489",
          "location_type": "Station"
        }
      ]
    },
    "status": "success"
  }
}

About the 9292 API

Location Search and ID Resolution

search_locations accepts a free-text query and returns up to 50 matching results (controlled by the limit parameter). Each result includes an id field — such as station-amsterdam-centraal — along with a human-readable label, a category, a place, lat_long coordinates, and a location_type. These IDs are the required inputs for trip planning, so location search is typically the first call in any workflow.

Trip Planning

plan_trip takes a from and to location ID and returns between 1 and 15 route options (set via the results parameter). The date_time parameter accepts an ISO 8601 UTC datetime so you can plan for future or past times, and request_type specifies whether that timestamp is a departure or arrival time. An extra_interchange_time parameter adds buffer minutes at each transfer. Each trip option in the trips array includes a journey_id, departure and arrival times, total duration, price, the transport modes involved, and the operators running each segment.

Detailed Journey Breakdown

get_journey_details accepts a journey_id from plan_trip and returns the full structure of a trip. The legs array covers each individual segment with departure and arrival station info, platform numbers, modality (e.g. train, tram, bus), and intermediate stops. The fare_info object provides a detailed fare breakdown by class and available reductions. Additional top-level fields include cancelled (boolean), duration_minutes, price_euro_cents, and number_of_changes.

Reliability & maintenanceVerified

The 9292 API is a managed, monitored endpoint for 9292.nl — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when 9292.nl 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 9292.nl 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.

Last verified
4d ago
Latest check
3/3 endpoints passing
Maintenance
Monitored & self-healing
Will this API break when the source site changes?+
It's built not to. Every endpoint is health-checked on a schedule with automated test probes. When the source site changes and a check fails, the API is automatically queued for repair and re-verified — that's the self-healing layer. Each API page shows when its endpoints were last verified. And because marketplace APIs are shared, any fix reaches everyone using it.
Is this an official API from the source site?+
No — Parse APIs are independent, managed REST wrappers over publicly available data. That is the point: where a site has no official API (or only a limited one), Parse gives you a maintained, monitored endpoint for that data and keeps it working as the site changes — so you get a stable contract over a source that never promised one.
Can I fix or extend this API myself if I need a new endpoint or field?+
Yes — and you don't have to wait on us. This API was generated by the Parse agent, which stays attached. Describe the change in plain English ("add an endpoint that returns reviews", "fix the price field") in the revise box on the API page or via the revise_api MCP tool, and the agent rebuilds it against the live site in minutes. Contributing the change back to the public API is free.
What happens if I call an endpoint that has an issue?+
Errors are machine-readable: a bad call returns a clean status with the list of available endpoints and a repair hint, so an agent (or you) can recover or trigger a fix instead of failing silently. Confirmed failures feed the automatic repair queue.
Common use cases
  • Build a commute planner app that resolves Dutch station names with search_locations and surfaces fastest routes via plan_trip.
  • Display real-time cancellation status for booked journeys using the cancelled field from get_journey_details.
  • Calculate travel costs between any two Dutch cities using price_euro_cents and fare_info from detailed journey results.
  • Show platform numbers and intermediate stops for a specific leg using the legs array in get_journey_details.
  • Compare journey duration and number of transfers across multiple route options returned by plan_trip.
  • Identify which transport operators (train, bus, ferry) serve a given route using the operators field in plan_trip results.
  • Automate arrival-time-based trip planning by setting request_type to arrival and providing a target date_time.
Pricing & limitsSee full pricing →
TierPriceCredits/monthRate limit
Free$0/mo2005 req/min
Hobby$30/mo1,00020 req/min
Developer$100/mo5,000100 req/min
Team$300/mo20,000300 req/min
Company$1,000/mo100,000500 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.

Frequently asked questions
Does 9292.nl have an official developer API?+
9292 does not publish a documented public developer API. The 9292.nl API on Parse gives developers structured programmatic access to the trip planning and location data available on the site.
What does `get_journey_details` return beyond what `plan_trip` already provides?+
plan_trip returns summary data per route option: times, total duration, price, modes, and operators. get_journey_details expands a specific journey_id into individual legs with per-leg departure and arrival stations, platform numbers, intermediate stops, a cancelled boolean, and a fare_info object that breaks down fares by class and available reductions.
Can I plan trips outside the Netherlands using this API?+
Coverage is scoped to the Dutch public transport network. International journeys crossing into Belgium, Germany, or other neighbouring countries are not currently covered. You can fork this API on Parse and revise it to add an endpoint targeting a cross-border journey source.
Does the API return real-time disruption or service alerts for a route?+
The API returns a cancelled boolean per journey via get_journey_details, but it does not currently expose broader service disruption messages, delay reasons, or network-wide alerts. You can fork this API on Parse and revise it to add an endpoint that surfaces disruption data.
How do location IDs work, and do they stay stable over time?+
Location IDs are returned by search_locations as strings like station-rotterdam-centraal. They are used as from and to inputs in plan_trip. IDs follow a predictable naming pattern for major stations, but they should be resolved fresh from search_locations rather than hardcoded, as stop-level IDs for bus stops and tram halts may change when operators restructure their networks.
Page content last updated . Spec covers 3 endpoints from 9292.nl.
Related APIs in TravelSee all →
trainline.eu API
Search for train stations and routes across the UK and Europe, then find and compare available journeys with schedules and pricing. Book your ideal train trip by accessing real-time travel options directly from Trainline.com.
thetrainline.com API
Search UK train stations and find the cheapest fares across date ranges, then generate direct booking links to complete your purchase on Trainline.com. Get real-time journey information to compare prices and book your tickets in seconds.
reise.ruter.no API
Access real-time bus arrivals and departures for Oslo's public transit network (Ruter). Search for stops by name and retrieve live schedules with up-to-the-minute tracking across buses, trams, and metro lines.
trenitalia.com API
Search for trains across Italy, check real-time train status and delays, view station departure and arrival boards, and find available tickets all in one place. Get live traffic information and detailed train itineraries to plan your journey with complete visibility into schedules and service disruptions.
Thuisbezorgd.nl API
Search for restaurants on Thuisbezorgd.nl by location and cuisine type. Retrieve delivery times, ratings, fees, and menu details for restaurants across the Netherlands, with support for address lookup and cuisine filtering.
omio.com API
Search and compare train, bus, and flight trips across multiple providers in real-time, with detailed pricing breakdowns and the ability to view fares across different dates. Find the best deals by exploring popular destinations, autocompleting location searches, and analyzing price variations to plan your ideal journey.
bahn.de API
Access data from bahn.de.
wanderu.com API
Search and compare bus and train routes between US cities with real-time pricing and schedules. Find the best travel options for your trip by filtering results and viewing available departure times and fares across multiple carriers.