Get real-time vehicle positions in bounding box

GET /v1/rawVehiclePositions
Base URL: https://capi.busmaps.com:8443

Retrieve raw real-time vehicle positions within specified geographic bounds. positionType: 'gps' - real position, 'estimated' - derived from trip updates. Can be filtered by route (routeId + countryIso) or trip (tripId). Real-time vehicle positions are a busmaps.com feature only - wikiroutes.info has none, so there is no reason to call this endpoint there.

Response fields and units

FieldFormat / unitMeaning
requestTime Unix epoch seconds The request instant
vehicles[].lat, vehicles[].lon WGS 84 decimal degrees Vehicle coordinates
vehicles[].bearing degrees (0-360) Vehicle bearing
vehicles[].timestamp ISO 8601 with UTC offset Position timestamp
vehicles[].ageSeconds seconds Age of the position at request time
processingTimeMs milliseconds Server processing time

Parameters

ParameterTypeRequiredDescriptionExample
boundingBox string Yes Bounding box coordinates in 'minLat,minLon,maxLat,maxLon' format 51.500,-0.140,51.515,-0.120
lang string No Language code for translated route names (IETF BCP 47 format) en
routeId string No Show only vehicles of one route: route id as returned in routeId by this endpoint (stripped, no ISO3 prefix). Requires countryIso. 4196227115-3951086873
countryIso string No ISO 3166-1 alpha-3 country code taken next to routeId; required together with routeId GBR
tripId string No Show only the vehicle of one trip: trip id as returned in tripId by this endpoint 1-c40a037c6890b788a038

Try It Out

Required parameters only

curl -H "capi-key: Bearer YOUR_API_KEY" \
     -H "capi-host: busmaps.com" \
     "https://capi.busmaps.com:8443/v1/rawVehiclePositions?boundingBox=51.500,-0.140,51.515,-0.120"

Popular parameters

curl -H "capi-key: Bearer YOUR_API_KEY" \
     -H "capi-host: busmaps.com" \
     "https://capi.busmaps.com:8443/v1/rawVehiclePositions?boundingBox=51.500,-0.140,51.515,-0.120&lang=en&routeId=4196227115-3951086873&countryIso=GBR&tripId=1-c40a037c6890b788a038"

Response Example

{
    "requestTime": 1781087378,
    "vehicles": [
        {
            "positionType": "gps",
            "vehicleId": "SCOX-50424",
            "lat": 51.510246,
            "lon": -0.188234,
            "bearing": 84,
            "timestamp": "2026-06-10T11:28:41+01:00",
            "ageSeconds": 57,
            "tripId": "1-f5c33085913c8471e495",
            "routeId": "433497037-1200978529",
            "countryIso": "GBR",
            "countryUrl": "uk",
            "routeShortName": "TUBE",
            "routeLongName": "Oxford - London",
            "tripHeadsign": "London",
            "urlRouteShortName": "TUBE"
        },
        {
            "positionType": "gps",
            "vehicleId": "SCOX-50432",
            "lat": 51.515163,
            "lon": -0.224674,
            "bearing": 264,
            "timestamp": "2026-06-10T11:28:29+01:00",
            "ageSeconds": 69,
            "tripId": "1-c5927d26e4cc652f547d",
            "routeId": "433497037-1200978529",
            "countryIso": "GBR",
            "countryUrl": "uk",
            "routeShortName": "TUBE",
            "routeLongName": "Oxford - London",
            "tripHeadsign": "Oxford",
            "urlRouteShortName": "TUBE"
        }
    ],
    "regionName": "uk_ireland",
    "processingTimeMs": 395.63
}

Response Schema

View JSON Schema
{
    "$schema": "http://json-schema.org/draft-07/schema#",
    "title": "Raw Vehicle Positions Response",
    "type": "object",
    "properties": {
        "requestTime": {
            "type": "integer",
            "description": "Request time as a Unix timestamp in seconds"
        },
        "processingTimeMs": {
            "type": "number",
            "description": "Processing time in milliseconds"
        },
        "vehicles": {
            "type": "array",
            "items": {
                "type": "object",
                "properties": {
                    "vehicleId": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "description": "Vehicle identifier"
                    },
                    "lon": {
                        "type": "number",
                        "description": "Vehicle longitude in decimal degrees"
                    },
                    "tripId": {
                        "type": "string",
                        "description": "Internal trip identifier"
                    },
                    "countryUrl": {
                        "type": "string",
                        "description": "Country URL slug (e.g., 'uk', 'usa')"
                    },
                    "routeColor": {
                        "type": [
                            "null",
                            "string"
                        ],
                        "description": "Route color in hex format (optional)"
                    },
                    "tripHeadsign": {
                        "type": "string",
                        "description": "Trip destination/headsign"
                    },
                    "timestamp": {
                        "type": [
                            "null",
                            "string"
                        ],
                        "description": "Position timestamp in ISO8601 format with timezone"
                    },
                    "routeId": {
                        "type": "string",
                        "description": "Route identifier"
                    },
                    "ageSeconds": {
                        "type": "integer",
                        "description": "Age of position data in seconds"
                    },
                    "routeTextColor": {
                        "type": [
                            "null",
                            "string"
                        ],
                        "description": "Route text color in hex format (optional)"
                    },
                    "routeShortName": {
                        "type": [
                            "null",
                            "string"
                        ],
                        "description": "Route short name (e.g., '18', 'TUBE')"
                    },
                    "positionType": {
                        "type": "string",
                        "enum": [
                            "gps",
                            "estimated"
                        ],
                        "description": "'gps' - real vehicle position; 'estimated' - derived from trip updates"
                    },
                    "countryIso": {
                        "type": "string",
                        "description": "ISO country code (e.g., 'GBR', 'USA')"
                    },
                    "routeLongName": {
                        "type": [
                            "null",
                            "string"
                        ],
                        "description": "Route long name/description"
                    },
                    "bearing": {
                        "type": [
                            "integer",
                            "null",
                            "string"
                        ],
                        "description": "Vehicle bearing in degrees (0-360)"
                    },
                    "urlRouteShortName": {
                        "type": [
                            "null",
                            "string"
                        ],
                        "description": "URL-safe slug of the route short name"
                    },
                    "lat": {
                        "type": "number",
                        "description": "Vehicle latitude in decimal degrees"
                    },
                    "urlRouteLongName": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "description": "URL-safe slug of the route long name"
                    }
                },
                "required": [
                    "ageSeconds",
                    "routeShortName",
                    "positionType",
                    "lon",
                    "tripId",
                    "countryIso",
                    "timestamp",
                    "routeLongName",
                    "countryUrl",
                    "urlRouteShortName",
                    "tripHeadsign",
                    "routeId",
                    "lat"
                ]
            },
            "description": "Array of vehicle positions"
        },
        "regionName": {
            "type": "string",
            "description": "Region name for the queried area"
        }
    },
    "required": [
        "regionName",
        "processingTimeMs",
        "vehicles",
        "requestTime"
    ]
}

Response Codes

200 Vehicle positions retrieved successfully (or noCoverage notice if region not supported)
400 Invalid bounding box format or coordinates, or routeId without countryIso
500 Internal server error