{
  "openapi": "3.0.1",
  "info": {
    "title": "Airbnb Search Scraper",
    "description": "Scrape Airbnb search results for any location and dates: listing title, price and total, rating, reviews, photos, coordinates, badges and booking link. Filters for guests, price, bedrooms, amenities and place type. Paging, any Airbnb country site. No proxies needed.",
    "version": "0.0",
    "x-build-id": "9yoFaunknmH2AMboy"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/scrapercompany~airbnb-search-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-scrapercompany-airbnb-search-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/scrapercompany~airbnb-search-scraper/runs": {
      "post": {
        "operationId": "runs-sync-scrapercompany-airbnb-search-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/scrapercompany~airbnb-search-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-scrapercompany-airbnb-search-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": {
          "locations": {
            "title": "Locations",
            "type": "array",
            "description": "Destinations as you would type them on Airbnb, e.g. <code>Toronto</code> or <code>Lisbon, Portugal</code>. One search per location.",
            "default": [
              "Toronto"
            ],
            "items": {
              "type": "string"
            }
          },
          "check_in_date": {
            "title": "Check-in",
            "pattern": "^(\\d{4})-(0[1-9]|1[0-2])-(0[1-9]|[12]\\d|3[01])$|^(\\d+)\\s*(day|week|month|year)s?$",
            "type": "string",
            "description": "Exact (<code>2026-12-01</code>) or relative (<code>30 days</code> from today). Clear both dates to search flexible dates with <b>Trip length</b> (one week if nothing is set)."
          },
          "check_out_date": {
            "title": "Check-out",
            "pattern": "^(\\d{4})-(0[1-9]|1[0-2])-(0[1-9]|[12]\\d|3[01])$|^(\\d+)\\s*(day|week|month|year)s?$",
            "type": "string",
            "description": "Exact or relative (<code>32 days</code> from today). Defaults to the night after check-in."
          },
          "adults": {
            "title": "Adults",
            "minimum": 0,
            "maximum": 16,
            "type": "integer",
            "description": "Guests aged 13+ (0-16).",
            "default": 2
          },
          "children": {
            "title": "Children",
            "minimum": 0,
            "maximum": 15,
            "type": "integer",
            "description": "Children aged 2-12 (0-15)."
          },
          "infants": {
            "title": "Infants",
            "minimum": 0,
            "maximum": 5,
            "type": "integer",
            "description": "Infants under 2 (0-5)."
          },
          "pets": {
            "title": "Pets",
            "minimum": 0,
            "maximum": 5,
            "type": "integer",
            "description": "Pets (0-5)."
          },
          "airbnb_domain": {
            "title": "Airbnb site",
            "enum": [
              "airbnb.ae",
              "airbnb.am",
              "airbnb.at",
              "airbnb.az",
              "airbnb.ba",
              "airbnb.be",
              "airbnb.ca",
              "airbnb.cat",
              "airbnb.ch",
              "airbnb.cl",
              "airbnb.cn",
              "airbnb.co.cr",
              "airbnb.co.id",
              "airbnb.co.in",
              "airbnb.co.kr",
              "airbnb.co.nz",
              "airbnb.co.uk",
              "airbnb.co.ve",
              "airbnb.com",
              "airbnb.com.ar",
              "airbnb.com.au",
              "airbnb.com.bo",
              "airbnb.com.br",
              "airbnb.com.bz",
              "airbnb.com.co",
              "airbnb.com.ec",
              "airbnb.com.ee",
              "airbnb.com.gt",
              "airbnb.com.hk",
              "airbnb.com.hn",
              "airbnb.com.my",
              "airbnb.com.ni",
              "airbnb.com.pa",
              "airbnb.com.pe",
              "airbnb.com.ph",
              "airbnb.com.py",
              "airbnb.com.ro",
              "airbnb.com.sg",
              "airbnb.com.sv",
              "airbnb.com.tr",
              "airbnb.com.tw",
              "airbnb.com.ua",
              "airbnb.com.vn",
              "airbnb.cz",
              "airbnb.de",
              "airbnb.dk",
              "airbnb.es",
              "airbnb.fi",
              "airbnb.fr",
              "airbnb.gr",
              "airbnb.gy",
              "airbnb.hu",
              "airbnb.ie",
              "airbnb.is",
              "airbnb.it",
              "airbnb.jp",
              "airbnb.lt",
              "airbnb.lu",
              "airbnb.lv",
              "airbnb.me",
              "airbnb.mx",
              "airbnb.nl",
              "airbnb.no",
              "airbnb.pl",
              "airbnb.pt",
              "airbnb.rs",
              "airbnb.ru",
              "airbnb.se",
              "airbnb.si",
              "ar.airbnb.com",
              "bg.airbnb.com",
              "de.airbnb.lu",
              "es.airbnb.com",
              "fr.airbnb.be",
              "fr.airbnb.ca",
              "fr.airbnb.ch",
              "ga.airbnb.ie",
              "he.airbnb.com",
              "hi.airbnb.co.in",
              "hr.airbnb.com",
              "it.airbnb.ch",
              "ka.airbnb.com",
              "kn.airbnb.co.in",
              "mk.airbnb.com",
              "mr.airbnb.co.in",
              "mt.airbnb.com.mt",
              "sk.airbnb.com",
              "sq.airbnb.com",
              "sw.airbnb.com",
              "th.airbnb.com",
              "xh.airbnb.co.za",
              "zh-t.airbnb.com",
              "zh.airbnb.com",
              "zu.airbnb.co.za"
            ],
            "type": "string",
            "description": "Country site to search, e.g. <code>airbnb.com</code>, <code>airbnb.ca</code>, <code>airbnb.co.uk</code>. It sets the default currency and language.",
            "default": "airbnb.com"
          },
          "currency": {
            "title": "Currency",
            "type": "string",
            "description": "Display currency (ISO 4217, e.g. <code>USD</code>, <code>EUR</code>). Leave empty for the site's default."
          },
          "include_taxes": {
            "title": "Show prices with taxes",
            "type": "boolean",
            "description": "Return tax-inclusive totals when Airbnb includes a tax line.",
            "default": false
          },
          "maxPages": {
            "title": "Pages per query",
            "minimum": 1,
            "maximum": 15,
            "type": "integer",
            "description": "How many result pages to fetch for each query (1-15). Each page is a separate request and is charged separately; paging stops early when a page comes back empty.",
            "default": 1
          },
          "time_period": {
            "title": "Trip length (flexible dates)",
            "enum": [
              "weekend_trip",
              "one_week",
              "one_month"
            ],
            "type": "string",
            "description": "Flexible-date search instead of exact dates. Clear the check-in and check-out dates to use it."
          },
          "price_min": {
            "title": "Minimum price",
            "minimum": 0,
            "type": "integer",
            "description": "Minimum displayed trip price."
          },
          "price_max": {
            "title": "Maximum price",
            "minimum": 0,
            "type": "integer",
            "description": "Maximum displayed trip price."
          },
          "type_of_place": {
            "title": "Type of place",
            "enum": [
              "any",
              "entire_home",
              "room"
            ],
            "type": "string",
            "description": "Entire homes, private rooms, or any.",
            "default": "any"
          },
          "property_types": {
            "title": "Property types",
            "type": "string",
            "description": "Comma-separated: <code>house</code>, <code>guesthouse</code>, <code>apartment</code>, <code>hotel</code>."
          },
          "bedrooms": {
            "title": "Minimum bedrooms",
            "minimum": 0,
            "maximum": 8,
            "type": "integer",
            "description": "Minimum bedrooms (0-8)."
          },
          "beds": {
            "title": "Minimum beds",
            "minimum": 0,
            "maximum": 8,
            "type": "integer",
            "description": "Minimum beds (0-8)."
          },
          "bathrooms": {
            "title": "Minimum bathrooms",
            "minimum": 0,
            "maximum": 8,
            "type": "integer",
            "description": "Minimum bathrooms (0-8)."
          },
          "amenities": {
            "title": "Amenities",
            "type": "string",
            "description": "Comma-separated amenity names such as <code>wifi,kitchen,instant_book,guest_favorite</code>."
          },
          "customRequests": {
            "title": "Custom requests (advanced)",
            "type": "array",
            "description": "Optional list of JSON objects, one request each, using the API field names shown above. Each object is merged over the options above, so you only need to give what differs. You can also pass <code>bounding_box</code> (<code>[[ne_lat,ne_lng],[sw_lat,sw_lng]]</code>) instead of <code>q</code>. Example: <code>{\"q\":\"Lisbon\",\"check_in_date\":\"2026-12-20\",\"check_out_date\":\"2026-12-27\",\"adults\":4,\"type_of_place\":\"entire_home\"}</code>"
          },
          "includeErrors": {
            "title": "Include failed requests in the dataset",
            "type": "boolean",
            "description": "When on, a request that fails (for example an unknown property id) is saved as a dataset item with an <code>error</code> message so you can see what went wrong. Failed requests are never charged.",
            "default": true
          },
          "maxConcurrency": {
            "title": "Parallel requests",
            "minimum": 1,
            "maximum": 10,
            "type": "integer",
            "description": "How many API requests run at the same time.",
            "default": 3
          },
          "maxRetries": {
            "title": "Retries per request",
            "minimum": 0,
            "maximum": 5,
            "type": "integer",
            "description": "Retries for rate limits (HTTP 429), temporary server errors (5xx) and network errors, with exponential backoff. Validation errors are never retried.",
            "default": 2
          }
        }
      },
      "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
                  },
                  "PROXY_UNBLOCKER_UNITS": {
                    "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
                  },
                  "PROXY_UNBLOCKER_UNITS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}