Tony Wang6 min de lecturaCómo scrapear Numbeo en 2026 (API y Python)
Scrapea coste de vida y calidad de vida de Numbeo en 2026 — DIY, no-code o API estructurada, más los ToS reales y la API de pago.
La forma más rápida de scrapear Numbeo en 2026 es llamar a una API estructurada que devuelve JSON normalizado — precios de coste de vida desglosados e índices compuestos de calidad de vida, por ciudad o país — en lugar de parsear tú mismo las páginas renderizadas de Numbeo. Numbeo es la fuente por defecto en la web para comparar el coste de vida entre ciudades, y sí tiene una API oficial, pero es una suscripción comercial de pago en lugar de un registro rápido y gratuito. Esta guía cubre DIY, no-code y una API estructurada, además de lo que realmente permiten los términos de Numbeo.
¿Por qué scrapear Numbeo?
Los datos de precios e índices de Numbeo, obtenidos por crowdsourcing, sustentan un segmento específico de la investigación de ubicaciones:
- Investigación de coste de vida — comparar alquiler, comestibles, restaurantes y suministros entre ciudades para planificar una mudanza o analizar mercados.
- Herramientas de trabajo remoto y nómadas digitales — clasificar ciudades candidatas por asequibilidad, seguridad y calidad de vida para un producto de "dónde debería vivir".
- Análisis de asequibilidad inmobiliaria — combinar índices de alquiler y precio de propiedad con datos de ingresos locales para puntuar la asequibilidad de vivienda por mercado.
- Investigación salarial y de compensación — ajustar ofertas salariales nominales según el índice de coste de vida de una ciudad para comparar el poder adquisitivo real entre ubicaciones.
- Benchmarking a nivel de país y región — hacer seguimiento de cómo se compara el índice de coste de vida o de criminalidad de un país con sus vecinos, o cómo evoluciona con el tiempo.
¿Es legal scrapear Numbeo?
Opción 1: DIY en Python (y por qué falla)
Un scraper DIY solicita una página de ciudad o de índice de Numbeo y parsea las tablas renderizadas:
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
Funciona en la demo y luego se rompe:
- Los ToS lo restringen explícitamente. Los Términos de Uso de Numbeo nombran directamente el scraping y crawling automatizado y exigen permiso escrito previo — un riesgo real, no teórico.
- Tablas anidadas con múltiples secciones. Las páginas de coste de vida reparten los precios en una docena de tablas por categoría (restaurantes, mercados, transporte, suministros, alquiler y más); las páginas de índices se dividen en sus propias subsecciones tituladas — cada una necesita su propia lógica de parseo, que se rompe con cualquier cambio de markup.
- Sin descubrimiento de ciudades. Numbeo no tiene búsqueda pública de ciudades ni autocompletado — tienes que conocer de antemano (o extraer de una página de país/rankings) el slug exacto que Numbeo espera.
- Las familias de índices multiplican la superficie. Quality of life, crime, health care, pollution, traffic y property investment son páginas separadas con distintos diseños de sección, así que "obtener datos de Numbeo" es en realidad seis o más parsers distintos.
Opción 2: Herramientas no-code
Existen actores de scraping de marketplace para extracciones puntuales de Numbeo (tablas de coste de vida exportadas a CSV), y son una forma razonable de conseguir una instantánea para una hoja de cálculo. No aguantan en un pipeline recurrente — sin programación, sin esquema normalizado entre ciudades, y la misma exposición a los Términos de Uso que el DIY, ya que Numbeo exige permiso para la recopilación automatizada sin importar qué herramienta la realice.
Opción 3: Una API estructurada de Numbeo
Para un flujo de trabajo repetible y con el permiso adecuado, una Numbeo scraping API devuelve JSON normalizado sin que tengas que mantener ningún parseo de páginas. Obtén el coste de vida de una ciudad:
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 no tiene un endpoint público de búsqueda de ciudades, así que descubre primero un city_slug válido a través del endpoint de país, y luego obtén un índice — quality of life, crime, health care, pollution, traffic o property investment — para esa misma ciudad:
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"]
Los endpoints de índices devuelven un sobre compartido sin importar el index — valores principales más (en la mayoría de familias) subsecciones tituladas con métricas individuales:
{
"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"
}
}
Los endpoints de rankings (cost-of-living/rankings, cost-of-living/rankings-by-country, indices/rankings, indices/rankings-by-country) funcionan igual y aceptan scope/period en los endpoints con ámbito actual para instantáneas históricas donde Numbeo las publica. Guarda una fila por ciudad o país y vuelve a ejecutarlo según un calendario.
Qué puedes recopilar
Datos de coste de vida por ciudad y por país: precios desglosados por categoría (restaurantes, mercados, transporte, suministros, alquiler y más) con price, range_low, range_high y símbolo de moneda, además de los seis índices de coste principales (cost_of_living_index, rent_index, cost_of_living_plus_rent_index, groceries_index, restaurant_price_index, local_purchasing_power_index). Datos de índices por ciudad y por país para seis familias — quality of life, crime, health care, pollution, traffic y property investment — como valores principales más desgloses de subíndices titulados. Listas rankeadas de ciudades y países para ambas familias, con metadatos contributors_12mo/contributors_note y last_update en cada respuesta. Solo datos públicos.
Limitaciones y desafíos comunes
- Crowdsourcing, no auditado. Los precios de Numbeo provienen de visitantes del sitio que indican lo que pagan —
contributors_12moycontributors_notete dicen el tamaño de la muestra detrás de un número, y una ciudad con unos cientos de colaboradores (Los Ángeles, Zúrich) es mucho más fiable que una con apenas un puñado. Trata las ciudades con pocos colaboradores como orientativas, no como precisas. - Sin endpoint de búsqueda de ciudades. No hay autocompletado — resuelve un
city_sluga partir de una respuesta de país o de rankings antes de solicitar el detalle de la ciudad. - Seis familias de índices separadas. Quality of life, crime, health care, pollution, traffic y property investment devuelven cada una una forma de respuesta distinta (algunas tienen
sections, property investment tieneprice_categoriesen su lugar) — planifica tu esquema por familia, no con una forma genérica. - Limitado por los ToS para escalar. Los propios términos de Numbeo exigen permiso escrito para la recopilación automatizada y un plan de pago para el uso comercial — acota cualquier proyecto a lo que realmente sea uso de referencia público, y pasa por la propia API o licencia de Numbeo para redistribución comercial a gran escala.
- Solo datos públicos. Esto recopila lo que Numbeo ya muestra públicamente — nunca una forma de construir una base de datos de coste de vida competidora a la escala de Numbeo.
Dónde se usa esto
- Herramientas de reubicación y trabajo remoto — clasificar ciudades por asequibilidad y calidad de vida para un producto de decisión de ubicación.
- Investigación de compensación — ajustar cifras salariales según el índice de coste de vida de una ciudad para comparar ofertas entre mercados.
- Modelos de asequibilidad inmobiliaria — combinar índices de alquiler y de propiedad con datos de ingresos para puntuar mercados de vivienda.
- Investigación de mercado y de país — comparar los índices de coste, seguridad y sanidad de un país frente a sus pares.
Fuentes
Empieza a recopilar
Pruébalo primero, gratis: pasa cualquier URL pública por el Free Web Scraper, o comprueba si un sitio bloquea bots con el Anti-Bot Checker — sin registro.
Prueba los endpoints de coste de vida e índices en el Playground, revisa el esquema en la documentación de la API y consulta los precios. El coste de vida te dice cuánto cuestan las cosas; Yahoo Finance te dice cuánto gana la gente en mercados y salarios dentro de esa misma economía — combina ambos para una investigación real del poder adquisitivo. Si la asequibilidad de vivienda es tu enfoque, how to scrape real estate listings encaja directamente con los índices de alquiler y propiedad de Numbeo para un panorama completo de coste de vida más vivienda.
Parte de nuestra serie de guías how-to-scrape — todas las plataformas que cubrimos, en un solo índice.
Preguntas frecuentes
¿Numbeo tiene una API oficial?
Sí — Numbeo vende una Data API de pago con planes mensuales desde 260 $/mes por 200.000 consultas, facturados a través de FastSpring. No es un registro de autoservicio gratuito, por lo que una API de scraping estructurada es la opción más cómoda para uso ligero o investigación.
¿Es legal scrapear Numbeo?
Los Términos de Uso de Numbeo prohíben el scraping o crawling automatizado sin permiso escrito previo, pero permiten el uso personal, académico y periodístico de los datos mostrados públicamente con atribución. El uso comercial requiere uno de los planes de pago de Numbeo o una licencia de datos.
¿Qué tan fiables son los datos de coste de vida de Numbeo?
Provienen de crowdsourcing entre visitantes del sitio en lugar de estar auditados, así que la fiabilidad depende del número de colaboradores — ciudades con muchos colaboradores como Los Ángeles o Zúrich son mucho más fiables que localidades pequeñas con apenas un puñado de entradas.
¿Cómo encuentro el slug de Numbeo de una ciudad?
No hay un endpoint público de búsqueda de ciudades. Llama a los endpoints cost-of-living/country o indices/rankings especificando un país, y lee city_slug del array cities que devuelven.
¿Qué familias de índices cubre Numbeo?
Seis: quality of life, crime, health care, pollution, traffic y property investment. Cada una devuelve valores de índice principales más, en la mayoría de familias, subsecciones tituladas de subíndices o categorías de precios desglosadas.
¿Puedo obtener rankings históricos de Numbeo, no solo los actuales?
Los endpoints de rankings aceptan los parámetros scope y period para instantáneas históricas, allí donde el propio Numbeo publica ese histórico.
¿Cuál es la diferencia entre los datos de coste de vida y los de índices?
Los endpoints de coste de vida devuelven precios reales y desglosados (alquiler, comestibles, comida fuera de casa). Los endpoints de índices devuelven valores compuestos y normalizados (escala 0-100+) para calidad de vida, seguridad y dimensiones similares.