Infoplaza Transit API
The Transit API from Infoplaza — 4 operation(s) for transit.
The Transit API from Infoplaza — 4 operation(s) for transit.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.curl "https://apis.io/api/v1/apis/infoplaza:infoplaza-transit-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.
openapi: 3.2.0
info:
title: Infoplaza Platform Transit API
description: API documentation for the Infoplaza Platform. All endpoints require an `api_key` query parameter except this OpenAPI spec.
version: 1.0.0
servers:
- url: https://api.infoplaza.com
tags:
- name: Transit
paths:
/v1/transit/planner/search:
get:
summary: Transit Planner Search
description: 'Planner location search, used to get start and destination location.
**Version:** 1.0.7'
x-version: 1.0.7
parameters:
- name: api_key
in: query
required: true
description: Your API key for authentication
schema:
type: string
- name: query
in: query
required: true
description: Query
schema:
type: string
default: de meerpaal
- name: limit
in: query
required: false
description: Number of results
schema:
type: number
default: '12'
- name: location
in: query
required: false
description: 'You can boost results based on the location, this parameter only works for addresses. '
schema:
type: string
default: ''
- name: includeLines
in: query
required: false
description: If you like to include linformation about what lines are passing at a stopplace you should enable this parameter.
schema:
type: boolean
default: ''
- name: resultTypes
in: query
required: false
description: What kind of results do you would like to have.
schema:
type: string
default: address,stopPlace
responses:
'200':
description: Successful response
content:
application/json:
schema:
type: object
properties:
success:
type: boolean
example: true
meta:
type: object
data:
type: object
example:
items:
- city: Utrecht
name: Utrecht Centraal
type: railStation
stopid: NL:S:ut
location:
latitude: 52.08972840981457
longitude: 5.109853499036995
- city: Utrecht
name: Utrecht Vaartsche Rijn
type: railStation
stopid: NL:S:utvr
location:
latitude: 52.07827150300195
longitude: 5.122849045356171
- city: Utrecht
name: Utrecht Maliebaan
type: railStation
stopid: NL:S:utm
location:
latitude: 52.087809023879274
longitude: 5.131532482637493
- city: Utrecht
name: Utrecht Terwijde
type: railStation
stopid: NL:S:utt
location:
latitude: 52.10019656190806
longitude: 5.0438497413938155
- city: Utrecht
name: Utrecht Zuilen
type: railStation
stopid: NL:S:utzl
location:
latitude: 52.10316967248629
longitude: 5.089423801125133
- city: Utrecht
name: Utrecht Leidsche Rijn
type: railStation
stopid: NL:S:utlr
location:
latitude: 52.098953875629356
longitude: 5.065327505925409
- city: Utrecht
name: Utrecht Lunetten
type: railStation
stopid: NL:S:utln
location:
latitude: 52.06741104838206
longitude: 5.142339025790679
- city: Utrecht
name: Utrecht Overvecht
type: railStation
stopid: NL:S:uto
location:
latitude: 52.10998701595266
longitude: 5.125376764947157
- name: Utrecht
type: place
country: Nederland
location:
latitude: 52.0907006
longitude: 5.1215634
detailedType: city
- city: Amsterdam
name: Utrechtsebrug, Amsterdam
type: man_made
street: Nieuwe Utrechtseweg
country: Nederland
location:
latitude: 52.3387738
longitude: 4.9094218
detailedType: bridge
- city: Utrecht
name: Utrecht Centraal
type: building
street: Stationshal
country: Nederland
location:
latitude: 52.0893825
longitude: 5.1096021
detailedType: train_station
- city: Amsterdam
name: Utrechtsestraat, Amsterdam
type: highway
country: Nederland
location:
latitude: 52.365145
longitude: 4.8978513
detailedType: unclassified
'400':
description: Bad request (e.g. missing parameters)
'401':
description: Invalid or missing API key
'404':
description: Route not found
'429':
description: Rate limit exceeded
'500':
description: Internal server error
tags:
- Transit
operationId: getV1TransitPlannerSearch
x-operation-id-source: derived
/v1/transit/implanner:
get:
summary: Transit I'm Planner
description: 'The I''m Planner plans a trip between two locations and **streams multiple travel
options in real time**. Where a normal trip planner returns one answer, the mixer
keeps re-planning the same journey under different assumptions — for example by
allowing a bicycle for the first mile, or by permitting shared mobility — and pushes
every result to the client as soon as it is ready. Each result carries a `grade` so
the client can rank alternatives, and a `modifiers` list explaining how that result
differs from the default plan request.
Because results arrive progressively, this is a **WebSocket** endpoint, not a REST
endpoint. Messages in both directions are **binary Protocol Buffers** (proto3), if you want to use JSON, please set the "mode" parameter to "json" when making the initial request to the websocket. The server closes the connection when the mixer has no further results.
Expansive documentation can be found at: The I''m Planner documentation
**Version:** 1.0.33'
x-version: 1.0.33
parameters:
- name: api_key
in: query
required: true
description: Your API key for authentication
schema:
type: string
- name: mode
in: query
required: false
description: 'Wether the websocket will accept JSON or Protobuf requests. Also changes the output type. Options: proto, json'
schema:
type: string
default: proto
responses:
'200':
description: Successful response
content:
application/json:
schema:
type: object
properties:
success:
type: boolean
example: true
meta:
type: object
data:
type: object
example:
grade: 5
trips:
- id: QWdlbmN5Ok5MLU5PVFJBSU4tTk9GTEVYOkdWQnxBZ2VuY3k6TkwtVFJBSU46SUZGOk5T
legs:
- distance: 118.56
duration: 1
aimedEndTime: '2026-08-06T10:12:33+02:00'
pointsOnLink:
length: 24
points: yx}~Hkj_dA…
nonTransitLeg:
mode: WALK
toPlace:
name: AMSTERDAM, Mr. Visserplein
quay:
id: NL-NOTRAIN-NOFLEX:1024090
name: AMSTERDAM, Mr. Visserplein
latitude: 52.367939
longitude: 4.905391
latitude: 52.367939
longitude: 4.905391
fromPlace:
name: Origin
latitude: 52.3676
longitude: 4.9041
aimedStartTime: '2026-08-06T10:10:59+02:00'
expectedEndTime: '2026-08-06T10:12:33+02:00'
expectedStartTime: '2026-08-06T10:10:59+02:00'
- distance: 2618.47
duration: 9
transitLeg:
id: rO0ABXeDABhTQ0hFRFVMRURfVFJBTlNJVF9MRUdfVjM…
line:
id: NL-NOTRAIN-NOFLEX:57749
name: Lijn 14
publicCode: '14'
presentation: {}
transportMode: TRAM
transportSubmode: unknown
mode: TRAM
realtime: true
authority:
id: NL-NOTRAIN-NOFLEX:GVB
url: http://www.gvb.nl
name: GVB
phone: 0900-8011
timezone: Europe/Amsterdam
serviceDate: '2026-08-06'
serviceJourney:
id: NL-NOTRAIN-NOFLEX:267449276
publicCode: '16220'
privateCode: '16220'
directionType: Outbound
transportMode: TRAM
transportSubmode: unknown
toEstimatedCall:
quay:
id: NL-NOTRAIN-NOFLEX:1023035
name: AMSTERDAM, Centraal Station
latitude: 52.377754
longitude: 4.901026
aimedArrivalTime: '2026-08-06T10:21:34+02:00'
aimedDepartureTime: '2026-08-06T10:21:34+02:00'
destinationDisplay:
frontText: Centraal Station
expectedArrivalTime: '2026-08-06T10:21:34+02:00'
expectedDepartureTime: '2026-08-06T10:21:34+02:00'
fromEstimatedCall:
quay:
id: NL-NOTRAIN-NOFLEX:1024090
name: AMSTERDAM, Mr. Visserplein
latitude: 52.367939
longitude: 4.905391
aimedArrivalTime: '2026-08-06T10:11:15+02:00'
aimedDepartureTime: '2026-08-06T10:11:33+02:00'
destinationDisplay:
frontText: Centraal Station
expectedArrivalTime: '2026-08-06T10:12:15+02:00'
expectedDepartureTime: '2026-08-06T10:12:33+02:00'
intermediateEstimatedCalls:
- quay:
id: NL-NOTRAIN-NOFLEX:1023892
name: AMSTERDAM, Waterlooplein
latitude: 52.366963
longitude: 4.901922
aimedArrivalTime: '2026-08-06T10:12:22+02:00'
aimedDepartureTime: '2026-08-06T10:12:40+02:00'
destinationDisplay:
frontText: Centraal Station
expectedArrivalTime: '2026-08-06T10:13:17+02:00'
expectedDepartureTime: '2026-08-06T10:13:35+02:00'
aimedEndTime: '2026-08-06T10:21:34+02:00'
pointsOnLink:
length: 250
points: cy}~H}r_dA…
aimedStartTime: '2026-08-06T10:11:33+02:00'
expectedEndTime: '2026-08-06T10:21:34+02:00'
expectedStartTime: '2026-08-06T10:12:33+02:00'
- distance: 16806.45
duration: 15
transitLeg:
line:
id: NL-TRAIN:60683
name: Amsterdam Centraal <-> Hoofddorp SPR8400
publicCode: Sprinter
presentation: {}
transportMode: RAIL
mode: RAIL
authority:
id: NL-TRAIN:IFF:NS
url: http://www.ns.nl
name: NS
phone: 0900-2021163
timezone: Europe/Amsterdam
serviceDate: '2026-08-06'
serviceJourney:
id: NL-TRAIN:268553985
publicCode: '8437'
privateCode: '8437'
bikesAllowed: true
directionType: Outbound
transportMode: RAIL
toEstimatedCall:
quay:
id: NL-TRAIN:916993
name: Schiphol Airport
latitude: 52.3093445
longitude: 4.7621119
wheelchairAccessible: true
aimedPlatform: '4'
aimedArrivalTime: '2026-08-06T10:41:00+02:00'
destinationDisplay:
frontText: Hoofddorp
expectedArrivalTime: '2026-08-06T10:41:00+02:00'
fromEstimatedCall:
quay:
id: NL-TRAIN:906961
name: Amsterdam Centraal
latitude: 52.3795551
longitude: 4.899897
aimedPlatform: 14a
aimedDepartureTime: '2026-08-06T10:26:00+02:00'
destinationDisplay:
frontText: Hoofddorp
expectedDepartureTime: '2026-08-06T10:26:00+02:00'
aimedEndTime: '2026-08-06T10:41:00+02:00'
aimedStartTime: '2026-08-06T10:26:00+02:00'
distance: 20826.63
duration: 42
walkTime: 18
transfers: 1
waitingTime: 0
aimedEndTime: '2026-08-06T10:53:50+02:00'
aimedStartTime: '2026-08-06T10:09:59+02:00'
streetDistance: 1401.71
expectedEndTime: '2026-08-06T10:53:50+02:00'
expectedStartTime: '2026-08-06T10:10:59+02:00'
timestamp: '2026-08-06T10:04:46+02:00'
containsOnDemand: false
'400':
description: Bad request (e.g. missing parameters)
'401':
description: Invalid or missing API key
'404':
description: Route not found
'429':
description: Rate limit exceeded
'500':
description: Internal server error
tags:
- Transit
operationId: getV1TransitImplanner
x-operation-id-source: derived
/v1/transit/stop/nearby:
get:
summary: Transit Stops Nearby
description: 'List of available transit near a specified location, based on latitude and longitude coordinates. If there are more then 3 routes closer within 1000m routes within 1000m will be returned, if there are less then 3 outes all routes within 5000m will be returned
**Version:** 1.0.4'
x-version: 1.0.4
parameters:
- name: api_key
in: query
required: true
description: Your API key for authentication
schema:
type: string
- name: lat
in: query
required: true
description: Latitude of the center point
schema:
type: number
default: '52.02'
- name: lon
in: query
required: true
description: Longitude of the center point
schema:
type: number
default: '5.16'
responses:
'200':
description: Successful response
content:
application/json:
schema:
type: object
properties:
success:
type: boolean
example: true
meta:
type: object
data:
type: object
example:
stopplaces:
- id: NL:S:51280960
name: Weteringshoek
town: Houten
links:
departures: https://developer.infoplaza.com/api/v1/transit/stops/departures?stopplace_id=NL:S:51280960
coordinates:
latitude: 52.019034
longitude: 5.163319
- id: NL:S:51280680
name: Oude Dorp
town: Houten
links:
departures: https://developer.infoplaza.com/api/v1/transit/stops/departures?stopplace_id=NL:S:51280680
coordinates:
latitude: 52.024968
longitude: 5.159924
'400':
description: Bad request (e.g. missing parameters)
'401':
description: Invalid or missing API key
'404':
description: Route not found
'429':
description: Rate limit exceeded
'500':
description: Internal server error
tags:
- Transit
operationId: getV1TransitStopNearby
x-operation-id-source: derived
/v1/transit/stop/departures:
get:
summary: Transit Stop Departures
description: 'This endpoints returns public transport trips departing from a certain stopplace (a collection of phsyical stops that are close to each other) for the next hour.
**Version:** 1.0.3'
x-version: 1.0.3
parameters:
- name: api_key
in: query
required: true
description: Your API key for authentication
schema:
type: string
- name: stopplace_id
in: query
required: true
description: ID of the transit stop
schema:
type: string
default: NL:S:51280010
responses:
'200':
description: Successful response
content:
application/json:
schema:
type: object
properties:
success:
type: boolean
example: true
meta:
type: object
data:
type: object
example:
stopplace:
id: NL:S:51280010
name: De Meerpaal
town: Houten
latitude: 52.018255
longitude: 5.151173
departures:
- line:
mode: bus
color: ffe600
textColor: '000000'
publicCode: '47'
quay:
id: NL:Q:51280010
publicCode: null
operator:
id: UOV
realtime: true
cancelled: false
destination: Utrecht CS
operationDate: '2025-10-07'
serviceJourneyId: QBUZZ:u047:1028
aimedDepartureTime: '2025-10-07T11:30:00+02:00'
expectedDepartureTime: '2025-10-07T11:30:00+02:00'
- line:
mode: bus
color: ffe600
textColor: '000000'
publicCode: '945'
quay:
id: NL:Q:51280010
publicCode: null
operator:
id: UOV
realtime: true
cancelled: false
destination: '''t Goy'
operationDate: '2025-10-07'
serviceJourneyId: QBUZZ:u945:1383
aimedDepartureTime: '2025-10-07T11:56:00+02:00'
expectedDepartureTime: '2025-10-07T11:56:00+02:00'
- line:
mode: bus
color: ffe600
textColor: '000000'
publicCode: '47'
quay:
id: NL:Q:51280020
publicCode: null
operator:
id: UOV
realtime: false
cancelled: false
destination: Houten Station
operationDate: '2025-10-07'
serviceJourneyId: QBUZZ:u047:1031
aimedDepartureTime: '2025-10-07T11:57:00+02:00'
expectedDepartureTime: '2025-10-07T11:57:00+02:00'
- line:
mode: bus
color: ffe600
textColor: '000000'
publicCode: '47'
quay:
id: NL:Q:51280010
publicCode: null
operator:
id: UOV
realtime: false
cancelled: false
destination: Utrecht CS
operationDate: '2025-10-07'
serviceJourneyId: QBUZZ:u047:1030
aimedDepartureTime: '2025-10-07T12:00:00+02:00'
expectedDepartureTime: '2025-10-07T12:00:00+02:00'
- line:
mode: bus
color: ffe600
textColor: '000000'
publicCode: '47'
quay:
id: NL:Q:51280020
publicCode: null
operator:
id: UOV
realtime: false
cancelled: false
destination: Houten Station
operationDate: '2025-10-07'
serviceJourneyId: QBUZZ:u047:1033
aimedDepartureTime: '2025-10-07T12:27:00+02:00'
expectedDepartureTime: '2025-10-07T12:27:00+02:00'
- line:
mode: bus
color: ffe600
textColor: '000000'
publicCode: '47'
quay:
id: NL:Q:51280010
publicCode: null
operator:
id: UOV
realtime: false
cancelled: false
destination: Utrecht CS
operationDate: '2025-10-07'
serviceJourneyId: QBUZZ:u047:1032
aimedDepartureTime: '2025-10-07T12:30:00+02:00'
expectedDepartureTime: '2025-10-07T12:30:00+02:00'
- line:
mode: bus
color: ffe600
textColor: '000000'
publicCode: '945'
quay:
id: NL:Q:51280010
publicCode: null
operator:
id: UOV
realtime: true
cancelled: false
destination: Houten
operationDate: '2025-10-07'
serviceJourneyId: QBUZZ:u945:2228
aimedDepartureTime: '2025-10-07T12:51:00+02:00'
expectedDepartureTime: '2025-10-07T12:51:00+02:00'
- line:
mode: bus
color: ffe600
textColor: '000000'
publicCode: '47'
quay:
id: NL:Q:51280020
publicCode: null
operator:
id: UOV
realtime: false
cancelled: false
destination: Houten Station
operationDate: '2025-10-07'
serviceJourneyId: QBUZZ:u047:1035
aimedDepartureTime: '2025-10-07T12:57:00+02:00'
expectedDepartureTime: '2025-10-07T12:57:00+02:00'
- line:
mode: bus
color: ffe600
textColor: '000000'
publicCode: '47'
quay:
id: NL:Q:51280010
publicCode: null
operator:
id: UOV
realtime: false
cancelled: false
destination: Utrecht CS
operationDate: '2025-10-07'
serviceJourneyId: QBUZZ:u047:1034
aimedDepartureTime: '2025-10-07T13:00:00+02:00'
expectedDepartureTime: '2025-10-07T13:00:00+02:00'
- line:
mode: bus
color: ffe600
textColor: '000000'
publicCode: '47'
quay:
id: NL:Q:51280020
publicCode: null
operator:
id: UOV
realtime: false
cancelled: false
destination: Houten Station
operationDate: '2025-10-07'
serviceJourneyId: QBUZZ:u047:1037
aimedDepartureTime: '2025-10-07T13:27:00+02:00'
expectedDepartureTime: '2025-10-07T13:27:00+02:00'
- line:
mode: bus
color: ffe600
textColor: '000000'
publicCode: '47'
quay:
id: NL:Q:51280010
publicCode: null
operator:
id: UOV
realtime: false
cancelled: false
destination: Utrecht CS
operationDate: '2025-10-07'
serviceJourneyId: QBUZZ:u047:1036
aimedDepartureTime: '2025-10-07T13:30:00+02:00'
expectedDepartureTime: '2025-10-07T13:30:00+02:00'
- line:
mode: bus
color: ffe600
textColor: '000000'
publicCode: '945'
quay:
id: NL:Q:51280010
publicCode: null
operator:
id: UOV
realtime: true
cancelled: false
destination: '''t Goy'
operationDate: '2025-10-07'
serviceJourneyId: QBUZZ:u945:1411
aimedDepartureTime: '2025-10-07T13:56:00+02:00'
expectedDepartureTime: '2025-10-07T13:56:00+02:00'
- line:
mode: bus
color: ffe600
textColor: '000000'
publicCode: '47'
quay:
id: NL:Q:51280020
publicCode: null
operator:
id: UOV
realtime: false
cancelled: false
destination: Houten Station
operationDate: '2025-10-07'
serviceJourneyId: QBUZZ:u047:1039
aimedDepartureTime: '2025-10-07T13:57:00+02:00'
expectedDepartureTime: '2025-10-07T13:57:00+02:00'
- line:
mode: bus
color: ffe600
textColor: '000000'
publicCode: '47'
quay:
id: NL:Q:51280010
publicCode: null
operator:
id: UOV
realtime: false
cancelled: false
destination: Utrecht CS
operationDate: '2025-10-07'
serviceJourneyId: QBUZZ:u047:1038
aimedDepartureTime: '2025-10-07T14:00:00+02:00'
expectedDepartureTime: '2025-10-07T14:00:00+02:00'
- line:
mode: bus
color: ffe600
textColor: '000000'
publicCode: '47'
quay:
id: NL:Q:51280020
publicCode: null
operator:
id: UOV
realtime: false
cancelled: false
destination: Houten Station
operationDate: '2025-10-07'
serviceJourneyId: QBUZZ:u047:1041
aimedDepartureTime: '2025-10-07T14:27:00+02:00'
expectedDepartureTime: '2025-10-07T14:27:00+02:00'
'400':
description: Bad request (e.g. missing parameters)
'401':
description: Invalid or missing API key
'404':
description: Route not found
'429':
description: Rate limit exceeded
'500':
description: Internal server error
tags:
- Transit
operationId: getV1TransitStopDepartures
x-operation-id-source: derived