# RedWeek Timeshare Scraper (`crawlerbros/redweek-scraper`) Actor

Scrape RedWeek.com, the world's largest timeshare marketplace. Browse resorts by region, country, or brand, fetch full resort profiles, live timeshare rentals and resales with prices and dates, curated top-25 and featured collections. No login, no proxy required.

- **URL**: https://apify.com/crawlerbros/redweek-scraper.md
- **Developed by:** [Crawler Bros](https://apify.com/crawlerbros) (community)
- **Categories:** Travel, Automation, Real estate
- **Stats:** 1 total users, 0 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $3.00 / 1,000 results

This Actor is paid per event and usage. You are charged both the fixed price for specific events and for Apify platform usage.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

Learn more: https://docs.apify.com/platform/actors/running/actors-in-store#pay-per-event

## What's an Apify Actor?

Actors are a software tools running on the Apify platform, for all kinds of web data extraction and automation use cases.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
The best way to integrate Actors is as follows.

In JavaScript/TypeScript projects, use official [JavaScript/TypeScript client](https://docs.apify.com/api/client/js.md):

```bash
npm install apify-client
```

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python.md):

```bash
pip install apify-client
```

In shell scripts, use [Apify CLI](https://docs.apify.com/cli/docs.md):

````bash
# MacOS / Linux
curl -fsSL https://apify.com/install-cli.sh | bash
# Windows
irm https://apify.com/install-cli.ps1 | iex
```bash

In AI frameworks, you might use the [Apify MCP server](https://docs.apify.com/platform/integrations/mcp.md).

If your project is in a different language, use the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).


# README

## RedWeek Timeshare Scraper

Scrape **RedWeek.com** — the world's largest timeshare resale and rental marketplace. Browse resorts by country, US state, or management brand, look up a specific resort's full profile, pull its live rental and resale postings with prices and dates, or grab curated top-25 and featured collections. No login, no cookies, no paid proxy required.

### What this actor does

- **Six modes:** `search` (browse/keyword resorts), `resortDetails` (full resort profile), `rentals` (live rental postings for a resort), `resales` (live resale postings for a resort), `topResorts` (curated top-25 rental resorts), `featured` (curated posting collections)
- **Browse axes:** by country (117 countries/territories, RedWeek's own region taxonomy), by US state, by timeshare brand/management company (67 brands), or free-text keyword
- **Filters (rentals/resales):** minimum bedrooms, minimum sleeps, unit view, ownership type (deeded / right-to-use), week type (floating / fixed), sort order
- **Rich resort data:** description, address, GPS coordinates, star rating and review count, price range, full amenity list
- **Rich posting data:** check-in/check-out dates, nights, bedrooms/bathrooms/sleeps, unit view, price (per-night and total for rentals; flat price for resales), verification badge, posting date
- **Empty fields are omitted** — every record only contains fields that had real data

### Output per resort (mode = `search`, `topResorts`, brand browse)

- `resortId`, `resortUrl`, `name`, `location`, `locality`, `region`
- `rating`, `reviewCount`
- `latitude`, `longitude`, `photoUrl`
- `rentalCount`, `rentalPriceMinUsd`, `rentalPriceMaxUsd`
- `resaleCount`, `resalePriceMinUsd`, `resalePriceMaxUsd`
- `brand` (brand-browse only)
- `recordType: "resort"` / `"topResort"`, `scrapedAt`

### Output per resort profile (mode = `resortDetails`)

- `resortId`, `name`, `resortUrl`, `description`
- `streetAddress`, `locality`, `region`, `country`, `postalCode`, `latitude`, `longitude`
- `ratingValue`, `ratingCount`, `reviewCount`
- `priceMinUsd`, `priceMaxUsd`, `priceRangeDisplay`
- `amenities[]`, `amenityCount`
- `photoUrl`, `mapUrl`, `sourceUrl`
- `recordType: "resortDetail"`, `scrapedAt`

### Output per rental posting (mode = `rentals`)

- `postingId`, `postingUrl`, `resortId`, `resortName`, `resortUrl`
- `checkIn`, `checkOut`, `nights`
- `bedrooms`, `bathrooms`, `sleeps`, `view`, `unitDescription`
- `pricePerNightUsd`, `priceTotalUsd`
- `verified`, `isNew`, `postingDate`
- `recordType: "rentalPosting"`, `scrapedAt`

### Output per resale posting (mode = `resales`)

- `postingId`, `postingUrl`, `resortId`, `resortName`, `resortUrl`
- `priceUsd`, `bedrooms`, `bathrooms`, `sleeps`, `view`
- `weekType`, `weekNumber`, `useType`, `ownershipType`, `unitDescription`
- `verified`, `isNew`, `postingDate`
- `recordType: "resalePosting"`, `scrapedAt`

### Output per featured posting (mode = `featured`)

- `postingId`, `postingUrl`, `resortName`, `rating`, `location`
- `datesText`, `unitDescription`, `bedrooms`, `bathrooms`, `sleeps`
- `priceTotalUsd`, `pricePerNightUsd`, `photoUrl`, `verified`, `collection`
- `recordType: "featuredPosting"`, `scrapedAt`

### Input

| Field | Type | Default | Description |
|---|---|---|---|
| `mode` | string | `search` | `search` / `resortDetails` / `rentals` / `resales` / `topResorts` / `featured` |
| `searchQuery` | string | – | Free-text keyword search (mode=search); takes priority over country/brand |
| `country` | string | `Aruba` | Browse resorts in a country (mode=search) |
| `usState` | string | – | Narrow a `United States` browse to one state (mode=search) |
| `brand` | string | – | Browse all resorts of a timeshare brand/management company (mode=search) |
| `resortIds` | array | `["P4872"]` | Resort IDs or URLs (mode=resortDetails/rentals/resales) |
| `collection` | string | `newest-timeshare-rentals` | Curated collection to fetch (mode=featured) |
| `bedroomsMin` | int | – | Minimum bedrooms (mode=rentals/resales) |
| `sleepsMin` | int | – | Minimum sleeps (mode=rentals/resales) |
| `view` | string | `any` | Unit view filter (mode=rentals/resales) |
| `ownershipType` | string | `any` | Deeded / right-to-use filter (mode=resales) |
| `weekType` | string | `any` | Floating / fixed week filter (mode=resales) |
| `sortBy` | string | `relevance` | Sort order for postings (mode=rentals/resales) |
| `maxItems` | int | `50` | Hard cap on emitted records (1–2000) |

#### Example: browse resorts in Aruba (default)

```json
{ "mode": "search", "country": "Aruba", "maxItems": 20 }
````

#### Example: keyword search

```json
{ "mode": "search", "searchQuery": "Marriott Aruba" }
```

#### Example: browse resorts by US state

```json
{ "mode": "search", "country": "United States", "usState": "Hawaii", "maxItems": 20 }
```

#### Example: browse resorts by brand

```json
{ "mode": "search", "brand": "marriott", "maxItems": 20 }
```

#### Example: full profile for a resort

```json
{ "mode": "resortDetails", "resortIds": ["P4872"] }
```

#### Example: live rentals for a resort, 2+ bedrooms, ocean view, cheapest first

```json
{
  "mode": "rentals",
  "resortIds": ["P4872"],
  "bedroomsMin": 2,
  "view": "Ocean view",
  "sortBy": "priceLowToHigh",
  "maxItems": 50
}
```

#### Example: deeded fixed-week resales for a resort

```json
{
  "mode": "resales",
  "resortIds": ["P4872"],
  "ownershipType": "Deed",
  "weekType": "Fixed",
  "maxItems": 50
}
```

#### Example: curated top-25 rental resorts

```json
{ "mode": "topResorts", "maxItems": 25 }
```

#### Example: featured Disney vacation rentals

```json
{ "mode": "featured", "collection": "disney-timeshare-rentals", "maxItems": 20 }
```

### Use cases

- **Timeshare buyers/renters** — compare live rental and resale prices across resorts before booking or buying
- **Resort/brand research** — pull every resort in a management company's portfolio (Marriott, Disney, Hilton Grand Vacations, Wyndham, and 60+ more)
- **Regional market analysis** — browse by country/state to see resort density, ratings, and price ranges by destination
- **Deal discovery** — filter live postings by bedrooms, view, ownership type, or week type to find postings matching specific needs
- **Content curation** — pull RedWeek's own curated collections (top-25, featured, seasonal) for travel content or newsletters

### Data source & limitations

This actor reads RedWeek's own publicly browsable pages — the same resort profiles, rental listings, and resale listings an anonymous visitor sees without creating an account or logging in. No login, cookies, or paid proxy are used or required to run this actor.

**Contacting a specific owner/lister requires a RedWeek account.** This actor reads posting details (price, dates, unit specs) exactly as shown on the public listing page. Messaging an owner, saving a listing, or completing a booking/purchase all require a RedWeek account and happen entirely on RedWeek's own site — they are outside the scope of this actor.

**`rentals`/`resales` filters are applied to postings after they're fetched from the resort's listing page**, since RedWeek's listing pages don't expose bedroom/view/ownership filters as server-side query parameters for every combination. The actor always fetches the full current posting list for the requested resort(s) before filtering, so results reflect the true live inventory.

**Region taxonomy** (country → continent grouping) mirrors RedWeek's own site navigation (`/search/{continent}/{country}-timeshares`) as verified against the live site.

### FAQ

**Is this affiliated with RedWeek?** No. This is an independent, third-party actor that reads RedWeek's own publicly browsable resort and posting pages. It is not affiliated with, endorsed by, or supported by RedWeek LLC.

**Do I need an account or to log in?** No. Browsing resorts, rentals, and resales on RedWeek does not require an account — the actor only reads public listing pages; it never logs in or bids on your behalf.

**What's the difference between "rentals" and "resales"?** Rentals are short-term week bookings (check-in/check-out dates, nightly rate) — like renting someone's timeshare week for a vacation. Resales are permanent ownership transfers (a flat price for the deeded or right-to-use week itself).

**What's a "floating" vs. "fixed" week?** A fixed week is locked to a specific numbered week of the year (e.g. week 32). A floating week can be used at various times within a season, subject to availability.

**What's the difference between "Deed" and "RTU" ownership?** A deeded week is real property you own outright and can pass on or sell. A right-to-use (RTU) week is a long-term lease/license for a set number of years, after which ownership reverts to the resort/developer.

**Why do some postings have very few output fields?** Every field is only included when the lister actually provided it. A blank unit description or missing view field means the lister didn't specify one — the actor never fabricates placeholder values.

**Can I search by resort name instead of browsing by country?** Yes — set `mode: "search"` and provide `searchQuery` with the resort or destination name; it takes priority over `country`/`brand`.

**How fresh is the data?** Real-time — every run reads live data directly from the current pages; prices, dates, and availability reflect the moment the actor ran.

**Does this actor complete bookings or purchases for me?** No. This actor only reads and returns publicly available listing data. Booking a rental or purchasing a resale requires a RedWeek account and using RedWeek's own website directly.

# Actor input Schema

## `mode` (type: `string`):

What to fetch.

## `searchQuery` (type: `string`):

Free-text keyword search (resort name, brand, destination). Takes priority over country/brand if set. Example: Marriott Aruba or Hilton Head.

## `country` (type: `string`):

Browse resorts in a country. Ignored if searchQuery is set.

## `usState` (type: `string`):

Narrow a United States country browse to a specific state. Ignored for other countries.

## `brand` (type: `string`):

Browse all resorts of a timeshare brand/management company instead of by country. Ignored if searchQuery is set.

## `resortIds` (type: `array`):

Resorts to fetch. Accepts a bare resort ID (P4872), a resort URL (https://www.redweek.com/resort/P4872-marriotts-aruba-surf-club), or path.

## `collection` (type: `string`):

Curated posting collection to fetch.

## `bedroomsMin` (type: `integer`):

Drop postings with fewer bedrooms than this.

## `sleepsMin` (type: `integer`):

Drop postings that sleep fewer guests than this.

## `view` (type: `string`):

Filter postings to a specific unit view/outlook.

## `ownershipType` (type: `string`):

Filter resale postings by ownership structure.

## `weekType` (type: `string`):

Filter resale postings by whether the week is floating or fixed to a specific week number.

## `sortBy` (type: `string`):

Order emitted postings.

## `maxItems` (type: `integer`):

Hard cap on emitted records.

## Actor input object example

```json
{
  "mode": "search",
  "country": "Aruba",
  "usState": "",
  "brand": "",
  "resortIds": [
    "P4872"
  ],
  "collection": "newest-timeshare-rentals",
  "view": "any",
  "ownershipType": "any",
  "weekType": "any",
  "sortBy": "relevance",
  "maxItems": 50
}
```

# Actor output Schema

## `items` (type: `string`):

Dataset containing all scraped RedWeek resorts and postings.

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "mode": "search",
    "country": "Aruba",
    "usState": "",
    "brand": "",
    "resortIds": [
        "P4872"
    ],
    "collection": "newest-timeshare-rentals",
    "view": "any",
    "ownershipType": "any",
    "weekType": "any",
    "sortBy": "relevance",
    "maxItems": 50
};

// Run the Actor and wait for it to finish
const run = await client.actor("crawlerbros/redweek-scraper").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {
    "mode": "search",
    "country": "Aruba",
    "usState": "",
    "brand": "",
    "resortIds": ["P4872"],
    "collection": "newest-timeshare-rentals",
    "view": "any",
    "ownershipType": "any",
    "weekType": "any",
    "sortBy": "relevance",
    "maxItems": 50,
}

# Run the Actor and wait for it to finish
run = client.actor("crawlerbros/redweek-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print("💾 Check your data here: https://console.apify.com/storage/datasets/" + run["defaultDatasetId"])
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "mode": "search",
  "country": "Aruba",
  "usState": "",
  "brand": "",
  "resortIds": [
    "P4872"
  ],
  "collection": "newest-timeshare-rentals",
  "view": "any",
  "ownershipType": "any",
  "weekType": "any",
  "sortBy": "relevance",
  "maxItems": 50
}' |
apify call crawlerbros/redweek-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=crawlerbros/redweek-scraper",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "RedWeek Timeshare Scraper",
        "description": "Scrape RedWeek.com, the world's largest timeshare marketplace. Browse resorts by region, country, or brand, fetch full resort profiles, live timeshare rentals and resales with prices and dates, curated top-25 and featured collections. No login, no proxy required.",
        "version": "1.0",
        "x-build-id": "xSXGNYT9MnfcdNzyo"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/crawlerbros~redweek-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-crawlerbros-redweek-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/acts/crawlerbros~redweek-scraper/runs": {
            "post": {
                "operationId": "runs-sync-crawlerbros-redweek-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor and returns information about the initiated run in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/runsResponseSchema"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/acts/crawlerbros~redweek-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-crawlerbros-redweek-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        }
    },
    "components": {
        "schemas": {
            "inputSchema": {
                "type": "object",
                "required": [
                    "mode"
                ],
                "properties": {
                    "mode": {
                        "title": "Mode",
                        "enum": [
                            "search",
                            "resortDetails",
                            "rentals",
                            "resales",
                            "topResorts",
                            "featured"
                        ],
                        "type": "string",
                        "description": "What to fetch.",
                        "default": "search"
                    },
                    "searchQuery": {
                        "title": "Search query (mode=search)",
                        "type": "string",
                        "description": "Free-text keyword search (resort name, brand, destination). Takes priority over country/brand if set. Example: Marriott Aruba or Hilton Head."
                    },
                    "country": {
                        "title": "Country (mode=search)",
                        "enum": [
                            "Andorra",
                            "Antigua",
                            "Argentina",
                            "Aruba",
                            "Australia",
                            "Austria",
                            "Bahamas",
                            "Barbados",
                            "Belgium",
                            "Belize",
                            "Bermuda",
                            "Bolivia",
                            "Bonaire",
                            "Brazil",
                            "Bulgaria",
                            "Canada",
                            "Canary Islands (Spain)",
                            "Cape Verde",
                            "Cayman Islands",
                            "Channel Islands",
                            "Chile",
                            "China",
                            "Colombia",
                            "Costa Rica",
                            "Croatia",
                            "Curacao",
                            "Cyprus",
                            "Czech Republic",
                            "Denmark",
                            "Dominican Republic",
                            "Ecuador",
                            "Egypt",
                            "El Salvador",
                            "England",
                            "Ethiopia",
                            "Fiji Islands",
                            "Finland",
                            "France",
                            "French Polynesia",
                            "Gambia",
                            "Germany",
                            "Greece",
                            "Grenada",
                            "Guadeloupe",
                            "Guatemala",
                            "Honduras",
                            "Hungary",
                            "India",
                            "Indonesia",
                            "Ireland",
                            "Isle of Man",
                            "Israel",
                            "Italy",
                            "Ivory Coast",
                            "Jamaica",
                            "Japan",
                            "Jordan",
                            "Kenya",
                            "Lebanon",
                            "Malaysia",
                            "Malta",
                            "Martinique",
                            "Mauritius",
                            "Mexico",
                            "Monaco",
                            "Morocco",
                            "Mozambique",
                            "Namibia",
                            "Nepal",
                            "Netherlands",
                            "New Caledonia",
                            "New Zealand",
                            "Nicaragua",
                            "Norway",
                            "Panama",
                            "Paraguay",
                            "Peru",
                            "Philippines",
                            "Poland",
                            "Portugal",
                            "Puerto Rico",
                            "Saipan",
                            "Scotland",
                            "Senegal",
                            "Seychelles",
                            "Singapore",
                            "Sint Maarten & Saint Martin",
                            "Slovakia",
                            "South Africa",
                            "South Korea",
                            "Spain",
                            "Sri Lanka",
                            "St. Croix (USVI)",
                            "St. John (USVI)",
                            "St. Kitts",
                            "St. Lucia",
                            "St. Thomas (USVI)",
                            "St. Vincent & The Grenadines",
                            "Swaziland",
                            "Sweden",
                            "Switzerland",
                            "Syria",
                            "Taiwan",
                            "Thailand",
                            "Tortola",
                            "Trinidad & Tobago",
                            "Tunisia",
                            "Turkey",
                            "Turks and Caicos Islands",
                            "U.S. Virgin Islands (USVI)",
                            "United Arab Emirates",
                            "United States",
                            "Uruguay",
                            "Venezuela",
                            "Vietnam",
                            "Wales",
                            "Zimbabwe"
                        ],
                        "type": "string",
                        "description": "Browse resorts in a country. Ignored if searchQuery is set.",
                        "default": "Aruba"
                    },
                    "usState": {
                        "title": "US state (mode=search, country=United States)",
                        "enum": [
                            "",
                            "Alabama",
                            "Arizona",
                            "Arkansas",
                            "California",
                            "Colorado",
                            "Connecticut",
                            "Delaware",
                            "District of Columbia",
                            "Florida",
                            "Georgia",
                            "Hawaii",
                            "Idaho",
                            "Illinois",
                            "Indiana",
                            "Iowa",
                            "Kentucky",
                            "Louisiana",
                            "Maine",
                            "Maryland",
                            "Massachusetts",
                            "Michigan",
                            "Minnesota",
                            "Mississippi",
                            "Missouri",
                            "Montana",
                            "Nevada",
                            "New Hampshire",
                            "New Jersey",
                            "New Mexico",
                            "New York",
                            "North Carolina",
                            "Oklahoma",
                            "Oregon",
                            "Pennsylvania",
                            "Rhode Island",
                            "South Carolina",
                            "South Dakota",
                            "Tennessee",
                            "Texas",
                            "Utah",
                            "Vermont",
                            "Virginia",
                            "Washington",
                            "West Virginia",
                            "Wisconsin",
                            "Wyoming"
                        ],
                        "type": "string",
                        "description": "Narrow a United States country browse to a specific state. Ignored for other countries.",
                        "default": ""
                    },
                    "brand": {
                        "title": "Timeshare brand (mode=search)",
                        "enum": [
                            "",
                            "anantara-vacation-club",
                            "bluegreen-resorts",
                            "breckenridge-grand-vacations",
                            "capital-resorts-group",
                            "club-absolute",
                            "club-melia",
                            "club-regina",
                            "defender-resorts",
                            "diamond-resorts-international",
                            "disney-vacation-club",
                            "divi-resorts",
                            "el-cid",
                            "embarc-resorts",
                            "exploria-resorts",
                            "festiva-resorts",
                            "fiesta-americana-vacation-club",
                            "four-seasons",
                            "grand-pacific-resorts",
                            "hgvc",
                            "holiday-concepts-group",
                            "holiday-inn-club-vacations",
                            "hyatt-platinum",
                            "hyatt-residence-club",
                            "hyatt-vacation-club",
                            "ii",
                            "innseason-resorts",
                            "karma-group",
                            "legacy-vacation-resorts",
                            "macdonald-resorts",
                            "marriott",
                            "marriott-vacation-club",
                            "monarch-grand-vacations",
                            "mrop-ore",
                            "pahio",
                            "palace-resorts",
                            "palmera-vacation-club",
                            "path-vacations",
                            "perennial-vacation-club",
                            "pueblo-bonito",
                            "raintree-vacation-club",
                            "rci",
                            "rci-the-registry-collection",
                            "reef-resorts",
                            "ritz-carlton-club",
                            "royal-aloha",
                            "royal-holiday",
                            "royal-resorts",
                            "sapphire-resorts",
                            "seasons-holidays",
                            "shell-vacations-club",
                            "sheraton-flex",
                            "soleil-management",
                            "solmar-hotels-and-resorts",
                            "spinnaker-resorts",
                            "spm-resorts",
                            "tafer-residence-club",
                            "the-villa-group",
                            "trendwest-worldmark",
                            "universal-vacation-club",
                            "vacation-internationale",
                            "vacation-village-resorts",
                            "vail-resorts",
                            "vidanta",
                            "vistana-signature-experiences",
                            "vri",
                            "westgate-resorts",
                            "westin-aventuras",
                            "westin-flex",
                            "world-international-vacation-club",
                            "worldmark",
                            "wyndham-vacation-ownership"
                        ],
                        "type": "string",
                        "description": "Browse all resorts of a timeshare brand/management company instead of by country. Ignored if searchQuery is set.",
                        "default": ""
                    },
                    "resortIds": {
                        "title": "Resort IDs or URLs (mode=resortDetails / rentals / resales)",
                        "type": "array",
                        "description": "Resorts to fetch. Accepts a bare resort ID (P4872), a resort URL (https://www.redweek.com/resort/P4872-marriotts-aruba-surf-club), or path.",
                        "default": [],
                        "items": {
                            "type": "string"
                        }
                    },
                    "collection": {
                        "title": "Featured collection (mode=featured)",
                        "enum": [
                            "newest-timeshare-rentals",
                            "disney-timeshare-rentals",
                            "top-beach-destinations",
                            "labor-day-timeshare-rentals"
                        ],
                        "type": "string",
                        "description": "Curated posting collection to fetch.",
                        "default": "newest-timeshare-rentals"
                    },
                    "bedroomsMin": {
                        "title": "Min bedrooms (mode=rentals / resales)",
                        "minimum": 0,
                        "maximum": 6,
                        "type": "integer",
                        "description": "Drop postings with fewer bedrooms than this."
                    },
                    "sleepsMin": {
                        "title": "Min sleeps (mode=rentals / resales)",
                        "minimum": 1,
                        "maximum": 20,
                        "type": "integer",
                        "description": "Drop postings that sleep fewer guests than this."
                    },
                    "view": {
                        "title": "Unit view (mode=rentals / resales)",
                        "enum": [
                            "any",
                            "None",
                            "Varies",
                            "Courtyard",
                            "Garden",
                            "Golf course",
                            "Island",
                            "Lake",
                            "Mountain",
                            "Ocean view",
                            "Oceanfront",
                            "Oceanside",
                            "Partial ocean view",
                            "Pool",
                            "Water view",
                            "Waterfront"
                        ],
                        "type": "string",
                        "description": "Filter postings to a specific unit view/outlook.",
                        "default": "any"
                    },
                    "ownershipType": {
                        "title": "Ownership type (mode=resales)",
                        "enum": [
                            "any",
                            "Deed",
                            "RTU"
                        ],
                        "type": "string",
                        "description": "Filter resale postings by ownership structure.",
                        "default": "any"
                    },
                    "weekType": {
                        "title": "Week type (mode=resales)",
                        "enum": [
                            "any",
                            "Floating",
                            "Fixed"
                        ],
                        "type": "string",
                        "description": "Filter resale postings by whether the week is floating or fixed to a specific week number.",
                        "default": "any"
                    },
                    "sortBy": {
                        "title": "Sort by (mode=rentals / resales)",
                        "enum": [
                            "relevance",
                            "priceLowToHigh",
                            "priceHighToLow",
                            "newest",
                            "mostBedrooms"
                        ],
                        "type": "string",
                        "description": "Order emitted postings.",
                        "default": "relevance"
                    },
                    "maxItems": {
                        "title": "Max items",
                        "minimum": 1,
                        "maximum": 2000,
                        "type": "integer",
                        "description": "Hard cap on emitted records.",
                        "default": 50
                    }
                }
            },
            "runsResponseSchema": {
                "type": "object",
                "properties": {
                    "data": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "actId": {
                                "type": "string"
                            },
                            "userId": {
                                "type": "string"
                            },
                            "startedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "finishedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "status": {
                                "type": "string",
                                "example": "READY"
                            },
                            "meta": {
                                "type": "object",
                                "properties": {
                                    "origin": {
                                        "type": "string",
                                        "example": "API"
                                    },
                                    "userAgent": {
                                        "type": "string"
                                    }
                                }
                            },
                            "stats": {
                                "type": "object",
                                "properties": {
                                    "inputBodyLen": {
                                        "type": "integer",
                                        "example": 2000
                                    },
                                    "rebootCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "restartCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "resurrectCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "computeUnits": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "options": {
                                "type": "object",
                                "properties": {
                                    "build": {
                                        "type": "string",
                                        "example": "latest"
                                    },
                                    "timeoutSecs": {
                                        "type": "integer",
                                        "example": 300
                                    },
                                    "memoryMbytes": {
                                        "type": "integer",
                                        "example": 1024
                                    },
                                    "diskMbytes": {
                                        "type": "integer",
                                        "example": 2048
                                    }
                                }
                            },
                            "buildId": {
                                "type": "string"
                            },
                            "defaultKeyValueStoreId": {
                                "type": "string"
                            },
                            "defaultDatasetId": {
                                "type": "string"
                            },
                            "defaultRequestQueueId": {
                                "type": "string"
                            },
                            "buildNumber": {
                                "type": "string",
                                "example": "1.0.0"
                            },
                            "containerUrl": {
                                "type": "string"
                            },
                            "usage": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "usageTotalUsd": {
                                "type": "number",
                                "example": 0.00005
                            },
                            "usageUsd": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "number",
                                        "example": 0.00005
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
