Controla el mercado hotelero de todo un destino
Los endpoints de tarifas dan datos de un alojamiento. Este los da del mercado: quién más está a la venta esta noche, a qué precio y dónde te sitúas tú dentro de esa distribución. Configura la búsqueda de ubicación, lanza la importación y consulta todo el destino de una vez.

Qué vas a construir
Una foto diaria de un destino entero: todos los hoteles que casan con tus filtros, con precio, descuento, régimen, cancelación, nota, número de reseñas, estrellas y distancia — y la programación que lo convierte en una serie histórica.
Esto hay que montarlo antes
ObligatorioLos endpoints no aceptan texto libre: aceptan tus identificadores. Esta receta da por hecho que lo de abajo ya existe en tu cuenta, y mientras falte algo la llamada responde con un error o con menos de lo que esperas. Cada punto enlaza la receta que lo enseña.
- 01
Crea la búsqueda de ubicación
Un destino más sus filtros — estrellas, régimen, distancia, ocupación. Esos filtros son la entidad: deciden qué hoteles entran en el mercado y cuánto cuesta cada ejecución.
Guía: Da de alta los cuatro tipos de entidad de tu cuenta →
Lo mismo por API, si prefieres no pasar por el panel:
curl -X POST "https://api.veetal.app/v3/account/location-search" \
-H "veetal-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{ ... }' # see the account reference for the bodyCómo funciona
- 01Por qué esto y no ir hotel por hotel
- 02Prepara tu búsqueda de ubicación
- 03Lanza la importación, pero lee antes la estimación
- 04Consulta el mercado
- 05Conviértelo en una serie
- 06Siguientes pasos
Paso a paso
Al terminar tendrás una petición que devuelve todos los hoteles a la venta de un destino para una noche concreta —precio, nota, estrellas, tipo de habitación, política de cancelación y distancia al centro— en vez de ir preguntando hotel por hotel.
Qué necesitas: una búsqueda de ubicación (Location search) en tu cuenta —el destino más sus filtros— y el feed Booking Location Search activo.
Lo que cuesta: la ejecución que documento aquí costó 0,32 créditos y trajo 192 hoteles. El diálogo te lo estima antes de lanzarla.
Por qué esto y no ir hotel por hotel
Los endpoints de tarifas dan datos de un alojamiento. Son la herramienta adecuada cuando ya sabes quiénes son tus competidores, y la equivocada cuando la pregunta es el mercado entero: quién más está a la venta esta noche, a qué precio y dónde te sitúas tú dentro de esa distribución.
Este feed lo responde en una sola llamada. La unidad es la búsqueda de ubicación que creaste —un destino más los filtros que deciden quién cuenta como tu mercado— y cada ejecución cubre el conjunto completo.
1. Prepara tu búsqueda de ubicación
Abre Feed · Booking Location Search. La página se abre en la pestaña Location searches, con las búsquedas sobre las que trabaja esta API, y ahí debería estar la tuya. Si no está, puedes darla de alta desde aquí.

Las tres tarjetas superiores son las que más vas a consultar: USAGE SUMMARY (lo que llevas gastado en esta API en el periodo), IMPORTS (última y próxima importación) y SCHEDULES (las programaciones).
2. Lanza la importación, pero lee antes la estimación
En la pestaña Imports, pulsa Launch import. En este diálogo se decide lo que vas a gastar:

- Location Searches — qué búsquedas ejecutar. Cada una se cobra aparte.
- Search location rates up to — cuántas noches hacia delante. Un día es la foto de una noche; treinta días son treinta veces el trabajo (y el coste).
- From which country should Booking.com be queried? — el país desde el que se consulta Booking (geolocalización del proxy). Booking muestra precios distintos según el país desde el que se consulta, y esto es lo que hace que la respuesta coincida con lo que ve tu cliente.
- Moneda e idioma — se rellenan por defecto con los de la búsqueda de ubicación.
Abajo del todo está Estimated cost. Léelo antes de pulsar. Para un destino y una noche estimó 0,32 créditos, y 0,32 es exactamente lo que se cobró.
Pulsa Launch import y la importación aparece en el listado con su identificador, cómo se lanzó (manual o programada), su estado y los créditos consumidos:

⚠️ La importación guarda noches a partir del día (en UTC) en que se ejecuta, una por cada día que elegiste. Si la lanzas a la 01:08 hora de Madrid (23:08 UTC), la primera noche queda con la fecha de ayer. Importa porque el endpoint pide una fecha objetivo y el playground no te deja elegir una fecha pasada.
3. Consulta el mercado
En la pestaña Requests, pulsa Run request. La fecha objetivo viene con la de hoy por defecto; elige una de las noches que guardó la importación:

HTTP 200, 457 ms, 232 KB — 192 hoteles en una sola respuesta. Booking devuelve como mucho 1.000 alojamientos por búsqueda y noche; coverage.truncated te avisa si en un destino grande la lista se quedó cortada. La respuesta tiene esta forma:
{
"coverage": [{ "target_date": "2026-08-20", "total_booking": 192, "returned": 192, "max_per_search": 1000, "truncated": false, "failed_pages": [] }],
"accommodations": [
{
"booking_id": 123456,
"name": "Hotel Example",
"slug": "hotel-example",
"accommodation_type": "hotel",
"price_original": 138.48,
"price_discount": 0,
"price_final": 138.48,
"display_price": 138,
"currency": "EUR",
"room_type": "Double Room",
"breakfast_included": false,
"meal_plan": { "included": false, "type": null, "text": null },
"free_cancellation": true,
"review_score": 8.6,
"review_count": 1842,
"star_rating": 4,
"stars": 4,
"distance_to_center": 2100,
"is_closed": false,
"location_details": { "address": "…", "city": "…", "latitude": 41.38, "longitude": 2.17 },
"photos": { "low_resolution": "https://…", "high_resolution": "https://…" },
"target_date": "2026-08-20T00:00:00.000Z"
}
],
"pagination": { "page": 1, "limit": 1000, "total": 192, "total_pages": 1, "has_more": false }
}
Cada hotel trae precio (price_original, price_discount, price_final), room_type, régimen (breakfast_included, meal_plan), free_cancellation, review_score, review_count, stars, distance_to_center (en metros, o "Distance not available" en destinos de tipo distrito) y photos, además de location_details con coordenadas. Junto a la lista llegan coverage (cuántos hoteles tenía Booking y si su tope de 1.000 por búsqueda cortó la lista) y pagination (1.000 por página por defecto, hasta 2.000 con limit).
Fíjate en lo que no viene: una posición de ranking. La lista llega ordenada por price_final, de más barato a más caro, y cualquier otro ranking lo calculas tú: por nota, por relación nota/precio, por distancia. Esa es la gracia: te llevas la distribución y decides qué significa "posición" para ti.
En esta ejecución: 192 hoteles, el más barato a 138,48 €, la mediana en 252,48 €, el más caro a 1.526,40 €. Tu hotel es una fila más ahí dentro, y ahora sabes exactamente en qué percentil está.
4. Conviértelo en una serie
Una ejecución es una foto fija; el valor está en la evolución, así que prográmalo: en la pestaña Schedules eliges la búsqueda de ubicación y la frecuencia diaria, y el estimador te muestra el coste mensual antes de guardar.
A partir de ahí cada ejecución añade una foto nueva. Por defecto el endpoint lee la última importación; para leer una anterior pasa ?import_date=AAAA-MM-DD (el día en que se ejecutó) o ?import_id= con su import_execution_identifier de GET /v3/account/imports. Los datos de Booking Location Search se guardan 15 días, así que guarda cada respuesta en tu lado si quieres una curva más larga: cómo se movió la mediana del mercado, cuándo bajó precios tu competencia, si un evento empujó toda la distribución hacia arriba.
Siguientes pasos
La misma búsqueda de ubicación puede alimentar también el dataset de Market Demand —una importación y una API aparte, que se lee en GET /v3/feed/location-search/{id}/demand—. Y su equivalente en tiempo real, GET /v3/real-time/location-search/{id}/booking/{date}, responde lo mismo en vivo, sin importación y cobrado por petición, para cuando necesitas el dato de un destino al momento y no un histórico.
Preguntas
¿Por qué el endpoint responde 404 si la importación fue bien?
Porque la importación que está leyendo el endpoint no tiene datos de esa noche. Sin parámetros lee solo la última importación, así que una noche guardada por una importación anterior necesita import_date (el día en que se ejecutó) o import_id. Además, los datos se borran a los 15 días de la importación, aunque siga apareciendo en la pestaña Imports. En ambos casos recibes un 404 con el código 510, NoDataFoundForRequestedDate.
¿Cuánto cuesta un destino entero?
Depende de cuántas noches pidas y cuántas búsquedas de ubicación ejecutes, no de cuántos hoteles vuelvan. Un destino para una noche fueron 0,32 créditos y devolvió 192 hoteles. El diálogo de importación te estima la cifra exacta antes de lanzarla, y el estimador de la programación te muestra el equivalente mensual.
¿Puedo controlar qué hoteles entran?
Para eso están los filtros de la búsqueda de ubicación: estrellas, tipo de alojamiento, régimen, puntuación mínima, distancia al centro, huéspedes y habitaciones. Cámbialos y cambias tu mercado, no el precio: el coste depende solo de cuántas búsquedas de ubicación y cuántas noches ejecutes. Si necesitas dos vistas distintas de la misma ciudad, crea dos búsquedas de ubicación.
¿La respuesta me dice mi posición en el ranking?
No como campo. Te llevas todos los hoteles con su precio, su nota, sus estrellas y su distancia, y la posición que importa la calculas tú. Ordenar por precio no es lo mismo que ordenar por nota o por relación calidad-precio, y cuál cuenta depende de tu estrategia.
¿Feed o tiempo real?
Usa el feed cuando quieras una serie diaria: una programación guarda una foto al día, las anteriores se leen con import_date o import_id, y los datos se conservan 15 días, así que guárdate lo que necesites. Usa su equivalente en tiempo real, GET /v3/real-time/location-search/{id}/booking/{date}, cuando necesites el dato de un destino al momento; se cobra por petición.
Construye el tuyo
Empieza gratis con 1.000 créditos de API. Sin tarjeta ni llamada comercial.
¿Qué quieres construir con lista de hoteles por ubicación?
Dilo en una línea y te devolvemos el prompt, la receta si ya existe y las APIs sobre las que corre, empezando por lista de hoteles por ubicación.