Big Mac Index API
Access real-time Big Mac prices, country and city-level PPP data, exchange rates, currency valuation signals, rankings, and historical data through a simple JSON API.
https://api.thebigmacindex.com/api/v1/burger
Get started in 30 seconds
No signup, no API key. Hit the endpoint, get JSON back.
Choose an endpoint
Pick from /latest, /rankings, /history, /compare, /countries, or /currencies.
Call the API
Standard HTTP GET. CORS-enabled — fetch directly from a browser, dashboard, or notebook.
Use the response
Render in your app, dashboard, article, classroom resource, or research project. Cite the dataset when you publish.
curl "https://api.thebigmacindex.com/api/v1/burger/latest"
Expected response shape (truncated):
{
"date": "2026-05-02",
"usBasePrice": 5.79,
"countries": [
{
"countryId": "ch",
"countryName": "Switzerland",
"currency": "CHF",
"localPrice": 8.9,
"usdPrice": 11.36,
"impliedPpp": 1.273247,
"marketFxRate": 0.783348,
"rawPppIndex": 62.54,
"gdpAdjustedIndex": 26.97,
"valuationLabel": "overvalued",
"citiesSampled": 5,
"cities": [...]
}
],
"metadata": { "lastUpdated": "2026-05-02 00:13:01", "countriesCount": 9, "baseCountry": "us" }
}
API status & data freshness
Live snapshot of the scraping pipeline. The /scrape/status endpoint backs this section and is also available to your own dashboards.
Authentication & rate limits
The public API is currently available without authentication for light usage. Please cache responses where possible and contact us for commercial, high-volume, or production use.
Public usage is intended for demos, research, editorial use, education, and light integrations. Formal API keys, rate limits, and paid tiers may be introduced for commercial or high-volume use cases. Contact us if you need a commitment.
Free
Latest snapshot, rankings, country metadata, basic history. Light request volume.
Pro — planned
Higher rate limits, full history, bulk exports, commercial use, priority support.
Enterprise — planned
Custom exports, SLA, direct support, redistribution rights, data partnership.
Endpoints
All endpoints are GET. Base URL: https://api.thebigmacindex.com/api/v1/burger. See openapi.json for the complete machine-readable spec.
Latest Big Mac Index data for all countries, including country-level prices and city breakdowns.
us, ch, de).
itemOptional. bigmac (default) or cheeseburger.
curl "https://api.thebigmacindex.com/api/v1/burger/latest?country=ch"
Countries ranked by a selected metric. Useful for leaderboards and top-N tables.
raw_ppp_index · gdp_adjusted_index · absolute_price_index · usd_price.
orderOptional. asc or desc (default).
limitOptional. Max 100.
curl "https://api.thebigmacindex.com/api/v1/burger/rankings?metric=usd_price&order=desc&limit=20"
Daily Big Mac price history for a country. Useful for charts, trend analysis, data journalism.
us.
daysOptional. 1–365. Default: 30.
curl "https://api.thebigmacindex.com/api/v1/burger/history?country=ch&days=90"
Compare 2–5 countries with pairwise implied PPP exchange rates derived from each country's burger price.
curl "https://api.thebigmacindex.com/api/v1/burger/compare?countries=us,ch,de"
List all configured countries with cities, currencies, and GDP-per-capita-PPP metadata.
curl "https://api.thebigmacindex.com/api/v1/burger/countries"
All world currencies with exchange rates, M2 money supply, and Big Mac PPP valuation signals where available.
bigmac (default) or cheeseburger.
curl "https://api.thebigmacindex.com/api/v1/burger/currencies?item=bigmac"
Scraper status, last run timestamp, configuration counts. Useful for status dashboards and freshness checks.
curl "https://api.thebigmacindex.com/api/v1/burger/scrape/status"
Triggers manual recalculation. Admin-only endpoint — requires authentication. Not callable from public clients.
Try the API
Build a request, copy the URL, or fire it from this page. CORS lets the request hit the API directly from your browser.
Response fields
Country-level fields returned by /latest, /rankings, and /compare. See openapi.json for full schemas including City, HistoryRow, and error shapes.
| Field | Type | Description | Example |
|---|---|---|---|
| countryId | string | ISO-2-style country ID used by the API. | ch |
| countryName | string | Country name. | Switzerland |
| countryCode | string | ISO-3166-1 alpha-2. | CH |
| currency | string | Local currency code (ISO 4217). | CHF |
| localPrice | number | Big Mac price in local currency. | 8.9 |
| usdPrice | number | Big Mac price converted to USD. | 11.36 |
| impliedPpp | number | Implied PPP rate (local price ÷ US price). | 1.2732 |
| marketFxRate | number | Daily market FX rate. | 0.7833 |
| rawPppIndex | number | Raw PPP valuation %. Positive = overvalued vs USD. | 62.54 |
| gdpAdjustedIndex | number | GDP-adjusted PPP valuation %. | 26.97 |
| valuationLabel | string | One of overvalued / undervalued / fair. | overvalued |
| citiesSampled | integer | Number of city sub-samples used for the country median. | 5 |
| cities | array | City-level price data points. | […] |
| date | string | Snapshot date (YYYY-MM-DD). | 2026-05-02 |
Code examples
Copy-paste-ready in the language of your choice.
curl "https://api.thebigmacindex.com/api/v1/burger/latest?country=ch"
const response = await fetch(
"https://api.thebigmacindex.com/api/v1/burger/latest?country=ch"
);
const data = await response.json();
console.log(data);
// Node 18+ has fetch built in
const url = "https://api.thebigmacindex.com/api/v1/burger/latest?country=ch";
const res = await fetch(url);
if (!res.ok) throw new Error(`HTTP ${res.status}`);
const data = await res.json();
console.log(data.countries?.[0]);
import requests
url = "https://api.thebigmacindex.com/api/v1/burger/latest"
params = {"country": "ch"}
response = requests.get(url, params=params)
response.raise_for_status()
data = response.json()
print(data)
library(httr2)
req <- request("https://api.thebigmacindex.com/api/v1/burger/latest") |>
req_url_query(country = "ch")
resp <- req_perform(req)
data <- resp_body_json(resp)
print(data)
=IMPORTDATA("https://thebigmacindex.com/api/export/latest.csv")
CSV exports auto-refresh on every deploy. See /data downloads for all 5 datasets.
What can you build?
FX dashboards
Compare market exchange rates with Big Mac PPP-implied exchange rates. Spot persistent over- and undervaluations.
Pricing localization
Use country-level PPP signals to inform regional SaaS or app pricing decisions.
Travel cost-of-living apps
Compare simple consumer prices across countries and cities for travel-budget tools.
Economics education
Teach purchasing-power parity, exchange rates, and currency valuation with live data.
Data journalism
Build live rankings, maps, and visualizations of global Big Mac prices and currency stories.
AI / data agents
Give agents structured access to global price and PPP data via OpenAPI-compatible endpoints.
Which one do you need?
/api is for live, programmatic access. /data is for citation, downloads, and one-shot use in articles or research.
| Need | Use API | Use /data |
|---|---|---|
| Build an app or dashboard | Yes | — |
| Download CSV | — | Yes |
| Cite in an article | — | Yes |
| Use in Google Sheets | via CSV export | Yes |
| Query live country rankings | Yes | — |
| Use in research report | For live workflows | For citation |
OpenAPI specification
Full OpenAPI 3.1 spec covering every public endpoint with request parameters, response schemas, and examples. Drop it into Postman, Swagger UI, Insomnia, or any AI agent that consumes OpenAPI.
Spec versioned at v1. Subscribe to the changelog for breaking-change notifications.
CSV & JSON downloads
For Google Sheets, Excel, AI agents, low-code tools, and citation-friendly URLs, the same data is also available as static, build-time-refreshed exports.
| Dataset | CSV | JSON |
|---|---|---|
| Latest snapshot | latest.csv | latest.json |
| Historical series | history.csv | history.json |
| City-level prices | cities.csv | cities.json |
| Country metadata | countries.csv | countries.json |
| Currency PPP | currencies.csv | currencies.json |
More context, citation guidance, and methodology on /data.
Errors
Errors return JSON with stable error codes. Use the error.code field for programmatic handling; error.message is human-readable.
{
"success": false,
"error": {
"code": "INVALID_COUNTRY",
"message": "Country ID not found.",
"details": { "country": "xx" }
}
}
| HTTP | Error code | Meaning |
|---|---|---|
| 400 | BAD_REQUEST | Invalid or missing parameter. |
| 401 | UNAUTHORIZED | Authentication required (admin endpoints only). |
| 404 | NOT_FOUND | Country, currency, or resource not found. |
| 429 | RATE_LIMITED | Too many requests. Back off and retry. |
| 500 | INTERNAL_ERROR | Unexpected server error. Retry with exponential backoff. |
API changelog
/api/openapi.json; Postman at /api/postman_collection.json./api/export/{name}.{csv,json} across 5 datasets./latest and /rankings responses.item parameter (bigmac | cheeseburger) for cross-product queries./compare endpoint for cross-country pairwise comparisons./rankings with sortable metric + order + limit.Need higher limits or commercial use?
The public API is designed for demos, research, editorial use, education, and light integrations. For commercial products, high-volume access, custom exports, redistribution, or partnership use cases, get in touch.
Include: company, expected monthly request volume, use case, and whether usage is commercial or non-commercial.
API FAQ
Is the Big Mac Index API free?
Do I need an API key?
How often is the data updated?
Can I use the API commercially?
Can I download the full dataset?
What countries are supported?
GET /countries to list supported countries, currencies, cities, and coverage metadata.Does the API include historical data?
GET /history with a country ID and day range.