Numbeo Scraper avatar

Numbeo Scraper

Pricing

from $3.00 / 1,000 results

Go to Apify Store
Numbeo Scraper

Numbeo Scraper

Scrape Numbeo.com — the world's largest cost-of-living, quality-of-life, crime, healthcare, pollution, traffic, and property-price database. Get full price tables, index breakdowns, and city rankings for thousands of cities globally.

Pricing

from $3.00 / 1,000 results

Rating

5.0

(16)

Developer

Crawler Bros

Crawler Bros

Maintained by Community

Actor stats

16

Bookmarked

1

Total users

0

Monthly active users

7 days ago

Last modified

Share

Scrape Numbeo.com — the world's largest crowd-sourced cost-of-living, quality-of-life, crime, healthcare, pollution, traffic, and property-price database — for any city worldwide.

What you get

Per-mode output:

costOfLiving

Full price table for a city: groceries, restaurants, transportation, utilities, sports & leisure, childcare, clothing, rent, salaries.

{
"city": "New York, NY, United States",
"indices": { "Cost of Living Index": 100.0, ... },
"prices": [
{"item": "Meal at an Inexpensive Restaurant", "price": 25.0, "currency": "$",
"rangeLow": 15.0, "rangeHigh": 45.0},
...
],
"nearbyCities": [{"city": "Jersey City, New Jersey", "distanceKm": 7.38}, ...]
}

qualityOfLife

Quality-of-life index breakdown plus component sub-indices (Purchasing Power, Safety, Health Care, Climate, Cost of Living, Property-Price-to-Income).

crime / healthCare / pollution / traffic

Each returns the city's index summary plus the labelled sub-rows ("Level of crime: 55.23 / Moderate", "Skill and competency of medical staff: 75.16 / High", etc.). The pollution mode also returns the WHO PM10 / PM2.5 panel.

propertyInvestment

Rent prices (1 / 3 bedroom apartments — city centre vs outside) plus the property index summary (Price-to-Income, Mortgage-as-Percentage-of-Income, Rent Yields, Affordability Index).

costOfLivingComparison

Side-by-side price comparison between two cities, with each row carrying both city prices and the percent difference.

topCities

Numbeo's annual city rankings — every city in the table with its Cost of Living, Rent, Cost of Living Plus Rent, Groceries, Restaurant, and Local Purchasing Power indices. Year selectable via rankingsYear (e.g., 2024, 2024-mid).

byUrl

Pass any Numbeo URL — the actor auto-routes to the right parser.

Modes

ModeURL pattern
costOfLiving/cost-of-living/in/<City>
costOfLivingComparison/cost-of-living/compare_cities.jsp?...
qualityOfLife/quality-of-life/in/<City>
crime/crime/in/<City>
healthCare/health-care/in/<City>
pollution/pollution/in/<City>
traffic/traffic/in/<City>
propertyInvestment/property-investment/in/<City>
topCities/cost-of-living/rankings.jsp?title=2024
byUrlany of the above

Example inputs

Cost of living for New York

{
"mode": "costOfLiving",
"city": "New York",
"maxItems": 1
}

Quality of life for multiple cities

{
"mode": "qualityOfLife",
"cities": ["Berlin", "Tokyo", "Lisbon", "Mexico City"],
"maxItems": 4
}

Compare New York with Berlin

{
"mode": "costOfLivingComparison",
"country1": "United States",
"city1": "New York, NY",
"country2": "Germany",
"city2": "Berlin"
}

Top cities ranked by cost of living for 2024

{
"mode": "topCities",
"rankingsYear": "2024",
"maxItems": 100
}

Mixed URL list

{
"mode": "byUrl",
"urls": [
"https://www.numbeo.com/cost-of-living/in/Tokyo",
"https://www.numbeo.com/crime/in/Sao-Paulo,Brazil",
"https://www.numbeo.com/cost-of-living/rankings.jsp?title=2024"
],
"maxItems": 10
}

City naming

Numbeo uses single-segment hyphenated slugs in URLs. Globally unique cities use just the city name; ambiguous US cities append the two-letter state code with a hyphen:

Plain EnglishNumbeo slug
New YorkNew-York
BerlinBerlin
São PauloSao-Paulo
TokyoTokyo
Cambridge, MACambridge-MA
Birmingham, ALBirmingham-AL
Mexico CityMexico-City

Pass the plain-English form — the actor builds the slug for you and falls back through alternative slug forms automatically if the first guess returns "Cannot find city id".

FAQ

Why are some price ranges missing? Numbeo only shows the contributor-supplied range when there are enough samples. The actor omits rangeLow / rangeHigh rather than emitting null.

Are there separate currencies for non-US cities? The price field is the value Numbeo displays for the page (typically the page's local currency or USD if the page is rendered in USD). The currency symbol is captured in the currency field when present.

How frequently does Numbeo update? Numbeo is contributor-driven — popular cities update weekly, smaller cities monthly to quarterly.

Is the actor blocked by Numbeo's anti-bot? Numbeo uses light bot detection. The actor uses curl_cffi's Chrome 131 TLS impersonation, which is sufficient from Apify datacenter IPs in our testing. If you see 403s, enable useProxy or rely on autoEscalateOnBlock (the default).

Why are my numbers different from the website? Numbeo recomputes indices on every contributor update — the dataset captures the values at scrape time. The page itself may show slightly different numbers a day later.

Can I get historical data? Yes for rankings (rankingsYear accepts back-years from 2017 onward). Per-city pages always show the latest data only.

Limitations

  • Comparison mode only supports two cities at a time (Numbeo's UI limitation).
  • The topCities rankings page shows ~370 cities by default — use maxItems to cap.
  • Numbeo's "indices" use US prices as the 100 baseline; lower numbers mean cheaper.

Source

Data is scraped from https://www.numbeo.com. Numbeo aggregates contributor surveys; review their terms of use before redistributing.