Numbeo Scraper avatar

Numbeo Scraper

Pricing

from $1.80 / 1,000 results

Go to Apify Store
Numbeo Scraper

Numbeo Scraper

[๐Ÿ’ฐ $1.8 / 1K] Extract Numbeo cost-of-living data without an API key โ€” 55 itemized prices per city plus crime, health care, pollution, traffic, property and quality-of-life indices in any of 24 currencies.

Pricing

from $1.80 / 1,000 results

Rating

0.0

(0)

Developer

SolidCode

SolidCode

Maintained by Community

Actor stats

0

Bookmarked

4

Total users

1

Monthly active users

5 days ago

Last modified

Share

Pull cost-of-living and quality-of-life data from Numbeo at scale โ€” 55 itemized prices per city, 21 liveability scores, full worldwide rankings, and nationwide country averages, reported in any of 24 currencies. No API key, no manual copy-paste, no account. Built for relocation analysts, remote-work salary planners, real-estate researchers, and HR and fintech comp teams who need clean, structured cost-of-living benchmarks without rebuilding Numbeo's tables by hand.

Why This Scraper?

  • 55 itemized prices per city โ€” rent, groceries, restaurants, transport, utilities, childcare, clothing, leisure, and net salary, each with a crowd-sourced average plus a low-to-high range, not just a single headline number.
  • Seven data categories in one run โ€” Cost of Living, Property Prices & Investment, Quality of Life, Crime, Health Care, Pollution, and Traffic, selectable per location.
  • 21 liveability scores per city, across six index sets โ€” Quality of Life, Crime and Safety, Health Care, Pollution (2 scores), Traffic (5, including commute minutes and a CO2 index), and Property Investment (10, including price-to-income and gross rental yield) โ€” every one a clean number ready for dashboards and models.
  • 24 reporting currencies โ€” every price converted and stamped with its currency code (USD, EUR, GBP, JPY, CNY, INR, AED, and 17 more), so you can benchmark cities apples-to-apples in one denomination.
  • Full worldwide city rankings, every sub-index included โ€” pull a category's entire ranked table โ€” roughly 300 to 550 cities depending on the category, each row carrying its global rank โ€” or cap it to the top N. Each ranked city ships all of that table's named sub-indices, not just the headline score โ€” 6 for cost of living (Cost of Living, Rent, Cost of Living Plus Rent, Groceries, Restaurant Price, Local Purchasing Power) and 9 for quality of life, all on one row.
  • US-city auto-disambiguation โ€” type "Austin, United States" or "Austin, TX" and it resolves to the right metro automatically, no hunting for the correct page.
  • Paste a name or a URL โ€” feed plain "City, Country" names, "City, State" for US metros, or a full Numbeo page URL; all three resolve to the same structured output.
  • Flat, BI-ready rows โ€” one row per price item, index, or ranking entry with a type discriminator, so the output drops straight into spreadsheets, SQL, and analytics tools.
  • Country-level averages โ€” the same 55-item price list computed nationwide for whole countries, sitting alongside city-level detail in one dataset.

Use Cases

Relocation & Global Mobility

  • Compare living costs between a current and prospective home city before a move
  • Build relocation cost calculators for employees and expats
  • Estimate the rent, groceries, and transport budget needed in a new city
  • Rank candidate destinations by quality of life, safety, and affordability

Salary & Compensation Benchmarking

  • Anchor cost-of-living adjustments to local net-salary and price data
  • Set location-based pay bands for remote and distributed teams
  • Compare purchasing power across offices in one common currency
  • Justify relocation stipends with itemized local price evidence

Real Estate & Market Research

  • Track apartment buy and rent prices in city centre vs. outside centre
  • Compare price-to-income and rental-yield indicators across markets
  • Surface the most and least expensive cities for property investment
  • Feed local market context into property valuation models

Travel & Lifestyle Planning

  • Budget daily costs for trips using restaurant, transport, and grocery prices
  • Compare destinations on safety, pollution, and healthcare quality
  • Build "cost of a week here" estimates for travel content and tools

Academic & Economic Research

  • Assemble cross-country cost-of-living and purchasing-power datasets
  • Study price dispersion across hundreds of cities at once
  • Combine crime, health, pollution, and traffic indices for liveability studies

Getting Started

Cost of Living for One City

The simplest run โ€” a single city, default category and currency:

{
"cities": ["London, United Kingdom"]
}

Multiple Cities and Categories

Collect cost of living plus crime and pollution indices for several cities, priced in euros:

{
"cities": ["Berlin", "Paris", "Madrid"],
"categories": ["cost-of-living", "crime", "pollution"],
"currency": "EUR"
}

Countries, Cities, and a Currency Switch

Mix city-level detail with nationwide country averages, reported in Japanese yen:

{
"cities": ["Tokyo", "Osaka"],
"countries": ["Japan", "South Korea"],
"categories": ["cost-of-living", "quality-of-life"],
"currency": "JPY"
}

Worldwide Rankings

Leave cities and countries empty and turn on rankings to pull the top 50 ranked cities per category:

{
"categories": ["cost-of-living", "quality-of-life"],
"includeRankings": true,
"maxCities": 50
}

Input Reference

What to Collect

ParameterTypeDefaultDescription
citiesarray["London, United Kingdom", "Berlin"]City names, one per line. Add a country or US state when a name is shared (e.g. "London, United Kingdom", "Austin, TX"). You can also paste a full Numbeo city URL.
countriesarray[]Country names for nationwide average data, one per line (e.g. "Germany", "Japan"). A full Numbeo country URL also works.
categoriesarray["cost-of-living"]Which kinds of data to collect per location. Options: Cost of Living (itemized prices), Property Prices & Investment, Quality of Life, Crime, Health Care, Pollution, Traffic.

Options

ParameterTypeDefaultDescription
currencystring"US Dollar (USD)"Currency to report all prices in. 24 options including Euro, British Pound, Canadian Dollar, Japanese Yen, Chinese Yuan, Indian Rupee, UAE Dirham, and Singapore Dollar.
includeRankingsbooleanfalseAlso collect Numbeo's worldwide ranked city table for each selected category. When cities and countries are both empty, this becomes the only thing collected.
maxCitiesinteger100When rankings are on, the maximum number of ranked cities per category. Set to 0 to collect every ranked city โ€” roughly 300 to 550 depending on the category. Has no effect on cities or countries you type in yourself.

Output

Each result is one flat row. The type field tells you what kind of row it is โ€” city_price, country_price, city_index, or ranking โ€” so you can split, filter, or join the dataset cleanly. The shared envelope (location, category, currency, url, scrapedAt) is identical across every row.

Itemized City Price (city_price)

{
"type": "city_price",
"location": "London, United Kingdom",
"city": "London",
"region": null,
"country": "United Kingdom",
"category": "cost-of-living",
"categoryGroup": "Restaurants",
"itemName": "Meal at an Inexpensive Restaurant",
"avgPrice": 20.0,
"lowestPrice": 14.0,
"highestPrice": 30.0,
"indexValue": null,
"subIndices": null,
"rank": null,
"currency": "GBP",
"url": "https://www.numbeo.com/cost-of-living/in/London?displayCurrency=GBP",
"scrapedAt": "2026-06-10T12:00:00Z"
}

Quality-of-Life Index (city_index)

{
"type": "city_index",
"location": "London, United Kingdom",
"city": "London",
"region": null,
"country": "United Kingdom",
"category": "crime",
"categoryGroup": null,
"itemName": "Safety Index",
"avgPrice": null,
"lowestPrice": null,
"highestPrice": null,
"indexValue": 44.90,
"subIndices": null,
"rank": null,
"currency": null,
"url": "https://www.numbeo.com/crime/in/London",
"scrapedAt": "2026-06-10T12:00:00Z"
}

Country Average (country_price)

{
"type": "country_price",
"location": "Germany",
"city": null,
"region": null,
"country": "Germany",
"category": "cost-of-living",
"categoryGroup": "Markets",
"itemName": "Milk (Regular, 1 Liter)",
"avgPrice": 1.17,
"lowestPrice": 0.99,
"highestPrice": 1.50,
"indexValue": null,
"subIndices": null,
"rank": null,
"currency": "EUR",
"url": "https://www.numbeo.com/cost-of-living/country_result.jsp?country=Germany&displayCurrency=EUR",
"scrapedAt": "2026-06-10T12:00:00Z"
}

Global Ranking (ranking)

{
"type": "ranking",
"location": "Zurich, Switzerland",
"city": "Zurich",
"region": null,
"country": "Switzerland",
"category": "cost-of-living",
"categoryGroup": null,
"itemName": "Cost of Living Index",
"avgPrice": null,
"lowestPrice": null,
"highestPrice": null,
"indexValue": 125.3,
"subIndices": {
"Cost of Living Index": 125.3,
"Rent Index": 73.1,
"Cost of Living Plus Rent Index": 100.8,
"Groceries Index": 127.1,
"Restaurant Price Index": 124.5,
"Local Purchasing Power Index": 161.4
},
"rank": 1,
"currency": null,
"url": "https://www.numbeo.com/cost-of-living/in/Zurich",
"scrapedAt": "2026-06-10T12:00:00Z"
}

Field Reference

FieldTypeDescription
typestringRow kind: city_price, country_price, city_index, or ranking.
locationstringFull place label exactly as Numbeo writes it, e.g. "London, United Kingdom" or "Honolulu, HI, United States". Paste it straight back into cities to re-run the same place.
citystring | nullBare city name when the row is city-scoped โ€” "Honolulu", "New York", "The Hague" โ€” with no state or country attached, so it joins cleanly across countries.
regionstring | nullState, province, or region when the country has one, e.g. "HI", "TX", "Newfoundland and Labrador". Null elsewhere.
countrystring | nullCountry name.
categorystringNumbeo section: cost-of-living, quality-of-life, crime, health-care, pollution, traffic, or property-investment.
categoryGroupstring | nullPrice group for price rows (Restaurants, Markets, Transportation, Rent, Salaries, and more).
itemNamestringPrice item ("Meal at an Inexpensive Restaurant", "Milk (Regular, 1 Liter)") or index name ("Safety Index").
avgPricenumber | nullAverage reported price (price rows).
lowestPricenumber | nullLow end of the reported range.
highestPricenumber | nullHigh end of the reported range.
indexValuenumber | nullIndex or ranking score value (the primary, sorted-by index on ranking rows).
subIndicesobject | nullOn ranking rows, every named sub-index for that table keyed by column name โ€” 6 for cost-of-living (Cost of Living, Rent, Cost of Living Plus Rent, Groceries, Restaurant Price, Local Purchasing Power Index), 9 for quality-of-life, 2 for crime. Null on non-ranking rows.
rankinteger | nullGlobal rank position (ranking rows).
currencystring | nullCurrency code of the prices on this row.
urlstringSource Numbeo page URL.
scrapedAtstringExtraction timestamp (ISO 8601, UTC).

Tips for Best Results

  • Qualify ambiguous city names. Bare "London" can resolve to London, Canada โ€” add the country or US state ("London, United Kingdom", "Austin, TX") to pin the exact metro you want.
  • Paste the Numbeo URL for guaranteed targeting. If you already have the city's Numbeo page open, pasting its URL removes any name ambiguity and goes straight to that page. Rows still come back with the full city, region, and country fields filled in, exactly as a typed name would.
  • One currency, one unit system, so cities compare directly. Setting a single currency (e.g. EUR) converts every city's prices into the same denomination, and every measurement already comes back metric โ€” apartment prices per square meter, utilities for an 85 mยฒ flat โ€” so a US metro lines up against a European one with nothing to convert on your side.
  • Use rankings + maxCities to bulk-pull the cheapest or safest N cities. Turn on rankings, leave cities empty, and set maxCities to grab the top N cities for any category in one run โ€” set it to 0 for the entire ranked table, which runs from roughly 300 cities (quality of life) to 550 (cost of living).
  • Cost of Living returns the richest detail. It yields all 55 itemized prices; the index categories return far fewer summary scores each โ€” 1 for quality of life, 2 for crime, 5 for traffic, 10 for property investment โ€” so combine both for full coverage.
  • Expect sparse rows for smaller cities. Cities with thin crowd-sourced data return fewer price items, and some salary rows carry an average but no low/high range โ€” that is normal, not an error.
  • Filter by type after the run. Split prices from indices and rankings using the type field for clean, purpose-built tables in your destination tool.

Pricing

From $1.80 per 1,000 results โ€” pay only for the rows you collect, undercutting comparable Numbeo data tools. Bronze, Silver, and Gold subscribers pay progressively less; the table below shows total cost at each discount tier.

ResultsNo discountBronzeSilverGold
100$0.215$0.20$0.19$0.18
1,000$2.15$2.00$1.90$1.80
10,000$21.50$20.00$19.00$18.00
100,000$215.00$200.00$190.00$180.00

A "result" is one dataset row โ€” a single price item, index value, or ranking entry. No compute or time-based charges โ€” you pay per result, plus a small fixed per-run start fee.

Integrations

Export data in JSON, CSV, Excel, XML, or RSS. Connect to 1,500+ apps via:

  • Zapier / Make / n8n โ€” Workflow automation
  • Google Sheets โ€” Direct spreadsheet export
  • Slack / Email โ€” Notifications on new results
  • Webhooks โ€” Trigger custom APIs on run completion
  • Apify API โ€” Full programmatic access

This actor collects publicly available cost-of-living and quality-of-life information for research, analysis, and benchmarking. Use it responsibly: respect Numbeo's terms of service, avoid excessive request volumes, and comply with all applicable laws and regulations in your jurisdiction. Do not use collected data to harm individuals or for any unlawful purpose. You are responsible for how you use the data you collect.