Datasets API endpoint
Searches the composite Numbeo countries dataset, merged from the current global by-country rankings of all seven index families. Sort enum: `name_asc`, `cost_of_living_asc`, `cost_of_living_desc`, `quality_of_life_desc`, `safety_desc`, `crime_asc`, `health_care_desc`, `pollution_asc`, `traffic_asc`. Billing: this search costs 1 credit per record returned, with a minimum of 2 (an empty result costs 2, a full page of 100 costs 100).
/datasets/numbeo-countries/searchDataset id enum:
numbeo-countriesQuery parameters:
q: optional full-text query over the country name, max 256 characters.min_cost_of_living_index / max_cost_of_living_index: optional Cost of Living Index bounds (New York = 100).min_quality_of_life_index: optional minimum Quality of Life Index.min_crime_index / max_crime_index: optional Crime Index bounds.min_safety_index: optional minimum Safety Index.min_health_care_index: optional minimum Health Care Index.max_pollution_index: optional maximum Pollution Index.max_traffic_index: optional maximum Traffic Index.sort: optional. Allowed values: name_asc, cost_of_living_asc, cost_of_living_desc, quality_of_life_desc, safety_desc, crime_asc, health_care_desc, pollution_asc, traffic_asc. Defaults to relevance with q, otherwise name_asc.page: optional, default 1.page_size: optional, default 20, max 100; page * page_size must not exceed 10000.Response includes dataset, items[] (each a numbeo-countries record — see
Get a Numbeo country from the dataset for
the full field list), page, page_size, total, sort.
1 credit per record returned, minimum 2. A search that returns 20 records costs 20 credits, a full page of 100 costs 100, and an empty or one-record result costs 2. You are charged for what comes back, not for the page_size you ask for, but your balance must cover the requested page_size for the call to be accepted. The response header x-credit-cost shows what a call was charged.
| Field | Filled in, of 1 checked | Values in the sample |
|---|---|---|
| country | 1 | |
| coverage | 1 | median 7 entries |
| cost_of_living_index | 1 | |
| rent_index | 1 | |
| cost_of_living_plus_rent_index | 1 | |
| groceries_index | 1 | |
| restaurant_price_index | 1 | |
| local_purchasing_power_index | 1 | |
| quality_of_life_index | 1 | |
| climate_index | 1 | |
| crime_index | 1 | |
| safety_index | 1 | |
| health_care_index | 1 | |
| health_care_exp_index | 1 | |
| pollution_index | 1 | |
| pollution_exp_index | 1 | |
| traffic_index | 1 | |
| traffic_time_index_minutes | 1 | |
| traffic_time_exp_index | 1 | |
| traffic_inefficiency_index | 1 | |
| traffic_co2_emission_index | 1 | |
| property_price_to_income_ratio | 1 | 32.7 |
| property_gross_rental_yield_city_centre | 1 | 2.6 |
| property_gross_rental_yield_outside_centre | 1 | 3.3 |
| property_price_to_rent_ratio_city_centre | 1 | 38.4 |
| property_price_to_rent_ratio_outside_centre | 1 | 30.2 |
| property_mortgage_pct_of_income | 1 | 346.1 |
| property_affordability_index | 1 | |
| synced_at | 1 | 2026-10-13 |
| schema_version | 1 |
| Parameter | Type | Required | Default | Description | Example |
|---|---|---|---|---|---|
| q | string | No | Full-text query over the country name, max 256 characters | ||
| min_cost_of_living_index | number | No | Minimum Cost of Living Index (New York = 100) | ||
| max_cost_of_living_index | number | No | Maximum Cost of Living Index (New York = 100) | ||
| min_quality_of_life_index | number | No | Minimum Quality of Life Index | ||
| min_crime_index | number | No | Minimum Crime Index | ||
| max_crime_index | number | No | Maximum Crime Index | ||
| min_safety_index | number | No | Minimum Safety Index | ||
| min_health_care_index | number | No | Minimum Health Care Index | ||
| max_pollution_index | number | No | Maximum Pollution Index | ||
| max_traffic_index | number | No | Maximum Traffic Index | ||
| sort | string | No | Sort enum: name_asc, cost_of_living_asc, cost_of_living_desc, quality_of_life_desc, safety_desc, crime_asc, health_care_desc, pollution_asc, traffic_asc Allowed values: name_asc, cost_of_living_asc, cost_of_living_desc, quality_of_life_desc, safety_desc, crime_asc, health_care_desc, pollution_asc, traffic_asc. | ||
| page | integer | No | 1 | Page number, defaults to 1 | |
| page_size | integer | No | 20 and maxes at 100 | Page size, defaults to 20 and maxes at 100; page * page_size must be <= 10000 | |
| x-api-key (header) | string | Yes | API key required |
curl -X GET "https://api.crawlora.net/api/v1/datasets/numbeo-countries/search?q=coffee&sort=name_asc&page=1" \ -H "x-api-key: $CRAWLORA_API_KEY"
{
"code": 200,
"msg": "OK",
"data": {
"dataset": "numbeo-countries",
"items": [
{
"country": "Switzerland",
"coverage": [
"cost-of-living",
"crime"
],
"cost_of_living_index": 109.8,
"crime_index": 22.1,
"safety_index": 77.9,
"synced_at": "2026-07-13T00:00:00Z",
"schema_version": 1
}
],
"page": 1,
"page_size": 20,
"total": 152,
"sort": "name_asc"
}
}Request schema
No body schema
Response schema
#/definitions/datasets.numbeoCountriesSearchResponseDoc
| Field | Type | Required | Enum | Bounds | Example | Description |
|---|---|---|---|---|---|---|
| code | integer | No | 200 | |||
| data | datasets.NumbeoCountrySearchResponse | No | ||||
| data.dataset | string | No | ||||
| data.items | array | No | NumbeoCountryRecord record, 33 fields: climate_index, cost_of_living_index, cost_of_living_plus_rent_index, country, coverage, crime_index, extra_indices, groceries_index, health_care_exp_index, health_care_index, local_purchasing_power_index, pollution_exp_index and 19 more. Described under Numbeo Country Dataset API. | |||
| data.page | integer | No | ||||
| data.page_size | integer | No | ||||
| data.sort | string | No | ||||
| data.total | integer | No | ||||
| msg | string | No | OK |
| Status | Description | Schema |
|---|---|---|
| 400 | Bad Request | #/definitions/app.Response |
| 429 | Too Many Requests | #/definitions/app.Response |
| 500 | Internal Server Error | #/definitions/app.Response |
Use environment variables for secrets and keep Crawlora API keys server-side.
curl -X GET "https://api.crawlora.net/api/v1/datasets/numbeo-countries/search?q=coffee&sort=name_asc&page=1" \
-H "x-api-key: $CRAWLORA_API_KEY"