Docs  /  Filtering

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"