Skip to content
DDS
Division B / Defence & Intelligence

UXONEWS

A world map and event database for publicly reported explosive incidents. Reporting is ingested continuously, deduplicated across outlets and languages, geolocated, and published with the sources it came from.

01 / Premise
Nothing is generated
No stage calls a language model. Term tables, regular expressions, a local gazetteer and lexical similarity do the classification, so a run is reproducible and no place name appears that was not in the reporting.
Provenance is kept
Every record carries the outlets it was built from, with the time each was seen. A figure that changed can be traced to the report that changed it.
Disagreement is preserved
Where independent accounts conflict, the conflict is recorded and the confidence drops. Sources are never averaged into a single number that no outlet actually published.
02 / The pipeline

Eight stages, no model.

Every stage is deterministic — term tables, regular expressions, a local gazetteer and lexical similarity. Nothing calls a language model, so a run costs nothing, produces the same answer twice, and never invents a place name that was not in the reporting.

01
Sources
Agency wires, national outlets, humanitarian reporting and curated feeds, polled continuously across languages.
02
Detection
Candidate incidents surfaced from the stream before anything is written to the record.
03
Deduplication
Wire copy republished across dozens of outlets collapses to the one event it describes.
04
Geolocation
Place names resolved against a gazetteer. A pin is placed only at city precision or finer.
05
Cross-source verification
Independent accounts compared field by field. Where they disagree, the disagreement is kept.
06
Confidence assessment
Corroboration, source independence and internal consistency produce a graded score.
07
Structured incident
Type, coordinates, time precision, casualties, status and provenance — one machine-readable record.
08
Live map
The record reaches the global interface and keeps updating as reporting develops.
03 / Taxonomy

What the platform classifies.

Seven event types, and the code each record carries. A report that does not fit one of them is not filed under a nearest match — it is not filed.

  • EXPExplosionBlasts of established or undetermined cause — industrial, gas, munitions storage, or as yet unattributed.
  • AIRAirstrikeAir-delivered munitions, where reporting attributes the strike to an aircraft.
  • UASDrone incidentUnmanned-system events, including interceptions and debris damage from engagements.
  • CLAArmed clashGround engagements between armed parties, where the reporting supports a location.
  • IEDIEDImprovised devices, whether detonated, discovered or rendered safe.
  • UXOUXO / ERWExplosive remnants of war: landmines, submunitions and abandoned ordnance, found or cleared.
  • INFInfrastructureDamage to power, water, transport or telecommunications resulting from an incident.

Codes shown are the values carried in the record and returned by the API.

04 / Coverage

Where the reporting is densest.

Zones are drawn from where incidents actually cluster, not from a list of countries someone decided were interesting. A region leaves the set when the reporting stops.

Monitored conflict zones
ZoneIntensityIncidents / 30dTrend
1Eastern Europe corridorSevere412+8%
2Horn of AfricaHigh197+14%
3Sahel beltHigh164+3%
4Eastern MediterraneanSevere233−6%
5Southeast AsiaElevated88+2%
6Central AsiaElevated71−4%

Illustrative figures.

05 / Data

Straight into your systems.

Every field in the interface is a field in the response. Time and place both carry their own precision, so a consumer can decide what is accurate enough for the decision they are making rather than inheriting ours.

ResponseAbridgedapplication/json
{
  "id": "UXN-4417-B2",
  "type": "explosion",
  "occurred": {
    "at": "2026-09-07T09:41:00Z",
    "precision": "hour"
  },
  "location": {
    "name": "Nairobi",
    "country": "KE",
    "lon": 36.8200,
    "lat": -1.2900,
    "precision": "city"
  },
  "casualties": {
    "killed": 8,
    "injured": 23,
    "status": "revised"
  },
  "confidence": "high",
  "sources": [
    {
      "publisher": "Reuters",
      "seen": "2026-09-07T09:58:00Z"
    }
  ]
}
Endpoints
  • GET /api/events

    The event stream, filtered by type, confidence, country or window.

  • GET /api/events/:id

    One record, with its full source list and revision history.

  • GET /api/countries/:iso/events

    Everything filed against one country.

  • GET /api/conflicts

    The monitored zones and their current incident density.

  • GET /api/search

    Free-text search across headlines, summaries and place names.

  • GET /api/map/counts

    Aggregated counts for map rendering, without the record bodies.

  • GET /api/status

    Pipeline health and the timestamp of the last completed run.

Put it to work.

Access is granted per account on the platform itself. Write to us instead if the question is whether the data answers your problem at all — that one is worth a conversation before an account.

Who reads this data

  • Security & risk management
  • Insurance & underwriting
  • Logistics & transportation
  • Intelligence & security firms
  • Media organisations
  • Research institutions