{
  "openapi": "3.0.1",
  "info": {
    "title": "Ultimate Airbnb Scraper",
    "description": "Really Fast and Efficient Airbnb Scraper. Extract detailed listing information, including prices, availability, host details, amenities, guest capacity, images and more.\nPerfect for market research, travel analysis, and lead generation. Export data in JSON, CSV, Excel, or HTML.",
    "version": "1.0",
    "x-build-id": "3cgkar7QviPqerZcE"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/hyperscrape~hyper-airbnb-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-hyperscrape-hyper-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/hyperscrape~hyper-airbnb-scraper/runs": {
      "post": {
        "operationId": "runs-sync-hyperscrape-hyper-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/hyperscrape~hyper-airbnb-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-hyperscrape-hyper-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": {
          "locationQueries": {
            "title": "Location Queries",
            "type": "array",
            "description": "Enter cities or regions to search (e.g., London, Paris, New York).",
            "items": {
              "type": "string"
            },
            "default": [
              "London"
            ]
          },
          "startUrls": {
            "title": "Start URLs",
            "type": "array",
            "description": "Direct Airbnb listing or search URLs to scrape.",
            "items": {
              "type": "object"
            }
          },
          "checkIn": {
            "title": "Check-In Date",
            "type": "string",
            "description": "Check-in date in YYYY-MM-DD format. If empty, a 1-night stay in the future is used to force nightly pricing."
          },
          "checkOut": {
            "title": "Check-Out Date",
            "type": "string",
            "description": "Check-out date in YYYY-MM-DD format."
          },
          "locale": {
            "title": "Locale",
            "enum": [
              "en-US",
              "en-GB",
              "de-DE",
              "fr-FR",
              "es-ES",
              "it-IT",
              "ja-JP",
              "zh-CN",
              "pt-BR"
            ],
            "type": "string",
            "description": "Language/region for results.",
            "default": "en-US"
          },
          "currency": {
            "title": "Currency",
            "enum": [
              "USD",
              "EUR",
              "GBP",
              "AUD",
              "CAD",
              "JPY",
              "INR",
              "SGD",
              "AED",
              "BRL",
              "CHF",
              "CNY",
              "HKD",
              "IDR",
              "KRW",
              "MXN",
              "MYR",
              "NZD",
              "PHP",
              "SAR",
              "THB",
              "TRY",
              "TWD",
              "VND",
              "ZAR"
            ],
            "type": "string",
            "description": "Select the currency for prices. Standardizing on one currency is recommended for sharding.",
            "default": "USD"
          },
          "minPrice": {
            "title": "Minimum Price",
            "minimum": 0,
            "type": "integer",
            "description": "Minimum price per night.",
            "default": 0
          },
          "maxPrice": {
            "title": "Maximum Price",
            "minimum": 0,
            "type": "integer",
            "description": "Maximum price per night.",
            "default": 1000
          },
          "minBeds": {
            "title": "Minimum Beds",
            "minimum": 0,
            "type": "integer",
            "description": "Minimum number of beds."
          },
          "minBedrooms": {
            "title": "Minimum Bedrooms",
            "minimum": 0,
            "type": "integer",
            "description": "Minimum number of bedrooms."
          },
          "minBathrooms": {
            "title": "Minimum Bathrooms",
            "minimum": 0,
            "type": "integer",
            "description": "Minimum number of bathrooms."
          },
          "adults": {
            "title": "Adults",
            "minimum": 1,
            "type": "integer",
            "description": "Number of adult guests."
          },
          "children": {
            "title": "Children",
            "minimum": 0,
            "type": "integer",
            "description": "Number of children."
          },
          "infants": {
            "title": "Infants",
            "minimum": 0,
            "type": "integer",
            "description": "Number of infants."
          },
          "pets": {
            "title": "Pets",
            "minimum": 0,
            "type": "integer",
            "description": "Number of pets."
          },
          "maxListings": {
            "title": "Maximum Listings",
            "minimum": 0,
            "type": "integer",
            "description": "Maximum number of listings to scrape. Set 0 for running without any limit.",
            "default": 10
          },
          "proxyConfiguration": {
            "title": "Proxy Settings",
            "type": "object",
            "description": "Use Apify Proxy to avoid IP blocking. Residential proxies are recommended for Airbnb.",
            "default": {
              "useApifyProxy": true
            }
          },
          "simpleMode": {
            "title": "Fast Mode (Search Results Only)",
            "type": "boolean",
            "description": "Always enabled. Base data (title, price, rating, URL, thumbnail) is scraped from search result pages at high speed. Enable add-ons below to enrich listings with additional details like full descriptions, amenities, host info, and images — each add-on visits the listing page individually so it is slower.",
            "default": true
          },
          "addOnDetails": {
            "title": "Add-on: Full Listing Details",
            "type": "boolean",
            "description": "Visit each listing to scrape full description, amenities, and house rules. (Slower, requires Fast Mode unchecked)",
            "default": false
          },
          "addOnHostDetails": {
            "title": "Add-on: Host Details",
            "type": "boolean",
            "description": "Visit each listing to scrape host information (Name, ID, Superhost status). (Slower, requires Fast Mode unchecked)",
            "default": false
          },
          "addOnImages": {
            "title": "Add-on: Images",
            "type": "boolean",
            "description": "Visit each listing to scrape high-resolution images. (Slower, requires Fast Mode unchecked)",
            "default": false
          },
          "enableHorizontalScaling": {
            "title": "Enable Horizontal Scaling",
            "type": "boolean",
            "description": "Automatically enabled for high-speed parallel scraping.",
            "default": true
          },
          "priceShardingStep": {
            "title": "Price Range Step Size ($)",
            "minimum": 1,
            "maximum": 100,
            "type": "integer",
            "description": "Controls how much the price range is split during scraping. Smaller step sizes divide the range into more segments, helping collect more unique results. However, smaller steps also increase the total number of requests and make scraping slower. Larger step sizes scrape faster but may return fewer unique results.",
            "default": 5
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}