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.Collections are curated groups of resorts (a destination, a brand, a price cap, a season) with live inventory behind each one. GET /api/v1/collections lists every published collection with its starting nightly price and FAQs. GET /api/v1/collections/{slug} adds the editorial, the member resorts and the cheapest available weeks (limit, default 24, max 100). Starting prices are USD whole dollars, rounded the same way as the collection page each entry links to; week nightly prices keep cents.
curl "https://vakaymood.com/api/v1/collections"
curl "https://vakaymood.com/api/v1/collections/orlando-timeshare-rentals?limit=10"
{
"slug": "orlando-timeshare-rentals",
"title": "Orlando Timeshare Rentals",
"description": "Villas and suites at Orlando's timeshare resorts near Walt Disney World and Universal, rented from owners at nightly rates.",
"theme": "destination",
"url": "https://vakaymood.com/collections/orlando-timeshare-rentals",
"fromNightlyPrice": 89,
"currency": "USD",
"resortCount": 14,
"faqs": [
{
"question": "How far are Orlando timeshare resorts from the theme parks?",
"answer": "Most sit within a short drive of Walt Disney World and Universal Orlando, and several run scheduled shuttles."
}
],
"editorialHtml": "<p>Orlando timeshare resorts cluster around Lake Buena Vista, Kissimmee and International Drive, with one and two bedroom villas that include a kitchen and separate living area.</p>",
"resorts": [
{
"id": "RR12345678",
"name": "Marriott's Grande Vista",
"url": "https://vakaymood.com/resorts/marriotts-grande-vista-orlando-RR12345678",
"fromNightlyPrice": 89
}
],
"weeks": [
{
"listingId": "VK04437967",
"resort": {
"id": "RR12345678",
"name": "Marriott's Grande Vista"
},
"checkin": "2026-10-09",
"checkout": "2026-10-16",
"nightlyPrice": 89,
"currency": "USD",
"sleeps": 8,
"bedrooms": 2,
"bookingUrl": "https://vakaymood.com/listings/2-bedroom-marriotts-grande-vista-orlando-VK04437967"
}
]
}/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`). |
/api/v1/collectionsReturns every published collection: a curated group of resorts (a destination, a brand, a price cap, a season) with its live starting nightly price, member resorts, and published FAQs. Ordered by theme (destinations, deals, brands, seasons), then by title. Use the `slug` with /api/v1/collections/{slug} for the member resorts and cheapest weeks.
/api/v1/collections/{slug}Returns one published collection with its editorial (sanitized HTML), FAQs, member resorts (each with its canonical page and starting nightly price) and the cheapest available weeks, price ascending. Unknown and unpublished slugs return 404.
| Parameter | In | Type | Description |
|---|---|---|---|
| slug* | path | string | Collection slug: lowercase kebab-case, as returned by /api/v1/collections. |
| limit | query | integer (default 24) | Maximum number of cheapest weeks to return. |
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.