DEMO DATA · NOT FOR CITATION
shortage.life · session_log · 2026-05-17 14:32 UTCPID 47023 · ttyS0 · uptime 312d

// node

shortage.life
v0.3 · brussels · build f3a2c81
● online · 47/47 sources · 312ms

// $_ exec

$ shortage api --spec
> base https://api.shortage.life/v1
> 10 endpoints · OpenAPI 3.1
> mcp.shortage.life/mcp

// readout · live

BRENT     $84.27 ▲
TTF       €31.50 ▼
OPEC_SP   3.8 mb/d ●
SPR_US    372.4 Mb
FAO_FFPI  121.4 ▲
auto-refresh 60slatency 312msbuild 0.3.0commit f3a2c81UTC 00:00:00
$_TICKER
BRENT$84.27▲0.50%WTI$80.15▲0.39%TTF€31.50▼3.67%NBP72.4p▼1.50%HH$2.84▲1.43%SPR_US372.4 Mb18.7dEU_GAS78.3%▲0.4ppOPEC_SPARE3.8 mb/d▼0.3FAO_FFPI121.4▲0.8WHT.SRW$6.42/bu▲1.84%RIC.THAI$612/t▲0.32%UREA$378/t▲2.71%LITH$13,820/t▼0.84%COBL$31,400/tCU$9,820/t▲0.65%NI$17,420/t▼1.10%BRENT$84.27▲0.50%WTI$80.15▲0.39%TTF€31.50▼3.67%NBP72.4p▼1.50%HH$2.84▲1.43%SPR_US372.4 Mb18.7dEU_GAS78.3%▲0.4ppOPEC_SPARE3.8 mb/d▼0.3FAO_FFPI121.4▲0.8WHT.SRW$6.42/bu▲1.84%RIC.THAI$612/t▲0.32%UREA$378/t▲2.71%LITH$13,820/t▼0.84%COBL$31,400/tCU$9,820/t▲0.65%NI$17,420/t▼1.10%

$_API · public REST

Free, anonymous, rate-limited. Every commodity, every country, every scenario — reads only, no SDK, no key. Responses are JSON; the dataset is CC-BY-4.0 with a required backlink. Base URL https://api.shortage.life/v1.

AUTHanonymous
DATA ENDPOINTS60 req/min/IP
/v1/ask10 req/min/IP
LICENCECC-BY-4.0
FORMATJSON · UTF-8

$_ENDPOINTS · v1

10 routes · 9 GET · 1 POST
GET/v1/commodities

List every tracked commodity with current spot, stress index and last update.

COPY$ curl -s https://api.shortage.life/v1/commodities
GET/v1/reserves?commodity=oil&country=US

Current strategic reserve for a commodity and country, with fill percentage and cover.

COPY$ curl -s https://api.shortage.life'/v1/reserves?commodity=oil&country=US'
GET/v1/reserves/timeseries?commodity=oil&from=

Normalised time-series for a reserve metric over an arbitrary date range.

COPY$ curl -s https://api.shortage.life'/v1/reserves/timeseries?commodity=oil&country=US&from=2025-01-01'
GET/v1/countries/{iso}

Full country profile: stress index, top exposures, autonomy, supplier concentration.

COPY$ curl -s https://api.shortage.life/v1/countries/SAU
GET/v1/commodities/{slug}

Full commodity sheet: producers, consumers, flows and the current stress reading.

COPY$ curl -s https://api.shortage.life/v1/commodities/OIL.BRT
GET/v1/scenarios

List prospective crisis scenarios with probability, severity and status.

COPY$ curl -s https://api.shortage.life/v1/scenarios
GET/v1/events?since=

Tagged geopolitical events — conflict, sanction, disaster, policy, infrastructure.

COPY$ curl -s https://api.shortage.life'/v1/events?since=2026-05-01'
GET/v1/briefings?lang=en&limit=20

Latest editorial briefings for a language, newest first.

COPY$ curl -s https://api.shortage.life'/v1/briefings?lang=en&limit=20'
GET/v1/search?q=

Semantic search across briefings and scenarios, powered by the RAG layer.

COPY$ curl -s https://api.shortage.life'/v1/search?q=opec+spare+capacity'
POST/v1/ask

Conversational endpoint — a natural-language question, answered with cited sources. Rate-limited hard.

COPY$ curl -s -X POST https://api.shortage.life/v1/ask \ -H 'content-type: application/json' \ -d '{"q":"is EU gas storage above the 5-year mean?"}'

// MCP server

AI agents — Claude Desktop, Cursor and others — can query the data directly over SSE at mcp.shortage.life/mcp. Tools exposed: get_reserve, get_price, compare_countries, list_scenarios, search_briefings, get_country_profile.

# add to your MCP client config $ mcp add shortage https://mcp.shortage.life/mcp

// discovery

The full machine-readable contract is published as OpenAPI 3.1. Three discovery files sit under /.well-known/ for AI crawlers and agents.