Learn how Hotelbeds API integration really works: architecture, costs, common failures, and how it compares to Expedia Rapid
Somewhere between "let's add hotel inventory" and "we're live in production," most teams learn that a Hotelbeds API integration is not really about the API. It's about everything you have to build around it: caching, markup logic, failover, and a dozen small decisions that never show up in the documentation until they break something.
This guide walks through exactly that: how the Hotelbeds API suite actually works, how a booking really moves from search to voucher, what tends to break once real traffic hits, and how Hotelbeds stacks up against the other big hotel API providers. If you're trying to decide whether to build this yourself, hire it out, or run it through a platform, you'll have what you need by the end.
Here's the question worth asking before you write a single line of code: is your platform ready to own a hotel booking, or does it just want to display one? Those are two very different projects, and Hotelbeds gives you the raw material for either, but only if you know which one you're actually building.
What Is Hotelbeds API Integration?
The Simple Definition
Hotelbeds API integration is the process of connecting your booking engine, OTA, or travel platform to Hotelbeds' hotel inventory so you can search rooms, check live rates, and confirm bookings in real time. It runs through a set of REST APIs Booking, Content, and Cache that together hand you access to hundreds of thousands of contracted hotels without you having to negotiate with a single property yourself.
Why It's Harder Than It Looks
That part is simple to explain. What's harder is everything that happens after "hello world" session handling, price revalidation, markup rules, and the operational side that decides whether your integration actually holds up once real customers start booking. That's the part most guides skip, and it's the part this one focuses on.
What Hotelbeds Actually Is
The Bed Bank Model
Before you plan a Hotelbeds API integration, it helps to understand what Hotelbeds actually is. It's what the travel industry calls a bed bank. Instead of connecting you directly to individual hotels, it contracts rooms in bulk from hotels worldwide at wholesale net rates, then resells that inventory to travel businesses through its API. You set your own markup on top of the net rate, which is where your margin comes from.
How Hotelbeds Grew Its Portfolio
This is different from how a GDS like Amadeus works, where you're mostly pulling published or corporate airline and chain rates. It's also different from an OTA-wholesale API like Expedia Rapid, which resells inventory that powers Expedia's own consumer brand. Hotelbeds' portfolio expanded significantly after acquiring Tourico Holidays and GTA, two other major wholesalers, bringing its reach to well over a hundred thousand properties across dozens of countries. Coverage is strongest in Europe, though it stretches globally into hotels, transfers, and activities.
How Hotelbeds Differs From a GDS or OTA-Wholesale API
Three different business models tend to get lumped together under "hotel API," and mixing them up is where a lot of buying decisions go wrong early:
- Bed banks (Hotelbeds, WebBeds, RateHawk): contract hotels directly and sell at net rates, you add the markup.
- GDS providers (Amadeus, Sabre, Travelport): distribute chain and corporate rates alongside flights.
- OTA-wholesale APIs (Expedia Rapid): Resell a consumer OTA's own retail catalog, usually commission-based rather than net-rate.
Knowing which bucket you're actually buying into changes how you price, how much working capital you need, and how you plan your integration, which is exactly what the comparison section further down breaks apart in detail.

Why the Net-Rate Model Matters to You
Because Hotelbeds sells at net rates, the price you get back from the API is not the price your customer sees. You add the markup as a percentage, a flat fee, or a tiered rule based on destination or hotel star rating. That sounds simple until you realize the markup engine has to run consistently across every search result, every currency, and every device, without slowing anything down.
This is also where a lot of first-time integrations quietly lose money. If your markup logic lives in three different places the search page, the booking confirmation, and the invoice a small mismatch between them can mean charging a customer one price and confirming the room at another. Keeping markup calculation in a single, shared place in your codebase isn't glamorous work, but it's the difference between a clean reconciliation report and a support ticket nobody can explain.
Inside the Hotelbeds API Suite
A Hotelbeds API integration doesn't run on one API it runs on three, and understanding what each one is for saves you from a lot of wasted engineering time later.
Booking API
This is the core of your integration. The Booking API handles three main functions: Hotels (availability search), CheckRates (rate revalidation), and Bookings (confirming or cancelling a reservation). A flexible-date search lets you pull rates for a range of days around a check-in date, not just the exact dates entered, which matters more than it sounds like for conversion.
The important design detail here: Hotelbeds built this as a two-step confirmation process, but most real integrations end up needing a third step in between checking the rate again right before booking because prices and availability can shift in the seconds between search and confirmation.
Content API
Hotel information splits into two very different categories: static information (descriptions, images, addresses, things that rarely change) and dynamic information (prices, availability, cancellation policies, things that change constantly). The Booking API deliberately keeps its responses lean by returning only the dynamic side, while the Content API handles everything static. This split isn't a technical afterthought; it's the single most important architecture decision in a Hotelbeds integration, and it's the subject of its own section below.
Cache API
The Cache API gives you bulk access to Hotelbeds' full portfolio of prices and availability as a snapshot in time, rather than live per-request calls. It's built for situations where you need Hotelbeds' entire catalog loaded into your own system for package building or feeding a third-party platform rather than querying live on every search. Most new integrations start with the Booking and Content APIs and only reach for Cache once volume or packaging needs justify the extra complexity.
How These Three APIs Actually Work Together
Think of it like a restaurant. The Content API is the menu photos, descriptions, and what's on offer, and it doesn't change every hour. The Booking API is the waiter checking with the kitchen in real time to confirm what's actually available right now and at what price. The cache API is closer to a daily printed price sheet: useful when you need to see everything at once and less useful when you need to know if table twelve is free this exact second.
Get this pairing wrong, say, hitting the Content API live on every search instead of syncing it, and your platform behaves like a restaurant that reprints its entire menu every time someone asks what's for dessert. It works, but it's slow and unnecessary. That's precisely the mistake the architecture section further down is built to help you avoid.
Beyond hotels, Hotelbeds runs the same three-API pattern for transfers and activities, which matters if you're planning to sell more than just rooms. The endpoints differ, but the underlying logic splits static from dynamic, caches what doesn't move, and calls live only what does and carries over directly.
Inside a Real Hotelbeds Integration
Documentation explains what each endpoint does. It rarely explains why the sequence matters. Here's what actually happens between a customer typing in a destination and a voucher landing in their inbox.
- Search: Your platform sends destination, dates, and occupancy to the Booking API. Hotelbeds returns a list of hotels with room types and rates, but this is a snapshot, not a promise.
- Content merge: In parallel (or from your own cached store), you pull hotel descriptions, images, and amenities from the Content API and stitch them onto the search results, since the Booking API deliberately doesn't carry that weight.
- Rate check: Before the customer commits, you re-verify the rate through CheckRates. Prices and availability can move in the gap between search and this step, sometimes by a few dollars, sometimes enough to trigger a "price changed" message.
- Hold or book: The booking request goes out with guest details, and Hotelbeds returns a confirmation or a rejection if the rate has expired.
- Payment sequencing: Your system charges the customer timed carefully around the booking confirmation, not before it, or you risk taking money for a room that's no longer available.
- Voucher generation: Once confirmed, you generate the customer-facing voucher and sync the booking into your CRM or back office, and the record becomes the source of truth for support, changes, and cancellations going forward.
Every one of those six steps is a place a first-time integration tends to cut corners. The teams that don't cut corners are the ones whose integrations don't fall over during a traffic spike.

Why the Rate Check Step Matters Most
Here's the part that surprises most new teams: the entire flow above can execute in well under a second from the customer's point of view, yet still hide serious problems if the timing between steps three and four isn't handled carefully. A customer clicking "book" doesn't see the rate check happening behind the scenes they just see either a confirmation or a frustrating "price has changed, please try again" message. Minimizing how often that message appears, without skipping the safety check that prevents it from mattering, is one of the quieter engineering wins in a Hotelbeds integration.
Architecture Decisions That Save Thousands
The Mistake Most New Integrations Make
Here's the insight most Hotelbeds guides never mention: calling the Content API and Booking API on every single search is one of the most expensive mistakes a new integration makes.
Hotel descriptions, images, and amenities barely change week to week. Prices and availability change constantly. If you treat both as equally "live," you're burning API calls and slowing down your search page for data that didn't need to be fetched fresh in the first place.
The Fix: Separate Static Content From Live Pricing
The fix experienced teams use: pull static content from the Content API on a scheduled sync daily or weekly and store it in your own database. Then hit the Booking API live only for what actually needs to be live: rates and availability. This single decision cuts your call volume dramatically, speeds up search response times, and keeps you well inside Hotelbeds' rate limits during traffic spikes.
It's a pattern that lines up with how Hotelbeds itself designed the two APIs to be used separately, for a reason. There's a second, less obvious payoff. Once your content lives in your own database, you're no longer dependent on Hotelbeds' response times for your page to load. A slow supplier response on a Friday evening traffic spike becomes a background sync delay instead of a visible slowdown for your customer because the description, photos, and amenities were already there before the customer even started searching.
Caching Rates Without Creating the Stale-Price Problem
Static content can be cached generously. Rates cannot, or at least not without a plan. A common middle-ground approach experienced teams use is a short-lived cache, often just a few minutes, on search results only, paired with a mandatory live rate check at the moment of booking. This keeps your search page fast without ever letting a stale price reach the point where money changes hands. The rule of thumb: cache what a customer sees, never cache what a customer pays.
What Breaks in Production
Sandbox testing rarely exposes the problems that show up once a Hotelbeds API integration meets real customers, real traffic, and real edge cases. These are the issues that tend to surface in the first few months after go-live.
| Problem | Common Cause | Fix |
| Price changed at checkout | Rate cached too long between search and booking | Re-run CheckRates immediately before confirming |
| Duplicate bookings | Retry logic without idempotency keys after a timeout | Add idempotency keys to every write call |
| Stale hotel content | Content API sync not scheduled or failing silently | Automate the sync and alert on failure, not just success |
| Hotel code mapping drift | Same property listed under different IDs across suppliers | Maintain a mapping table and reconcile it regularly |
| Booking confirmed, voucher missing | Voucher generation not decoupled from the confirmation call | Treat voucher creation as its own retryable step |
| Signature/auth mismatches | Clock drift or incorrect signature generation on requests | Sync server time and validate signature logic in staging |
Two of these deserve extra attention because they're the ones that catch new teams off guard most often.
Duplicate Bookings
Duplicate bookings happen when a request times out, your system retries automatically, and Hotelbeds ends up processing the booking twice because nothing told it the retry was the same request, not a new one. Idempotency keys solve this by tagging each write operation so a repeat request is recognized and ignored rather than processed again.
Hotel Code Mapping Drift
Hotel code mapping drift happens because Hotelbeds isn't the only supplier feeding your platform, and the same physical hotel can carry a different internal ID with every supplier. If you're merging inventory from more than one source, that same hotel can quietly show up twice on your search results page with two different prices, which looks broken to a customer even when both prices are technically correct.
Authentication, Sandbox, and Certification
Getting Your API Keys
Getting API keys from Hotelbeds is the easy part of any Hotelbeds API integration. Getting from sandbox to production takes more planning than most teams budget for.
The Real Authentication Challenge
Authentication runs on an API key and shared secret, used to generate a signature on every request. The most common early bug isn't the authentication logic itself; it's a mismatched or expired signature caused by server clock drift, which produces confusing errors that look like a credentials problem but aren't.
Getting Certified for Production
Before Hotelbeds approves production access, you'll typically need to demonstrate a working, tested integration: correct error handling, a functioning booking-to-cancellation flow, and evidence that your system won't hammer their API with unnecessary calls. Budget real time for this certification step; it's routinely underestimated in project timelines, the same way it is with GDS providers like Amadeus.
Security Best Practices
None of this matters if your Hotelbeds API integration isn't secure, and a hotel booking flow touches enough sensitive data that it's worth treating security as a first-class requirement rather than a checklist item at the end.
- Keep your API key and shared secret server-side only; never expose them in frontend code or a mobile app bundle.
- Encrypt guest personal information, including names, contact details, and passport numbers where collected, both at rest and in transit.
- Tokenize payment data through your payment gateway rather than handling raw card numbers yourself; this keeps you out of the heaviest PCI DSS obligations.
- Log every request and response for auditing and dispute resolution, but strip sensitive fields before that log ever gets written to disk.
- Rate-limit your own public-facing endpoints so a bot or bad actor can't indirectly exhaust your Hotelbeds quota by hammering your search page.
Performance, Rate Limits, and Handling Failures Gracefully
Any Hotelbeds API integration has to respect rate limits per environment, and a busy weekend or seasonal spike is exactly when you're most likely to bump against them, which is also the worst possible time for a booking to silently fail. A few practices keep performance steady under pressure:
- Retry with backoff, not immediately. If a request times out, wait a beat and increase that wait on each subsequent retry, rather than hammering the API again right away.
- Set different timeout thresholds per step. A search can tolerate a couple of seconds of patience; a ticketing or booking confirmation call should fail fast so the customer isn't left staring at a spinner.
- Monitor Hotelbeds response times separately from your own backend. This tells you immediately whether a slowdown is your problem or the supplier's a distinction that matters a lot when you're debugging under pressure.
- Use connection pooling for outbound calls so you're not paying the overhead of a fresh connection on every single request.
Webhooks and Post-Booking Updates
A booking isn't finished the moment the voucher is issued. Cancellation requests, amendment requests, and occasional supplier-side changes to a reservation can all arrive after the fact, and a queue-based system for catching these updates holds up far better under load than polling Hotelbeds repeatedly to check, "Did anything change?” Logging every update as it arrives, not just the failures, makes it much easier to answer a customer's "what happened to my booking" question with a clear, accurate timeline instead of a guess.
Hotelbeds vs Alternatives
The Three Business Models, Revisited
Hotelbeds is far from the only option for a hotel API integration, and the right choice depends on what kind of platform you're building.
Bedbanks like Hotelbeds, WebBeds, and RateHawk buy hotel rooms at net rates and resell them, letting you set your own markup, while retail or OTA-wholesale APIs like Expedia Rapid distribute a large retail catalog, usually on a commission basis instead. That distinction changes your entire commercial model, not just your integration effort.
Side-by-Side Comparison
| Provider | Model | Best Fit | Integration Complexity |
| Hotelbeds | Bed bank, net rates | Global wholesale coverage, strongest in Europe | Moderate |
| Expedia Rapid | OTA-wholesale, commission | Rich content, ready-to-use retail catalog | Moderate |
| WebBeds | Bed bank, net rates | Regional strength, activities/transfers add-ons | Moderate |
| RateHawk | Bed bank, net rates | Fast onboarding, budget-friendly OTAs | Low-Moderate |
| TBO | Bed bank, net rates | Cost-sensitive platforms, strong in South Asia/Middle East | Low-Moderate |
None of the major bed banks or OTA-wholesale APIs require IATA accreditation to integrate, which lowers the barrier to entry compared to some GDS relationships, one reason Hotelbeds and its peers are a common starting point for newer travel platforms.
The Practical Takeaway
Hotelbeds earns its place when you need broad, dependable wholesale coverage and you're comfortable managing net-rate pricing yourself. If your priority is out-of-the-box rich content with less pricing overhead, Expedia Rapid is worth evaluating alongside it. Many mature platforms end up running more than one supplier at once, which is exactly where the mapping and orchestration challenges discussed earlier start to matter.
Integration Timeline
A realistic Hotelbeds API integration timeline for a focused team building hotel search through booking:
- Week 1: API key setup, sandbox access, documentation review
- Week 2: Booking API integration for search and availability
- Week 3: Content API sync and static/dynamic data separation
- Week 4: Rate revalidation, booking flow, error handling
- Weeks 5-6: Testing against edge cases, idempotency, certification prep
- Week 7+: Production migration and go-live
Adding transfers or activities, or building a full multi-supplier orchestration layer, typically adds several more weeks depending on team size, the same pattern you'd see with any GDS or bedbank integration of this scope.
Cost Considerations
The API access itself isn't where most of the budget goes. The real cost of a Hotelbeds API integration includes the following:
- Developer time for the initial build, plus ongoing maintenance as Hotelbeds updates its API
- Infrastructure to run a content sync, caching layer, and reliable retry logic
- Certification and testing time before production approval
- Ongoing support for mapping drift, cache management, and supplier-side changes after launch
Teams that budget only for the build and not the six-month maintenance load tend to feel it hardest right after launch, once real bookings start generating real edge cases. Planning for this upfront is what separates a Hotelbeds API integration that runs smoothly from one that's constantly being firefought.
Should You Use Hotelbeds?
Use Hotelbeds if you need broad global hotel inventory at wholesale net rates, want to set your own markup, and your platform can also benefit from transfers and activities through the same connection.
Avoid Hotelbeds if you only need a small handful of direct hotel relationships in one city or region, or a full bedbank integration is more infrastructure than that use case needs.
Consider alternatives if your priority is airline-first distribution, you need a specific regional supplier Hotelbeds doesn't cover well, or you'd rather trade net-rate pricing control for Expedia Rapid's ready-made retail content.

Build vs Buy: Where a Platform Like TravelBookingPanel Fits
What Hotelbeds Won't Build for You
Everything above is the part a raw Hotelbeds API integration won't build for you: the caching strategy, the markup engine, the multi-supplier mapping table, the retry logic, and the CRM sync that turns a bare API connection into a platform your team can actually run day to day.
Where an Orchestration Layer Fits In
That orchestration layer is exactly what a white-label solution like TravelBookingPanel is built to handle the same underlying challenge covered in detail in our guide to Amadeus API integration, just applied to hotel inventory instead of flights. Whether you build this connection in-house or evaluate a platform that's already solved it, the architecture decisions and production risks outlined here are the ones worth stress-testing before you commit engineering time.
Final Thoughts
More Than a Documentation Exercise
On paper, Hotelbeds API integration looks like a documentation exercise: get your keys, call an endpoint, and get hotels back. In practice, it's an ongoing operations problem: caching decisions, markup logic, mapping drift, and a production environment that behaves nothing like the sandbox.
None of that makes Hotelbeds a bad choice. It's one of the most widely used bed banks in the industry for a reason: broad inventory, wholesale pricing you control, and a mature API suite once you understand how to use its three parts together. The teams that get the most out of it are the ones who treat the integration as day one of an ongoing relationship, not a finished project the moment the first booking confirms.
The Questions Worth Asking
Whether you build a Hotelbeds API integration in-house, hire a specialist team, or run it through a ready-made platform, the questions worth asking are the same ones this guide has walked through: how are you separating static content from live pricing, how are you catching duplicate bookings before they happen, and who's watching the integration six months after launch when the initial excitement has worn off and the real operational work begins.
FAQs
How long does a Hotelbeds API integration take?
A focused hotel-only integration typically takes six to eight weeks for a small team, from sandbox access through production go-live.
Is the Hotelbeds API free to use?
Access to the sandbox for testing is generally free. Production use runs on negotiated commercial terms tied to your booking volume.
Do I need IATA accreditation to integrate with Hotelbeds?
No. Bed banks like Hotelbeds don't require IATA accreditation, unlike some GDS relationships.
What's the difference between the Booking API and the Cache API?
The Booking API is for live, per-request search and booking. The Cache API is for bulk, snapshot-based access to the full portfolio, useful for packaging or feeding another system.
Can I use Hotelbeds alongside other suppliers like Expedia Rapid?
Yes, and many platforms do. It adds a hotel-mapping and rate-comparison challenge, since the same property can appear from multiple suppliers under different IDs.
What causes most Hotelbeds integration failures after launch?
Cache staleness, missing idempotency keys on retries, and treating static content calls the same as live pricing calls are the three most common causes of post-launch problems.
Does Hotelbeds support transfers and activities too, or only hotels?
Yes. Hotelbeds runs the same Booking, Content, and Cache API structure for transfers and activities, which is useful if you're planning to sell more than just rooms through the same connection.
Can a small travel agency realistically integrate Hotelbeds, or is it only for larger platforms?
A small team can absolutely integrate it, but it's worth being honest about the ongoing maintenance load. Cache management, mapping, and error handling don't disappear just because the business is small. Many smaller agencies choose a white-label platform for this exact reason: to get the integration without carrying the full engineering overhead themselves.
Tags
Own Your Travel Platform. Forever.
Buy once, own forever. Full source code · No monthly fees · No hidden charges.