Numbeo Scraper: Cost of Living & City Indices avatar

Numbeo Scraper: Cost of Living & City Indices

Pricing

from $10.00 / 1,000 price items

Go to Apify Store
Numbeo Scraper: Cost of Living & City Indices

Numbeo Scraper: Cost of Living & City Indices

Scrape Numbeo cost of living by city: 55 item prices with low/high ranges (rent, groceries, transport, salaries), family and single-person monthly budgets, quality of life, crime and property metrics in 15 currencies. Export CSV, Excel, JSON. No login or API key.

Pricing

from $10.00 / 1,000 price items

Rating

0.0

(0)

Developer

RecordsData

RecordsData

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

14 days ago

Last modified

Categories

Share

RecordsData

Numbeo Scraper by RecordsData extracts Numbeo cost of living data by city or country: 55 item prices with low and high ranges, family-of-four and single-person monthly budgets, worldwide city and country rankings (7 index types), plus quality of life, crime, property, health care, pollution and traffic indices, in 161 currencies. Export CSV, Excel, JSON or XML. No login, no API key. Priced from $0.01 per price row; health care, pollution and traffic rows are $0.02 and ranking rows $0.002. Verified in the Apify cloud on 2026-10-10.

πŸ™ Numbeo cost of living scraper: what does it do?

This Numbeo scraper turns the cost of living pages of Numbeo, the largest crowdsourced cost of living database, into structured datasets. In a cloud run on Berlin and Germany, one request per page returned 55 itemized prices for the city and 55 for the country, each with an average price and a low/high range, in the currency you pick.

  • Scrape the full price basket of one city, one country, or hundreds of both.
  • Get Numbeo's monthly cost estimates for a family of four and a single person (rent excluded).
  • Pull worldwide rankings for cities (about 300 to 560 rows) or countries, 7 index types, with rank.
  • Add optional quality of life, crime, property, health care, pollution and traffic modules.
  • Choose from 161 display currencies (all Numbeo codes except Bitcoin and four metals, which Numbeo prints as 0.00).
  • Pay per row: 1,000 price rows cost $10. Run from the Console, API, a schedule or an AI agent through MCP.

πŸ“‹ Numbeo data you can extract: which fields come back?

Rows are told apart by recordType; fields that do not apply are omitted.

recordTypeOne row perMain fields
price, country-priceprice itemcity, citySlug, region, country, category, item, price, currency, rangeLow, rangeHigh
city-summary, country-summaryplacefamilyOfFourMonthlyCost, singlePersonMonthlyCost, currency, rank
quality-of-life, crime, property, health-care, pollution, traffic (prefix country- for countries)placemetrics with the index values, ratings with Numbeo labels such as High or Very Low
ranking, country-rankingranked placeindexType, rank, metrics, period

The default dataset has 23 columns, adding contributors, lastUpdated, url, scrapedAt and error, and five views: Overview, Prices, Budgets, Indices and Rankings. rank is the row position in the table. With rankings on, your own cities also carry rank (Berlin was 105 in the cost of living city ranking in the test run). An unrecognised place gives one free row with an error message.

πŸ“Š Numbeo scraper sample output (real rows from a cloud run)

A row from an earlier cloud run on Lima, in USD (newer columns such as region, country and ratings are not shown):

{
"recordType": "price",
"city": "Lima",
"citySlug": "Lima",
"category": "Restaurants",
"item": "Meal at an Inexpensive Restaurant",
"price": 4.34,
"currency": "USD",
"rangeLow": 2.89,
"rangeHigh": 8.68,
"url": "https://www.numbeo.com/cost-of-living/in/Lima",
"scrapedAt": "2026-10-04T04:01:58.916Z"
}

πŸ’° How much does it cost to scrape Numbeo?

EventPrice
Price item (city or country)$0.01 per row ($10 per 1,000)
Budget summary, quality of life, crime, property, health care, pollution, traffic$0.02 each per place
Ranking row$0.002 ($2 per 1,000)

The Pricing tab on the actor page is the source of truth if it ever differs. Examples (same on every plan tier):

  • 1,000 price rows cost $10, about 18 cities of 55 items.
  • 1 city with prices and the budget summary (56 rows) costs about $0.57.
  • Berlin plus Germany with prices, both budgets and 20 ranking rows (cloud run ZCeG3VoK3yR4Skt0R, 132 rows) cost $1.14 + 20 x $0.002 = $1.18.
  • 1,000 ranking rows cost $2.

This actor costs more per price row than the cheapest rivals, see the comparison below. Unrecognised slugs, error rows and failed requests are never billed. A run that delivers nothing fails and charges nothing. Max total charge is respected. Free Apify plan users are limited to 10 rows per run as a preview.

πŸš€ How to scrape Numbeo cost of living data in 3 steps

  1. Add places in Cities (Berlin, New-York, Austin, TX, or a full Numbeo URL) and/or Countries (Germany). The API default is empty.
  2. Pick a currency and switch on the modules you need. Prices and the budget summary are on by default.
  3. Click Start, then download the dataset as CSV, Excel, JSON or XML.

βš™οΈ Numbeo scraper input

FieldDefaultWhat it does
cities, countriesemptyCity slugs, "City, State", full URLs, or country names.
displayCurrencyUSDCurrency for every price and budget, 161 options.
maxItemsnoneCap on rows delivered. Free plan: 10.
includePrices, includeCityIndicestruePrice rows (55 per place) and the budget summary.
includeQualityOfLife, includeCrime, includeProperty, includeHealthCare, includePollution, includeTrafficfalseOne index row per place ($0.02).
includeRankingsfalseAdd worldwide ranking tables ($0.002 per row).
rankingTypes["cost-of-living"]cost-of-living, quality-of-life, crime, property, health-care, pollution, traffic.
rankingScopecitiescities or countries (latest half-year edition).
maxCities50Rows kept per ranking, 1 to 1000.
proxyConfigurationApify RESIDENTIALNumbeo answers datacenter IPs with HTTP 503.
{
"cities": ["Berlin"],
"countries": ["Germany"],
"displayCurrency": "EUR",
"includeRankings": true,
"rankingTypes": ["cost-of-living"],
"maxCities": 20,
"maxItems": 200
}

πŸ” Numbeo scraper vs alternatives on Apify

Read from the Store pages and prices on 2026-10-10. Prices are the Free-tier price per result.

This actorlogioversolidcode
Price per result$0.01 per price row, $0.02 per index row$0.0035 plus $0.00005 start$0.00215 plus $0.005 start
Countries and rankingsYes, 7 ranking types, cities or countriesYes, 7 categories, city rankingsYes, 7 categories, city rankings
Currencies161, budgets includedNone listed in its input24

A 55-item city with its budget row costs about $0.57 here and about $0.20 at logiover, so this actor is roughly three times more expensive per price row. The difference buys the family and single-person budgets, 161 currencies, ratings and contributors columns and a dataset schema with five views. If you only need raw prices in USD at the lowest cost, logiover or solidcode is the better buy. parseforge ($0.0049) offers a two-city compare mode that this actor does not have, and bovi ($0.00375) covers cities only.

πŸ’Ό Use cases for Numbeo cost of living data

  • Compensation localization: price an offer for every office city from the same basket.
  • Relocation and market entry: compare rent, groceries and safety in the client's currency, or build dated "cheapest cities" lists from the rankings.

πŸ”Œ Run the Numbeo scraper via API, schedule and integrations

curl -X POST "https://api.apify.com/v2/acts/RecordsData~numbeo-cost-of-living-scraper/runs?token=YOUR_APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{"cities":["Lima"],"countries":["Peru"],"displayCurrency":"USD","includeCrime":true}'

Schedule it monthly or send results to Google Sheets, Make, Zapier or n8n.

πŸ€– Numbeo scraper MCP server for AI agents (Claude, Cursor, VS Code)

Connect any MCP client through the Apify MCP server. This URL exposes only this actor as a tool:

https://mcp.apify.com?tools=RecordsData/numbeo-cost-of-living-scraper

Example agent prompt: "Use the Numbeo cost of living scraper to get prices in EUR for Lisbon, Madrid and Berlin, include the budget summary and crime modules, then tell me which city is cheapest for a single person and which has the lowest crime index. Also turn on rankings with maxCities 20 and tell me where Berlin ranks."

Tool description: the tool scrapes Numbeo cost of living, rankings and city indices for the cities and countries you give it, and returns dataset rows. It takes the same input as the actor (cities, countries, displayCurrency, module switches, includeRankings, rankingTypes, maxCities, maxItems). Set maxItems to keep agent runs small and cheap.

The actor reads public Numbeo pages that anyone can open without logging in and collects aggregate city and country statistics, not personal data. You remain responsible for using the data in line with Numbeo's terms and the laws that apply to you. This is an independent tool and is not affiliated with Numbeo.

❓ Numbeo scraper FAQ

How do I export Numbeo prices for a city to CSV or Excel?

Enter the city in the Cities field, for example Buenos-Aires, then click Start. When the run finishes, open the dataset tab and choose CSV, Excel, JSON, XML or HTML. Each Numbeo price becomes one spreadsheet-ready row with item, category, average price and low and high range.

Can I get Numbeo prices in my own currency?

Yes. Set displayCurrency to any of 161 currency codes. Bitcoin and the four metals (XAU, XAG, XPD, XPT) are left out because Numbeo prints 0.00 for every price in them. Numbeo does the conversion, so every row in one run uses the same currency. For several currencies, start one run per currency.

How do I write city names for the Numbeo scraper?

Write each city as in the Numbeo URL, such as Mexico-City or San-Francisco. Spaces are converted to dashes for you. You can also write "City, State" (for example Austin, TX) or paste a full Numbeo URL. When unsure, search the city on numbeo.com and copy the last part of the address.

Why did I get 0 results for my city on Numbeo?

The name most likely does not match the one Numbeo uses. Open numbeo.com, search the city, and copy the last part of its URL into the Cities field. The scraper returns one free error row naming the place it could not find, and nothing is charged for it.

Why does the Numbeo scraper run fail instead of returning empty data?

If Numbeo blocks every request, or its page layout changes so that no rows can be read, the run is marked as failed with a clear message instead of finishing with an empty dataset. A failed run delivers nothing and you are not charged for it, so an empty result never costs you money.

Do I pay for Numbeo modules I switch off?

No. Each module is its own billing event. A module you leave off produces no rows and no charge, and you are billed only for rows actually delivered. Price rows cost $0.01, index and budget rows $0.02 each, and ranking rows $0.002 each.

Where do the family and single-person budgets come from on Numbeo?

They are the estimated monthly costs that Numbeo prints in the summary of each cost of living page. The scraper copies them into the city-summary or country-summary row as familyOfFourMonthlyCost and singlePersonMonthlyCost. Both exclude rent and use the currency in the currency column.

Why is residential proxy on by default for the Numbeo scraper?

In testing, Numbeo answered every datacenter or no-proxy request from the cloud with HTTP 503, while residential IPs worked: about 2 percent of 104 residential requests needed a retry on a new IP and no run failed. So the default is Apify RESIDENTIAL proxy. Turning the proxy off makes the run fail.

How many cities can one Numbeo scraper run cover?

As many as you list in the Cities and Countries fields. One city with every priced module on produces 59 rows, 55 price rows plus 4 module rows, in the Lima test. Set maxItems or the Max total charge on the run to cap the size and cost of a large run.

How fresh is the Numbeo data?

The scraper reads each page live from Numbeo at run time, so a run returns whatever Numbeo shows at that moment. Every row carries a scrapedAt timestamp plus the lastUpdated date Numbeo shows. Schedule monthly runs to track changes. Country rankings use the latest half-year edition, shown in period.

Can I scrape whole countries, not just cities?

Yes. Add names to the countries field, for example Germany or South Korea. You get country-price rows for the same 55 items, a country-summary budget row, and country index rows when those modules are on. Country price rows are billed as price items.

How do the Numbeo rankings work, and what does maxCities do?

Switch on includeRankings, choose rankingTypes and rankingScope (cities, about 300 to 560 rows, or countries). maxCities (default 50, 1 to 1000) keeps the first rows of each ranking. One request returns a whole table, so rankings are cheap: each row costs $0.002, about $1 for 500 rows.

Are health care, pollution and traffic included, and do they cost anything?

They are separate switches (includeHealthCare, includePollution, includeTraffic), all off by default. Each gives one row per place with the index, its sub-scores in metrics and Numbeo's labels in ratings. Each row is billed at $0.02, the same as quality of life, crime and property rows, so all three cost $0.06 per place.

Why are the default cities empty now?

Earlier versions scraped Buenos-Aires when you gave no input. Now the API default is empty, so a run with no cities, countries or rankings returns one free error row saying nothing was requested, instead of an unwanted scrape. The Console form still shows Buenos-Aires and Madrid as an example.

What happens when a run only partly succeeds?

Each page gets at most 6 attempts, each on a new residential IP. The scan stops after 3 failed pages in a row, 60 seconds of consecutive failures, or 25 unknown places in a row. If some rows were delivered, the run ends as "Partial: ..." with status success and the rows are kept and billed. If none were, it fails and charges nothing.

Does the Numbeo scraper have a compare mode for two cities?

No. There is no input for pairs of places and no comparison row. A comparison is a join of two city results on the item column, which you can do in a spreadsheet or in code from the output.

What changed in the budget and currency columns?

Budget rows are now always in the currency named in currency; before, an amount in the local currency could carry the chosen display currency label. Prices in dotted-symbol currencies (Swiss franc, Peruvian sol) were silently dropped and are now delivered. Crime rows gained 15 perception metrics, and a property key with a trailing space is now trimmed.

πŸ”— More RecordsData scrapers

H1B Salaries Scraper, Remote Jobs Aggregator and MercadoLibre Scraper.

πŸ†˜ Support

Open an issue on the Issues tab of the actor page or write to contact.punkrecordsdata@gmail.com.

Last updated: 2026-10-11