Getting Started

This page will help you get started with the Rooms.aero API.

The Rooms.aero API exposes everything on rooms.aero as JSON: search an area and date range for hotels with award availability, scan every upcoming date for a loyalty program or a set of hotels, open one date to see every room type with its points and cash price and a booking link, browse the hotel directory, and list the alerts on your account. It covers Hilton Honors, World of Hyatt, IHG Rewards, Marriott Bonvoy, Choice Privileges, Wyndham Rewards and I Prefer Hotel Rewards.

The Rooms.aero API is available to Seats.aero Pro users for non-commercial purposes. Commercial use requires a written agreement; contact [email protected] with a company email address and detailed use case information.

Authorization

Send your API key in the Partner-Authorization header on every request, exactly as you do for the Seats.aero partner API.

Pro Users

Your Seats.aero API key works on both services. Generate or copy it from the API tab on your settings page and send it as-is, including its pro_ prefix. Changes to your key on Seats.aero take effect on Rooms.aero within about ten minutes.

Rooms.aero has its own quota of 1,000 API calls per UTC day. It is separate from your Seats.aero quota: calls here never count against Seats.aero, and calls there never count against Rooms.aero. Every response carries the current state of the quota:

HeaderMeaning
X-RateLimit-LimitCalls allowed per day (1000).
X-RateLimit-RemainingCalls left today.
X-RateLimit-ResetSeconds until the quota resets at midnight UTC.

Once the quota is used up, requests answer 429 with the error code user_rate_limit_exceeded and a Retry-After header until the reset. The API is governed by the Seats.aero terms of use, which prohibit commercial use without written permission. Not all Pro users can access an API key; we may limit access by geographical location or for any reason in our sole discretion, and the API requires an active Pro subscription.

Content Types

The API works entirely in JSON. Every endpoint is a GET with query parameters, except Refresh Hotel, a POST with no body. Every list is wrapped in the same envelope, every error has the same shape, and hotels, availability, rooms and alerts are the same objects on every endpoint; see Concepts.

Your First Call

Find hotels with an award for any check-in date in a week of November in Tokyo, cheapest award first:

curl -G "https://rooms.aero/partnerapi/search" \
  -H "Partner-Authorization: pro_YOUR_KEY" \
  --data-urlencode "location=Tokyo" \
  --data-urlencode "start_date=2026-11-20" \
  --data-urlencode "end_date=2026-11-27" \
  --data-urlencode "max_points=30000"

Each result carries the hotel and its cheapest standard and suite rates. Take a hotel.id from the results into Get Availability to see every date for that hotel, then an availability id into Get Availability Details for the room types and a booking link. The program keys, brand codes and award categories you will see along the way are listed on the Concepts page.