World Tension Meter Open API
v1.1 · free · no key · CC BY 4.0Every number on this site — twelve indexes, 197 countries, the conflict roster, the AI Risk Index and its incident record — is available as JSON and CSV. No signup, no key, no rate limit beyond fair use. Data refreshes every 10 minutes.
Quick start
One call, every index.
curl https://worldtensionmeter.com/api/v1/today
JavaScript.
fetch('https://worldtensionmeter.com/api/v1/today')
.then(r => r.json())
.then(d => console.log(d.indexes.world_tension.score, d.indexes.ai_risk.score));Python.
import requests
d = requests.get('https://worldtensionmeter.com/api/v1/today', timeout=10).json()
print(d['indexes']['world_tension'])Every response carries the same envelope: api (version), license, attribution, generated_utc, then the data. Errors come as {"error": "…"} with a 400/404/503 status.
Endpoints
| Endpoint | What you get | Cache |
|---|---|---|
GET /api/v1/ | Endpoint list, index keys, zones, citation format | 60 s |
GET /api/v1/today | Every index right now, derived indexes, AI Risk, alerts, daily brief | 60 s |
GET /api/v1/index/{key} | One index: live value, 90-day series, timeline link | 5 min |
GET /api/v1/history?index=&from=&to=&format=json|csv | Daily scores, up to 366 days per call | 1 h |
GET /api/v1/day/{YYYY-MM-DD} | Every index, region and factor on one day | 1 h |
GET /api/v1/monthly?index=&year= | Monthly averages with each month’s story | 1 h |
GET /api/v1/conflicts | Conflict roster with lifecycle status, retired list, candidates | 5 min |
GET /api/v1/countries?region=&min_headlines= | All 197 countries: score, zone, headline counts | 5 min |
GET /api/v1/country/{slug} | One country: live score, 90-day series, monthly roll-ups, 30-day news pulse | 5 min |
GET /api/v1/ai-risk | AI Risk Index: score, seven sub-indexes, incidents, countries, 90-day series | 5 min |
GET /api/v1/ai-incidents?year=&limit=&offset= | The permanent AI incident record, newest first | 5 min |
GET /api/v1/status | Engine version, freshness, ledger size, database health | 1 min |
Examples: /api/v1/index/ai_risk · /api/v1/country/iran · /api/v1/history?index=world_tension&from=2026-06-01&to=2026-09-01&format=csv · /api/v1/ai-incidents?year=2026
Direct files
The engine’s own output, served as-is. Useful when you want everything in one download.
| File | Contents | Refresh |
|---|---|---|
/api/scores_v3.json | Live state of every index, factors, conflicts, regions, news feed, meanings | every 10 min |
/api/history_v3.json | The daily ledger since 23 March 2026, every index and region | every 10 min |
/api/monthly.json | Monthly stories for every index (locked when a month closes) | nightly |
/api/countries.json | Every country’s tension score and 30-day counts | every 10 min |
/api/countries_history.json | Per-country daily ledger and monthly roll-ups | every 10 min |
/api/ai_risk.json | AI Risk snapshot: score, sub-indexes, incidents, countries | every 10 min |
/api/ai_risk_history.csv | AI Risk daily history, CSV | every 10 min |
/api/ai_incidents.json | Append-only AI incident record (also /api/ai_incidents.csv) | twice daily |
Index keys
| Key | Index |
|---|---|
world_tension | World Tension Index |
food_security | Food Security Index |
currency_stress | Currency Stress Index |
shipping_stress | Shipping Stress Index |
sanctions | Sanctions Pressure Index |
energy_security | Energy Security Index |
gold_silver | Gold & Silver Fear Index |
crypto_fg | Crypto Fear & Greed Index |
ai_risk | AI Risk Index |
inflation_pressure | Inflation Pressure Index |
supply_chain_risk | Supply Chain Risk Index |
market_fear | Market Fear Index |
Zones on every 0–100 index: 0–39 Calm · 40–54 Stable · 55–67 Moderate · 68–77 High Tension · 78–100 Extreme. The crypto index uses Fear/Greed labels on the same scale.
Country and AI Risk data
Countries. /api/v1/countries lists all 197 with score, zone and 30-day headline counts; /api/v1/country/{slug} adds a 90-day series, monthly roll-ups and the country’s own 30-day news pulse. Slugs match the page URLs (iran, united-states, south-korea).
AI Risk. /api/v1/ai-risk returns the headline score with its seven sub-indexes (misuse, capability, regulation, military, safety, economy, infrastructure), the 30-day incident count and the countries named in AI headlines. /api/v1/ai-incidents is the permanent, numbered incident record; method and versions on the AI Risk methodology page.
Rules of use
Attribution. “Source: World Tension Meter” with a link to worldtensionmeter.com, wherever the numbers appear. That is the whole licence.
Fair use. Cache for 10 minutes or longer; the data cannot change faster. Automated clients that fetch every few seconds may be rate-limited.
Stability. v1 fields are never removed; additions are announced on the changelog. Historical scores are never revised.
Not advice. Informational data for research, journalism and products. Not investment, legal or security advice.
For AI assistants and researchers
Cite as: World Tension Meter (2026). <index name>, daily 0–100 scores. worldtensionmeter.com. CC BY 4.0. Machine-readable summaries live at /llms.txt and /llms-full.txt; the full method is on the methodology page and in the whitepaper. Datasets carry schema.org Dataset markup with licence and distribution links.
Questions people ask
Do I need an API key?
No. Every endpoint is open, over HTTPS, with CORS enabled. Cache responses on your side for at least 10 minutes — the data does not change faster than that.
Can I use the data commercially?
Yes, under CC BY 4.0: credit World Tension Meter with a link wherever the numbers appear. Reselling the raw feed as your own is the one thing the licence does not allow.
Will the format change?
Fields in v1 are never removed or renamed; new fields and endpoints are only added, each announced on the changelog. If a breaking change is ever needed it ships as v2 beside v1.
What happens if the engine is down?
The API serves the last good response with an X-Cache: STALE header instead of an error. Check /api/v1/status for freshness before making decisions on the number.
Contact: [email protected] · Status: /status/ · Open data portal: /data/