Marriott API: How to Check Room Availability and Track Rates Programmatically

Denis Gramm, Founder of StayAPI
By Denis Gramm, Founder of StayAPI · · 9 min read

I hope you enjoy reading this blog post. If you want our team to help you with hotel data integration, click here.

Quick summary

This guide covers what Marriott actually offers developers, then walks through automated availability checks and rate tracking, both buildable without a partnership.

Marriott API: How to Check Room Availability and Track Rates Programmatically — StayAPI

If you searched for a Marriott API, here's the answer up front: Marriott has no public API.
There's no developer program you can sign up for as an independent developer, and no API key you can request.
That's the largest hotel company in the world, with no self-serve door for builders.
The search behind that answer usually has a job attached: you want to check room availability programmatically, track rates for specific properties, or build something on top of Marriott data.
All of that is possible without a Marriott partnership, because every Marriott property is distributed through channels that are accessible by API.
This guide covers what Marriott actually offers and to whom, then walks through both builds: automated availability checking and rate tracking.

Key Takeaways

  • Marriott has no public, self-serve API. Its APIs serve contracted partners: OTAs, GDS systems, and connectivity providers. Independent developers can't get keys.
  • The data is still reachable. Every Marriott property is listed on major OTAs, and marriott.com's public rates are accessible through third-party hotel data APIs.
  • Availability checks and rate tracking are afternoon builds. A daily poll, a diff, and an alert cover both jobs; no code beyond one API call is required.
  • The direct rate is capturable, member pricing included. Chain-site endpoints return marriott.com's public rate display, so direct-versus-OTA tracking works in one workflow.
  • Points and award availability stay walled off. Everything behind the Bonvoy login has no API surface. Cash-rate history is the workable proxy for judging redemption value.

Does Marriott Have a Public API?

Does Marriott Have a Public API? — StayAPI

No public, self-serve Marriott API exists as of July 2026.
Marriott's API infrastructure is real and substantial.
The company runs a developer portal with APIs for property search, availability, and booking against its central reservation system.
Access, though, is limited to contracted partners: OTAs, GDS systems, connectivity providers, and select travel management companies.
Those partnerships target businesses with existing booking volume or enterprise agreements, and there's no application path for an independent developer to request a key.
Marriott also runs an affiliate program, which pays a commission on bookings made through tracked links.
It's a links-and-banners program, useful for travel bloggers, and it provides no data API.
The scale of what sits behind that wall is worth stating.
Marriott's portfolio covers more than 30 brands and over 9,900 properties in 146 countries and territories, including Courtyard, Westin, Sheraton, and Ritz-Carlton.
Practically, this means one thing: if you need Marriott property data (availability, rates, or both), the accessible route is the layer where every Marriott property is already listed: the major OTAs, plus marriott.com's own public pages via third-party APIs.

What People Actually Want From a Marriott API

Three jobs account for nearly every "Marriott API" search.
Each maps to a section below.

Job Doable without a partnership? How
Availability checks Yes Poll the property's public availability daily, diff, alert on change
Rate tracking Yes Daily rate pulls across OTAs and marriott.com's public display, logged over time
Points, award availability, member codes Mostly no Behind Bonvoy authentication; no API surface exists

One thing is out of scope for any workaround: creating reservations programmatically.
Booking requires contracted connectivity with Marriott, and this post doesn't pretend otherwise.

Use Case 1: Automated Marriott Availability Checks

Use Case 1: Automated Marriott Availability Checks — StayAPI

The scenario where this build earns its keep: a conference week.
Every downtown property shows sold out, but rooms reappear when blocks release and cancellations land, and they go to whoever checks at the right moment.
Manual refreshing doesn't scale; polling does.
Every Marriott-family property (Marriott, Courtyard, Westin, Sheraton, Ritz-Carlton, and the rest) is listed on Booking.com and Expedia, and marriott.com's own availability is publicly visible per property and dates.
Hotel data APIs expose both layers as structured JSON.
Here's a check against StayAPI's Marriott Bonvoy rooms endpoint, which reads marriott.com's public room display:

curl -G "https://api.stayapi.com/v1/marriott/bonvoy/rooms" \
  -H "x-api-key: YOUR_API_KEY" \
  -d "property_id=BKKDT" \
  -d "check_in=2026-10-06" \
  -d "check_out=2026-10-09" \
  -d "currency=USD"

The response, truncated to what an availability checker needs:

{
  "success": true,
  "property_id": "BKKDT",
  "room_types": [
    {
      "name": "Deluxe Room",
      "bed_type": "1 King",
      "available_rooms": 5,
      "rates": [
        {
          "name": "Best Available Rate",
          "per_night": 185.0,
          "currency": "USD",
          "members_only": false
        }
      ]
    }
  ],
  "total": 2
}

The build around it is small: a scheduled N8N or Make.com workflow calls the endpoint daily (hourly close to the date), compares available_rooms and the room list against yesterday's response, and posts to Slack, email, or Telegram when a previously sold-out date comes back.
The diff logic is one line: yesterday zero rooms, today more than zero → alert.
Two practical notes.
OTA inventory isn't always identical to marriott.com inventory, since allocations differ; checking one OTA alongside the direct site covers the practical gap.
And polling frequency should match the stakes: daily is enough for leisure planning, while an event week justifies hourly (roughly 168 requests over a final week, against 30 per month for a daily check).

Use Case 2: Tracking Marriott Rates Over Time

Use Case 2: Tracking Marriott Rates Over Time — StayAPI

Marriott prices dynamically, so the same room swings meaningfully week to week.
A daily snapshot answers "book now or wait?" with data instead of vibes.
And if a Marriott property sits in your comp set, its algorithmic rate movement is a market signal your own pricing responds to, whether you track it or not.
The build is the same loop as the availability checker, pointed at rates:
1. Pull the property's rate daily from each channel: marriott.com's public display via the Bonvoy rooms endpoint, plus Booking.com and Expedia via their rate endpoints.
2. Append one row per day per channel to a sheet or database: date, channel, room, rate.
3. After 30 to 60 days, you have a genuine price history: trend lines, day-of-week patterns, and how far out this property drops or spikes.
The chain-specific payoff is the direct-versus-OTA delta.
Because the direct rate and the OTA rates land in the same daily pull, you can watch when marriott.com undercuts the OTAs (member rates often do) and by how much.
That's the same mechanic revenue managers use for rate parity monitoring, pointed at a chain property.
For the general-purpose version of this build, tracking any hotel across channels with alerts and thresholds, see our hotel price tracker guide.
This post stays Marriott-specific on purpose.

Points, Member Rates, and Codes: The Reality Check

Points, Member Rates, and Codes: The Reality Check — StayAPI

This is where honesty matters most, because tools in this space have a history of overclaiming.
Here's the actual line between reachable and walled off.

Data Where it lives Programmatically reachable?
Public cash rates marriott.com public pages, OTAs Yes
Member-rate display marriott.com public pages Yes, flagged as member pricing
Points pricing shown publicly marriott.com public pages Partially, where displayed
Bonvoy points balance Behind Bonvoy login No
Award availability and dynamic award pricing Behind Bonvoy login No
Corporate, SET, and promo code rates Inside the logged-in booking flow No

What's off the table: querying your points balance, checking award availability, booking with points, or applying corporate and promo codes programmatically.
All of it resolves inside marriott.com's authenticated session, and no API surface exists for any of it.
Tools that claim otherwise are automating logged-in sessions, which breaks without warning and can put the account at risk.
What is workable: the public member-rate display travels with the same room data (the members_only flag in the response above), so the member-versus-public delta is trackable over time.
And cash-rate history doubles as award-value context: redemptions are judged against cash prices, so a 60-day cash-rate log for a property is the denominator for "is this redemption good value", even with award data out of reach.

Getting Started

  1. Sign up at stayapi.com: 50 free requests, no credit card, enough for a week-long proof of concept on one property.
  2. Grab the property ID: it's the code in any marriott.com hotel URL (for the JW Marriott Bangkok, .../hotels/travel/bkkdt-jw-marriott-hotel-bangkok/ gives BKKDT).
  3. Make the first call: the Bonvoy rooms endpoint with your dates, as shown above. Confirm the room types and rates you expect.
  4. Automate it: an N8N or Make.com daily schedule appends each response to a Google Sheet, and a workflow branch alerts on an availability change or a price move past your threshold. For tracking a portfolio or a comp set rather than one property, book a demo.

FAQ

Does Marriott have a public API?

No.
Marriott's APIs serve contracted partners: OTAs, GDS systems, and connectivity providers.
There's no self-serve developer program, so independent developers access Marriott property data through OTAs and marriott.com's public pages via third-party data APIs.

How do I check Marriott room availability programmatically?

Poll the property's public availability and diff the responses.
Chain-site endpoints (like the Bonvoy rooms endpoint above) return room types, rates, and availability for a property and dates; an alert fires when a sold-out date comes back.

Can I track Marriott hotel prices over time?

Yes.
Daily rate pulls across OTAs and marriott.com's public display, appended to a sheet, build a price history for any property.
The direct rate lands in the same pull, so direct-versus-OTA comparison comes free.

Is there an API for Marriott Bonvoy points or award availability?

No legitimate one.
Points balances, award availability, and dynamic award pricing sit behind Bonvoy authentication with no API surface.
Cash-rate tracking is the accessible proxy for judging redemption value.

What is Marriott API error 145?

It's a consumer-facing error from Marriott's own website and app, typically session or account related, and Marriott doesn't document the code publicly.
The usual fixes: sign out and back in, clear the app cache or reinstall, and disable any VPN.
If it persists, go through Marriott's app troubleshooting help.
It's unrelated to the third-party data APIs discussed in this post.

Ship in 3 days

Ready to simplify your hotel data?

Join other developers using StayAPI to build the next generation of travel applications. Get started for free today.