Skip to main content

Snapshot API

The Snapshot API lets you query the current state of any join or window via a simple HTTP GET request. It solves the “cold start” problem: when a dashboard loads, it can fetch a snapshot of current results immediately instead of waiting for the next SSE event.

Endpoint

Available on any SSE sink’s HTTP server (the same address as /subscribe).

Query Parameters

Examples

Fetch all results

Fetch a specific join

Filter by keys

Time-range query

Response Format

The response is a JSON array of JoinResult objects — identical to SSE event payloads:

Status Codes

Frontend Integration

Snapshot + SSE Pattern

The recommended pattern is to fetch a snapshot for initial state, then open an SSE stream for live updates:

Replay Alternative

Instead of a separate fetch, add ?replay=true to the SSE URL:
With replay, the server emits current results as SSE events (with "_replay": true) before switching to live streaming. The replay_complete event signals when initial hydration is done:

Archive Queries

When the from parameter extends beyond the retention window (data has been compacted to Parquet), the snapshot handler automatically queries the archive federator if tiered storage is enabled. This means a single /snapshot request can transparently query data across:
  • Hot SQLite (recent data)
  • Warm local Parquet files (days old)
  • Cold cloud Parquet files (weeks/months old)

Configuration

The snapshot endpoint is enabled by default on any SSE sink. Optional tuning: