Browse documentation
GET

Wyndham Rooms API

Return live room inventory, cash rates, member rates, and Wyndham Rewards redemption rates.

Overview

Cash and rewards in one response

Every available plan is normalized into room_types[].rates[]. Use points_plus_cash and free_night to distinguish Wyndham Rewards redemptions from cash rates.

The endpoint calls Wyndham's live rooms-and-rates REST service directly. It does not open a hotel or booking page and has no Browserless or browser-automation fallback. Obtain the numeric property_id from Search or URL to Hotel ID.

Endpoint URL

GET https://api.stayapi.com/v1/wyndham/rooms

Authenticate with X-API-Key: YOUR_API_KEY.

Query parameters

Parameter Type Required Rules
property_id numeric string Yes 1 to 12 digits, for example 53089.
check_in YYYY-MM-DD Yes Today or later.
check_out YYYY-MM-DD Yes Strictly after check_in.
adults integer No 1 through 8. Default: 2.
children integer No 0 through 6. Default: 0.
rooms integer No 1 through 9. Default: 1.
corporate_code string No Alphanumeric, 1 to 16 characters.

Response schema

room_types contains room metadata and its available rates. total counts room types, not rate plans. An empty array with success: true means Wyndham returned no bookable rooms for the requested stay.

  • Top level: property_id, nullable currency, free_stay_available, room_types, and total.
  • Room: code, name, description, occupancy, inventory, bed types, smoking, and accessibility fields.
  • Cash: per_night, per_night_after_tax, base_total, total, and fees_taxes.
  • Rewards: points_plus_cash, free_night, points_per_night, points_total, and points_earned.
  • Terms: daily rates, taxes, cancellation, deposit, guarantee, member-rate, qualification, and non-refundable flags.

Wyndham names the upstream formatted tax amount taxPercent; StayAPI preserves that value as the nullable string taxes[].amount.

Errors and limitations

Invalid dates return 400 INVALID_DATE_FORMAT, 400 INVALID_DATES, or 400 PAST_DATES. Query-shape violations are also non-2xx. Endpoint errors use RFC 7807 Problem Details with provider: "wyndham", product: "rooms", and a correlation_id. Upstream failures return 502 UPSTREAM_ERROR. Currency follows Wyndham's returned rate; there is no currency override or pagination.

Request
curl -G "https://api.stayapi.com/v1/wyndham/rooms" \
  -H "X-API-Key: YOUR_API_KEY" \
  --data-urlencode "property_id=53089" \
  --data-urlencode "check_in=2026-08-15" \
  --data-urlencode "check_out=2026-08-17" \
  --data-urlencode "adults=2" \
  --data-urlencode "children=0" \
  --data-urlencode "rooms=1"
Response
{
  "success": true,
  "property_id": "53089",
  "currency": "USD",
  "free_stay_available": true,
  "room_types": [
    {
      "code": "NDD2",
      "name": "2 Queen Beds, Non-Smoking",
      "description": "Free WiFi and breakfast",
      "max_occupancy": 4,
      "available_rooms": 22,
      "bed_type": "Queen",
      "bed_types": [{ "code": "5", "name": "Queen", "quantity": 2 }],
      "non_smoking": true,
      "accessible": false,
      "rates": [
        {
          "name": "Wyndham Rewards Rate",
          "rate_plan_code": "SWR1",
          "description": "Members save on our Standard Rate.",
          "per_night": 105.79,
          "per_night_after_tax": 126.66,
          "total": 253.32,
          "base_total": 211.58,
          "fees_taxes": 41.74,
          "currency": "USD",
          "daily_rates": [{ "date": "8/15/2026", "rate": 110.79, "fee": 5.0 }],
          "taxes": [{ "name": "State Tax 8%", "amount": "8.86USD", "type": "TAX", "effective_date": "2026-08-15", "expire_date": "2026-08-15" }],
          "cancellation_code": "6PM",
          "cancellation_policy": "Cancel before 6PM.",
          "deposit_policy": "Credit card guarantee",
          "guarantee_code": "CC",
          "non_refundable": false,
          "is_member_rate": true,
          "qualified_for_points": true,
          "points_earned": 2116,
          "points_plus_cash": false,
          "free_night": false,
          "points_per_night": null,
          "points_total": null
        }
      ]
    }
  ],
  "total": 1
}