Data
Everything published here is available as JSON, including the provenance map: every value that appears in a brief, with the source field it was copied from or the expression it was calculated with.
There is no key, no registration and no rate limit beyond ordinary politeness. If you are polling, the feed and status will tell you whether anything has changed more cheaply than re-reading the archive.
Endpoints
- GET /api/briefs.json
- A page of published briefs, newest publication first. Parameters: topic (a section key), source (a source key), limit (1–100, default 20) and offset. The response carries total, so a consumer can page without guessing.
- GET /api/brief/<slug>.json
- One brief in full: body text, validated facts, the provenance map, the wording template and its version, the evidence pointer with the content hash of the record it was built from, and the revision history.
- GET /api/status.json
- Every source, its state, how often it is read and when it was last read successfully. The same information as the status page.
- GET /healthz
- For monitoring. Answers 503 when a source that was working has gone quiet. A source that has never once been read is listed separately and does not set the status: that is an outage at the provider's end, being retried automatically, and a monitor that is permanently red is one nobody reads. The status page shows both.
- GET /sitemap.xml
- Every page, for crawlers.
Terms
The wording of a brief is this service's own and may be reused freely with attribution. The underlying records are not ours to relicense: each one is published by the provider named in the brief, under that provider's terms, which are listed on the coverage page. Every JSON record carries its source's attribution string and licence with it, so a consumer never has to look the terms up separately.
Stable identifiers: a brief's slug never changes once it has been published, and neither does a source's key. Headlines do change, when the provider revises the record behind them; the revision history in the full response says when and why.