ForecastGeo

About this site

JSON API

Every page on ForecastGeo is also readable as JSON. No key, no registration, no rate limit beyond what keeps the server up. Responses are { "data": ... }, with a meta block on list endpoints. CORS is open.

Endpoints

ForecastGeo JSON endpoints
EndpointReturns
GET /api/news Newest located stories. limit (max 100), offset, order=asc|desc.
GET /api/news/:id/forecast The forecast run for one article, with each scenario's deadline, status and evidence.
GET /api/clusters Stories currently covered by two or more outlets.
GET /api/clusters/:slug One story's cross-outlet framing analysis: shared claims, per-outlet emphasis, attribution, omissions, divergences. Retired slugs 301 to the surviving one.
GET /api/sources Every newsroom in the archive with article counts, countries covered, and body-text availability.
GET /api/sources/:slug One outlet in full, including its framing and image-audit record.
GET /api/places Countries with at least three articles.
GET /api/coverage Attention share, outlet-by-country matrix, attention decay, and burst concentration, plus the window they describe.
GET /api/ledger Forecast accuracy: run counts by outcome, Brier score per model, calibration buckets, and recently resolved runs.
GET /api/fulltext Article-body fetch outcomes overall and per outlet.
GET /api/search?q= Full-text search over headlines and fetched bodies. page for paging.

Also machine-readable

/feed.xml is an Atom feed of the newest stories. /llms.txt describes what is here and how to read it. /sitemap.xml lists every page.

What the fields mean

Anything a model wrote carries the model name and the time it was generated, and cites the article it came from. status on a forecast is one of pending, confirmed, contradicted or unresolved — the last is a real outcome and is never folded into the accuracy numbers as a hit. Image reuse means an identical SHA-256, nothing weaker.

Attribution

Headlines and summaries belong to the newsrooms that published them, and the API returns the outlet with every story. The derived analysis is ForecastGeo's own; a link back is appreciated. Please don't use this to reconstruct publishers' full article text — the API does not serve it, and that is deliberate.