Tony Wang6 Min. LesezeitNumbeo scrapen in 2026 (API & Python)
Numbeo-Lebenshaltungskosten und Lebensqualität-Daten 2026 scrapen — per DIY, No-Code oder strukturierter API, plus die echte ToS- und Paid-API-Lage.
Am schnellsten scrapst du Numbeo 2026, indem du eine strukturierte API aufrufst, die normalisiertes JSON zurückgibt — aufgeschlüsselte Cost-of-Living-Preise und zusammengesetzte Quality-of-Life-Indizes, pro Stadt oder Land — statt Numbeos gerenderte Seiten selbst zu parsen. Numbeo ist die Standardquelle im Web für Städtevergleiche bei den Lebenshaltungskosten und hat tatsächlich eine offizielle API, aber die ist ein bezahltes Kommerz-Abo statt einer schnellen kostenlosen Anmeldung. Dieser Guide zeigt dir DIY, No-Code und eine strukturierte API — plus, was Numbeos Bedingungen wirklich erlauben.
Warum Numbeo scrapen?
Numbeos crowdgesourcte Preis- und Indexdaten bilden die Grundlage für einen bestimmten Ausschnitt der Standort-Recherche:
- Cost-of-Living-Recherche — Miete, Lebensmittel, Restaurants und Nebenkosten zwischen Städten vergleichen, für Umzugsplanung oder Marktanalysen.
- Remote-Work- und Digital-Nomad-Tools — Kandidatenstädte nach Erschwinglichkeit, Sicherheit und Lebensqualität ranken, für ein „Wo sollte ich leben"-Produkt.
- Immobilien-Erschwinglichkeitsanalyse — Miet- und Immobilienpreis-Indizes mit lokalen Einkommensdaten kombinieren, um die Wohn-Erschwinglichkeit pro Markt zu bewerten.
- Gehalts- und Vergütungsrecherche — nominale Gehaltsangebote anhand des Cost-of-Living-Index einer Stadt anpassen, um die reale Kaufkraft zwischen Standorten zu vergleichen.
- Benchmarking auf Länder- und Regionsebene — verfolgen, wie sich der Cost-of-Living- oder Crime-Index eines Landes im Vergleich zu seinen Nachbarn verhält oder wie er sich über die Zeit verändert.
Ist es legal, Numbeo zu scrapen?
Option 1: DIY in Python (und warum das scheitert)
Ein DIY-Scraper fragt eine Numbeo-Stadt- oder Index-Seite ab und parst die gerenderten Tabellen:
import requests
from bs4 import BeautifulSoup
resp = requests.get(
"https://www.numbeo.com/cost-of-living/in/Los-Angeles",
headers={"User-Agent": "Mozilla/5.0 (compatible; research-bot/1.0)"},
)
soup = BeautifulSoup(resp.text, "html.parser")
# Prices live in nested tables split across "Restaurants", "Markets",
# "Transportation", "Utilities", "Rent Per Month" sections — each needs
# its own row/column parsing logic
Es funktioniert in der Demo und geht dann kaputt:
- Die ToS schränken das ausdrücklich ein. Numbeos Nutzungsbedingungen nennen automatisiertes Scraping und Crawling direkt und verlangen vorherige schriftliche Erlaubnis — ein reales Risiko, kein theoretisches.
- Verschachtelte Tabellen mit mehreren Abschnitten. Cost-of-Living-Seiten verteilen Preise auf ein Dutzend Kategorie-Tabellen (Restaurants, Märkte, Transport, Nebenkosten, Miete und mehr); Index-Seiten sind in eigene, betitelte Unterabschnitte gegliedert — jede braucht eigene Parsing-Logik, die bei Markup-Änderungen kaputtgeht.
- Keine City-Discovery. Numbeo hat keine öffentliche City-Suche oder Autocomplete — du musst den exakten Slug, den Numbeo erwartet, schon kennen (oder ihn von einer Country-/Rankings-Seite scrapen).
- Index-Familien vervielfachen den Aufwand. Quality of Life, Crime, Health Care, Pollution, Traffic und Property Investment sind jeweils eigene Seiten mit unterschiedlichem Aufbau — „Numbeo-Daten holen" heißt also eigentlich sechs-plus verschiedene Parser.
Option 2: No-Code-Tools
Marketplace-Scraper-Actors gibt es für einmalige Numbeo-Abzüge (Cost-of-Living-Tabellen als CSV-Export), und das ist ein vernünftiger Weg, um einen Snapshot für eine Tabelle zu holen. In einer wiederkehrenden Pipeline halten sie aber nicht stand — kein Scheduling, kein normalisiertes Schema über Städte hinweg, und dasselbe Risiko bei den Nutzungsbedingungen wie bei DIY, denn Numbeo verlangt für automatisierte Erhebung eine Erlaubnis, egal welches Tool sie durchführt.
Option 3: Eine strukturierte Numbeo-API
Für einen wiederholbaren, erlaubnis-konformen Workflow liefert eine Numbeo scraping API normalisiertes JSON, ohne dass du Seiten-Parsing pflegen musst. Hol die Lebenshaltungskosten einer Stadt:
curl "https://api.crawlora.net/api/v1/numbeo/cost-of-living/city/Los-Angeles" \
-H "x-api-key: $CRAWLORA_API_KEY"
{
"code": 200,
"msg": "OK",
"data": {
"city": "Los Angeles, CA",
"city_slug": "Los-Angeles",
"country": "United States",
"categories": [
{
"category": "Restaurants",
"items": [
{ "name": "Meal at an Inexpensive Restaurant", "currency_symbol": "$", "price": 25, "range_low": 16, "range_high": 45 }
]
},
{
"category": "Rent Per Month",
"items": [
{ "name": "1 Bedroom Apartment in City Centre", "currency_symbol": "$", "price": 2563.18, "range_low": 2000, "range_high": 3400 }
]
}
],
"contributors_12mo": 178,
"last_update": "13 July 2026",
"source_url": "https://www.numbeo.com/cost-of-living/in/Los-Angeles"
}
}
Numbeo hat keinen öffentlichen City-Search-Endpoint, ermittle also zuerst einen gültigen city_slug über den Country-Endpoint und hol dann einen Index — Quality of Life, Crime, Health Care, Pollution, Traffic oder Property Investment — für dieselbe Stadt:
import requests
h = {"x-api-key": "YOUR_API_KEY"}
base = "https://api.crawlora.net/api/v1/numbeo"
# Discover city slugs for a country
country = requests.get(f"{base}/cost-of-living/country", headers=h, params={"country": "United States"}).json()["data"]
slug = country["cities"][0]["city_slug"]
# Cost-of-living detail for that city
col = requests.get(f"{base}/cost-of-living/city/{slug}", headers=h).json()["data"]
# Crime index for that city
crime = requests.get(f"{base}/indices/city/{slug}", headers=h, params={"index": "crime"}).json()["data"]
Die Indices-Endpoints liefern unabhängig vom index denselben Umschlag — Headline-Werte plus (bei den meisten Familien) betitelte Unterabschnitte mit einzelnen Metriken:
{
"code": 200,
"msg": "OK",
"data": {
"index": "crime",
"city": "Los Angeles, CA",
"city_slug": "Los-Angeles",
"country": "United States",
"headline_indices": [
{ "name": "Crime Index", "value": 53.83 },
{ "name": "Safety Index", "value": 46.17 }
],
"sections": [
{
"title": "Crime rates in Los Angeles, CA, United States",
"rows": [{ "name": "Level of crime", "value": 61.08, "qualifier": "High" }]
}
],
"contributors_note": "Contributors: 486",
"last_update": "13 June 2026",
"source_url": "https://www.numbeo.com/crime/in/Los-Angeles"
}
}
Die Ranking-Endpoints (cost-of-living/rankings, cost-of-living/rankings-by-country, indices/rankings, indices/rankings-by-country) funktionieren genauso und akzeptieren scope/period auf den aktuell gescopten Endpoints für historische Snapshots, wo Numbeo sie veröffentlicht. Speichere eine Zeile pro Stadt oder Land und lass es nach Zeitplan erneut laufen.
Was du sammeln kannst
Cost-of-Living-Daten pro Stadt und Land: aufgeschlüsselte Preise nach Kategorie (Restaurants, Märkte, Transport, Nebenkosten, Miete und mehr) mit price, range_low, range_high und Währungssymbol, plus die sechs Headline-Cost-Indizes (cost_of_living_index, rent_index, cost_of_living_plus_rent_index, groceries_index, restaurant_price_index, local_purchasing_power_index). Index-Daten pro Stadt und Land für sechs Familien — Quality of Life, Crime, Health Care, Pollution, Traffic und Property Investment — als Headline-Werte plus betitelte Sub-Index-Aufschlüsselungen. Gerankte Städte- und Länderlisten für beide Familien, mit contributors_12mo/contributors_note und last_update-Metadaten bei jeder Response. Nur öffentliche Daten.
Grenzen und typische Herausforderungen
- Crowdgesourct, nicht geprüft. Numbeos Preise stammen von Website-Besuchern, die eintragen, was sie zahlen —
contributors_12moundcontributors_noteverraten dir die Stichprobengröße hinter einer Zahl, und eine Stadt mit ein paar hundert Beitragenden (Los Angeles, Zürich) ist deutlich zuverlässiger als eine mit einer Handvoll. Behandle Städte mit wenigen Beitragenden als Richtwert, nicht als präzise Zahl. - Kein City-Search-Endpoint. Es gibt kein Autocomplete — löse einen
city_slugaus einer Country- oder Rankings-Response auf, bevor du City-Detail anfragst. - Sechs separate Index-Familien. Quality of Life, Crime, Health Care, Pollution, Traffic und Property Investment liefern jeweils eine andere Response-Form (manche haben
sections, Property Investment stattdessenprice_categories) — plane dein Schema pro Familie, nicht mit einer generischen Form. - Durch die ToS für Skalierung begrenzt. Numbeos eigene Bedingungen verlangen schriftliche Erlaubnis für automatisierte Erhebung und einen Bezahlplan für kommerzielle Nutzung — beschränke jedes Projekt auf echte öffentliche Referenznutzung und geh für umfangreiche kommerzielle Weiterverteilung über Numbeos eigene API oder Lizenz.
- Nur öffentliche Daten. Das sammelt, was Numbeo bereits öffentlich anzeigt — nie ein Weg, um eine konkurrierende Cost-of-Living-Datenbank in Numbeos Größenordnung aufzubauen.
Wo das eingesetzt wird
- Umzugs- und Remote-Work-Tools — Städte nach Erschwinglichkeit und Lebensqualität ranken, für ein Standort-Entscheidungsprodukt.
- Vergütungsrecherche — Gehaltszahlen anhand des Cost-of-Living-Index einer Stadt anpassen, um Angebote über Märkte hinweg zu vergleichen.
- Immobilien-Erschwinglichkeitsmodelle — Miet- und Immobilien-Indizes mit Einkommensdaten kombinieren, um Wohnungsmärkte zu bewerten.
- Markt- und Länderrecherche — Cost-, Safety- und Health-Care-Indizes eines Landes gegen Vergleichsländer benchmarken.
Sources
Leg los mit dem Sammeln
Probier es zuerst kostenlos aus: jage eine beliebige öffentliche URL durch den Free Web Scraper oder prüfe mit dem Anti-Bot Checker, ob eine Seite Bots blockiert — ohne Anmeldung.
Teste die Cost-of-Living- und Indices-Endpoints im Playground, sieh dir das Schema in den API docs an und wirf einen Blick aufs pricing. Lebenshaltungskosten sagen dir, was Dinge kosten; Yahoo Finance sagt dir, was Menschen an Märkten und Gehältern in derselben Volkswirtschaft verdienen — kombiniere beides für echte Kaufkraft-Recherche. Wenn Wohn-Erschwinglichkeit dein Thema ist, passt how to scrape real estate listings direkt zu Numbeos Miet- und Immobilien-Indizes, für ein vollständiges Bild aus Lebenshaltungskosten plus Wohnen.
Häufig gestellte Fragen
Hat Numbeo eine offizielle API?
Ja — Numbeo verkauft eine kostenpflichtige Data API mit Monatsplänen ab 260 $/Monat für 200.000 Abfragen, abgerechnet über FastSpring. Das ist keine kostenlose Self-Service-Anmeldung, weshalb eine strukturierte Scraping-API die reibungslosere Option für leichtere Nutzung oder Recherche ist.
Ist es legal, Numbeo zu scrapen?
Numbeos Nutzungsbedingungen verbieten automatisiertes Scraping oder Crawling ohne vorherige schriftliche Erlaubnis, erlauben aber private, akademische und journalistische Nutzung öffentlich angezeigter Daten mit Quellenangabe. Kommerzielle Nutzung erfordert einen von Numbeos Bezahlplänen oder eine Datenlizenz.
Wie zuverlässig sind Numbeos Cost-of-Living-Daten?
Sie stammen von Website-Besuchern (Crowdsourcing) statt geprüft zu werden, die Zuverlässigkeit hängt also von der Zahl der Beitragenden ab — Städte mit vielen Beitragenden wie Los Angeles oder Zürich sind deutlich verlässlicher als Kleinstädte mit nur einer Handvoll Einträgen.
Wie finde ich den Numbeo-Slug einer Stadt?
Es gibt keinen öffentlichen City-Search-Endpoint. Rufe die cost-of-living/country- oder indices-rankings-Endpoints für ein Land auf und lies city_slug aus dem zurückgegebenen cities-Array aus.
Welche Index-Familien erfasst Numbeo?
Sechs: Quality of Life, Crime, Health Care, Pollution, Traffic und Property Investment. Jede liefert Headline-Indexwerte plus, bei den meisten Familien, betitelte Sub-Index-Abschnitte oder aufgeschlüsselte Preiskategorien.
Bekomme ich auch historische Numbeo-Rankings, nicht nur aktuelle?
Die Ranking-Endpoints akzeptieren scope- und period-Parameter für historische Snapshots, dort wo Numbeo selbst diese Historie veröffentlicht.
Was ist der Unterschied zwischen Cost-of-Living- und Indices-Daten?
Cost-of-Living-Endpoints liefern tatsächliche, aufgeschlüsselte Preise (Miete, Lebensmittel, Restaurantessen). Indices-Endpoints liefern zusammengesetzte, normalisierte Werte (Skala 0-100+) für Lebensqualität, Sicherheit und ähnliche Dimensionen.