Realtime/SL

Feed status

Feed header, per-file load report, and static-join statistics.

GET /api/feed

The diagnostic endpoint. header.timestamp is when the agency generated the feed — the instant every prediction in the API is relative to.

files.detail reports each protobuf file separately, so a feed that silently failed to decode is visible as a failed count rather than looking like an agency that happens to run no buses.

static describes the GTFS join that gives ids their names. available: false there means route and stop names are missing everywhere and routeId coverage collapses to under 1% — see The static join.

Try it

Runs from your browser against the API in .

GET
curl equivalent
 

Response

A single object under data, with no meta.

GET /api/feed
curl "$API_BASE/api/feed"
200 · application/json
{
  "data": {
    "header": {
      "gtfsRealtimeVersion": "2.0",
      "incrementality": "FULL_DATASET",
      "timestamp": {
        "epoch": 1777288958,
        "iso": "2026-04-27T11:22:38.000Z"
      }
    },
    "dataDir": "../data (SL snapshot)",
    "loadedAt": "2026-08-07T12:01:42.748Z",
    "counts": {
      "vehicles": 1116,
      "tripUpdates": 934,
      "alerts": 177,
      "routes": 369
    },
    "static": {
      "available": true,
      "dir": "/Users/pz/w/loveable/data/gtfs",
      "counts": {
        "routes": 7880,
        "stops": 181369,
        "trips": 1096,
        "tripsRequested": 1096
      },
      "loadMs": 1070
    },
    "files": {
      "total": 3,
      "decoded": 3,
      "failed": 0,
      "detail": [
        {
          "path": "sl-service-alerts.pb",
          "bytes": 64885,
          "gzip": false,
          "entities": 177,
          "skippedDeleted": 0,
          "header": {
            "gtfsRealtimeVersion": "2.0",
            "incrementality": "FULL_DATASET",
            "timestamp": {
              "epoch": 1777288953,
              "iso": "2026-04-27T11:22:33.000Z"
            }
          }
        },
        {
          "path": "sl-trip-updates.pb",
          "bytes": 882432,
          "gzip": false,
          "entities": 934,
          "skippedDeleted": 0,
          "header": {
            "gtfsRealtimeVersion": "2.0",
            "incrementality": "FULL_DATASET",
            "timestamp": {
              "epoch": 1777288952,
              "iso": "2026-04-27T11:22:32.000Z"
            }
          }
        },
        {
          "path": "sl-vehicle-positions.pb",
          "bytes": 103626,
          "gzip": false,
          "entities": 1116,
          "skippedDeleted": 0,
          "header": {
            "gtfsRealtimeVersion": "2.0",
            "incrementality": "FULL_DATASET",
            "timestamp": {
              "epoch": 1777288958,
              "iso": "2026-04-27T11:22:38.000Z"
            }
          }
        }
      ]
    }
  }
}