Skip to content

Open data

EbolaIntel API

Open, versioned JSON for outbreak history, strain reference, vaccine compatibility, time-series, and curated news. No API key, CORS open, CC BY 4.0. Build your own dashboard, embed in your CMS, cite in your paper.

Last updated

License + attribution

Data released under Creative Commons Attribution 4.0 International (CC BY 4.0). You may use it in commercial or non-commercial work with attribution to EbolaIntel (ebolaintel.com).

Underlying data is sourced from WHO Disease Outbreak News, WHO AFRO, Africa CDC, CDC Emerging Infectious Diseases, FDA, EMA, and ClinicalTrials.gov. Cite the primary sources where appropriate.

Reliability + stability

  • /api/v1/ URLs are stable. Breaking changes ship under a new version prefix.
  • JSON shape: every response includes apiVersion, generatedAt, license, and attribution.
  • CORS open (Access-Control-Allow-Origin: *). Use from browsers freely.
  • Cache-Control set per endpoint; respect it. Cumulative outbreak history is cached for 1 hour, active-outbreak counts for 10 minutes.

Endpoints

Path What you get Cache
/api/v1/outbreaks.json Every recorded Ebola outbreak since 1976 (27+ entries), with locations and centroids. 1 hour
/api/v1/outbreak/current.json The active 2026 PHEIC, with per-health-zone case attribution. 10 minutes
/api/v1/strains.json All six recognised ebolavirus species with CFR ranges and approved-product coverage. 1 hour
/api/v1/snapshots/current.json Time-series of cumulative cases and deaths for the 2026 PHEIC. 10 minutes
/api/v1/news.json Curated news index in machine-readable form. Same data as /news, JSON-formatted. 10 minutes
/api/oembed oEmbed discovery for WordPress and other oEmbed-aware CMS. Pass ?url=https://ebolaintel.com/map. 1 hour

Quick start

curl

curl https://ebolaintel.com/api/v1/outbreak/current.json | jq .outbreak.cases

JavaScript (browser or Node)

const res = await fetch('https://ebolaintel.com/api/v1/outbreak/current.json');
const { outbreak } = await res.json();
console.log(outbreak.cases, outbreak.deaths, outbreak.locations);

Python

import requests
data = requests.get('https://ebolaintel.com/api/v1/outbreaks.json').json()
print(len(data['outbreaks']), 'outbreaks on record')

Prefer iframes?

If you want a chart or counter without writing code, the same data is available as drop-in iframe widgets. See /embed.

Rate limits: none currently enforced. Please be considerate of shared resources; cache responses on your end and respect Cache-Control headers. Heavy automated use should subscribe to RSS (/changes/rss.xml) rather than polling.

Questions or want a new endpoint? Email thomas@ebolaintel.com.