Marriott Bonvoy Search API
Search for Marriott Bonvoy hotels by geographic coordinates with real-time availability and pricing.
Overview
Coordinate-Based Search
This endpoint searches by latitude and longitude, making it ideal for map-based applications and proximity searches.
The Marriott Bonvoy Search endpoint returns hotels near a geographic location with real-time pricing, brand information, ratings, and distance from the search center. Supports pagination, sorting, and currency selection.
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) |
| check_in | string | Required | Check-in date in YYYY-MM-DD format |
| check_out | string | Required | Check-out date in YYYY-MM-DD format |
| adults | integer | Optional | Number of adults (1-10). Default: 2 |
| rooms | integer | Optional | Number of rooms (1-8). Default: 1 |
| currency | string | Optional | Currency code (e.g., USD, EUR, GBP). Default: USD |
| offset | integer | Optional | Pagination offset. Default: 0 |
| limit | integer | Optional | Results per page (max 20). Default: 20 |
| sort_by | string | Optional | Sort field (DISTANCE, PRICE, etc.). Default: DISTANCE |
Finding Coordinates
Use Google Maps or a geocoding service to get latitude and longitude for your target location. For example, Bangkok is approximately 13.7563, 100.5018.
Response Format
The response includes a list of Marriott hotels with pricing, brand details, ratings, and distance from the search coordinates.
Response Structure
- success: Boolean indicating request success
- hotels: Array of hotel objects
- total: Total number of matching hotels
- page_info: Pagination metadata (offset, limit, has_more)
Hotel Object Fields
| Field | Type | Description |
|---|---|---|
| property_id | string | Marriott property code (e.g., "BKKDT", "LAXJW") |
| name | string | Hotel name |
| brand | object | Brand details (id, name) e.g., "JW Marriott", "The Ritz-Carlton" |
| location | object | GPS coordinates (latitude, longitude) |
| description | string | Hotel description |
| rating | float | Guest rating score |
| review_count | integer | Total number of reviews |
| image | string | Primary hotel image URL |
| url | string | Marriott.com hotel page URL |
| bookable | boolean | Whether the property has available rooms |
| price | object | Pricing details (per_night, total, taxes, fees, currency, points_per_night) |
| distance_meters | float | Distance from search center in meters |
Error Responses
The API returns standard HTTP error codes with detailed error messages following the RFC 7807 Problem Details format.
400 Bad Request
Invalid request parameters (e.g., invalid dates, out-of-range coordinates)
{
"type": "https://api.stayapi.com/errors/invalid-dates",
"title": "Invalid Dates",
"status": 400,
"detail": "Check-out date must be after check-in date"
}
502 Bad Gateway
Upstream service error from Marriott
{
"type": "https://api.stayapi.com/errors/upstream-error",
"title": "Upstream Error",
"status": 502,
"detail": "Search failed"
}
Usage Tips
Best Practices
- Use precise coordinates for best results (e.g., city center or airport location)
- Dates must be in YYYY-MM-DD format and check-in cannot be in the past
- Use
offsetandlimitfor pagination through large result sets - The
property_idfield can be used with the Rooms endpoint to get detailed rates - Sort by PRICE to find the cheapest options first
- The
distance_metersfield 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.
Related Endpoints
Marriott Bonvoy Rooms
Get room types and rates for a specific Marriott property
View Documentation →