Recetas/Un feed, un esquema, todos tus hoteles
Código Feed15 min

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.

Un feed, un esquema, todos tus hoteles

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

Obligatorio

Los 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.

  1. 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 →
  2. 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.

  3. 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
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 body

Para saber si ya ha terminado alguna importación, lístalas:

cURL
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

  1. 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.

  2. 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.

  3. 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
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

Ejecutable

La receta entera es una carpeta autocontenida: Node 20, sin paso de build, y una batería de tests que corre sin API key.

Terminal
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 night
Ver el repositorio ↗ Stack: Node 20 · JavaScript, sin dependencias

Comprueba antes tu key

Una llamada, cinco segundos. Si esto responde, la receta va a funcionar.

cURL
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.

Whatsapp