Hotel API suppliers
Hotels API for agencies and OTAs: where hotel rates come from
A hotels API lets your website show live room availability and prices and turn them into confirmed bookings. This page takes a hotel result apart field by field, compares the four kinds of hotel API you can sign, and shows what happens when several suppliers sell the same hotel.
- Bedbanks, OTAs, GDS and direct
- One hotel, many supplier IDs
- Static and dynamic rates
- Ready connectors
Anatomy of a hotel result
Every line of a hotel result comes from the API
One room offer on your results page is built from several pieces of supplier data. Some of it is imported once and stored, some of it is fetched live on every search.
Galata Corner Rooms
Galata, Istanbul
- Deluxe double room
- Bed and breakfast
- Free cancellation until 12 Nov, 23:59
- Refundable
- Net
- USD 368.00
- Markup 12%
- + 44.16
- 1Static contentName, address, stars, photos and amenities. Imported from the supplier's content API on a schedule and served from your own database, not fetched on every search.
- 2Room typeThe room name and occupancy the supplier returns for your dates. The same physical room can carry different names at different suppliers.
- 3Board basisWhat meals are included: room only, bed and breakfast, half board, full board or all inclusive. Each board is a separate rate with its own price.
- 4RateThe total price for the stay and occupancy, returned live from the availability call. It is only valid for a short time.
- 5Cancellation policyThe deadline for free cancellation and the penalty after it. Suppliers send it with the rate and confirm it again before booking.
- 6Rate typeRefundable or non-refundable. Non-refundable rates are usually cheaper but cannot be cancelled without paying the full amount.
- 7Net and sell priceMost hotel APIs for agencies return a net rate. Your markup turns it into the sell price; with commissionable rates the supplier sets the price and pays you a commission.
The engine that assembles these pieces into search, checkout and vouchers is explained on the Hotel booking system API page.
Types of hotel API
Four kinds of hotel API
Hotel APIs differ in where the inventory comes from, who can sign and what the rates look like. Most agencies combine two or more.

- 01
Bedbank and wholesaler APIs
On PHPTRAVELS: Hotelbeds, RateHawk, Hotelston, Stuba, Wanderbeds, TBO HolidaysWhat you get
Net rates for large hotel portfolios worldwide, contracted by the wholesaler and resold to the trade.
Who signs
Travel agencies, OTAs and tour operators, after the wholesaler approves the account.
Best for
B2B sales and packages where you set your own margin on every room.
- 02
OTA affiliate and partner APIs
On PHPTRAVELS: Agoda, BookingWhat you get
The OTA's own hotel inventory, usually at retail prices with a commission per stay.
Who signs
Affiliates and partners the OTA accepts into its partner programme.
Best for
B2C sites that want wide consumer inventory without managing net rates.
- 03
GDS hotel content
On PHPTRAVELS: Amadeus, TravelportWhat you get
Hotel chains and properties distributed through the GDS, often with corporate and negotiated rates.
Who signs
Agencies with a GDS contract, usually the same one used for flights.
Best for
Corporate travel and agencies already booking flights on a GDS.
- 04
Direct connect via channel managers
On PHPTRAVELS: Channel manager connections and your own extranetWhat you get
Rates and availability straight from the hotel, pushed through the channel manager it already uses.
Who signs
You and each hotel, under your own contract with it.
Best for
Agencies with direct hotel contracts, allotments or a regional speciality.
Wholesaler connectors are covered one by one in the Hotelbeds API integration, RateHawk API integration and Hotelston API integration guides; the OTA side in Agoda API integration; direct hotels in Channel manager integration.
The mapping problem
Three suppliers, one hotel
When you connect more than one hotel API, the same property arrives several times, each under its supplier's own name and ID. Without mapping, travellers see duplicates and you cannot compare rates.
- Bedbank AGalata Corner RoomsHTL-48213
- Bedbank BGalata Corner Hotel Rooms88417
- OTA APIGALATA CORNER RMS - ISTANBUList_gal_0192
Name and address
Spellings, abbreviations and transliterations are compared, not just exact text.
Coordinates
Two records a few metres apart with similar names are very likely the same building.
Shared codes
Chain codes, GDS property codes and supplier cross-references confirm a match when they exist.
Rooms and boards
After the hotel is matched, rooms are compared on type, board and policy, so only true duplicates are merged.
PHPTRAVELS maps properties across connected suppliers and keeps the best rate for each matching room. How the mapping and deduplication run inside the engine is covered in Hotel booking system API.
Ready in PHPTRAVELS
Hotel API connectors you switch on with your own keys
These hotel suppliers are already connected to the PHPTRAVELS stays module. You sign with the supplier, enter your credentials in the admin, test and go live. This is the live list from our integrations directory.
AgodaIntegration guide
Amadeus
Booking.comIntegration guide
HotelbedsIntegration guide
HotelstonIntegration guide
RateHawkIntegration guide
Stuba
TBO HolidaysIntegration guide
Travelport
Wanderbeds- All integrations
Need a hotel supplier that is not listed? Any hotel API with documentation can be connected, and the source code is yours. See Custom API integration or the Travel XML API suppliers list.
Static versus dynamic
Static rates and dynamic rates
Hotel prices reach your site in two ways. Most platforms need both: live API rates for reach, stored rates for the hotels you contract yourself.
Static rates
Prices and allotments loaded in advance, from a contract or a rate sheet, and stored on your platform.
Dynamic rates
Prices and availability requested live from a supplier API for each search and confirmed before booking.
- Where the price lives
- In your own database or extranetIn the supplier's system, returned per search
- Availability
- An allotment you track and release yourselfWhatever the supplier has at that moment
- Price changes
- When you or the hotel update the contractContinuously; rechecked before the guest pays
- Work for your team
- Loading rates, stop sales and allotmentsSigning, certification and mapping per supplier
- Typical source
- Direct contracts with hotelsBedbanks, OTA APIs, GDS hotel content
In PHPTRAVELS, contracted rooms from your own extranet appear in the same results as rooms from connected hotel APIs. See the Stays features. A hotel selling its own rooms direct needs a Hotel booking engine instead.
Booking lifecycle
Five calls from search to after-sales
Whichever hotel API you use, a booking passes through the same checkpoints. Skipping one is how agencies end up selling rooms at the wrong price.
- 1
Availability
Destination, dates and occupancy in; hotels, rooms, boards and rates out.
- 2
Recheck
The chosen rate is priced again with its current cancellation policy before payment.
- 3
Book
Guest names go to the supplier, which returns a booking reference.
- 4
Voucher
A voucher with the hotel, room, board, policy and references goes to the guest.
- 5
Amend or cancel
Changes and cancellations follow the supplier's rules; many hotel APIs treat a change as cancel and rebook.
See hotel APIs working in a real booking engine
Search and book hotels in the live demo, then tell us which hotel suppliers you plan to sign.
Comparing options? Flights API and the full Travel APIs directory cover the other products.
A hotels API is a set of web services that lets a travel website search hotel availability and rates, confirm a price and create bookings in real time. Bedbanks, OTAs, GDSs and channel managers each offer one.
A bedbank API gives you net rates, so you add your own markup and set the sell price. An OTA affiliate API usually gives retail prices and pays you a commission. Bedbanks suit B2B and packages; OTA APIs suit consumer sites.
Many suppliers give free test access for development. Selling rooms always needs an approved account with the supplier, and its commercial terms decide what you earn per booking.
Each supplier uses its own hotel name and ID. Mapping matches them by name, address, coordinates and shared codes, so the hotel appears once with the best rate.
Search results are cached or calculated quickly, and rooms sell out. That is why the rate is rechecked with the supplier before payment and the guest sees the confirmed price and policy.
It is a rate type that cannot be cancelled without paying the full amount. It is usually cheaper than the refundable rate for the same room and board.
Yes. PHPTRAVELS searches every connected hotel supplier together, maps the same hotel across them and shows one list with your markups applied.
No. You sign with each hotel supplier and enter your own credentials in the admin. PHPTRAVELS provides the booking platform and the ready connectors.
Yes. On the Enterprise plan, the PHPTRAVELS REST API exposes search and booking from every connected supplier in one format, with webhooks for booking events.
Keep exploring
More from the platform
- Hotel booking system APIMany hotel suppliers through one booking API
- StaysBedbanks and direct contracts
- Hotelbeds API integrationContent and Booking APIs, rate checks and hotel mapping
- Channel manager integrationSync hotel rates, availability and bookings
- Hotel booking engineDirect bookings on your own hotel website
- Travel APIsGDS, hotel, tour, car and payment APIs
