Milanuncios API: anuncios, motor e inmobiliaria en JSON
¿Milanuncios tiene API? Abierta para desarrolladores, no. Esta interfaz recoge lo que milanuncios.com publica a la vista de todos — precio, provincia y población, estado, envío, particular o profesional — y lo devuelve en JSON. Si lo que buscas es subir o gestionar anuncios desde una cuenta Pro, esto no te sirve: aquí solo se leen los anuncios ya publicados, tal como los ve quien compra.
Endpoints
| endpoint | Qué devuelve | Obligatorios |
|---|---|---|
| search | Búsqueda general por palabra clave y/o categoría, con filtros de precio, provincia o comunidad, estado, envío, bajada de precio y si vende un particular o un profesional. También anuncios de «se busca». | todos opcionales |
| cars/search | Motor: coches, todoterrenos, clásicos, motos, furgonetas, camiones, caravanas, autocaravanas y quads, con marca, año, kilómetros, combustible, cambio y potencia. Precio al contado y financiado por separado. | todos opcionales |
| real_estate/search | Inmuebles en venta, alquiler, habitación compartida o alquiler vacacional: habitaciones, baños, m², precio por m², certificado energético, agencia o particular. | transaction |
| listing | Todo el anuncio a partir del id o la URL: descripción, todas las fotos, ruta de categoría, transportistas de envío con su precio y la valoración del vendedor. | ad_id |
Cada llamada se cobra en créditos. Las llamadas fallidas y bloqueadas son gratuitas.
Ejemplo que funciona
En milanuncios los anuncios se renuevan y vuelven arriba, así que el orden no dice nada de su antigüedad: en esta respuesta 18 de 20 filas eran anuncios renovados. published_at es la primera publicación y renewed_at la última renovación; mide la antigüedad con la primera.
curl -X POST https://api.reefapi.com/milanuncios/v1/search \
-H "x-api-key: TU_CLAVE" \
-H "content-type: application/json" \
-d '{"category": "2056", "province": "valencia", "price_max": 1500, "limit": 20}'{
"ok": true,
"data": {
"listings": [
{
"ad_id": "588131050",
"title": "Bicicleta eléctrica",
"category": "Bicicletas eléctricas",
"price": 1100,
"currency": "EUR",
"published_at": "2026-03-26T21:49:08Z",
"renewed_at": "2026-10-22T22:41:27Z",
"is_renewed": true,
"location": { "province": "Valencia", "city": "Carlet" },
"seller": { "type": "private" },
"condition": "like_new",
"shipping": { "shippable": true }
},
...
],
"total": 80,
"sort_applied": "highlighted_first_then_newest_renewal",
"has_more": true
},
"meta": { "record_count": 20, "cache_hit": false, "mode": "live" }
}Scraping de milanuncios por tu cuenta: dónde se rompe
El primer muro aparece antes de escribir el parser: la web de milanuncios.com contesta con una página de reCAPTCHA a las IPs de centro de datos y a las conexiones que no salen desde España. Un scraper lanzado desde un servidor cualquiera se queda ahí.
Los fallos más caros no dan error. Pasada la posición 8.200, el buscador no avisa de que no hay más: vuelve a servir la primera página. Y un filtro con un nombre que el servicio no reconoce se ignora sin más, así que recibes el listado entero creyendo que está filtrado. Aquí una página fuera de rango se rechaza con un error claro, y cada filtro que ofrecemos se comprobó contra resultados reales.
Para sacar datos una sola vez, montarte un script compensa. Cuando el seguimiento es diario, lo que pesa es enterarse a tiempo de estos fallos silenciosos, y eso aquí corre de nuestra cuenta.
Límites y notas honestas
- No es la API oficial de milanuncios y no tenemos ningún acuerdo con milanuncios.
- No hay ordenación por precio ni por fecha: milanuncios sirve primero los destacados y después por última renovación. sort_applied lo indica en cada respuesta.
- Un destacado publicado en varias provincias aparece también en la tuya aunque su ubicación principal sea otra (lo vimos con un anuncio de Madrid en un filtro de Valencia). Las provincias adicionales vienen en location.extra_provinces.
- Un precio de 0 € no es un precio: servicios y anuncios «a consultar» vuelven con price null y price_not_published true.
- La paginación llega hasta la posición 8.200. En motos, la ficha completa no trae año ni kilómetros (están en la fila de búsqueda), y el modelo del coche solo aparece en el título.
- No guardamos copias: cada llamada vuelve a leer milanuncios en el momento en que la haces.