---
title: "Consultar disponibilidad y tarifas de un hotel"
method: GET
path: "/api/v1/hotels/{hotel_id}/availability"
tags: ["Disponibilidad"]
---

# Consultar disponibilidad y tarifas de un hotel

`GET /api/v1/hotels/{hotel_id}/availability`

## Request

- Base URL: `https://aos.ayenda.co`
- URL: `https://aos.ayenda.co/api/v1/hotels/{hotel_id}/availability`
- Auth: none required

Consulta de disponibilidad y tarifas de un hotel para una estadía, pensada para
sistemas externos que distribuyen el inventario del PMS (agencias, TMCs). Se
autentica con el API Key de integración externa (header `X-Api-Key`).

## Parámetros

- La estadía se cobra por noches: va de `start_date` a la noche anterior a
  `end_date` (día de salida). Si no se envía `end_date`, se asume una noche.
- Si no se envía `adults`, se asume 1. Los tipos de habitación que no admiten
  esa cantidad de adultos no se incluyen.
- Todas las noches deben caer dentro de la ventana de reservas del hotel. Si alguna
  queda por fuera, responde `422` indicando el último `end_date` permitido.

## Respuesta

- No se incluyen los tipos de habitación que no tienen habitaciones libres en
  alguna de las noches, ni los que no tienen ningún plan que las OTAs puedan
  vender para la estadía.
- `availability`: habitaciones de ese tipo libres durante toda la estadía, es
  decir.
- `total_rates`: valor de la estadía completa (suma de todas las noches) por plan
  tarifario, para la cantidad de adultos consultada y sin impuestos. No aparecen
  los planes que las OTAs no pueden vender para la estadía (las mismas
  restricciones que ellas reciben): los cerrados para la venta en alguna de las
  noches y aquellos cuya estadía mínima o máxima del día de llegada la estadía no
  cumple.
- `total_taxes_percentage`: porcentaje de impuestos que el hotel suma sobre
  `total_rates` (ej. `"19.0%"`). Es `"0.0%"` si el hotel no maneja impuestos.

## Valores `null`

Aplican solo a estadías dentro de la ventana de reservas. Un `null` significa que
el PMS no tiene el dato completo para la estadía, no que el valor sea cero. En ese
caso la habitación o el plan no se puede cotizar para esas fechas:

- `availability` es `null` cuando alguna de las noches todavía no tiene la
  disponibilidad calculada. Puede pasar justo después de que el hotel amplía su
  ventana de reservas o crea un tipo de habitación, mientras el PMS termina el
  cálculo.
- El `value` de un plan en `total_rates` es `null` cuando alguna de las noches no
  tiene precio para ese plan y esa cantidad de adultos.

## Query parameters

- `start_date` string, date, required
- `end_date` string, date
- `adults` integer

## Headers

- `X-Api-Key` string, required

## Response `200`

ok

- object
  - `data` object, required
    - `hotel_id` integer, required
    - `currency` string, required
    - `total_taxes_percentage` string, required
    - `start_date` string, date, required
    - `end_date` string, date, required
    - `adults` integer, required
    - `room_types` object[], required
      - `id` integer, required
      - `name` string, required
      - `min_adults` integer, required
      - `max_adults` integer, required
      - `availability` integer, nullable, required
      - `total_rates` object[], required
        - `rate_plan` 'non_refundable' | 'flexible' | 'refundable', required
        - `value` number, nullable, required

## Other responses

- `400`: bad request
- `401`: unauthorized
- `404`: not found
- `422`: unprocessable entity

---

[API](https://skmtc.dev/loggro/apis/pms-api-v1.md) - [All operations](https://skmtc.dev/loggro/apis/pms-api-v1/llms.txt) - [OpenAPI document](https://skmtc.dev/loggro/apis/pms-api-v1/revisions/42f79a85a9d1?raw)
