{
  "openapi": "3.0.1",
  "info": {
    "title": "Airbnb Scraper With Price & Availability",
    "description": "Use this Airbnb Scraper to collect host details and property info. Great for tools or services targeting Airbnb owners, co-hosting platforms, or cleaning and property management outreach.",
    "version": "0.1",
    "x-build-id": "v6VG1ds8cBSDmnfrZ"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/api-empire~airbnb-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-api-empire-airbnb-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/api-empire~airbnb-scraper/runs": {
      "post": {
        "operationId": "runs-sync-api-empire-airbnb-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/api-empire~airbnb-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-api-empire-airbnb-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",
        "properties": {
          "marketLocations": {
            "title": "🏙️ Rental markets to analyze",
            "type": "array",
            "description": "Markets to sample for price & availability, e.g. `london`, `paris`, or US-style `Austin--TX` to pin the exact area. One market per line. 🗺️",
            "items": {
              "type": "string"
            }
          },
          "listingUrlsOrIds": {
            "title": "🔗 Specific listings / search URLs / room IDs to track",
            "type": "array",
            "description": "Optional: full Airbnb **search URLs** (we resolve the market), or **direct listing links / room IDs** like `https://www.airbnb.com/rooms/12345678` or `12345678` to track one property’s availability calendar and nightly rates. One per line. 🔗",
            "items": {
              "type": "string"
            }
          },
          "sortOrder": {
            "title": "↕️ Sort order",
            "enum": [
              "relevance",
              "price_asc",
              "price_desc"
            ],
            "type": "string",
            "description": "How Airbnb sorts the search results before we collect them. Example: `price_asc` returns the cheapest stays first. Default is `relevance`.",
            "default": "relevance"
          },
          "rateCheckinDate": {
            "title": "🛎️ Rate window start (check-in)",
            "type": "string",
            "description": "First night of the priced stay — calendar date **or** relative (e.g. `14 days`, `2 weeks`). Future dates give the freshest live rates. 📆"
          },
          "rateCheckoutDate": {
            "title": "🚪 Rate window end (check-out)",
            "type": "string",
            "description": "Last night + 1 of the priced stay — must be **after** the start date. Same calendar or relative style as above. 🌅"
          },
          "priceCurrency": {
            "title": "💵 Price currency",
            "enum": [
              "USD",
              "EUR",
              "GBP",
              "JPY",
              "AUD",
              "CAD",
              "CHF",
              "CNY",
              "INR",
              "BRL",
              "MXN",
              "SEK",
              "NOK",
              "DKK",
              "PLN",
              "NZD",
              "SGD",
              "HKD",
              "KRW",
              "TRY",
              "ZAR",
              "AED",
              "THB",
              "MYR",
              "PHP",
              "IDR",
              "CZK",
              "HUF",
              "ILS",
              "SAR",
              "CLP",
              "ARS",
              "COP",
              "PEN",
              "RON",
              "BGN",
              "HRK",
              "ISK",
              "TWD",
              "VND"
            ],
            "type": "string",
            "description": "Nightly rates, price stats and per-day prices are reported in this currency. 💶"
          },
          "languageRegion": {
            "title": "🌐 Language & region (locale)",
            "enum": [
              "en-US",
              "en-GB",
              "en-AU",
              "en-CA",
              "en-IN",
              "en-IE",
              "fr-FR",
              "fr-CA",
              "de-DE",
              "es-ES",
              "es-MX",
              "es-AR",
              "it-IT",
              "pt-BR",
              "pt-PT",
              "ja-JP",
              "ko-KR",
              "zh-CN",
              "zh-TW",
              "nl-NL",
              "nl-BE",
              "sv-SE",
              "da-DK",
              "nb-NO",
              "fi-FI",
              "pl-PL",
              "ru-RU",
              "tr-TR",
              "el-GR",
              "cs-CZ",
              "hu-HU",
              "ro-RO",
              "uk-UA",
              "id-ID",
              "th-TH",
              "vi-VN",
              "ms-MY",
              "hi-IN",
              "he-IL",
              "ar-SA",
              "ca-ES",
              "hr-HR",
              "sk-SK",
              "sl-SI",
              "bg-BG",
              "lt-LT",
              "lv-LV",
              "et-EE"
            ],
            "type": "string",
            "description": "How Airbnb labels listings and prices for you (language/region). 🗣️"
          },
          "maxListings": {
            "title": "🔢 Listings to sample per market",
            "minimum": 1,
            "maximum": 5000,
            "type": "integer",
            "description": "Stop after this many listings that **match the market** (and the area rules below) — your price/availability sample size. 📊"
          },
          "maxSearchPages": {
            "title": "📄 Max result pages to walk (optional)",
            "minimum": 1,
            "maximum": 500,
            "type": "integer",
            "description": "Advanced: limit how many result pages to scroll per market. Leave empty and we’ll pick a sensible cap for you. 📑"
          },
          "includeNearbyAreaMatches": {
            "title": "🌍 Include nearby / similarly-named areas",
            "type": "boolean",
            "description": "Leave **unchecked** ✅ to keep only listings that truly belong to the market you named (best when a city name exists in many countries). **Check** it to also include results from nearby or similarly-named places. 🌍"
          },
          "regionFilter": {
            "title": "📍 Region / state / province",
            "enum": [
              "",
              "Addis Ababa",
              "Alberta",
              "Andalusia",
              "Antioquia",
              "Auckland",
              "Australian Capital Territory",
              "Baden-Württemberg",
              "Bali",
              "Bangkok",
              "Bavaria",
              "Beijing",
              "Berlin",
              "Bogotá D.C.",
              "Brussels-Capital Region",
              "British Columbia",
              "Buenos Aires Province",
              "Busan",
              "California",
              "Cairo Governorate",
              "Casablanca-Settat",
              "Catalonia",
              "Córdoba",
              "Delhi",
              "Dubai",
              "Dublin",
              "Eastern Cape",
              "England",
              "Flanders",
              "Florida",
              "Gauteng",
              "Guangdong",
              "Hanoi",
              "Hokkaido",
              "Ho Chi Minh City",
              "Hong Kong",
              "Istanbul",
              "Jakarta",
              "Jalisco",
              "Kanagawa Prefecture",
              "Karnataka",
              "KwaZulu-Natal",
              "Lagos State",
              "Lazio",
              "Lesser Poland",
              "Lima Province",
              "Lombardy",
              "Madrid",
              "Maharashtra",
              "Manitoba",
              "Metropolitan Manila",
              "Mexico City",
              "Minas Gerais",
              "Moscow Oblast",
              "New Brunswick",
              "New South Wales",
              "New York",
              "North Holland",
              "North Rhine-Westphalia",
              "Northern Ireland",
              "Nova Scotia",
              "Ohio",
              "Ontario",
              "Oregon",
              "Osaka Prefecture",
              "Pennsylvania",
              "Provence-Alpes-Côte d'Azur",
              "Quebec",
              "Queensland",
              "Rio de Janeiro",
              "Riyadh Province",
              "Saint Petersburg",
              "Santiago Metropolitan",
              "Saskatchewan",
              "São Paulo",
              "Scotland",
              "Seoul",
              "Shanghai",
              "Sichuan",
              "Singapore",
              "South Australia",
              "South Holland",
              "Stockholm County",
              "Taipei",
              "Tamil Nadu",
              "Tasmania",
              "Tel Aviv District",
              "Texas",
              "Tokyo",
              "Victoria",
              "Viken",
              "Wales",
              "Wallonia",
              "Wellington",
              "Western Australia",
              "Western Cape",
              "Zurich",
              "Île-de-France"
            ],
            "type": "string",
            "description": "Optional dropdown of regions worldwide — pick the closest match, or none. US tip: you can also use `City--ST` in the market field. 🇺🇸"
          },
          "countryFilter": {
            "title": "🌎 Country",
            "enum": [
              "",
              "United States",
              "United Kingdom",
              "Canada",
              "Australia",
              "France",
              "Germany",
              "Italy",
              "Spain",
              "Japan",
              "India",
              "Brazil",
              "Mexico",
              "Ireland",
              "Netherlands",
              "Portugal",
              "Belgium",
              "Austria",
              "Switzerland",
              "Sweden",
              "Norway",
              "Denmark",
              "Poland",
              "Czech Republic",
              "Hungary",
              "Greece",
              "Turkey",
              "South Korea",
              "China",
              "Taiwan",
              "Hong Kong",
              "Singapore",
              "New Zealand",
              "South Africa",
              "United Arab Emirates",
              "Saudi Arabia",
              "Israel",
              "Argentina",
              "Chile",
              "Colombia",
              "Thailand",
              "Malaysia",
              "Indonesia",
              "Philippines",
              "Vietnam",
              "Egypt",
              "Nigeria",
              "Russia",
              "Ukraine",
              "Romania",
              "Finland",
              "Croatia",
              "Slovenia",
              "Slovakia",
              "Bulgaria",
              "Serbia",
              "Iceland",
              "Luxembourg",
              "Estonia",
              "Latvia",
              "Lithuania",
              "Pakistan",
              "Bangladesh",
              "Peru",
              "Ecuador",
              "Uruguay",
              "Costa Rica",
              "Panama",
              "Morocco",
              "Kenya",
              "Qatar",
              "Kuwait",
              "Bahrain",
              "Oman",
              "Cyprus",
              "Malta",
              "Montenegro",
              "Albania",
              "North Macedonia"
            ],
            "type": "string",
            "description": "Optional: which country the market should be in (helps when two cities share a name). Leave empty if you’re sure. 🏳️"
          },
          "includeCalendar": {
            "title": "📅 Include availability calendar",
            "type": "boolean",
            "description": "When **on** ✅ each listing gets an `availabilityCalendar` (per-day available/min-nights/price), plus derived `occupancyRatePct`, `nightsAvailable`, `nextAvailableDate`, and `priceStats`. Turn **off** for listings-only output. Default is on.",
            "default": true
          },
          "calendarMonths": {
            "title": "🗓️ Calendar months",
            "minimum": 1,
            "maximum": 12,
            "type": "integer",
            "description": "How many months of availability to collect per listing, starting from the current month (Airbnb exposes up to 12). Example: `12` → a full year. Default is 12.",
            "default": 12
          },
          "maxCalendarDays": {
            "title": "🔢 Max calendar days per listing (optional)",
            "minimum": 0,
            "type": "integer",
            "description": "Advanced: cap how many calendar day rows to keep per listing (counts children, not listings). `0` = keep every day in the window. Default is 0.",
            "default": 0
          },
          "proxyConfiguration": {
            "title": "🔌 Proxy",
            "type": "object",
            "description": "Configure Apify Proxy if needed; otherwise we connect directly. ☁️"
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}