Public API
Read-only JSON over HTTPS. You don’t need a key. Requests are rate-limited per IP in one-minute windows, and every response includes X-RateLimit-* headers. Exceeding the limit returns 429. Event data comes from the GDELT Project and AI analysis of source pages, so check the methodology before you use it in production.
GET/api/events
Map-ready events with daily counts for the selected window. Free accounts get 7 days of history and Pro gets 90.
Param Type Notes days integer 1–365 Lookback window. Capped by your plan. category comma list protest, demonstration, strike, civil_unrest, political_rally, public_movement status comma list corroborated, reported, conflicting, unverified country slug Country slug, e.g. france q string ≤ 80 Text match on title, city, or country verified 1 | 0 Only corroborated events day YYYY-MM-DD Restrict to a single day curl "https://<your-domain>/api/events?days=3&category=strike,riot&verified=1"GET/api/events/{id}
One event with its AI analysis, every linked source, alternate locations, and the moderation history.
curl "https://<your-domain>/api/events/1"GET/api/feed
Reverse-chronological intelligence feed with cursor pagination. Accepts the same filters as /api/events.
Param Type Notes cursor opaque string Pass nextCursor from the previous page limit integer 1–100 Defaults to 30 curl "https://<your-domain>/api/feed?limit=10"GET/api/status
Pipeline health: when the last ingestion succeeded, recent job outcomes, and whether data is stale.
curl "https://<your-domain>/api/status"
Attribution
If you republish this data, credit “UNREST, from GDELT Project data” and link back to the event page. Keep the verification label next to each event.