
Hotel API
One REST API finds, books and cancels hotel stays worldwide, paid from your FlightOTA deposit.
Overview
One REST API finds, books and cancels hotel stays worldwide, paid from your FlightOTA deposit. A stay takes five calls: find the destination, search hotels, list one hotel's rooms, re-check the chosen rate, book. A booking is either paid now (confirmed with the hotel at once) or held where the rate allows it, then paid before its deadline.
Search
Asks every hotel source at once, 10–40 seconds. Results stay bookable for 15 minutes.
Rate check
Asks the hotel again before you collect guest details: price, hold and what the guests must give.
Pay now or hold
Paid from your deposit and confirmed in the same call, or held where the rate allows it and paid before its deadline.
Cancellation
See what cancelling would cost. A confirmed stay's refund is paid back to your deposit at once.

Hotel API
One REST API finds, books and cancels hotel stays worldwide, paid from your FlightOTA deposit.
Core Capabilities
- Destination lookup
- Hotel search
- Rooms and rates
- Rate re-check
Sandbox notes
Sandbox stays go to hotel test systems: confirmations such as TestBooking are not real, the deposit is test money, and test systems are slower (paying a hold took about a minute). Unpaid sandbox holds lapse on their own.
Interactive API Console & Simulator
Every call in the guide, with its code and the answer the guide shows. These replay the guide's examples; the real API is called from your server, never from a browser.
Booking flow
A stay takes five calls: find the destination, search hotels, list one hotel's rooms, re-check the chosen rate, book.
01RecommendedFind the destination
GET /hotels/destinations?term=Use the id in the search; ids are valid for about an hour.
02RequiredSearch hotels
POST /hotels/searchAsks every hotel source at once, 10–40 seconds.
03RequiredList one hotel's rooms
GET /hotels/offers/{offer_id}/roomsEach rate has its own offer_id: that is the rate_id you book.
04RecommendedRe-check the rate
GET /hotels/rates/{rate_id}/priceTells you if the room can be held and what the guests must give.
05RequiredBook
POST /hotels/bookingsPaid now, or held where the rate allows it and paid before its deadline.
- 10–40 s
- Search answers in
- 15 min
- Results stay bookable
- 1–6
- Rooms in one search
- 60 s
- Sandbox payment of a hold
Endpoints
Base URL: https://api.flightota.com/api/v1 (production) · https://sandbox.flightota.com/api/v1 (sandbox). Expand an endpoint for parameters, code samples and example responses.
Getting started
Destinations and search
Rooms and rate check
Book a stay
Read, pay, cancel
Plans & limits
Paid from your deposit, in your billing currency.
- Get a key in the agent portal under API access, enabled for hotels.
- Over the rate limit you get 429 rate_limited; wait a minute.
- Without hold, the stay is paid from your deposit. With hold, nothing is charged until you pay.
- Money is always your billing currency. total is what your deposit pays.
Getting started
From a sandbox key to your first call. Live keys are switched on after certification.

Five calls to book a stay
A stay takes five calls: find the destination, search hotels, list one hotel's rooms, re-check the chosen rate, book.
- STEP 01
Get a key
In the agent portal under API access, enabled for hotels. The secret is shown once.
- STEP 02
Whitelist your server's public IP
On the key. Never call the API from a browser or app.
- STEP 03
Send the two headers
X-Api-Key and X-Api-Secret on every request.
- STEP 04
Call GET /ping first
It returns your agency code and the IP we saw.

Start building with the Hotel API
Create an account, generate a test key and make your first request in minutes. No credit card required.