ForecastGeo Log in

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.