What changed about the events in an area
3 tokens minimum per request; above 30 rows, 1 token per 10 rows returned (rounded up) — the same rule as a page of signals, counted on the developments returned. Returns CHANGES rather than rows: polling /signals and diffing the ids finds new REPORTING, which is a different thing — a 2025 attack re-reported in 2026 with a fresh attribution is indistinguishable from a fresh attack. Each development says which axis moved, what the value was and what it became, what the change rests on (basis), and is labelled world (the event’s own state moved: a death toll revised, a perpetrator named) or measurement (what we can now see moved: a location resolved, the evidence stage advanced). The window filters on WHEN THE CHANGE WAS OBSERVED, so a change to an older event is returned. Default returns only changes worth a person’s attention; notable_only=false returns the full ledger. Plan-dependent: on a plan without the full event detail (Free), every change keeps its time and axis, but only each event’s latest change keeps its value (never for the reported facts — attribution, means, targets, target status); with the full detail, every change keeps its value. Changes to post-event imagery are not returned here: imagery is checked only for events on the Watchlist, and a watch carries its own imagery state. Only a plan that includes the sources keeps the sources behind each change. locked_by says when a value was withheld, and sources_locked says when only the sources were.
Request
- Base URL: https://offnadir-delta.com
- URL: https://offnadir-delta.com/api/v1/developments
- Auth: one of:
- HTTP bearer
- API key in header X-API-Key
Query parameters
minLon,minLat,maxLon,maxLat. Omit for worldwide.
Date range start (YYYY-MM-DD) — the app's date range. Give with end_date, or neither for today. Changes are recorded from 2026-09-23, when the event record starts. The plan's history window bounds it.
Date range end (YYYY-MM-DD), inclusive.
Comma-separated signal categories.
Comma-separated change axes (casualties_killed, attributed_actor, stage, location_level, ...). An unknown value is a 400, never an empty result — a silent zero reads as "nothing happened".
Default true. False returns every recorded change, including minor ones.
Default false. The member_count axis means "one more report arrived", which says nothing new about the event — including it puts every followed-up story in today’s changes.
How many developments to return (1..200, default 50).
Skip this many developments (meta.total_count is the whole window).
Response
Developments, newest first, with the canonical event each belongs to.
Changes
No recorded changes to this operation across all 1 revision of this API.