Filtering
Every list endpoint under /api/v2/events, /api/v2/outlets/{slug}/events, /api/v2/divergence/*, and /api/v2/search accepts the filters below. Combine freely - filters AND together.
Categories
?category=economy
Valid: war, economy, politics, ai, health, other.
Divergence range
?min_divergence=60
?min_divergence=60&max_divergence=89
Inclusive. Scores are integers 0 to 100.
Outlets
?outlet=fox-news
?outlet=fox-news&outlet=the-guardian
Repeat the parameter to OR multiple outlets. Filters to events at least one of those outlets covered. Use the slug from /api/v2/outlets.
Framing
?framing=alarmist
One of: neutral, pro-action, critical, alarmist, dismissive, international. Matches events where at least one source used that framing.
Sentiment
?min_sentiment=-0.3&max_sentiment=0.3
Article sentiment is a float in [-1, +1]. Filters by the event's average sentiment across sources.
Time window
?since=2026-04-10T00:00:00Z
?since=2026-04-10T00:00:00Z&until=2026-04-17T23:59:59Z
ISO 8601. since and until bound events.first_seen_at. Omit until to mean "now".
Public/free/pro access covers the last 7 days. The Dev tier extends to 90 days. Anything older returns 401 archive_token_required.
Sort
?sort=divergence # default, highest divergence first
?sort=recent # most recently seen first
?sort=covered # most outlets first
Embedding
?embed=sources,facts
Inlines sources (the per-outlet rows) and facts (the fact ledger) in each event. Without embed, list responses omit those fields to keep payloads small. Detail responses (/events/{id}) always include them.
Combined example
Economic stories in the last 24 hours, divergence at least 60, where Fox News or NPR covered it, expanding sources:
curl "https://divergence.news/api/v2/events?category=economy&since=2026-04-17T14:00:00Z&min_divergence=60&outlet=fox-news&outlet=npr&embed=sources"