A conflict event data API, with its sources attached.

Query events, source reports and signals over REST and JSON. Every event states how precisely it is placed and which reports support it.

What you can query

Events, the reports behind them, and what they mean.

GET /api/v1/events

Canonical events: one record per real-world event, filtered by time, place, type, sector and asset type.

GET /api/v1/observations

The source-derived reports behind events, with incremental sync by update time and cursors.

GET /api/v1/signals

What events mean: severity, confidence and materiality as separate fields.

GET /api/v1/meta/*

Reference lists of event types, conflicts and countries.

A first request

One key, one call.

Send a bearer key and a time window. Add filters for country, region, event type, sector or asset type. The response below is shortened.

$ curl "https://warstrikes.com/api/v1/events?since=2026-10-23T00:00:00Z&until=2026-10-30T00:00:00Z&asset_type=port" \
    -H "Authorization: Bearer wsk_live_…"

{ "id": "…", "title": "…", "status": "active",
  "country_code": "UA", "primary_location": "Odesa",
  "granularity": "city", "first_observed_at": "…",
  "active_evidence_observation_public_ids": ["…"], … }

Keys look like wsk_live_… and wsk_test_…, so you can build against test keys first. The API is described in OpenAPI.

How the data is modelled

Made to be checked.

The fields say what is known, how well it is known, and where it came from.

Reports are not events

An observation is what a source reported. An event is the record built from those reports. The API keeps them apart, and each event lists the observations that support it.

Precision is data

Events carry a granularity and, where available, coordinates with their precision in metres and how they were obtained. Nothing is rounded up to look exact.

Empty means not assessed

A signal can have a null severity, confidence or materiality. That means it was not assessed, not that the answer is low.

Records change in public

Events have a status, and observations can be followed by update time, so your copy can stay in step when a record is corrected.

Good to know first

Limits, stated up front.

Query windows

A first page of events needs a start and an end, and covers at most 31 days.

Coverage over time

Events go back to 28 February 2026, the date of our earliest source reports. Signals go back to early March 2026; for past periods they were computed in steps of 72 hours.

Live publication rules

Which events are returned is decided when you ask, so results for a past period can change as records are corrected.

Server to server

API keys are for machine clients. There is no browser access, so keys should never sit in front-end code.

Limits and access

Rate limits answer with 429 and a Retry-After header. Access depends on what your organisation has enabled.

No forecasts

The API returns what was reported and how it was assessed. It does not predict events.

Try it on your own regions.