Numbeo Cost of Living & Quality of Life Scraper | from $1/1K avatar

Numbeo Cost of Living & Quality of Life Scraper | from $1/1K

Pricing

from $3.75 / 1,000 numbeo cost of living & quality of life scraper | from $1/1ks

Go to Apify Store
Numbeo Cost of Living & Quality of Life Scraper | from $1/1K

Numbeo Cost of Living & Quality of Life Scraper | from $1/1K

Scrape itemized cost-of-living prices (55 items: restaurants, groceries, transport, utilities, rent, salaries) and quality-of-life indices (safety, health care, climate, pollution, traffic, purchasing power) by city from Numbeo.com. No API key required.

Pricing

from $3.75 / 1,000 numbeo cost of living & quality of life scraper | from $1/1ks

Rating

0.0

(0)

Developer

Vitalii Bondarev

Vitalii Bondarev

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Share

Numbeo Cost of Living & Quality of Life Scraper | No API key

For relocation researchers, salary calculators, and AI agents comparing city cost-of-living and livability — without a Numbeo API subscription.

No API key required. No login. $1.00/1,000 price items · $3.00/1,000 city index records (Pay Per Event). Every record includes parse_confidence (0.0–1.0) and warnings.


What data you get

Cost-of-living mode — 55 itemized prices per city

One record per item, grouped into 10 categories: Restaurants, Markets, Transportation, Utilities (Monthly), Sports and Leisure, Childcare, Clothing and Shoes, Rent Per Month, Buy Apartment Price, Salaries and Financing.

  • city, city_slug, category, item (e.g. "Meal at an Inexpensive Restaurant")
  • price, currency (parsed from the displayed value, e.g. $25.00price=25.0, currency="$")
  • price_low, price_high — the observed contributor range shown on Numbeo's price bar

Quality-of-life mode — composite indices per city

One record per city with 8 sub-indices (each a numeric score + qualitative rating: Very High/High/Moderate/Low/Very Low) and the overall composite:

  • purchasing_power_index / purchasing_power_rating
  • safety_index / safety_rating
  • health_care_index / health_care_rating
  • climate_index / climate_rating
  • cost_of_living_index / cost_of_living_rating
  • property_price_to_income_ratio / property_price_to_income_rating
  • traffic_commute_time_index / traffic_commute_time_rating
  • pollution_index / pollution_rating
  • qol_index — the overall composite Quality of Life Index

Access path & compliance

Both endpoints are server-rendered HTML, no Cloudflare/JS challenge — fetched with curl_cffi browser-TLS impersonation, no browser or residential proxy required (verified live 2026-07-15).

  • numbeo.com/robots.txt disallows only /heavy_crawling.any — both /cost-of-living/in/<city> and /quality-of-life/in/<city> are fully clean, no restrictions.
  • No login wall, no rate-limit encountered during recon probing.

Input

FieldModeDescription
modebothcost-of-living or quality-of-life
citiesbothCity names, e.g. ["New York", "London", "Tokyo"] — auto-slugified (spaces → hyphens)
maxItemscost-of-livingMax total price-item records across all cities (0 = no limit)

City names are auto-converted to Numbeo's URL slug format ("New York""New-York"). Ambiguous city names (multiple cities share a name, e.g. several "Cambridge"s) may resolve to the wrong page or a 404 — pass the exact Numbeo slug (visible in the site's own URL) for those cases.

Output examples

Cost-of-living (abridged):

{
"city": "New York", "city_slug": "New-York",
"category": "Restaurants", "item": "Meal at an Inexpensive Restaurant",
"price": 25.0, "currency": "$", "price_low": 15.0, "price_high": 50.0,
"mode": "cost-of-living", "scraped_at": "2026-07-15T10:00:00Z",
"parse_confidence": 1.0, "warnings": []
}

Quality-of-life (abridged):

{
"city": "New York", "city_slug": "New-York",
"qol_index": 136.89,
"purchasing_power_index": 105.49, "purchasing_power_rating": "High",
"safety_index": 49.20, "safety_rating": "Moderate",
"cost_of_living_index": 100.00, "cost_of_living_rating": "Very High",
"mode": "quality-of-life", "scraped_at": "2026-07-15T10:00:00Z",
"parse_confidence": 1.0, "warnings": []
}

Edge cases

  • Unresolvable / misspelled city: cost-of-living mode pushes one record with warnings: ["fetch_failed"], all price fields null; quality-of-life mode does the same for its one record.
  • City page exists but table format changed: warnings: ["no_items_parsed"] (cost-of-living) or ["no_indices_parsed"] (quality-of-life), parse_confidence near 0 — a loud signal to re-check the site structure, not a silent empty result.
  • Partial index set (rare small cities missing e.g. a Climate Index): warnings: ["some_indices_missing"], the missing sub-index fields are null, others still populate.

Known limitations

  • No historical trend data (Numbeo's /cost-of-living/prices_by_city.jsp history view isn't covered by this actor's two modes).
  • Currency is whatever Numbeo displays server-side for that city (mostly USD by default) — no currency-conversion parameter in this version.