The Numbeo Price Index API gives you every Numbeo price-level index as JSON, for cities and countries worldwide. There are two families: the long-running Cost of Living indices, built from prices contributed by Numbeo users and available historically since 2009, and three newer indices computed from supermarket and restaurant menu prices collected automatically. It is part of the Numbeo Data API.
/api/indices) and any country (/api/country_indices), together with Numbeo's quality of life, crime, health care, pollution and traffic indices/api/rankings_by_city_current)/api/rankings_by_city_historical, /api/rankings_by_country_historical)section parameter; see the API documentationlow, high), as a full ranking or for one countrylow, high), as a full ranking or for the cities of one country| You want to compare | Cost of Living indices (crowdsourced + collected automatically) | Supermarket and restaurant indices (collected automatically) |
|---|---|---|
| Overall cost of living | Cost of Living Index, Cost of Living Plus Rent Index | – |
| Housing | Rent Index | – |
| Groceries | Groceries Index (cities and countries) | Supermarket Price Index, Branded Products Price Index (countries) |
| Eating out | Restaurant Price Index (cities and countries) | Menu Price Index (cities) |
| What salaries buy | Local Purchasing Power Index | – |
| Change over time | Historical rankings since 2009 | Current values only |
The two families measure the same things in different ways: the crowdsourced indices from a small basket of items priced by Numbeo users, the newer indices from thousands of product listings and restaurant menus. Using both gives you an independent cross-check.
All endpoints require an api_key parameter. Replace YOUR_API_KEY below with your own key. For every parameter, see the full API documentation.
curl "https://www.numbeo.com/api/indices?api_key=YOUR_API_KEY&query=London,%20United%20Kingdom" curl "https://www.numbeo.com/api/country_indices?api_key=YOUR_API_KEY&country=Germany"
Sample response (truncated):
{
"name": "London, United Kingdom",
"city_id": 6512,
"cpi_index": 87.6,
"rent_index": 65.1,
"cpi_and_rent_index": 77.1,
"groceries_index": 70.2,
"restaurant_price_index": 90.1,
"purchasing_power_incl_rent_index": 138.4,
"quality_of_life_index": 153.1,
"contributors_cost_of_living": 286
}
section=1 selects the cost of living rankings. Historical rankings are keyed by period ("2009" … "2026-mid"):
curl "https://www.numbeo.com/api/rankings_by_city_current?api_key=YOUR_API_KEY§ion=1" curl "https://www.numbeo.com/api/rankings_by_city_historical?api_key=YOUR_API_KEY§ion=1" curl "https://www.numbeo.com/api/rankings_by_country_historical?api_key=YOUR_API_KEY§ion=1"
Sample response of rankings_by_city_current (truncated):
[
{
"city_id": 6378,
"city_name": "Zug",
"country": "Switzerland",
"cpi_index": 123.7,
"rent_index": 84.3,
"cpi_and_rent_index": 105.4,
"groceries_index": 107.0,
"restaurant_price_index": 138.4,
"purchasing_power_incl_rent_index": 136.6
}
]
Returns the full ranking of countries, most expensive first; add country for one country:
curl "https://www.numbeo.com/api/supermarket_price_index?api_key=YOUR_API_KEY" curl "https://www.numbeo.com/api/supermarket_price_index?api_key=YOUR_API_KEY&country=Germany"
Sample response of supermarket_price_index (truncated):
{
"index_name": "Supermarket Price Index",
"base": "US = 100",
"basket_size": 361,
"countries": [
{
"rank": 31,
"country_code": "DE",
"name": "Germany",
"index": 77.0,
"low": 72.4,
"high": 81.9,
"items": 342,
"coverage": 0.95,
"currency": "EUR"
}
]
}
Returns the full ranking of countries by what the same branded products cost, most expensive first; add country for one country:
curl "https://www.numbeo.com/api/branded_supermarket_price_index?api_key=YOUR_API_KEY" curl "https://www.numbeo.com/api/branded_supermarket_price_index?api_key=YOUR_API_KEY&country=Spain"
Sample response of branded_supermarket_price_index with country=Spain:
{
"index_name": "Branded Products Price Index",
"base": "US = 100",
"countries": [
{
"rank": 137,
"country_code": "ES",
"name": "Spain",
"index": 89.38,
"low": 88.67,
"high": 90.09,
"items": 3998,
"currency": "EUR"
}
]
}
Returns the full ranking of cities, most expensive first; add country for the cities of one country:
curl "https://www.numbeo.com/api/restaurant_menu_price_index?api_key=YOUR_API_KEY" curl "https://www.numbeo.com/api/restaurant_menu_price_index?api_key=YOUR_API_KEY&country=Portugal"
Sample response of restaurant_menu_price_index (truncated):
{
"index_name": "Menu Price Index",
"base": "New York = 100",
"cities": [
{
"rank": 159,
"city_id": 6029,
"name": "Lisbon, Portugal",
"country": "Portugal",
"index": 65.75,
"low": 60.73,
"high": 71.2,
"items": 58
}
]
}
Cost of Living indices compare weighted prices of everyday goods and services, contributed by Numbeo users, with New York City (= 100). A Cost of Living Index of 120 means everyday expenses, excluding rent, are about 20% higher than in New York. See Cost of Living indices explained and our methodology.
Supermarket, Branded Products and Menu Price indices compare the same products in every country or city they are sold in, so differences in what is on sale do not distort the result. A statistical model (the country-product-dummy method used by statistical offices for price-level comparisons) estimates each place's price level from all the prices together; prices far off the model are trimmed. The Supermarket Price Index weights its basket by household spending category (meat and fish, fresh produce and dairy weigh the most), and a country is indexed only when it prices at least 80% of the basket. The low and high values give an approximate 95% interval: the narrower it is, the more precise the index.
See plans and pricing on the Numbeo Data API page, or read the complete API documentation for every available endpoint and parameter. Want to use our data in spreadsheets, or just for a one-time project? See the commercial Data License.
How is the Groceries Index different from the Supermarket Price Index?
The Groceries Index is part of the Cost of Living indices: it is built from grocery prices contributed by Numbeo users, relative to New York City, for cities and countries. The Supermarket Price Index is computed from prices collected automatically from online supermarkets, over a much larger basket, relative to the United States, for countries. They are independent measurements of the same thing.
Is historical index data available?
Yes, for the Cost of Living indices: city and country rankings are available yearly since 2009 and twice a year since 2014. The Supermarket, Branded Products and Menu Price indices return current values.
Why is a country or city missing from an index?
Each index includes only places with enough data to be reliable. For the Supermarket Price Index, a country must price at least 80% of the basket; for the Menu Price Index, a city's menus must cover enough of the index basket.
What do the low and high values mean?
They give an approximate 95% interval around the index: the true price level is very likely to lie between them. A narrow interval means a precise index.
How often are the indices updated?
The Cost of Living indices are updated continuously as new prices are contributed, with rankings published twice a year. The Supermarket, Branded Products and Menu Price indices are recomputed whenever the underlying prices are refreshed.
Is the Price Index API free?
Numbeo offers paid API plans with monthly request quotas. See the Numbeo Data API page for current plans and pricing.