Numbeo API endpoint
Returns one country's aggregate data for a Numbeo index family, plus every city Numbeo tracks there with its index breakdown.
/numbeo/indices/countryQuery parameters:
country (required) — country name as Numbeo spells it, e.g. Vietnam.index (required). Allowed values: quality-of-life, crime, health-care, pollution, traffic, property-investment.Response includes headline_indices[], sections[], price_categories[] (same rules as Numbeo Indices City, depending on index), cities[] (rank, city, city_slug, indices[] with name/value), contributors_note, last_update, source_url.
cities[].city_slug is the exact identifier to pass as slug to Numbeo Indices City.
Example response (index=crime):
{"code":200,"msg":"OK","data":{"index":"crime","country":"Vietnam","headline_indices":[{"name":"Crime Index","value":40.5}],"cities":[{"rank":1,"city":"Ho Chi Minh City","city_slug":"Ho-Chi-Minh-City","indices":[{"name":"Crime Index","value":45.2},{"name":"Safety Index","value":54.8}]}],"contributors_note":"Contributors: 90","last_update":"1 July 2026","source_url":"https://www.numbeo.com/crime/country_result.jsp?country=Vietnam"}}
| Field | Filled in, of 2 checked | Values in the sample |
|---|---|---|
| name | 2 | “Crime Index” and 1 other value |
| value | 2 | 39.69 to 60.31, median 39.69 |
| Parameter | Type | Required | Default | Description | Example |
|---|---|---|---|---|---|
| country | string | Yes | Country name as Numbeo spells it | Vietnam | |
| index | string | Yes | Index family Allowed values: quality-of-life, crime, health-care, pollution, traffic, property-investment. | quality-of-life | |
| x-api-key (header) | string | Yes | API key required |
curl -X GET "https://api.crawlora.net/api/v1/numbeo/indices/country?country=Vietnam&index=quality-of-life" \ -H "x-api-key: $CRAWLORA_API_KEY"
{
"code": 200,
"msg": "OK",
"data": {
"index": "crime",
"country": "Vietnam",
"headline_indices": [
{
"name": "Crime Index",
"value": 40.5
}
],
"cities": [
{
"rank": 1,
"city": "Ho Chi Minh City",
"city_slug": "Ho-Chi-Minh-City",
"indices": [
{
"name": "Crime Index",
"value": 45.2
},
{
"name": "Safety Index",
"value": 54.8
}
]
}
],
"contributors_note": "Contributors: 90",
"last_update": "1 July 2026",
"source_url": "https://www.numbeo.com/crime/country_result.jsp?country=Vietnam"
}
}Request schema
No body schema
Response schema
#/definitions/numbeo.indicesCountryResponseDoc
| Field | Type | Required | Enum | Bounds | Example | Description |
|---|---|---|---|---|---|---|
| code | integer | No | 200 | |||
| data | numbeo.IndicesCountryResponse | No | ||||
| data.cities | array | No | IndexRankingEntry record, 7 fields: city, city_slug, country, indices, rank. Described under Numbeo Indices Rankings By Country API. | |||
| data.contributors_note | string | No | ||||
| data.country | string | No | ||||
| data.headline_indices | array | No | ||||
| data.headline_indices[].name | string | No | Name of the index, as Numbeo labels it, such as `Crime Index`. | |||
| data.headline_indices[].value | number | No | Value of the index named in `name`. | |||
| data.index | string | No | ||||
| data.last_update | string | No | ||||
| data.price_categories | array | No | PriceCategory record, 7 fields: category, items. Described under Numbeo Cost Of Living City API. | |||
| data.sections | array | No | IndexSection record, 5 fields: rows, title. Described under Numbeo Indices City API. | |||
| data.source_url | string | No | ||||
| 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/indices/country?country=Vietnam&index=quality-of-life" \
-H "x-api-key: $CRAWLORA_API_KEY"