Hotel rates

Batch rates by check-in date

Changed on

Overview

Enterprise-only endpoint that prices every length of stay (LOS) × occupancy combination for a single check-in across up to 200 hotels. LOS is the number of nights between check-in and check-out. Returns an NDJSON stream (one hotel object per line) so you can process results as they arrive.

When to Use

  • Build a LOS matrix for a check-in date across many hotels without calling /hotels/rates repeatedly
  • Compare occupancy options (e.g. 2 adults vs 2 adults + child) for the same stay window

What You Get

  • One NDJSON line per hotel with every LOS × occupancy cell exactly once
  • Trimmed rates — cheapest RFN (free-cancel until checkin−N days, default N=5) and cheapest NRFN per mappedRoomId × feed
  • Prebookable offerId values — same booking flow as /hotels/rates
  • Per-cell status — ok, no_availability, or error with a machine-readable code

Key Features

  • Inclusive LOS range via lengthsOfStay.min / lengthsOfStay.max (max 28 nights)
  • Up to 8 occupancy options priced independently (not multi-room in one booking)
  • Multi-feed support with the same feed / feeds rules as /hotels/rates
  • Configurable trim depth via maxRatesPerHotel (default 10 rates requested per cell before RFN/NRFN trim)
  • Refundable deadline control via refundableDeadlineDaysBeforeCheckin (default 5; set 0 to disable)

Quick Start

Required fields: hotelIds, checkin, lengthsOfStay, occupancies, currency, guestNationality

Tip: Start with a small LOS range (e.g. min=1, max=2) and one occupancy while integrating. Enable roomMapping when you need mappedRoomId for room content.

Rate limit: Each call costs losCount × occupancyCount × feedCount against your API key quota. Check the X-RateLimit-Cost response header.

post/hotels/rates/batch

Request

  • Base URL
    https://api.liteapi.travel/v3.0
  • URL
    https://api.liteapi.travel/v3.0/hotels/rates/batch
  • Auth
    API key in header X-API-Key

Request body

hotelIdsstring[] required

Hotel LP IDs. Maximum 200 per request.

checkinstring date required

Exactly one check-in date per call.

currencystring required

The currency in which the prices will be displayed.

guestNationalitystring required

The guest's nationality in ISO 2-letter country code format.

roomMappingboolean

Enable room mapping to retrieve the mappedRoomId for each room. This allows you to link a rate to its specific room by combining it with hotel details, providing access to room images and additional information

feedsstring[]

Optional multi-feed list (same rules as /hotels/rates).

feedstring

Optional single feed (mutually exclusive with feeds).

timeoutnumber

Per-cell supplier timeout in seconds. Default 30.

maxRatesPerHotelinteger

Optional override for how many rates each LOS×occupancy cell requests before RFN/NRFN trim. Default 10.

refundableDeadlineDaysBeforeCheckininteger

RFN rates must remain free to cancel until checkin minus this many days. Default 5 (Airbnb sellable refundable window). Set 0 to disable the deadline filter.

Example request

{
  "hotelIds": [
    "lp1897"
  ],
  "checkin": "2026-11-20",
  "lengthsOfStay": {
    "min": 1,
    "max": 2
  },
  "occupancies": [
    {
      "adults": 2,
      "children": [
        5
      ]
    }
  ],
  "currency": "USD",
  "guestNationality": "US",
  "roomMapping": true,
  "timeout": 30,
  "maxRatesPerHotel": 10,
  "refundableDeadlineDaysBeforeCheckin": 5
}

Response

NDJSON stream: one hotel JSON object per line. X-RateLimit-Cost is the projected request count charged against the API key quota.

Changes