WARWATCH API
REST access to conflict intelligence. Requires the API-access tier.
GET API ACCESS →AUTHENTICATION
Create a key in your dashboard and pass it as a Bearer token. Keys are shown once at creation.
curl https://warwatch.app/api/v1/articles?limit=5 \ -H "Authorization: Bearer wk_live_xxxxxxxx"
ENDPOINTS
/api/v1/articlesPaginated articles. Filters: q, region, countryCode, source, priority, from, to, range, sort, page, limit.
/api/v1/conflict-scoresPer-country severity scores with coordinates, plus the alert-based escalation trend: trend, trendPct, momentum and the 14-day sparkline.
/api/v1/conflict-alertsConflict alerts. Params: history=true, targetCountry, page, limit.
/api/v1/countries/{code}Country instability index & analysis (ISO-3166 alpha-2): posture, energy mix and demand structure, debt, sanctions, chokepoint exposure, and the commodities its assets produce. Cached; 404 if none.
/api/v1/missilesActive missile launches with origin/destination geo.
/api/v1/sigintActive SIGINT signals (callsigns, aircraft, frequencies).
/api/v1/chokepointsMaritime chokepoints: sourced corridor, the goods crossing it with tonnage a year and share of world trade, and the latest route-health score under `sourced`/`health` (components and history live on /api/v1/route-health); the legacy model-generated figures under `simulated` (flagged, never mixed with the measured ones).
/api/v1/routesTrade routes (maritime, pipeline). Params: type, commodity, page, limit. Empty until a verified geometry source exists — `meta.gaps` says so.
/api/v1/health-alertsDisease surveillance (hantavirus, ebola) countries & cases.
/api/v1/commoditiesThe commodity ontology: category, HS codes, unit, description, per-commodity asset and corridor counts. Params: key, category, page, limit.
/api/v1/assetsPhysical assets (mines, refineries, smelters, ports, terminals, power stations, dams) with capacity per asset and per product, operator edges, status, coordinates and provenance. Params: key, type, country, commodity, status, operator, q, page, limit.
/api/v1/companiesOrganisations that operate those assets — company, state-owned, public body — with ticker, domicile and the assets each runs. Params: key, q, country, kind, commodity, page, limit.
/api/v1/productionSourced production series (USGS, EIA) and trade flows (UN Comtrade). Shares compare only within one (commodity, stage, measure, year) series. Params: commodity, country, stage, year, dataset=flows, page, limit.
/api/v1/route-healthDaily measured health of a corridor, pipeline or asset, with every component and its weight and a `coverage` block naming what could not be computed. Params: subject=CHOKEPOINT|ROUTE|NODE, key, days, incidents, transits.
RESPONSE FORMAT
List endpoints return a uniform envelope:
{
"data": [ ... ],
"meta": { "page": 1, "limit": 30, "total": 412, "totalPages": 14 }
}RATE LIMITS
- 10,000 requests / month per key (monthly quota).
- 120 requests / minute burst limit.
- Quota headers on every response:
X-RateLimit-Limit,X-RateLimit-Remaining,X-RateLimit-Window. - Over quota → HTTP 429.
ERRORS
401— missing / invalid / revoked key.403— API access not enabled on the account.404— resource not found.429— rate or quota limit exceeded.