API

Integrate with verified forecasts.

Programmatic access to live forecasts, evidence chains, verification scores, and replay artifacts. Strict schema versioning. Deterministic response envelopes.

Core endpoints

MethodEndpointDescriptionAuth
GET/api/v1/live/pulseCurrent probabilities for all hazardsNone
GET/api/v1/live/{hazard}Detail for a specific hazard (earthquake, hurricane, tornado)None
GET/api/v1/forecast/{forecast_id}Full forecast record by IDNone
GET/api/v1/evidence/{provenance_id}Provenance envelope by IDNone
GET/api/v1/gates/{gate_decision_id}Gate decision record by IDNone
GET/api/v1/verification/summaryRolling verification scoresNone
GET/api/v1/registry/modelsActive model versions and metadataNone
GET/api/v1/replay/{forecast_id}Replay artifact for deterministic re-runNone

Streaming endpoints

MethodEndpointDescriptionProtocol
GET/stream/live/pulseReal-time forecast updatesSSE
GET/stream/ops/statusSystem health eventsSSE

Server-Sent Events (SSE) with automatic reconnection. Each event is a complete JSON payload matching the corresponding REST endpoint schema.

Data contracts

All responses follow versioned contracts. Breaking changes require a version bump.

HazardForecastV1

forecast_idString
hazard_typeearthquake | hurricane | tornado
issued_atTimestamp (ISO 8601)
valid_from / valid_toTimestamp
probabilityFloat (0.0–1.0)
confidence_lo / confidence_hiFloat
delta_from_prevFloat
model_versionString
features_digestString (SHA-256)
provenance_idString
gate_decision_idString

ProvenanceEnvelopeV1

provenance_idString
trace_idString
input_hashString (SHA-256)
output_hashString (SHA-256)
source_refsList[String]
transform_refsList[String]
signed_atTimestamp

GateDecisionV1

gate_decision_idString
decisionpass | block | degrade
blocking_reasonsList[String]
warningsList[String]
emitted_atTimestamp

VerificationRecordV1

verification_idString
forecast_idString
outcome_observedBool
brier_contribFloat
log_scoreFloat
calibration_binString

API principles

Versioning

  • All endpoints are versioned (/api/v1/).
  • Breaking changes require a new version with explicit deprecation window.
  • Schema fields are never removed within a version; new fields may be added.

Response envelopes

  • Every response includes meta.version, meta.generated_at, and meta.cache_ttl.
  • Error responses include error.code, error.message, and error.trace_id.
  • All timestamps are ISO 8601 UTC.

Caching

  • Live endpoints: max-age=300 (5 minutes).
  • Evidence/replay: max-age=31536000, immutable (1 year).
  • Registry/verification: max-age=3600 (1 hour).

Rate limits

  • Public tier: 60 requests / minute.
  • No API key required for public read endpoints.
  • Streaming endpoints: 1 concurrent connection per IP.
Download contracts (JSON)