Numbeo Scraper
Pricing
from $1.80 / 1,000 results
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
Maintained by CommunityActor stats
0
Bookmarked
4
Total users
1
Monthly active users
5 days ago
Last modified
Categories
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
typediscriminator, 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
| Parameter | Type | Default | Description |
|---|---|---|---|
cities | array | ["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. |
countries | array | [] | Country names for nationwide average data, one per line (e.g. "Germany", "Japan"). A full Numbeo country URL also works. |
categories | array | ["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
| Parameter | Type | Default | Description |
|---|---|---|---|
currency | string | "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. |
includeRankings | boolean | false | Also collect Numbeo's worldwide ranked city table for each selected category. When cities and countries are both empty, this becomes the only thing collected. |
maxCities | integer | 100 | When 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
| Field | Type | Description |
|---|---|---|
type | string | Row kind: city_price, country_price, city_index, or ranking. |
location | string | Full 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. |
city | string | null | Bare 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. |
region | string | null | State, province, or region when the country has one, e.g. "HI", "TX", "Newfoundland and Labrador". Null elsewhere. |
country | string | null | Country name. |
category | string | Numbeo section: cost-of-living, quality-of-life, crime, health-care, pollution, traffic, or property-investment. |
categoryGroup | string | null | Price group for price rows (Restaurants, Markets, Transportation, Rent, Salaries, and more). |
itemName | string | Price item ("Meal at an Inexpensive Restaurant", "Milk (Regular, 1 Liter)") or index name ("Safety Index"). |
avgPrice | number | null | Average reported price (price rows). |
lowestPrice | number | null | Low end of the reported range. |
highestPrice | number | null | High end of the reported range. |
indexValue | number | null | Index or ranking score value (the primary, sorted-by index on ranking rows). |
subIndices | object | null | On 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. |
rank | integer | null | Global rank position (ranking rows). |
currency | string | null | Currency code of the prices on this row. |
url | string | Source Numbeo page URL. |
scrapedAt | string | Extraction 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, andcountryfields 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 +
maxCitiesto bulk-pull the cheapest or safest N cities. Turn on rankings, leave cities empty, and setmaxCitiesto grab the top N cities for any category in one run โ set it to0for 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
typeafter the run. Split prices from indices and rankings using thetypefield 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.
| Results | No discount | Bronze | Silver | Gold |
|---|---|---|---|---|
| 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
Legal & Ethical Use
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.