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, andattribution. - 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.