IHG API: How to Check Availability and Get Room Rates Programmatically
This guide covers what IHG offers developers and the working route to availability, room types, rates, and points pricing for any IHG hotel, Holiday Inn to InterContinental.
Table of contents

IHG has no public API.
The company behind Holiday Inn, Holiday Inn Express, Crowne Plaza, InterContinental, and Kimpton runs its integrations through partner agreements, and there's no developer signup page anywhere on ihg.com.
If you've been searching for an IHG API to check availability, pull room rates, or track a property over time, the official channels weren't built for you.
The data route exists anyway: three endpoints that read ihg.com's public availability display for any of the group's 7,109 hotels across more than 100 countries.
This guide covers what IHG offers officially, what data you can actually get, and two worked examples with real responses: a search around central London and a full room-and-rate pull for one property, points pricing included.
Key Takeaways
- IHG has no public developer API. Its integrations serve distribution, connectivity, and group-booking partners under agreements, and independent developers can't request a key.
- Three endpoints cover the practical jobs. Search by coordinates, rooms and rates by property, and URL-to-ID conversion, documented on the IHG API page from StayAPI.
- One integration spans the whole brand family. A 3-mile search in central London returned Holiday Inn, Holiday Inn Express, InterContinental, Kimpton, Hotel Indigo, voco, and Staybridge Suites properties in one schema.
- Points pricing arrives as data. Reward options per room type (points, or points plus cash) come back beside the cash rates, which no OTA endpoint can show you.
- Review text and price calendars aren't in the IHG set. For review data on the same properties, the OTA endpoints under the same key cover it.
What IHG Officially Offers Developers

IHG's technology partnerships are real and substantial, and all of them are commercial.
| Route | Who It's For | What It Covers |
|---|---|---|
| Distribution and connectivity | OTAs, GDS channels, reservation-system partners | Inventory, rates, and booking under contract |
| Property systems | Hotels in the IHG system and their PMS vendors | Running your own property |
| Group and corporate booking platforms | Contracted platforms | Group rates and booking flows, announced as partnerships |
| IHG One Rewards | Program partners | Points earning and redemption offers |
A group-booking platform's announcement of its IHG integration shows the shape every IHG API story takes: a strategic partnership, negotiated, covering the whole estate, with no path for anyone else to follow.
The pattern matches Marriott and every other chain we've documented: booking and operations have official channels, market-data access doesn't.
Reading availability or rates for properties you don't operate isn't a product IHG sells to developers, and an application for the distribution route is a volume negotiation measured in months.
What IHG Data You Can Actually Get

Third-party hotel data APIs read ihg.com's public surfaces as documented REST endpoints.
For IHG that means three endpoints against one hotel code.
| Endpoint | What It Returns |
|---|---|
| Search | Every IHG property within a radius of a coordinate (up to 100 miles), with brand, rating, review count, open/closed status, and photos |
| Rooms | Room types for a property and dates: rooms left, each rate plan with per-night and total pricing, member and advance-purchase flags, and reward-points options |
| URL-to-ID | Any ihg.com page URL converted to the property's hotel code |
Scope, stated plainly: there's no price calendar and no review text in the IHG set.
Search returns each property's aggregate rating and review count, and for the reviews themselves the same hotels resolve on the Booking.com, TripAdvisor, and Expedia endpoints under the same key.
Next to the eight-endpoint Accor coverage, IHG is the leaner chain, and the rooms endpoint carries most of the value.
The brand point matters in practice: search results span the whole IHG family.
The 12 nearest properties to Trafalgar Square came back as Hotel Indigo, voco, InterContinental, Holiday Inn Express, Kimpton, Holiday Inn, Ruby, Garner, and Staybridge Suites, plus one independent affiliate, all in one schema.
A second search around Heathrow added Crowne Plaza to the list.
Hotel codes are IHG's own 5-letter mnemonics (LONHB for the InterContinental London Park Lane), and they're the key for the rooms endpoint.
Worked Example 1: Every IHG Hotel Near a Point

The search endpoint takes a coordinate and a radius.
Here's central London, 3 miles out:
curl -X GET "https://api.stayapi.com/v1/ihg/search?latitude=51.5074&longitude=-0.1278&radius_miles=3&limit=12" \
-H "x-api-key: YOUR_API_KEY"
The response (truncated to one property):
{
"success": true,
"total": 12,
"hotels": [
{
"hotel_code": "LONHB",
"name": "London Park Lane",
"brand": { "code": "ICON", "name": "InterContinental", "chain_code": "IC" },
"address": { "street": "One Hamilton Place Park Lane", "city": "London", "postal_code": "W1J 7QY", "country_code": "GB" },
"distance_miles": 0.98,
"rating": 4.4078418230563,
"review_count": 2984,
"status": "OPEN",
"url": "https://www.ihg.com/hotels/us/en/find-hotels/hotel/rooms?qDest=&qHotelCode=LONHB"
},
...
]
}
| Field | Description |
|---|---|
hotel_code |
IHG's property mnemonic, the key for the rooms endpoint |
brand.name |
Which IHG brand the property belongs to |
rating / review_count |
ihg.com's aggregate guest score and count |
status |
OPEN or otherwise, useful for catching new openings |
distance_miles |
Distance from your search point |
Two things this enables: a comp set of every IHG property around your hotel in one call, and a brand filter that's one line (brand.code == "HIEX" for the Holiday Inn Express tier).
Full parameters are in the search endpoint documentation.
Worked Example 2: Rooms, Rates, and Points for One Property

curl -X GET "https://api.stayapi.com/v1/ihg/rooms?hotel_code=LONHB&check_in=2026-10-06&check_out=2026-10-08&adults=2" \
-H "x-api-key: YOUR_API_KEY"
The response (truncated to one room type):
{
"success": true,
"hotel_code": "LONHB",
"currency": "GBP",
"brand_code": "ICON",
"total": 16,
"room_types": [
{
"code": "KFTG",
"name": "1 King Premium",
"max_adults": 3,
"available_rooms": 9,
"rates": [
{
"name": "MEMBER RATE by IHG® One Rewards BONUS POINTS: 2,000 Bonus Points for Every Night",
"rate_plan_code": "IKME6",
"per_night": 718.68,
"total": 1437.35,
"currency": "GBP",
"is_member_rate": true,
"is_advance_purchase": false
},
...
],
"reward_options": [
{ "points": 175500, "cash": null, "points_total": 351000 },
{ "points": 165500, "cash": 79.0, "cash_currency": "USD", "points_total": 331000, "cash_total": 158.0 }
]
},
...
]
}
| Field | Description |
|---|---|
available_rooms |
Rooms left of this type for the dates |
rates[].per_night / total |
Cash pricing per plan, in the hotel's currency |
rates[].is_member_rate |
Whether the plan is an IHG One Rewards member rate |
rates[].is_advance_purchase |
Prepaid, restricted plans flagged |
reward_options[] |
Points-only and points-plus-cash pricing for the same room |
Three things to read off this.
Availability is a number, so a sold-out signal is available_rooms reaching zero rather than a blank booking page.
Member pricing is labeled, so direct-versus-OTA comparisons can match the right rate.
For these dates every returned plan was a member plan, while the documentation example shows a non-member Best Flexible Rate, so filter on the flag instead of assuming either way.
Points pricing is data: 175,500 points, or 165,500 points plus $79, for the same night that costs £718.68 in cash.
That's the raw material for a redemption-value calculation, and it arrives without a member login.
The same call against the Holiday Inn Express in Southwark (hotel code LONSW) returned a £286.46 member-exclusive saver on a standard room for the same nights, which is the brand-family claim made concrete: one schema from a park-view InterContinental to a breakfast-included Express.
Full parameters are in the rooms endpoint documentation.
What Teams Build with IHG Data

- Direct-vs-OTA rate tracking. The rooms endpoint gives ihg.com's rate with member flags; OTA endpoints give the same room on Booking.com. The daily delta is the parity conversation, and our hotel price tracker guide covers the tracking build.
- Comp sets by brand tier. One search returns the Express down the road and the InterContinental across the park, each with a brand code, so a select-service comp set and an upscale one come from the same call.
- Availability as a demand signal.
available_roomsacross a market's IHG properties, polled daily, is an occupancy proxy no booking page shows. - Points valuation at scale.
reward_optionsbeside cash rates gives cents-per-point for any property and any date, which is a spreadsheet exercise by hand and a loop with an API.
Getting Started
- Sign up at stayapi.com. Free tier, no credit card, no partnership application.
- Find your hotel codes: run a search by coordinates, or paste any ihg.com property URL into the URL-to-ID endpoint (the Holiday Inn Express in Long Island City comes back as NYCEX).
- Make the two calls above with your own properties and dates.
- Schedule the rooms call (daily or weekly) to build a rate and availability history, and pipe the JSON into your database, Google Sheets, Power BI, or no-code platforms like N8N and Make.com. For portfolio- or market-scale projects, book a demo call.
FAQ
Does IHG have a public API?
No.
IHG's integrations run through distribution, connectivity, and group-booking partnerships under commercial agreements.
Third-party data APIs are the route for reading availability, rooms, and rates programmatically.
Which IHG brands does the data cover?
The whole family resolves through the same endpoints: Holiday Inn, Holiday Inn Express, Crowne Plaza, InterContinental, Kimpton, Hotel Indigo, voco, Staybridge Suites, and the rest.
Search results carry a brand object, so filtering to one brand is a one-line operation.
Can I check IHG availability programmatically?
Yes.
The rooms endpoint returns available_rooms per room type for any dates, and polling it on a schedule turns sold-out and reopened dates into alerts.
How do I find an IHG hotel code?
Two ways: search by coordinates and read the hotel_code field, or pass any ihg.com property URL to the URL-to-ID endpoint.
Codes are 5-letter mnemonics like LONHB, stable per property.
Can I get IHG points prices through an API?
Yes.
The rooms endpoint returns reward_options per room type, with points-only and points-plus-cash pricing beside the cash rates, and no member login is involved.
Ready to simplify your hotel data?
Join other developers using StayAPI to build the next generation of travel applications. Get started for free today.