Importar la reputación de un hotel de Booking
La reputación está repartida entre las OTAs donde el hotel tiene ficha, cada una con su escala y su desglose por categorías. Das de alta el hotel una vez en Veetal, lanzas el import y luego lees todas las OTAs desde un único endpoint — con una CLI pequeña que lo convierte en un informe que puedes compartir.

Qué vas a construir
Un hotel dado de alta en Veetal con su reputación importada de todas las OTAs donde tenga ficha, más una herramienta de línea de comandos que lee el feed y saca una tabla comparativa — nota, número de reseñas y desglose por categorías de cada OTA — y la exporta a CSV y HTML para meterla en un informe.
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 vacía, no da error. Cada punto enlaza la receta que lo enseña.
- 01
Da de alta el hotel en tu panel de control
Veetal resuelve el alojamiento contra Booking.com y le asigna un slug — y es ese slug, no el nombre del hotel, lo que piden todos los endpoints de alojamiento.
Guía: Da de alta tu hotel y el compset contra el que fijas precio →
Lo mismo por API, si prefieres no pasar por el panel:
curl -X POST "https://api.veetal.app/v2/account/accommodation" \
-H "veetal-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{ ... }' # see the account reference for the bodyCómo funciona
- 01Da de alta el hotel
- 02Mira qué OTAs tiene
- 03Lanza el import
- 04Sigue el import
- 05Consulta el dato
- 06Si algo falla
- 07Y ahora qué
Paso a paso
Al terminar tendrás un hotel dado de alta en Veetal y su reputación importada de todas las OTAs donde tenga ficha, consultable por API.
Qué necesitas: la API Feed · Reputation instalada y activa en tu cuenta, y el nombre del hotel tal y como aparece en Booking.
Lo que cuesta: se cobra por listing. Una unidad = un hotel en una OTA. El ejemplo de esta receta son 20 créditos.
1. Da de alta el hotel
En Accommodations pulsa Add accommodations. El asistente ofrece tres caminos: buscar en Booking por nombre (el habitual), pegar la URL de la ficha, o subir un fichero para el alta masiva.

Busca el hotel y elige su ficha. Si no aparece, prueba con menos palabras: el buscador casa por aproximación contra Booking, no por el nombre completo.
Algunos resultados llegan etiquetados: Its yours (ya es tuyo), Is competitor (ya lo tienes como competidor) e Is existing (la ficha ya está en la base de datos de Veetal pero no es tuya: se reutiliza en vez de crear otra).
2. Mira qué OTAs tiene
Al continuar, Veetal lee la ficha de Booking y te enseña lo que ha encontrado — categoría, nota, reseñas y dirección — y debajo, Profiles Found.
Esa fila es la clave: solo podrás importar reputación de las OTAs donde el hotel tenga perfil. En el ejemplo son tres (Booking.com, Tripadvisor y Google); Expedia y Hotels.com no tienen ficha. Si falta alguna que esperabas, prueba Repeat search profiles antes de continuar.
Pulsa Add accommodation. El hotel aparece en el listado con la columna SETUP, que muestra en color las OTAs con perfil.
3. Lanza el import
Ve a Reputation → Accommodations. Cada fila tiene sus acciones: ✈️ Request data te lleva a probar el endpoint, 🚀 Launch new import lanza la importación ahora, el ojo activa o desactiva, y el icono de copiar te da el slug con el que el hotel se identifica en la API.
Pulsa el cohete de tu hotel:

Las OTAs seleccionables son exactamente aquellas donde el hotel tiene perfil. Abajo verás la estimación:
3 listings: 1 hotel + 0 competidores × 3 OTAs → 20 créditos.
El coste sube con el número de OTAs y con el compset: un hotel con 5 competidores en 3 OTAs son 18 listings, no 3. Pulsa Launch import.
4. Sigue el import
En Imports aparece tu ejecución con un identificador tipo Veetal-MANUAL-20260818-120142854-ARP — el MANUAL indica que la lanzaste tú y no un schedule.

Tarda un par de minutos. Los créditos salen en - mientras corre y se rellenan al acabar. El estado puede quedarse en running con el progreso al 100 % unos segundos: está cerrando la ejecución, no lo relances.
5. Consulta el dato
Vuelve a Accommodations y pulsa el ✈️ de tu hotel: llegas a Requests con el endpoint y el slug ya rellenos. Pulsa Run request.
GET /v2/feed/accommodation/{accommodation_slug}/reputation
Esto devolvió para el hotel del ejemplo:
| OTA | Nota | Reseñas | Desglose |
|---|---|---|---|
| Booking | 8.7 | 2023 | 7 categorías (ubicación 9.8, personal 9.4, wifi 9.2, confort 8.9, limpieza 8.8, instalaciones 8.5, calidad-precio 8.3) |
| 9 | 1373 | sin desglose | |
| Tripadvisor | 8.8 | 2588 | 6 categorías (ubicación 9.73, limpieza 9.1, servicio 8.93, calidad del sueño 8.76, calidad/precio 8.56, habitaciones 8.52) |
La respuesta trae además un bloque competitors (vacío si no hay compset) y un bloque import con el identificador y la fecha de la importación de la que salen los datos: así sabes a qué momento corresponde la nota que estás leyendo.
Si algo falla
| Qué ves | Qué significa | Qué hacer |
|---|---|---|
No accommodations found | Booking no casa con ese texto | Busca con menos palabras |
| Solo una o dos OTAs seleccionables | El hotel no tiene perfil en el resto | Es lo normal; revisa la configuración de OTAs en el detalle del alojamiento |
| El cohete deshabilitado | El alojamiento está inactivo en esta API | Actívalo con el icono del ojo |
Import en failed | La ejecución no pudo completarse | Ábrela para ver el error y reintenta |
Y ahora qué
- Prográmalo en la pestaña Schedules: diario, semanal o mensual. El estimador te dice lo que costará al mes antes de guardar.
- Añade competidores en el detalle del alojamiento, hasta 10. Cada uno multiplica el coste de cada import.
- Si lo que quieres es el dato al instante y sin import previo, usa los endpoints real-time por OTA.
Clona y ejecuta
EjecutableLa receta entera es una carpeta autocontenida: Node 20, sin paso de build, y una batería de tests que corre sin API key.
git clone https://github.com/Veetal-Connect/recipes.git
cd recipes/import-hotel-reputation
cp .env.example .env # put your VEETAL_API_KEY in it
node --env-file=.env index.mjs --list
node --env-file=.env index.mjs YOUR_ACCOMMODATION_SLUGComprueba antes tu key
Una llamada, cinco segundos. Si esto responde, la receta va a funcionar.
curl "https://api.veetal.app/v2/feed/accommodation/YOUR_ACCOMMODATION_SLUG/reputation" \
-H "veetal-api-key: YOUR_API_KEY"Preguntas
¿Por qué necesito un import antes de poder leer nada?
La reputación es un dataset Feed: Veetal la escribe en tu cuenta en cada ejecución, y el endpoint lee lo que dejó esa ejecución. Hasta que no termina el primer import no hay nada que leer. Por eso mismo es rápido — lees dato guardado, no scraping en el momento.
¿Qué OTAs voy a tener?
Solo aquellas en las que el hotel tenga ficha de verdad. Veetal detecta los perfiles al dar de alta el alojamiento y los muestra como Profiles Found; el diálogo de import te deja elegir exactamente entre esos. Booking.com, Tripadvisor y Google son las tres habituales.
¿Cómo se factura?
Por listing: un hotel en una OTA es una unidad. Tres OTAs de un hotel son tres listings. La competencia multiplica — un hotel con 5 competidores en 3 OTAs son 18 listings por ejecución, no 3.
¿Puedo tener la nota sin montar un import?
Sí, con los endpoints de reputación en tiempo real, que van a la OTA en el momento. Cuestan más por llamada y tardan más, así que encajan en una consulta puntual, no en un panel que refrescas.
¿La respuesta me dice de cuándo es el dato?
Trae un bloque `import` con el identificador y la fecha de la ejecución de la que salen los números, así que cada nota está atada a un momento concreto y no queda en el aire.
Construye el tuyo
Empieza gratis con 100 créditos de API. Sin tarjeta ni llamada comercial.