Realtime/SL

Endpoint index

Machine-readable list of every endpoint and its filters.

GET /api

Returns the same surface this site documents, in a form a client can enumerate at runtime — each entry carries its method, path, a one-line description, and the names of the filters it accepts. Useful as a smoke test that you are pointed at the right host, and as a cheap way to notice a new endpoint without re-reading these pages.

Try it

Runs from your browser against the API in .

GET
curl equivalent
 

Response

A single object under data, with no meta.

GET /api
curl "$API_BASE/api"
200 · application/json
{
  "data": {
    "endpoints": [
      {
        "method": "GET",
        "path": "/api/feed",
        "description": "Feed header, static join report, and per-file load report"
      },
      {
        "method": "GET",
        "path": "/api/vehicles",
        "description": "Vehicle positions",
        "filters": [
          "routeId",
          "tripId",
          "stopId",
          "status",
          "occupancy",
          "congestion",
          "bbox",
          "format=geojson",
          "limit",
          "offset"
        ]
      },
      {
        "method": "GET",
        "path": "/api/vehicles/:id",
        "description": "One vehicle by vehicle id"
      },
      {
        "method": "GET",
        "path": "/api/trips",
        "description": "Trip updates",
        "filters": [
          "routeId",
          "stopId",
          "scheduleRelationship",
          "delayStatus",
          "minDelay",
          "maxDelay",
          "limit",
          "offset"
        ]
      },
      {
        "method": "GET",
        "path": "/api/trips/:tripId",
        "description": "One trip update with all stop time updates"
      },
      {
        "method": "GET",
        "path": "/api/alerts",
        "description": "Service alerts",
        "filters": [
          "routeId",
          "stopId",
          "agencyId",
          "cause",
          "effect",
          "severity",
          "active",
          "at",
          "lang",
          "limit",
          "offset"
        ]
      },
      {
        "method": "GET",
        "path": "/api/alerts/:id",
        "description": "One alert by feed entity id"
      },
      {
        "method": "GET",
        "path": "/api/routes",
        "description": "Routes present in the feed, with names and counts"
      },
      {
        "method": "GET",
        "path": "/api/routes/:routeId",
        "description": "Vehicles, trip updates and alerts for one route"
      },
      {
        "method": "GET",
        "path": "/api/stops",
        "description": "Stops present in the feed, with names and counts"
      },
      {
        "method": "GET",
        "path": "/api/stops/:stopId/arrivals",
        "description": "Predicted calls at a stop, expanding a station to its platforms",
        "filters": [
          "after",
          "limit",
          "offset"
        ]
      },
      {
        "method": "GET",
        "path": "/api/stops/:stopId/alerts",
        "description": "Alerts affecting a stop",
        "filters": [
          "lang",
          "at",
          "limit",
          "offset"
        ]
      }
    ],
    "notes": [
      "This API is public: no authentication.",
      "/api/punctuality is served by the Node implementation only — see worker/README.md."
    ]
  }
}