Un feed, un esquema, todos tus hoteles
Una cadena con doce hoteles tiene doce extranets, cada una con su propia definición de todo. Que nadie compare propiedades no es dejadez — es que los números no son comparables. Una API, un esquema y el mismo hotel en todas partes: de eso va esto.

Qué vas a construir
Una vista de cartera: cada propiedad en una línea con su posición de tarifa, su salud de paridad, su reputación y su movimiento desde la última ejecución, ordenada para que la propiedad que necesita atención hoy salga arriba.
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 → - 02
Rellena su compset
Hasta diez competidores en el detalle del alojamiento. Sin ellos esta receta imprime tu propia lista de precios en vez de una comparación, y el bloque de competidores vuelve vacío.
- 03
Lanza una importación sobre el hotel
Un dataset Feed solo contiene lo que una importación ha escrito. Activa esta API sobre el hotel, lanza la primera ejecución a mano y lee la estimación de créditos antes de pulsar: el coste crece con el compset y con las OTAs.
Guía: Importar la reputación de un hotel de Booking →
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 bodyPara saber si ya ha terminado alguna importación, lístalas:
curl "https://api.veetal.app/v2/account/imports" \
-H "veetal-api-key: YOUR_API_KEY"Las lecturas Feed no se facturan por petición. Los créditos se van en las importaciones que recogen los datos, y por eso la estimación aparece antes de lanzar y no después.
Cómo funciona
- 01
Mete todas las propiedades en la cuenta
El valor solo aparece con la cartera completa. Una vista a la que le faltan tres hoteles es una vista en la que nadie confía, y un hotel importado distinto del resto rompe la comparación en silencio.
- 02
Importa lo mismo en todas partes
Mismas OTAs, misma periodicidad, misma ocupación. La comparabilidad es una decisión de configuración, no de análisis.
- 03
Pregunta por las excepciones, no por la lista
Doce filas en verde no son información. Pregunta qué propiedades se salen de su banda habitual y por qué.
La llamada
Una llamada por propiedad, con la misma forma siempre. Esa igualdad es la gracia: el parseo que escribes una vez sirve para toda la cartera.
curl "https://api.veetal.app/v2/feed/accommodation/YOUR_SLUG/rates?rate_year=2026&rate_month=10" \
-H "veetal-api-key: YOUR_API_KEY"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/portfolio-monitor
cp .env.example .env # your VEETAL_API_KEY
node --env-file=.env index.mjs YYYY-MM-DD YYYY-MM-DD # put the window: first night, last nightComprueba antes tu key
Una llamada, cinco segundos. Si esto responde, la receta va a funcionar.
curl "https://api.veetal.app/v2/feed/accommodation/YOUR_SLUG/rates?rate_year=2026&rate_month=10" \
-H "veetal-api-key: YOUR_API_KEY"Preguntas
¿El ADR de aquí es el mismo que el de mi PMS?
No, y no lo presentes como si lo fuera. Este es el precio publicado en las OTAs; tu PMS sabe lo que se vendió de verdad, incluido el directo y el negociado. Responden a preguntas distintas, y la diferencia entre ambos es informativa por sí sola.
¿Y si las propiedades están en monedas distintas?
Pide una sola moneda y que se indique la conversión. Una tabla de cartera que mezcla euros y libras ha provocado más malas decisiones que ningún dataset ausente.
¿Cuántas propiedades aguanta?
La API sirve tantas como importes. El límite es la atención: pasadas unas veinte filas, pide excepciones en vez de la tabla entera.
¿Puede sacar el informe del lunes?
Es su uso natural. Programa el mismo prompt cada semana y que nombre solo lo que ha cambiado — un informe que repite los números de la semana pasada deja de leerse a la cuarta.
Construye el tuyo
Empieza gratis con 100 créditos de API. Sin tarjeta ni llamada comercial.