Wallapop API: anuncios de segunda mano en JSON
Wallapop no ofrece una API pública a desarrolladores. Lo que vuelve aquí es lo que la aplicación muestra públicamente — título, descripción tal y como la escribió el vendedor, precio, estado y ubicación — en JSON. La búsqueda funciona alrededor de un punto, igual que en la app: en segunda mano la distancia forma parte del precio.
Endpoints
| endpoint | Qué devuelve | Obligatorios |
|---|---|---|
| search | Búsqueda de anuncios en España, Italia o Portugal por palabra clave o categoría, alrededor de un punto geográfico. | todos opcionales |
| cars/search | Búsqueda específica de coches de segunda mano alrededor de un punto, con las filas propias de vehículos. | todos opcionales |
| listing | El anuncio completo por id, slug o URL: título y descripción tal y como se publicaron, estado, precio y fotos. | listing_id |
| seller_listings | El perfil de un vendedor y sus anuncios actuales, con su valoración sobre 5. | seller_id |
| categories | El árbol de categorías del país en su propio idioma, hasta cuatro niveles. | todos opcionales |
| suggest | El autocompletado de búsqueda en el idioma del país. | query |
Cada llamada se cobra en créditos. Las llamadas fallidas y bloqueadas son gratuitas.
Ejemplo que funciona
Sin punto geográfico la búsqueda no responde a la pregunta real: en segunda mano, un precio bajo a 400 km no compite con uno más alto a 5 km. Fija el punto antes de comparar.
curl -X POST https://api.reefapi.com/wallapop/v1/search \
-H "x-api-key: TU_CLAVE" \
-H "content-type: application/json" \
-d '{"query": "bicicleta", "latitude": 40.4168, "longitude": -3.7038}'{
"ok": true,
"data": {
"results": [
{
"listing_id": "...",
"title": "...",
"price": 180.0,
"currency": "EUR",
"distance_km": 3.2
}
]
},
"meta": { "record_count": 40, "cache_hit": false, "mode": "live" }
}En lugar de tu propio scraper de Wallapop
Un scraper propio de Wallapop funciona al principio. Después llega lo que no se ve: cuando cambia la estructura de los anuncios el parser devuelve una lista vacía en vez de un error, y en recorridos largos salta la protección anti-bot a mitad de camino.
Aquí el mantenimiento es nuestro: si cambia el esquema reparamos el motor, y si hay bloqueo vuelve un código de error sin que esa llamada se cobre.
Para una extracción puntual tu script es más barato y lo decimos claro. Para un seguimiento diario, lo caro son las averías que nadie nota.
Límites y notas honestas
- No es la API oficial de Wallapop y no tenemos acuerdo con Wallapop.
- La búsqueda es geográfica: sin punto obtienes el valor por defecto, no un resultado nacional.
- La descripción vuelve tal y como la escribió el vendedor, sin limpiar ni resumir.
- Sin caché: cada llamada refleja el estado en ese momento.