API v1
Programmatic access.
REST endpoints over the WorldPrice dataset — 23 countries, 45 items, 895 prices, 25 years of Big Mac history. Open, no key required for now. CDN-cached for 24h. Rate limited by the cache, not by you.
JSON + CSV
REST JSON via /api/v1/*. Bulk CSV via /api/download/*.
Daily-refreshed
FX rates 06:00 UTC. Weekly snapshots in price_history.
Open CORS
Allow-Origin *. Use from browsers, servers, notebooks.
Endpoints
GET
/api/v1GET
/api/v1/countriesGET
/api/v1/countries/{code}GET
/api/v1/itemsGET
/api/v1/items/{slug}GET
/api/v1/prices?country=KR&item=bigmac&limit=500GET
/api/v1/indices/big-macGET
/api/v1/indices/iphoneGET
/api/v1/indices/rentGET
/api/v1/exchange-ratesBulk download (CSV)
GET
/api/download/pricesGET
/api/download/big-mac-historyGET
/api/download/itemsGET
/api/download/countriesExamples
cURL
curl https://worldprice.live/api/v1/indices/big-mac \ -H "Accept: application/json"
JavaScript
const r = await fetch('https://worldprice.live/api/v1/items/big-mac');
const { data, meta } = await r.json();
console.log(`${meta.count} markets, cheapest = ${data.prices[0].country_code}`);Python
import requests
r = requests.get('https://worldprice.live/api/v1/countries/KR')
country = r.json()['data']
print(country['country']['name_en'], len(country['prices']), 'prices')Pandas
import pandas as pd
df = pd.read_csv('https://worldprice.live/api/download/big-mac-history')
df.groupby('country_code')['price_usd'].agg(['min', 'max']).head()Response shape
{
"data": [ /* the actual payload */ ],
"meta": {
"api_version": "1",
"generated_at": "2025-04-15T06:00:00.000Z",
"count": 23,
"limit": 500,
"offset": 0
}
}Errors return { "error": { "status": 404, "message": "..." } }.
License & attribution
Attribute as "WorldPrice (worldprice.live)" for derived charts/articles. Re-distribution permitted for rows where data_license is own or public. Restricted-license rows (Big Mac Index, Apple) include source URLs — link there instead.