directrate

Modes

Award — POST /award

Same request as /shop; the answer is points per night, points+cash, cents-per-point and the free-night certificates that would cover the stay.

Request

Identical to /shop: chain, hotel_code, checkin, los, occupancy, currency, max_age.

{ "chain": "marriott", "hotel_code": "CHIRL", "checkin": "2026-11-10", "los": 1 }

Response

AwardResponse:

  • award_rates[] — room_name, rate_name, award_type (standard / premium / points_cash / off_peak / peak / free_night_cert), points_per_night, points_total, cash_copay (per night; positive means not a free night), taxes_fees, currency, rooms_left.
  • lowest_points — the lowest copay-free award per night, the figure the chain’s own award calendar reports. Points+cash awards never lower it.
  • lowest_points_cash and cash_copay — the cheapest points+cash award, when one is sold.
  • cash_comparison — lowest_cash (native basis, = /shop lowest.bar), lowest_cash_after_tax, member_rate, currency, fx_to_usd.
  • cpp — redemption value of the copay-free award in US cents per point, per night: cash × fx_to_usd / lowest_points × 100, where cash is lowest_cash_after_tax (falling back to lowest_cash on chains with no tax data). cpp_points_cash does the same for the points+cash award.
  • certs[] — present when non-empty: the free-night certificates that would cover lowest_points, cheapest first, each with the top_up it needs. Marriott 35k/40k/50k/85k (top-up ≤ 15,000), Hilton free night (any standard night), IHG 40k (top-up unlimited). Hyatt certificates are by category, which the chain’s pricing does not state, so none is guessed.
{ "chain": "marriott", "hotel_code": "CHIRL", "status": "available",
  "lowest_points": 56000, "cpp": 1.02,
  "certs": [{ "cert": "marriott_50k", "top_up": 6000 }, { "cert": "marriott_85k", "top_up": 0 }],
  "cash_comparison": { "lowest_cash": 479, "lowest_cash_after_tax": 569.54, "member_rate": 479, "currency": "USD", "fx_to_usd": 1 } }

Billing

Billed like /shop (shop weight live, 0.25× cached). Chains without off-device points — Meliá, Wyndham (login-gated), Premier Inn (cash-only) and every OTA — answer with empty award_rates at 0 credit on /compset/award; on /award the shop still runs and bills, and the award fields are null.

Tracking a redemption

Award pricing is dynamic at Marriott, Hilton and IHG — the same room moves by the night and by the day you ask. Call /award on a schedule, or /calendar for the whole window, and compare lowest_points and cpp run over run. Comp-set form: POST /compset/award, up to 25 hotels.