Voidly Atlas publishes 14 forecast endpoints, 8 classifier endpoints, and a live SSE feed. That's the right shape for an API, but it's the wrong shape for a journalist on a deadline or an AI lab assistant pulling a morning brief. They need one URL that answers "what changed in the last 24h?"
Shipped today (2026-05-21): GET /v1/atlas/digest — a flat,
pre-rendered sidecar JSON aggregating eight signals. And
GET /v1/atlas/digest.html — the same content rendered as an
email-client-friendly HTML table (no external CSS, no JavaScript,
works in Gmail / Outlook / Apple Mail). Both are built once per day at
04:30 UTC by scripts/build-atlas-digest.py and served
straight off disk.
/v1/sentinel/movers.importance_score = n_countries × log(1 + n_blocked_obs) × avg_confidence formula./v1/sentinel/report_miss.
The old /v1/atlas/digest recomputed every section on every
request — eight SQL queries, three internal HTTP calls, ~400ms p95. That
pattern would never have survived a HackerNews front page or a
newsletter blast. Shipping the digest as a flat sidecar JSON
(~10 KB on disk) means the request is one file read, one
Cache-Control: public, max-age=1800, and the gateway
caches it at the edge. The legacy inline computation is kept as
_atlas_digest_legacy_inline() — a fallback if the sidecar
is ever missing.
This is the once-a-day round-up. Anyone who needs sub-minute updates
should subscribe to the SSE feed at
/v1/incidents/stream instead. Every digest payload
includes a snapshot_caveat field that says exactly this,
and both the JSON and HTML render the warning prominently.
/v1/atlas/digest.html and forward it. The HTML is inline-styled and table-based — no preprocessing required./v1/atlas/digest and feed the sections object into your prompt. The JSON is stable-schema (voidly-atlas-digest/v2) and self-describing.links map at the bottom of the payload.License: CC-BY-4.0. Citation: "Voidly Atlas Daily Digest (sidecar v2), built 04:30 UTC."