Logo
developer platform
Docs
API
Pricing
Showcase
API Overview
Geocoding
Geocoding
Geocoding NearbyGeocoding Search
Weather
Weather Core
ForecastRadarClimateWarnings
Weather Timeseries
Timeseries ModelsTimeseries Point ForecastTimeseries Route Forecast
Weather Ensemble
Ensemble ModelsEnsemble Point Forecast
Marine
Marine Timeseries
Timeseries ModelsTimeseries Point ForecastTimeseries Route Forecast
Marine Ensemble
Ensemble ModelsEnsemble Point Forecast
Marine Ports
Port ListPort Info
Mobility (The Netherlands)
Mobility Traffic
Traffic OverviewTraffic Geo
Mobility Transit
Transit Planner SearchTransit Planner MixerTransit Stops NearbyTransit Stop Departures

Transit Planner Mixer

SOCKET
https://api.infoplaza.com/v1/transit/plannermixer

Description

The Planner Mixer 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), not JSON. The server closes the connection when the mixer has no further results.

Parameters

ParameterTypeRequiredDefaultDescription
fromPlacestringOptional-Origin as "latitude,longitude"
fromIdstringOptional-Origin as stop identifier
toPlacestringOptional-Destination as "latitude,longitude"
toIdstringOptional-Destination as stop identifier
viaPlacestringOptional-Intermediate point as "latitude,longitude"
viaIdstringOptional-Intermediate point as stop identifier
timestampstringOptional-Departure (or arrival, see `arriveBy`) time in ISO 8601, e.g. `"2026-08-06T10:00:00+02:00"`. Defaults to now
arriveBybooleanOptionalfalse`timestamp` is the desired arrival time
publicTransportOnlybooleanOptional-Restrict the trip to public transport only

Response

PropertyTypeDescription
grade
integerGrade of the travel option to enable ranking of alternatives.
trips
arrayList of possible trip itineraries for the requested journey.
└─id
stringUnique identifier of the trip.
└─legs
arrayLeg segments that compose the trip. Each leg is either a non-transit or transit segment.

Example Request

curl -X SOCKET "https://api.infoplaza.com/v1/transit/plannermixer
     ?api_key=$INFOPLAZA_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{}'

Example Response

{
  "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
}
└─distance
number
Distance of this leg in meters.
└─duration
integerDuration of this leg in minutes.
└─transitLeg
objectDetails for a leg involving public transit.
└─id
stringUnique identifier for this transit leg.
└─line
objectInformation about the transit line used in this leg.
└─id
string-
└─name
string-
└─publicCode
string-
└─presentation
objectPresentation related metadata (optional, can be empty).
└─transportMode
string-
└─transportSubmode
string-
└─mode
stringGeneral mode of transport for this leg, e.g. TRAM, RAIL.
└─realtime
booleanIndicates if real-time data affects this leg.
└─authority
objectAuthority or agency responsible for this transit leg.
└─id
string-
└─url
string-
format: uri
└─name
string-
└─phone
string-
└─timezone
stringTimezone identifier, e.g. Europe/Amsterdam.
└─serviceDate
stringCalendar date of the transit service.
format: date
└─serviceJourney
objectMetadata about the transit service journey.
└─id
stringIdentifier of the service journey.
└─publicCode
stringPublic facing service code.
└─privateCode
stringInternal/private code of the service.
└─bikesAllowed
booleanIndicates if bikes are allowed on this service journey.
└─directionType
stringTypically Outbound/Inbound or similar.
└─transportMode
stringGeneral mode of transport (e.g. TRAM, RAIL).
└─transportSubmode
stringMore specific submode of transport if known.
└─toEstimatedCall
objectEstimated arrival stop information, similar structure to fromEstimatedCall.
└─quay
objectDestination stop/quay for the leg.
└─id
stringQuay identifier.
└─name
stringName of the quay.
└─latitude
numberLatitude coordinate.
└─longitude
numberLongitude coordinate.
└─wheelchairAccessible
booleanOptional: accessibility info if available.
└─aimedPlatform
stringScheduled platform assigned at the stop.
└─aimedArrivalTime
stringScheduled arrival time at this stop.
format: date-time
└─aimedDepartureTime
stringScheduled departure time (if applicable).
format: date-time
└─destinationDisplay
object-
└─frontText
string-
└─expectedArrivalTime
stringReal-time estimated arrival time if available.
format: date-time
└─expectedDepartureTime
stringReal-time estimated departure time if available.
format: date-time
└─fromEstimatedCall
objectEstimated departure stop information.
└─quay
objectOrigin stop/quay for the leg.
└─id
stringQuay identifier.
└─name
stringName of the quay.
└─latitude
numberLatitude coordinate.
└─longitude
numberLongitude coordinate.
└─wheelchairAccessible
booleanOptional: accessibility info if available.
└─aimedPlatform
stringScheduled platform assigned at the stop.
└─aimedArrivalTime
stringScheduled arrival time at this stop (may be missing for origin).
format: date-time
└─aimedDepartureTime
stringScheduled departure time from this stop.
format: date-time
└─destinationDisplay
objectDisplay info for destination text shown to passengers.
└─frontText
stringThe text displayed.
└─expectedArrivalTime
stringReal-time estimated arrival time if available.
format: date-time
└─expectedDepartureTime
stringReal-time estimated departure time if available.
format: date-time
└─intermediateEstimatedCalls
arrayList of intermediate stops with estimated arrival and departure times.
└─quay
object-
└─id
string-
└─name
string-
└─latitude
number-
└─longitude
number-
└─aimedArrivalTime
string-
format: date-time
└─aimedDepartureTime
string-
format: date-time
└─destinationDisplay
object-
└─frontText
string-
└─expectedArrivalTime
string-
format: date-time
└─expectedDepartureTime
string-
format: date-time
└─aimedEndTime
stringScheduled (aimed) end time of this leg.
format: date-time
└─pointsOnLink
objectEncoded polyline points that represent the route for this leg.
└─length
integerNumber of points encoded in the polyline.
└─points
stringEncoded polyline string representing the path.
└─nonTransitLeg
objectShows details for a leg without transit, typically walking or bicycle segments.
└─mode
stringTransport mode used for this non-transit leg, e.g., WALK.
└─toPlace
objectEnding location of the leg.
└─name
stringName of the destination.
└─quay
objectQuay information related to this place if applicable.
└─id
stringIdentifier of the quay.
└─name
stringName of the quay.
└─latitude
numberLatitude of quay.
└─longitude
numberLongitude of quay.
└─latitude
numberLatitude in decimal degrees.
└─longitude
numberLongitude in decimal degrees.
└─fromPlace
objectStarting location of the leg.
└─name
stringName of the start place.
└─latitude
numberLatitude in decimal degrees.
└─longitude
numberLongitude in decimal degrees.
└─aimedStartTime
stringScheduled (aimed) start time of this leg.
format: date-time
└─expectedEndTime
stringExpected end time of this leg including real-time updates if available.
format: date-time
└─expectedStartTime
stringExpected start time of this leg including real-time updates if available.
format: date-time
└─distance
numberTotal distance of the trip in meters.
└─duration
integerTotal duration of the trip in minutes.
└─walkTime
integerTotal walking time in minutes during the trip.
└─transfers
integerNumber of transfers during the trip.
└─waitingTime
integerTotal waiting time in minutes during the trip.
└─aimedEndTime
stringScheduled (aimed) end time of the trip.
format: date-time
└─aimedStartTime
stringScheduled (aimed) start time of the trip.
format: date-time
└─streetDistance
numberTotal street distance walked in meters.
└─expectedEndTime
stringExpected end time of the trip including real-time updates if available.
format: date-time
└─expectedStartTime
stringExpected start time of the trip including real-time updates if available.
format: date-time
timestamp
stringISO 8601 timestamp indicating when this result was generated, including timezone offset.
format: date-time
containsOnDemand
booleanIndicates whether any part of the trip includes on-demand transport modes.