{
  "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}