GET

Marriott Bonvoy Rooms API

Get room types and rates for a specific Marriott Bonvoy property with real-time availability.

Overview

Property Code Required

Use the property_id from the Search endpoint (e.g., "BKKDT", "LAXJW") to fetch rooms for a specific hotel.

The Marriott Bonvoy Rooms endpoint returns available room types with detailed rate plans, bed types, cancellation policies, and Bonvoy member-only pricing. Use this after the Search endpoint to get complete room-level details for a property.

Endpoint URL

GET https://api.stayapi.com/v1/marriott/bonvoy/rooms

Parameters

Parameter Type Required Description
property_id string Required Marriott property code (e.g., "BKKDT", "LAXJW")
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

Property Codes

Get property codes from the Search endpoint. Each hotel in the search response includes a property_id field you can use here.

Response Format

The response includes room types grouped by category, each containing one or more rate plans with pricing and cancellation details.

Response Structure

  • success: Boolean indicating request success
  • property_id: The requested property code
  • room_types: Array of room type objects
  • total: Total number of room types available

Room Type Fields

Field Type Description
name string Room type name (e.g., "Deluxe Room", "Executive Suite")
bed_type string Bed configuration (e.g., "1 King", "2 Double")
view string Room view (e.g., "City View", "Pool View")
category string Room category (e.g., "STANDARD", "SUITE")
available_rooms integer Number of rooms still available
rates array Array of rate plan objects (see below)

Rate Plan Fields

Field Type Description
name string Rate plan name (e.g., "Best Available Rate", "Member Rate")
rate_plan_code string Internal rate plan identifier
per_night float Price per night
total float Total price for the stay
fees float Additional fees
currency string Currency code
members_only boolean Whether rate requires Bonvoy membership
free_cancellation_until string Free cancellation deadline (ISO 8601 datetime)
points integer Bonvoy points required (for points-based rates)
points_saved integer Points saved vs standard redemption (when available)
free_nights integer Number of free nights included in points redemption

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, missing property_id)

{
  "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": "Failed to fetch rooms"
}

Usage Tips

Best Practices

  • Get the property_id from the Search endpoint first
  • Each room type may have multiple rate plans with different prices and policies
  • Check members_only to identify Bonvoy member-exclusive rates
  • Use free_cancellation_until to show flexible booking options
  • Rates bookable with Bonvoy points include points, points_saved, and free_nights fields
  • Check available_rooms to show urgency for limited inventory

Rate Limiting

This endpoint is subject to your plan's rate limits. Each request counts as one API call regardless of the number of room types returned.

Related Endpoints

Marriott Bonvoy Search

Search for Marriott hotels by coordinates to get property codes

View Documentation →

Meta Search

Search across multiple booking platforms

View Documentation →
Request
curl -X GET "https://api.stayapi.com/v1/marriott/bonvoy/rooms?property_id=BKKDT&check_in=2026-04-15&check_out=2026-04-18&adults=2&currency=USD" \
  -H "X-API-Key: YOUR_API_KEY"
Response
{
  "success": true,
  "property_id": "BKKDT",
  "room_types": [
    {
      "name": "Deluxe Room",
      "bed_type": "1 King",
      "view": "City View",
      "category": "STANDARD",
      "available_rooms": 5,
      "rates": [
        {
          "name": "Best Available Rate",
          "rate_plan_code": "BAR",
          "per_night": 185.00,
          "total": 555.00,
          "fees": 0,
          "currency": "USD",
          "members_only": false,
          "free_cancellation_until": "2026-04-13T18:00:00",
          "points": null,
          "points_saved": null,
          "free_nights": null
        },
        {
          "name": "Member Rate",
          "rate_plan_code": "MBR",
          "per_night": 166.50,
          "total": 499.50,
          "fees": 0,
          "currency": "USD",
          "members_only": true,
          "free_cancellation_until": "2026-04-13T18:00:00",
          "points": null,
          "points_saved": null,
          "free_nights": null
        }
      ]
    },
    {
      "name": "Executive Suite",
      "bed_type": "1 King",
      "view": "City View",
      "category": "SUITE",
      "available_rooms": 2,
      "rates": [
        {
          "name": "Best Available Rate",
          "rate_plan_code": "BAR",
          "per_night": 350.00,
          "total": 1050.00,
          "fees": 0,
          "currency": "USD",
          "members_only": false,
          "free_cancellation_until": "2026-04-13T18:00:00",
          "points": 45000,
          "points_saved": 5000,
          "free_nights": 1
        }
      ]
    }
  ],
  "total": 2
}