---
title: "Given an area frame (box defined by the top-right and bottom-left corners),
it returns all routes and their respective shapes that operate within this area.
Routes are filtered by zoom level. On low zoom levels, only long distance trains will be shown
while on high zoom levels, also metros, buses and trams will be returned."
method: GET
path: "/api/experimental/map/routes"
tags: ["map"]
---

# Given an area frame (box defined by the top-right and bottom-left corners),
it returns all routes and their respective shapes that operate within this area.
Routes are filtered by zoom level. On low zoom levels, only long distance trains will be shown
while on high zoom levels, also metros, buses and trams will be returned.

`GET /api/experimental/map/routes`

## Query parameters

- `zoom` number, required
- `min` string, required
- `max` string, required
- `language` string[]

## Response `200`

a list of routes in the area

- object
  - `routes` RouteInfo[], required
    - `mode` 'WALK' | 'BIKE' | 'RENTAL' | 'CAR' | 'HGV' | 'CAR_PARKING' | 'CAR_DROPOFF' | 'ODM' | 'RIDE_SHARING' | 'FLEX' | 'DEBUG_BUS_ROUTE' | 'DEBUG_RAILWAY_ROUTE' | 'DEBUG_FERRY_ROUTE' | 'TRANSIT' | 'TRAM' | 'SUBWAY' | 'FERRY' | 'AIRPLANE' | 'BUS' | 'COACH' | 'RAIL' | 'HIGHSPEED_RAIL' | 'LONG_DISTANCE' | 'NIGHT_RAIL' | 'REGIONAL_FAST_RAIL' | 'REGIONAL_RAIL' | 'SUBURBAN' | 'FUNICULAR' | 'AERIAL_LIFT' | 'OTHER' | 'AREAL_LIFT' | 'METRO' | 'CABLE_CAR', required — # Street modes - `WALK` - `BIKE` - `RENTAL` Experimental. Expect unannounced breaking changes (without version bumps) for all parameters and returned structs. - `CAR` - `HGV` Heavy goods vehicles (only supported for direct connections) - `CAR_PARKING` Experimental. Expect unannounced breaking changes (without version bumps) for all parameters and returned structs. - `CAR_DROPOFF` Experimental. Expect unannounced breaking changes (without version bumps) for all perameters and returned structs. - `ODM` on-demand taxis from the Prima+ÖV Project - `RIDE_SHARING` ride sharing from the Prima+ÖV Project - `FLEX` flexible transports # Transit modes - `TRANSIT`: translates to `TRAM,FERRY,AIRPLANE,BUS,COACH,RAIL,ODM,RIDE_SHARING,FUNICULAR,AERIAL_LIFT,OTHER` - `TRAM`: trams - `SUBWAY`: subway trains (Paris Metro, London Underground, but also NYC Subway, Hamburger Hochbahn, and other non-underground services) - `FERRY`: ferries - `AIRPLANE`: airline flights - `BUS`: short distance buses (does not include `COACH`) - `COACH`: long distance buses (does not include `BUS`) - `RAIL`: translates to `HIGHSPEED_RAIL,LONG_DISTANCE,NIGHT_RAIL,REGIONAL_RAIL,SUBURBAN,SUBWAY` - `HIGHSPEED_RAIL`: long distance high speed trains (e.g. TGV) - `LONG_DISTANCE`: long distance inter city trains - `NIGHT_RAIL`: long distance night trains - `REGIONAL_FAST_RAIL`: deprecated, `REGIONAL_RAIL` will be used - `REGIONAL_RAIL`: regional train - `SUBURBAN`: suburban trains (e.g. S-Bahn, RER, Elizabeth Line, ...) - `ODM`: demand responsive transport - `RIDE_SHARING`: ride sharing - `FUNICULAR`: Funicular. Any rail system designed for steep inclines. - `AERIAL_LIFT`: Aerial lift, suspended cable car (e.g., gondola lift, aerial tramway). Cable transport where cabins, cars, gondolas or open chairs are suspended by means of one or more cables. - `AREAL_LIFT`: deprecated - `METRO`: deprecated - `CABLE_CAR`: deprecated
    - `transitRoutes` TransitRouteInfo[], required
      - `id` string, required
      - `shortName` string, required
      - `longName` string, required
      - `color` string
      - `textColor` string
    - `numStops` integer, required — Number of stops along this route
    - `routeIdx` integer, required — Internal route index for debugging purposes
    - `pathSource` 'NONE' | 'TIMETABLE' | 'ROUTED', required
    - `segments` RouteSegment[], required
      - `from` integer, required — Index into the top-level route stops array
      - `to` integer, required — Index into the top-level route stops array
      - `polyline` integer, required — Index into the top-level route polylines array
  - `polylines` RoutePolyline[], required
    - `polyline` EncodedPolyline, required
      - `points` string, required — The encoded points of the polyline using the Google polyline encoding.
      - `precision` integer, required — The precision of the returned polyline (7 for /v1, 6 for /v2) Be aware that with precision 7, coordinates with |longitude| > 107.37 are undefined/will overflow.
      - `length` integer, required — The number of points in the string
    - `colors` string[], required — Unique route colors of routes containing this segment
    - `routeIndexes` integer[], required — Indexes into the top-level routes array for routes containing this segment
  - `stops` Place[], required
    - `name` string, required — name of the transit stop / PoI / address
    - `stopId` string — The ID of the stop. This is often something that users don't care about.
    - `parentId` string — If it's not a root stop, this field contains the `stopId` of the parent stop.
    - `importance` number — The importance of the stop between 0-1.
    - `lat` number, required — latitude
    - `lon` number, required — longitude
    - `level` number — level according to OpenStreetMap If no level is given, the field will be unset. For older versions (v1-v5), this field is mandatory and therefore set to 0. Affected endpoints: plan, trip, stoptimes, one-to-all, map/stops, map/trips
    - `tz` string — timezone name (e.g. "Europe/Berlin")
    - `arrival` string, date-time — arrival time
    - `departure` string, date-time — departure time
    - `scheduledArrival` string, date-time — scheduled arrival time
    - `scheduledDeparture` string, date-time — scheduled departure time
    - `scheduledTrack` string — scheduled track from the static schedule timetable dataset
    - `track` string — The current track/platform information, updated with real-time updates if available. Can be missing if neither real-time updates nor the schedule timetable contains track information.
    - `stopCode` string — Short, abbreviated identifier of the stop intended for users (e.g. printed on signage, used in SMS / passenger info systems). Comes from the GTFS `stop_code` field.
    - `description` string — description of the location that provides more detailed information
    - `vertexType` 'NORMAL' | 'BIKESHARE' | 'TRANSIT' — - `NORMAL` - latitude / longitude coordinate or address - `BIKESHARE` - bike sharing station - `TRANSIT` - transit stop
    - `pickupType` 'NORMAL' | 'NOT_ALLOWED' — - `NORMAL` - entry/exit is possible normally - `NOT_ALLOWED` - entry/exit is not allowed
    - `dropoffType` 'NORMAL' | 'NOT_ALLOWED' — - `NORMAL` - entry/exit is possible normally - `NOT_ALLOWED` - entry/exit is not allowed
    - `cancelled` boolean — Whether this stop is cancelled due to the realtime situation.
    - `alerts` Alert[] — Alerts for this stop.
      - `code` string — Attribute or notice code (e.g. for HRDF or NeTEx)
      - `communicationPeriod` TimeRange[] — Time when the alert should be shown to the user. If missing, the alert will be shown as long as it appears in the feed. If multiple ranges are given, the alert will be shown during all of them.
        - `start` string, date-time, required — If missing, the interval starts at minus infinity. If a TimeRange is provided, either start or end must be provided - both fields cannot be empty.
        - `end` string, date-time, required — If missing, the interval ends at plus infinity. If a TimeRange is provided, either start or end must be provided - both fields cannot be empty.
      - `impactPeriod` TimeRange[] — Time when the services are affected by the disruption mentioned in the alert.
        - `start` string, date-time, required — If missing, the interval starts at minus infinity. If a TimeRange is provided, either start or end must be provided - both fields cannot be empty.
        - `end` string, date-time, required — If missing, the interval ends at plus infinity. If a TimeRange is provided, either start or end must be provided - both fields cannot be empty.
      - `cause` 'UNKNOWN_CAUSE' | 'OTHER_CAUSE' | 'TECHNICAL_PROBLEM' | 'STRIKE' | 'DEMONSTRATION' | 'ACCIDENT' | 'HOLIDAY' | 'WEATHER' | 'MAINTENANCE' | 'CONSTRUCTION' | 'POLICE_ACTIVITY' | 'MEDICAL_EMERGENCY' | 'SPECIAL_EVENT' — Cause of this alert.
      - `causeDetail` string — Description of the cause of the alert that allows for agency-specific language; more specific than the Cause.
      - `effect` 'NO_SERVICE' | 'REDUCED_SERVICE' | 'SIGNIFICANT_DELAYS' | 'DETOUR' | 'ADDITIONAL_SERVICE' | 'MODIFIED_SERVICE' | 'OTHER_EFFECT' | 'UNKNOWN_EFFECT' | 'STOP_MOVED' | 'NO_EFFECT' | 'ACCESSIBILITY_ISSUE' — The effect of this problem on the affected entity.
      - `effectDetail` string — Description of the effect of the alert that allows for agency-specific language; more specific than the Effect.
      - `url` string — The URL which provides additional information about the alert.
      - `headerText` string, required — Header for the alert. This plain-text string will be highlighted, for example in boldface.
      - `descriptionText` string, required — Description for the alert. This plain-text string will be formatted as the body of the alert (or shown on an explicit "expand" request by the user). The information in the description should add to the information of the header.
      - `ttsHeaderText` string — Text containing the alert's header to be used for text-to-speech implementations. This field is the text-to-speech version of header_text. It should contain the same information as headerText but formatted such that it can read as text-to-speech (for example, abbreviations removed, numbers spelled out, etc.)
      - `ttsDescriptionText` string — Text containing a description for the alert to be used for text-to-speech implementations. This field is the text-to-speech version of description_text. It should contain the same information as description_text but formatted such that it can be read as text-to-speech (for example, abbreviations removed, numbers spelled out, etc.)
      - `severityLevel` 'UNKNOWN_SEVERITY' | 'INFO' | 'WARNING' | 'SEVERE' — The severity of the alert.
      - `imageUrl` string — String containing an URL linking to an image.
      - `imageMediaType` string — IANA media type as to specify the type of image to be displayed. The type must start with "image/"
      - `imageAlternativeText` string — Text describing the appearance of the linked image in the image field (e.g., in case the image can't be displayed or the user can't see the image for accessibility reasons). See the HTML spec for alt image text.
    - `flex` string — for `FLEX` transports, the flex location area or location group name
    - `flexId` string — for `FLEX` transports, the flex location area ID or location group ID
    - `flexStartPickupDropOffWindow` string, date-time — Time that on-demand service becomes available
    - `flexEndPickupDropOffWindow` string, date-time — Time that on-demand service ends
    - `modes` Mode[] — available transport modes for stops
  - `zoomFiltered` boolean, required — Indicates whether some routes were filtered out due to the zoom level.

## Other responses

- `400` — Bad Request
- `404` — Not Found
- `422` — Unprocessable Entity
- `500` — Server Error

---

[API](https://skmtc.net/motis-project/apis/motis-api.md) · [All operations](https://skmtc.net/motis-project/apis/motis-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/motis-project/motis-api/versions/947bd5a43e8d/schema)
