Deterministic, recomputable analytics over stored OSINT conflict events. No LLM at request time, no predictions — every number this API returns can be reproduced with a SQL query over the same stored data.
Create a key on your account page (Analyst subscription required) and send it on every request. Keys are shown once at creation; we store only a hash. Your tier is re-checked live on every call — a lapsed subscription returns 403 tier_insufficient.
curl -H "Authorization: Bearer snl_live_YOUR_KEY" \
"https://dashboard.thesentinelreview.com/api/v1/events?theater=ukraine&limit=5"Analyst: 1,000 calls per UTC day. Every response carries X-RateLimit-Limit, X-RateLimit-Remaining, and X-RateLimit-Reset (UTC-midnight epoch seconds). Over the limit → 429 rate_limited.
Failures are {"error": "...", "code": "..."} with status 401 (invalid_key), 403 (tier_insufficient), 404 (not_found), 422 (invalid_parameter), or 429 (rate_limited).
Published events, newest first. Filters: theater, since/until (ISO 8601), event_type (strike|clash|movement), min_confidence (unconfirmed|partial|verified), verified (true|false), weapon_type (artillery|drone|missile|armor|infantry|naval|aircraft|other). limit ≤ 200 (default 50); keyset pagination via next_cursor. The theater field is derived from event coordinates against the canonical theater bounding boxes (a fixed precedence resolves overlapping regions); title is the event description when ≤80 chars, otherwise 'Type — location'. Every event carries weapon_type — coarse kinetic-capability class; null when no kinetic capability is identifiable (null rows are not selectable by the filter).
curl -H "Authorization: Bearer snl_live_YOUR_KEY" \
"https://dashboard.thesentinelreview.com/api/v1/events?theater=ukraine&since=2026-06-01T00:00:00Z&min_confidence=partial&limit=50"Event detail including sources[{platform, posted_at, url}] — the same source data an Analyst sees in the dashboard.
curl -H "Authorization: Bearer snl_live_YOUR_KEY" \
"https://dashboard.thesentinelreview.com/api/v1/events/EVENT_UUID"AI-generated theater briefings (labeled as such in every payload, with the standard disclaimer on detail). List returns id, theater, published_at, title; detail returns full text and referenced event ids.
curl -H "Authorization: Bearer snl_live_YOUR_KEY" \
"https://dashboard.thesentinelreview.com/api/v1/briefings?limit=10"The full source registry as a transparency artifact: name, platform, theaters, is_active, last_post_at.
curl -H "Authorization: Bearer snl_live_YOUR_KEY" \
"https://dashboard.thesentinelreview.com/api/v1/sources"Daily buckets [{date, theater, events, verified}] between since and until (both required), optionally filtered to one theater. UTC days.
curl -H "Authorization: Bearer snl_live_YOUR_KEY" \
"https://dashboard.thesentinelreview.com/api/v1/analytics/intensity?since=2026-06-01T00:00:00Z&until=2026-06-12T00:00:00Z&theater=israel"Totals between since and until grouped by event_type, theater, confidence_band, or weapon_type. weapon_type grouping includes one key:null row for events with no identifiable kinetic capability, so the totals always reconcile with /events over the same window.
curl -H "Authorization: Bearer snl_live_YOUR_KEY" \
"https://dashboard.thesentinelreview.com/api/v1/analytics/counts?since=2026-06-01T00:00:00Z&until=2026-06-12T00:00:00Z&group_by=event_type"Per-source contribution between since and until: posts authored, distinct published events contributed to, and verified events among those.
curl -H "Authorization: Bearer snl_live_YOUR_KEY" \
"https://dashboard.thesentinelreview.com/api/v1/analytics/source-stats?since=2026-06-01T00:00:00Z&until=2026-06-12T00:00:00Z"Analyst and above can download the events in the current dashboard view — the Export control next to the theater/window selectors on the Sentinel View. Exports use your signed-in session, not an API key.
Formats:CSV and JSON. Each row carries the event’s id, timestamp (ISO 8601 UTC), type, bbox-derived theater, location, coordinates, source count, confidence, platforms, summary, and weapon_type (coarse kinetic-capability class; null — empty in CSV — when no kinetic capability is identifiable).
Windows: 24H / 7D / 30D / 90D, or a custom date range up to 90 days. There is no full-archive export — the archive stays queryable here in the dashboard and via the paginated API.
Caps: 10,000 rows per file (files at the cap are flagged truncated) and 20 exports per UTC day, metered separately from your API call quota. Over the limit → 429, resetting at 00:00 UTC.
Every file carries the data license: confidence-labeled OSINT, not all events verified; personal and internal-org use only; no redistribution. Full terms in the Terms of Service.
The archive contains everything we ingest, confidence-labeled — not everything verified. Briefings are AI-generated analysis over open-source reporting; locations and details unverified; not for operational use.
Licensing: API data access is for personal and internal organizational use — no redistribution, republication, resale, or bulk sharing. The full data license is in the Terms of Service.