Recetas/Da de alta tu hotel y el compset contra el que fijas precio
Código Account10 min

Da de alta tu hotel y el compset contra el que fijas precio

Todas las recetas que te comparan con el mercado leen dos cosas de tu cuenta: tu hotel y los hoteles contra los que compites. Lo primero lo hace todo el mundo. Lo segundo no se lo cuentan a nadie, y por eso un informe de tarifas acaba pareciéndose sospechosamente a tu propia lista de precios. Diez minutos, una vez, y el resto de recetas empiezan a responder de verdad.

Da de alta tu hotel y el compset contra el que fijas precio

Qué vas a construir

Un hotel dado de alta en tu cuenta con su slug y sus perfiles de OTA detectados, hasta diez competidores enganchados, y la llamada gratuita que lee el compset — que es de donde las recetas de comparación sacan los slugs que recorren.

Cómo funciona

  1. 01Por qué el compset no es opcional
  2. 02Da de alta el hotel
  3. 03Mira qué perfiles ha encontrado
  4. 04El slug no es el nombre
  5. 05Engancha hasta diez competidores
  6. 06Lee el compset desde la API
  7. 07Qué viene después

Paso a paso

Al terminar tendrás un hotel en tu cuenta con su slug, sus perfiles de OTA detectados y sus competidores enganchados — el montaje que todos los endpoints de comparación de Veetal dan por hecho que ya hiciste.

Qué necesitas: una cuenta con la Account API activa. Nada más.

Qué cuesta: nada. Crear el hotel, resolverlo contra Booking y engancharle competidores son operaciones gratuitas. Lo que sí cambia el compset es lo que cuesta una importación después, y esa parte conviene leerla antes de lanzar ninguna.

Por qué el compset no es opcional

Los endpoints de comparación de Veetal no reciben la lista de rivales como parámetro: leen el compset configurado en el hotel. Así que el tamaño de tu compset decide la forma de la respuesta:

  • Las tarifas vuelven como { report: { [slug]: [rate, ...] } } — tu hotel y cada competidor en el mismo payload. Con el compset vacío, ese objeto tiene una sola clave: la tuya.
  • La paridad es un score contra el compset. Sin nada contra lo que comparar, no hay score que calcular.
  • La reputación y las reseñas traen un bloque competitors que llega vacío si el compset lo está. El endpoint de reseñas además trae include_competitors a true por defecto, así que un compset vacío es la diferencia entre un benchmark y una lectura en solitario.
  • La parrilla de tarifas en vivo es una llamada por establecimiento del compset. Sin compset no hay parrilla.

Esta es también la parte de Veetal que una API de scraping a secas no tiene. El compset es configuración almacenada, no un parámetro que reconstruyes en cada llamada.

1. Da de alta el hotel

En Accommodations, Add accommodations. El asistente abre con tres caminos:

  • Search Booking accommodation — el habitual.
  • I have accommodation Booking URL — para cuando la búsqueda es ambigua y ya tienes la ficha abierta.
  • Import accommodations from .csv/.xls file — la vía en bloque, y la forma sensata de cargar una cartera.

Busca por nombre. Los resultados traen la foto y la ciudad del hotel, y vienen etiquetados:

  • It's yours — ya es uno de tus alojamientos. Sale en gris, que te ahorra el duplicado.
  • Is competitor — ya es competidor de alguno de tus hoteles.
  • Is existing — la ficha ya está en la base de datos de Veetal porque otro la sigue. Se reutiliza en vez de crearse otra vez, y por eso resuelve al instante.

Si no encuentras nada, usa menos palabras: la búsqueda casa con Booking de forma aproximada, no con tu cadena exacta.

2. Mira qué perfiles ha encontrado

Elige uno y Continue. Veetal resuelve la ficha de verdad y te enseña lo que ha encontrado — estrellas, nota de huéspedes, número de reseñas, dirección — más Profiles Found: las OTAs en las que este hotel tiene ficha realmente.

Ese bloque es una previsión. Una OTA sin perfil no tiene nada que importar, y el feed de reputación solo devolverá las que tengan el tick verde. Repeat search profiles vuelve a lanzar la detección si crees que se ha dejado alguna, y View Profile abre la ficha que ha casado para que confirmes que es el establecimiento correcto antes de que aterrice en tu cuenta.

Una vez añadido, la columna SETUP de la fila mantiene ese mapa de perfiles, una insignia por OTA.

3. El slug no es el nombre

El slug que asigna Veetal sale de la URL de Booking, no del nombre visible. "Ohla Barcelona" se quedó en ohla.

Todos los endpoints piden el slug, así que cópialo de la fila en vez de deducirlo del nombre del hotel. La mitad de los "el endpoint no devuelve nada" son un slug escrito de memoria.

4. Engancha hasta diez competidores

Abre el hotel desde el listado y añade los competidores desde su detalle, con el mismo buscador que usaste para el hotel — por eso los resultados de búsqueda ya saben decirte que un establecimiento Is competitor.

Dos cosas deciden si este paso sirve de algo:

Quién entra en el compset. Un huésped que elige tu hotel no está eligiendo entre todos los hoteles de la ciudad: está eligiendo entre el puñado de tu barrio, en tu banda de precio, para sus fechas. Un compset de diez hoteles que un huésped compara de verdad vale más que uno de diez hoteles que comparten tus estrellas y nada más.

Qué cuesta cada uno. El tope son diez, y es un tope por algo: cada competidor multiplica el coste de cada importación. Un hotel con 5 competidores en 3 OTAs son 18 fichas por ejecución, no 3. El dashboard enseña la estimación de créditos antes de lanzar una importación — léela ahí, no en la factura.

El compset de un hotel en su detalle: diez competidores enganchados, cada uno con su ciudad y su categoría, y el contador 10/10

5. Lee el compset desde la API

CODE
GET /v2/account/accommodation/{accommodation}/competitors

Gratis, como el resto de la Account API. Devuelve los competidores configurados en ese hotel, cada uno con el identificador que piden los endpoints de datos — que es exactamente lo que recorre una parrilla de tarifas: una llamada para traer el compset y luego una llamada de tarifa por establecimiento.

GET /v2/account/accommodation hace lo mismo con tus propios hoteles, y es de donde salen los slugs para empezar.

Qué viene después

El hotel y su compset son configuración, no datos: por sí solos no traen nada. A partir de aquí el camino se bifurca — un endpoint Real Time responde sobre ellos de inmediato, petición a petición, y un dataset Feed necesita que antes haya corrido una importación.

Dos cosas más del listado que conviene saber: cada fila tiene activar, desactivar y borrar, y las casillas te dan las mismas tres en bloque. Una entidad desactivada deja de importarse sin perder su histórico — que es lo correcto para un hotel que has dejado de gestionar, y bastante mejor que borrarlo.

Preguntas

¿Cuántos competidores puedo añadir?

Diez por hotel. El tope es a propósito: cada competidor multiplica el coste de cada importación, y un compset de treinta hoteles no es un compset — es la ciudad.

¿Los competidores gastan créditos por sí solos?

No. Crearlos y resolverlos contra Booking es gratis, como toda la Account API. Lo que cambian es el tamaño de cada trabajo posterior: una importación cubre el hotel más su compset en todas las OTAs con perfil, y una parrilla de tarifas en vivo es una llamada por establecimiento.

Mi informe de tarifas solo trae mi hotel. ¿Qué pasa?

Que el compset está vacío. El payload de tarifas va indexado por slug e incluye a cada competidor configurado en el hotel, así que sin compset vuelve con una única clave: la tuya.

¿Puedo montar el compset por API?

Sí. El conjunto entero tiene endpoints: `GET`, `POST` y `DELETE` sobre `/v2/account/accommodation/{accommodation_id}/competitors`. El POST acepta un array `booking_urls` de fichas de Booking.com —hasta diez, el mismo tope que el dashboard— y resuelve cada una por ti. ```bash curl -X POST "https://api.veetal.app/v2/account/accommodation/YOUR_ACCOMMODATION_ID/competitors" \ -H "veetal-api-key: YOUR_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "booking_urls": ["https://www.booking.com/hotel/es/TU_COMPETIDOR.html"] }' ``` Dos cosas que conviene saber. Pide el **id interno**, no el slug — el que devuelve `/account/accommodation` dentro de cada entrada, mientras que el slug es la clave. Y solo acepta URLs de Booking: no hay endpoint de búsqueda, así que un nombre que aún no has resuelto es trabajo de dashboard. Ese es el reparto honesto — el buscador del dashboard es mejor para montar el conjunto, la API es mejor para mantenerlo sincronizado con tu propio sistema.

El hotel que quiero ya está en Veetal porque lo sigue otro cliente. ¿Es un problema?

No. La búsqueda lo marca como **Is existing** y reutiliza la ficha en vez de crear un duplicado. Tú te llevas tu propia entidad apuntando a datos ya resueltos; los demás clientes no ven nada de lo tuyo.

¿Borro un hotel que he dejado de gestionar?

Desactívalo. Una entidad desactivada deja de importarse —y por tanto de gastar créditos— pero conserva su histórico, que es justo lo que querrás el día que alguien pregunte qué pasó la temporada pasada.

Construye el tuyo

Empieza gratis con 100 créditos de API. Sin tarjeta ni llamada comercial.

Whatsapp