Numbeo API endpoint
Returns itemized cost-of-living prices for one city (restaurants, markets, transportation, utilities, rent, and more), grouped by category.
/numbeo/cost-of-living/city/{slug}Path parameters:
slug (required) — Numbeo city slug, e.g. Los-Angeles. Discover valid slugs from the cities[].city_slug field of Numbeo Cost Of Living Country or the cities[].city_slug field of Numbeo Cost Of Living Rankings — Numbeo has no public city search/autocomplete endpoint.Response includes city (Numbeo's disambiguated name, e.g. Los Angeles, CA), city_slug, country, categories[] (category, items[] with name, currency_symbol, price, range_low, range_high), contributors_12mo, last_update, source_url.
currency_symbol is the raw glyph Numbeo renders for the city's local currency (e.g. $, ₫, €) rather than a guessed ISO code, since a bare symbol like $ is ambiguous across USD/CAD/AUD/HKD/SGD and similar.
| Field | Filled in, of 10 checked | Values in the sample |
|---|---|---|
| category | 10 | “Restaurants” and 9 other values |
| items | 10 | median 3 entries |
| Parameter | Type | Required | Default | Description | Example |
|---|---|---|---|---|---|
| slug (path) | string | Yes | Numbeo city slug | Los-Angeles | |
| x-api-key (header) | string | Yes | API key required |
curl -X GET "https://api.crawlora.net/api/v1/numbeo/cost-of-living/city/Los-Angeles" \ -H "x-api-key: $CRAWLORA_API_KEY"
{
"code": 200,
"msg": "OK",
"data": {
"city": "Los Angeles, CA",
"city_slug": "Los-Angeles",
"country": "United States",
"categories": [
{
"category": "Restaurants",
"items": [
{
"name": "Meal at an Inexpensive Restaurant",
"currency_symbol": "$",
"price": 25,
"range_low": 16,
"range_high": 45
}
]
},
{
"category": "Rent Per Month",
"items": [
{
"name": "1 Bedroom Apartment in City Centre",
"currency_symbol": "$",
"price": 2563.18,
"range_low": 2000,
"range_high": 3400
}
]
}
],
"contributors_12mo": 178,
"last_update": "13 July 2026",
"source_url": "https://www.numbeo.com/cost-of-living/in/Los-Angeles"
}
}Request schema
No body schema
Response schema
#/definitions/numbeo.costOfLivingCityResponseDoc
| Field | Type | Required | Enum | Bounds | Example | Description |
|---|---|---|---|---|---|---|
| code | integer | No | 200 | |||
| data | numbeo.CostOfLivingCityResponse | No | ||||
| data.categories | array | No | Price categories for the city, each with its priced items. | |||
| data.categories[].category | string | No | Numbeo section name, such as Restaurants, Markets or Rent Per Month. | |||
| data.categories[].items | array | No | Priced goods and services listed under this category. | |||
| data.categories[].items[].currency_symbol | string | No | Currency symbol Numbeo shows for the city's local currency, such as `$` or `€`. | |||
| data.categories[].items[].name | string | No | Name of the good or service, such as a meal at an inexpensive restaurant. | |||
| data.categories[].items[].price | number | No | Price of the item in the city's local currency, as shown on Numbeo. | |||
| data.categories[].items[].range_high | number | No | High end of the price range Numbeo reports for the item. | |||
| data.categories[].items[].range_low | number | No | Low end of the price range Numbeo reports for the item. | |||
| data.city | string | No | City name as Numbeo shows it, with the state or region where Numbeo adds one, such as `Los Angeles, CA`. | |||
| data.city_slug | string | No | Numbeo city slug that was requested, such as `Los-Angeles`. | |||
| data.contributors_12mo | integer | No | Number of different contributors behind the city's prices, as Numbeo reports it. | |||
| data.country | string | No | Country the city is in. | |||
| data.last_update | string | No | Date Numbeo last updated the city's prices, as Numbeo shows it, such as `13 July 2026`. | |||
| data.source_url | string | No | URL the data was read from. | |||
| msg | string | No | OK |
| Status | Description | Schema |
|---|---|---|
| 400 | Bad Request | #/definitions/app.Response |
| 404 | Not Found | #/definitions/app.Response |
| 500 | Internal Server Error | #/definitions/app.Response |
| 503 | Service Unavailable | #/definitions/app.Response |
Use environment variables for secrets and keep Crawlora API keys server-side.
curl -X GET "https://api.crawlora.net/api/v1/numbeo/cost-of-living/city/Los-Angeles" \
-H "x-api-key: $CRAWLORA_API_KEY"