Public API
Free · No key · CC BY 4.0Everything on this site is powered by two JSON files, and they are public. No API key, no signup. Attribution required under CC BY 4.0: link to worldtensionmeter.com when you use the data.
GET /api/scores_v3.json
Current state: every index score, zone, factor breakdown, conflict and region data, crypto sentiment, news feed and run metadata. Refreshed on a fixed schedule — full analysis twice daily (00:00 & 12:00 UTC), market data every 10 minutes.
GET /api/history_v3.json
The permanent daily ledger — one record per day since 2026-03-23, never edited. Fields per record: date, world_tension, all sub-index scores, region scores, and market reference values (gold, oil, VIX, BTC).
Key fields
world_tension — score (0-100), raw_score, shock_overlay,
zone, factors {conflict, energy, trade, finance, media}, conflict_data,
regions_data, watchlist_data.
Sub-indexes — food_security, currency_stress, shipping_stress,
sanctions, energy_security, gold_silver: each with score, zone and its own
component data.
crypto.fear_greed — score, zone, components, and an
independent alternative.me cross-check.
_meta — run_utc timestamp, engine version, and
estimated_fields: an honest list of any values carried forward from the last
known good reading because a source was unavailable. If it is not listed
there, it is live data.
Example
fetch('https://worldtensionmeter.com/api/scores_v3.json')
.then(r => r.json()).then(d => console.log(d.world_tension.score))
During the current engine transition, /api/scores.json serves the legacy schema; it will adopt the schema documented here shortly. Build against scores_v3.json.
Fair use: this is a free service — please cache responses on your side (data changes at most every 10 minutes) and identify your app in the User-Agent if you poll regularly.