A free, read-only JSON API for querying live timeshare rental availability on VakayMood, built for AI agents and third-party developers. No API key required.
https://vakaymood.com/api/v1X-RateLimit-* headers; exceeding it returns 429 with Retry-After.Cache-Control: public, s-maxage=60), so polling faster returns cached data.GET is allowed from any origin.{ "error": { "code", "message" } }.checkin and checkout define a search window: a listing matches when its entire stay lies inside the window. Either bound can be used alone.flexibleDates: true allow a stay of nights nights starting on any date between checkin and lastBookableCheckin.pricing.subtotal is charged at booking; pricing.fees are payable at the resort (whole-stay amounts); pricing.total is the all-in stay cost. All amounts are USD.brand values: worldmark, wyndham, ritz-carlton, westin, sheraton, marriott, hilton, disney, hyatt, bluegreen. Brands are normalized from resort names./api/v1/availabilityReturns publicly visible listings matching the given filters. Ordering is controlled by `sort` (default: check-in date, then nightly price) and is deterministic across pages. All parameters are optional and combinable; unknown parameters are ignored.
| Parameter | In | Type | Description |
|---|---|---|---|
| resort | query | string | Restrict to one resort. Accepts a resort SEO slug (`marriotts-ko-olina-beach-club-kapolei-RR12345678`), a bare RR code (`RR12345678`), or a resort document UUID. |
| location | query | string | Free-form place name, matched fuzzily against resort country, state, and city. Accepts a country, a state, a city, or a combination. |
| checkin | query | string | Start of the search window (YYYY-MM-DD). Only listings whose check-in date is on or after this date match. |
| checkout | query | string | End of the search window (YYYY-MM-DD). Only listings whose checkout date is on or before this date match. When both dates are given, checkin must be before checkout. |
| sleeps | query | integer | Minimum sleeping capacity: matches units whose occupancy is >= this value. |
| max_nightly_price | query | number | Upper bound on the nightly rate in USD. Only listings whose nightly price is less than or equal to this value match. |
| brand | query | worldmark | wyndham | ritz-carlton | westin | sheraton | marriott | hilton | disney | hyatt | bluegreen | Normalized resort brand. Brands are derived from resort names (the backend has no brand field yet). Every returned listing has `resort.brand` equal to this value. |
| sort | query | price_asc | price_desc | start_asc (default start_asc) | Result ordering. `start_asc` (default) orders by check-in date then nightly price; `price_asc` and `price_desc` order by nightly price ascending or descending. Every ordering uses the listing code as a final tiebreaker, so pagination is deterministic. |
| page | query | integer (default 1) | 1-based page number. `page * limit` must not exceed 10,000. |
| limit | query | integer (default 25) | Results per page. |
/api/v1/listings/{id}Returns the full detail of one publicly visible listing, including cancellation terms, bed configuration, and resort amenities. Listings that are hidden, disabled, expired, or not yet published return 404.
| Parameter | In | Type | Description |
|---|---|---|---|
| id* | path | string | Listing VK code (`VK04437967`), document UUID, or full listing SEO slug (`2-bedroom-marriotts-ko-olina-beach-club-kapolei-VK04437967`). |
/api/v1/resorts/{idOrSlug}Returns one resort with address, geo coordinates, amenities, unit types, and policies.
| Parameter | In | Type | Description |
|---|---|---|---|
| idOrSlug* | path | string | Resort RR code (`RR12345678`), document UUID, or full resort SEO slug (`marriotts-ko-olina-beach-club-kapolei-RR12345678`). |
curl "https://vakaymood.com/api/v1/availability?brand=marriott&sleeps=4"
curl "https://vakaymood.com/api/v1/availability?resort=RR12345678&checkin=2026-08-01&checkout=2026-08-31"
curl "https://vakaymood.com/api/v1/availability?location=Florida&max_nightly_price=300&sort=price_asc"
curl "https://vakaymood.com/api/v1/listings/VK04437967"
curl "https://vakaymood.com/api/v1/resorts/RR12345678"
The API never exposes personal information about listing owners. All endpoints are read-only; bookings happen on the listing's bookingUrl page.