Skip to content
Live Transit
Esc

Type at least two characters. Try a city, an IATA code like LHR, or a line name.

Developers

API and MCP server

The data behind this site is open to use. Query it over REST, or give your AI agent a live view of the world's transport networks.

REST API

Free, read-only JSON with CORS enabled and no key. Responses use a { data, meta } envelope with generatedAt and source attribution. Please cache politely: data refreshes every 1 to 15 minutes.

OpenAPI 3.1 specllms.txt

  • GET /api/v1/overviewHeadline counts: sources, countries, alerts, lines, vehicles.
  • GET /api/v1/sourcesEvery source with health, modes, counts and last update.
  • GET /api/v1/alertsActive alerts. Filter by country, mode, severity, q. Cursor paginated.
  • GET /api/v1/linesLine status by source, country or mode.
  • GET /api/v1/routesStatic route catalog with shapes for mapping. Filter by source, bbox, mode.
  • GET /api/v1/sources/{id}/lines/{lineId}Line detail with status, vehicles, shapes, alerts and history.
  • GET /api/v1/sources/{id}/liveRealtime vehicles from live feed or last snapshot.
  • GET /api/v1/stations/{id}/boardDepartures and arrivals for an airport or station.
  • GET /api/v1/vehiclesLive positions by bbox, source id or radius around a point.
  • GET /api/v1/services/{q}Look up a flight or train number, for example LA2365.
  • GET /api/v1/searchRanked search across networks, stations, lines and alerts.
  • GET /api/v1/changesRecent status transitions of lines and stations.
  • GET /api/v1/healthIngestion health per source.

Worst disruptions right now

curl "https://your-domain/api/v1/alerts?minSeverity=major&limit=5"

Heathrow departures

curl "https://your-domain/api/v1/stations/LHR/board?direction=departure"

Vehicles in a bounding box (minLon,minLat,maxLon,maxLat)

curl "https://your-domain/api/v1/vehicles?bbox=-0.25,51.45,0.05,51.60"

Search

curl "https://your-domain/api/v1/search?q=jubilee"

MCP server

Connect an AI assistant to live transit data over the Model Context Protocol. The server is remote, uses Streamable HTTP and needs no key.

Claude Code

claude mcp add --transport http live-transit https://your-domain/api/mcp

Cursor (.cursor/mcp.json)

{
  "mcpServers": {
    "live-transit": {
      "url": "https://your-domain/api/mcp"
    }
  }
}

Claude Desktop (claude_desktop_config.json)

{
  "mcpServers": {
    "live-transit": {
      "command": "npx",
      "args": ["-y", "mcp-remote", "https://your-domain/api/mcp"]
    }
  }
}

Tools

  • search

    Find networks, stations, lines and alerts by name.

  • network_status

    Line-by-line status and alerts for one network.

  • line_status

    Detailed status of one line with vehicles and alerts.

  • disruptions

    Active disruptions, filtered by country, mode or severity.

  • airport

    Status and live board for an airport by IATA code.

  • find_service

    Look up a flight or train by its number.

  • vehicles_near

    Live vehicles within a radius of a point.

  • recent_changes

    What changed status recently.

  • list_sources

    Coverage and freshness of every data source.

Try asking: "Which London Underground lines have delays right now?" or "Is flight BA287 on time?"