openapi: 3.1.0
info:
title: Transit API (Stable) Map Layers Vehicles API
version: 4.0.0
x-logo:
url: transit-logotype_iOS-dark.png
contact: {}
description: '**📌 You are viewing v4 (Stable). View the legacy [v3 API here](v3.html).**
API provided by data from [transit.app](https://transit.app). Request an API key [here](https://https://transitapp.com/partners/apis).
'
servers:
- url: https://external.transitapp.com
description: ''
variables: {}
x-last-modified: 1614306184264
security:
- apiKey: []
tags:
- name: Vehicles
paths:
/v4/vehicles:
get:
operationId: /v4/vehicles
description: Returns real-time vehicle positions for a given route
parameters:
- in: query
name: global_route_id
required: true
description: Global route ID to get vehicles for
schema:
type: string
example: STM:884
- in: query
name: direction_id
required: false
description: Optional direction ID to filter vehicles by direction
schema:
type: integer
enum:
- 0
- 1
example: 0
responses:
'200':
description: List of vehicles for the route
content:
application/json:
schema:
type: object
properties:
vehicles:
type: array
items:
type: object
properties:
vehicle_id:
type: string
description: Unique internal identifier for the vehicle, combining feed_code, global route id, and internal vehicle id
example: STM:980:1|29088
latitude:
type: number
format: float
description: Latitude of the vehicle
example: 45.51379
longitude:
type: number
format: float
description: Longitude of the vehicle
example: -73.683243
direction_id:
type: integer
enum:
- 0
- 1
description: Direction of travel for this vehicle. 0 = Outbound, 1 = Inbound
example: 0
updated_at:
type: integer
description: Unix timestamp of when the vehicle position was last updated
example: 1764097776
vehicle_label:
type: string
nullable: true
description: Vehicle identifier as provided by the operator. May be null.
example: 29-088
occupancy_status:
type: integer
nullable: true
enum:
- 1
- 2
- 3
description: Occupancy status of the vehicle. May be null if unavailable. 1 = Not crowded, 2 = Some crowding, 3 = Crowded
example: 1
wheelchair_accessible:
type: integer
nullable: true
enum:
- 0
- 1
- 2
description: 'Whether the vehicle is accessible. May be null if unavailable. Note: this only reflects real-time data for the specific vehicle. Routes with unknown values may be accessible if defined in static data. 0 = Unknown, 1 = Available (accessible), 2 = NotAvailable (inaccessible)'
example: 1
external_vehicle_id:
type: string
nullable: true
description: External vehicle identifier from the transit operator. May be null.
example: '29088'
rt_trip_id:
type: string
nullable: true
description: Real-time trip identifier. May be null. If multiple trip IDs are assigned, returns the first one.
example: '292679910'
required:
- vehicle_id
- latitude
- longitude
- direction_id
- updated_at
required:
- vehicles
examples:
Example 1:
value:
vehicles:
- vehicle_id: STM:980:1|29088
latitude: 45.51379
longitude: -73.683243
direction_id: 0
updated_at: 1764097776
vehicle_label: 29-088
occupancy_status: 1
wheelchair_accessible: 1
external_vehicle_id: '29088'
rt_trip_id: '292679910'
'400':
description: Missing or invalid global_route_id parameter
tags:
- Vehicles
components:
securitySchemes:
apiKey:
name: apiKey
type: apiKey
in: header