---
title: "Search the Numbeo countries dataset"
method: GET
path: "/datasets/numbeo-countries/search"
tags: ["Datasets"]
---

# Search the Numbeo countries dataset

`GET /datasets/numbeo-countries/search`

## Request

- Base URL: `https://api.crawlora.net/api/v1`
- URL: `https://api.crawlora.net/api/v1/datasets/numbeo-countries/search`
- Auth: API key in header `x-api-key`

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).

## Query parameters

- `q` string
- `min_cost_of_living_index` number
- `max_cost_of_living_index` number
- `min_quality_of_life_index` number
- `min_crime_index` number
- `max_crime_index` number
- `min_safety_index` number
- `min_health_care_index` number
- `max_pollution_index` number
- `max_traffic_index` number
- `sort` '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
- `page_size` integer

## Headers

- `x-api-key` string, required

## Response `200`

OK

- DatasetsNumbeoCountriesSearchResponseDoc
  - `code` integer
  - `data` DatasetsNumbeoCountrySearchResponse
    - `dataset` string
    - `items` EsNumbeoCountryRecord[]
      - `climate_index` number
      - `cost_of_living_index` number
      - `cost_of_living_plus_rent_index` number
      - `country` string
      - `coverage` string[]: Coverage lists which of the seven families ranked this entity in the current sync run, e.g. ["cost-of-living","crime","quality-of-life"].
      - `crime_index` number
      - `extra_indices` EsNumbeoNamedValue[]: ExtraIndices carries any upstream ranking column not mapped to a typed field above (future-proofing against Numbeo adding columns).
        - `name` string
        - `value` number
      - `groceries_index` number
      - `health_care_exp_index` number
      - `health_care_index` number
      - `local_purchasing_power_index` number
      - `pollution_exp_index` number
      - `pollution_index` number
      - `property_affordability_index` number
      - `property_gross_rental_yield_city_centre` number
      - `property_gross_rental_yield_outside_centre` number
      - `property_mortgage_pct_of_income` number
      - `property_price_to_income_ratio` number
      - `property_price_to_rent_ratio_city_centre` number
      - `property_price_to_rent_ratio_outside_centre` number
      - `quality_of_life_index` number
      - `rent_index` number
      - `restaurant_price_index` number
      - `safety_index` number
      - `schema_version` integer
      - `synced_at` string
      - `traffic_co2_emission_index` number
      - `traffic_index` number
      - `traffic_inefficiency_index` number
      - `traffic_time_exp_index` number
      - `traffic_time_index_minutes` number
    - `page` integer
    - `page_size` integer
    - `sort` string
    - `total` integer
  - `msg` string

## Other responses

- `400`: Bad Request
- `429`: Too Many Requests
- `500`: Internal Server Error

---

[API](https://skmtc.dev/crawlora/apis/crawlora-api.md) · [All operations](https://skmtc.dev/crawlora/apis/crawlora-api/llms.txt) · [OpenAPI document](https://skmtc.dev/crawlora/apis/crawlora-api/revisions/afac9b012a27?raw)
