Overview
Firehose returns source-backed civic signals for places, issues, actors, public meetings, filings, votes, source changes, and related public activity. The same query can be read three ways:
Use the snapshot response for pages, reports, and periodic checks. Use
HEAD
for cheap freshness checks before downloading a snapshot. Use Server-Sent
Events when a client only needs to receive updates. Use the WebSocket session
when a client needs one long-lived connection with explicit Firehose protocol
negotiation.
Generated contracts
Firehose has two generated contracts:
Regenerate them from the repository root:
Query shape
Firehose filters use repeated query parameters:Content negotiation
Use the HTTPAccept header to choose a representation:
Unsupported representations return
406 Not Acceptable with an Accept
response header listing the supported media types.
Requests with JSON bodies, such as POST /api/firehose/sessions, require
Content-Type: application/json. Unsupported request media types return
415 Unsupported Media Type with Accept-Post: application/json.
Server-Sent Events
Open an SSE stream withAccept: text/event-stream:
firehose.ready.
Signals are delivered as firehose.signal events with the matched
FirehoseSignal, query, workspace, usage, event id, and delivery timestamp.
Idle connections receive heartbeat events. The stream includes an SSE retry
value so clients have a default reconnect delay.
Use Last-Event-ID on reconnect when the client has a stored event id.
Sessions
Create a durable observed query:snapshot_url, events_url, and socket_url. Use those
links rather than constructing session URLs by hand.
WebSocket protocol
Firehose WebSockets use theatlas.firehose.v1 subprotocol:
Standard headers
Firehose consumes and returns standard HTTP headers where they help clients cache, reconnect, meter, and trace requests.Status codes
Related guides
API reference
Inspect exact Firehose HTTP routes and schemas.
Workspace visibility
Keep private workspace state separate from public evidence.
Rate limits
Understand metering and request windows.
Errors
Handle status codes consistently.