Public data API
Read-only JSON snapshots · no authentication · v1
Versioning
/data/stats.json and /data/history.json are the v1 surface. Backwards-incompatible field renames or removals will be published under a new path (for example /data/v2/) with notice on this page and the changelog. Additive fields may appear on v1 without a path change.
Base
All responses are static files on GitHub Pages. Prefer caching clientside.
GET /data/stats.json
Primary operational snapshot after each successful sync.
updatedAt— ISO timestamp (UTC)sync.durationSeconds— fetch durationtotals— stations, units, personnel, dispatchCentres, …stations[]— id, name, type, region, lat/lon, personnel, dcId, dcNamedispatchCentres[]— id, name, stationCount, personnel, region, lat/lonstationsByType/stationsByRegionvehicleStatus/vehiclesByTypeunitsSample[]— limited unit listcredits— public numeric credit fields when availablequality— missing names/coords flagsalliance— public alliance summaryendpoints— which upstream calls succeeded
GET /data/history.json
Rolling list of hourly totals (up to ~7 days / 168 rows) for simple charts.
at,stations,units,personnel,dispatchCentres,durationSeconds,okcreditsCurrent/creditsTotalwhen present
Rate limits & fair use
- Recommended polling interval: ≥ 15 minutes.
- Do not poll more frequently than once every 5 minutes.
- Data normally changes approximately hourly.
- Cache responses; prefer conditional requests / local cache where possible.
Status codes
Standard static hosting: 200 or 404. There is no dynamic error payload.
Disclaimer
Not affiliated with MissionChief / SHPlay. Not for real-world emergency use.