IHG Search API
Find IHG hotels near a set of coordinates, sorted by distance, with full property metadata.
Overview
Metadata only — no pricing or availability
This endpoint returns property metadata (name, brand, address, coordinates, photos, ratings) sorted by distance. It does not return rates or availability, so there are no date parameters. Take the hotel_code from each result and call the IHG Rooms endpoint to get rates and availability.
The IHG Search endpoint covers all IHG-branded properties (InterContinental, Holiday Inn, Crowne Plaza, Kimpton, voco, Hotel Indigo, Staybridge Suites, Candlewood Suites, and more). It returns hotels near a geographic location with brand information, structured address, coordinates, photos, a guest-review summary, and distance from the search center.
Endpoint URL
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| latitude | float | Required | Latitude of search center (-90 to 90) |
| longitude | float | Required | Longitude of search center (-180 to 180) |
| radius_miles | integer | Optional | Search radius in miles (1-100). Default: 50 |
| limit | integer | Optional | Maximum properties to return (1-120). Default: 50 |
Coordinates only
This endpoint searches by latitude/longitude — it does not accept a city or country name. Use Google Maps or a geocoding service to convert a place name to coordinates first. For example, Manhattan is approximately 40.7231, -73.9309.
Response Format
The response includes a list of IHG hotels with brand details, structured address, coordinates, photos, a guest-review summary, and distance from the search coordinates, nearest first.
Response Structure
- success: Boolean indicating request success
- hotels: Array of hotel objects (sorted by distance)
- total: Number of hotels returned
An empty hotels array with success: true means no IHG properties fall within the radius — it is not an error.
Hotel Object Fields
| Field | Type | Description |
|---|---|---|
| hotel_code | string | IHG hotel mnemonic (e.g., "NYCEX", "USMKM"). Use with the Rooms endpoint to get rates. |
| name | string | Hotel name |
| brand | object | Brand details (code, name, chain_code) e.g., "Holiday Inn Express" |
| location | object | GPS coordinates (latitude, longitude) |
| address | object | Structured address (street, city, state, postal_code, country, country_code) |
| distance_miles | float | Straight-line distance from the search center, in miles |
| distance_km | float | Straight-line distance from the search center, in kilometers |
| image | string | Primary hotel image URL |
| photos | array | Additional photos, each with url and caption |
| rating | float | Average guest review (IHG's own 1-5 scale) |
| review_count | integer | Total number of guest reviews |
| status | string | Property status (e.g., "OPEN") |
| url | string | Deeplink to the property page on ihg.com |
Error Responses
The API returns standard HTTP error codes with detailed error messages following the RFC 7807 Problem Details format.
422 Unprocessable Entity
Invalid request parameters (e.g., out-of-range coordinates, missing latitude/longitude)
{
"detail": [
{
"loc": ["query", "latitude"],
"msg": "Input should be less than or equal to 90",
"type": "less_than_equal"
}
]
}
502 Bad Gateway
Upstream service error from IHG
{
"type": "https://api.stayapi.com/errors/upstream-error",
"title": "Upstream Error",
"status": 502,
"detail": "Failed to fetch search results",
"provider": "ihg",
"product": "search"
}
Usage Tips
Best Practices
- Use precise coordinates for best results (e.g., city center or airport location)
- This endpoint is metadata only — pass the
hotel_codeto the Rooms endpoint to get rates and availability for specific dates - Results are sorted by distance (nearest first); use
radius_milesto bound the search area - Geocode city/country names to coordinates before calling this endpoint
- The
distance_milesfield helps rank results by proximity
Rate Limiting
This endpoint is subject to your plan's rate limits. Each search counts as one API call regardless of the number of results returned.