{
  "openapi": "3.0.1",
  "info": {
    "title": "Airbnb Search Scraper",
    "description": "Scrape Airbnb stays for any city with total price, price breakdown, discounts, rating, review count, bedrooms, beds, coordinates, badges and photos. Search many places and dates in one run, filter by guests, room type and maximum price, and get up to about 270 stays per search.",
    "version": "1.0",
    "x-build-id": "uDUoF0eVDV3qRQFHg"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/thescrappa~airbnb-search-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-thescrappa-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/thescrappa~airbnb-search-scraper/runs": {
      "post": {
        "operationId": "runs-sync-thescrappa-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/thescrappa~airbnb-search-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-thescrappa-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",
        "required": [
          "searches"
        ],
        "properties": {
          "searches": {
            "title": "Searches",
            "minItems": 1,
            "maxItems": 100,
            "type": "array",
            "description": "One entry per search. Each entry can set its own dates, guests and filters; values set outside the list apply to every search that does not set them.",
            "items": {
              "type": "object",
              "required": [
                "place"
              ],
              "properties": {
                "place": {
                  "title": "Place",
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 200,
                  "description": "City and country, for example Lisbon, Portugal or Paris--France.",
                  "editor": "textfield"
                },
                "checkin": {
                  "title": "Check-in date",
                  "type": "string",
                  "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
                  "description": "Check-in date in YYYY-MM-DD format. Must not be in the past. When omitted, check-in is set to 30 days from today.",
                  "editor": "textfield"
                },
                "checkout": {
                  "title": "Check-out date",
                  "type": "string",
                  "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
                  "description": "Check-out date in YYYY-MM-DD format, after check-in. When omitted, check-out is set to three days after check-in.",
                  "editor": "textfield"
                },
                "adults": {
                  "title": "Adults",
                  "type": "integer",
                  "minimum": 1,
                  "maximum": 16,
                  "description": "Number of adults, 1 to 16. Default 1.",
                  "editor": "number"
                },
                "children": {
                  "title": "Children",
                  "type": "integer",
                  "minimum": 0,
                  "maximum": 10,
                  "description": "Number of children, 0 to 10.",
                  "editor": "number"
                },
                "infants": {
                  "title": "Infants",
                  "type": "integer",
                  "minimum": 0,
                  "maximum": 10,
                  "description": "Number of infants, 0 to 10.",
                  "editor": "number"
                },
                "pets": {
                  "title": "Pets",
                  "type": "integer",
                  "minimum": 0,
                  "maximum": 10,
                  "description": "Number of pets, 0 to 10.",
                  "editor": "number"
                },
                "currency": {
                  "title": "Currency",
                  "type": "string",
                  "pattern": "^[A-Z]{3}$",
                  "description": "Three-letter currency code for prices, for example EUR or GBP. Default USD.",
                  "editor": "textfield"
                },
                "price_max": {
                  "title": "Maximum price per night",
                  "type": "integer",
                  "minimum": 1,
                  "description": "Highest nightly price in the chosen currency.",
                  "editor": "number"
                },
                "room_type": {
                  "title": "Room type",
                  "type": "string",
                  "enum": [
                    "entire_home",
                    "private_room",
                    "hotel_room"
                  ],
                  "enumTitles": [
                    "Entire home",
                    "Private room",
                    "Hotel room"
                  ],
                  "description": "Only stays of this type. Leave empty for all types.",
                  "editor": "select"
                }
              }
            }
          },
          "checkin": {
            "title": "Check-in date",
            "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
            "type": "string",
            "description": "Check-in date in YYYY-MM-DD format. Must not be in the past. When omitted, check-in is set to 30 days from today."
          },
          "checkout": {
            "title": "Check-out date",
            "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
            "type": "string",
            "description": "Check-out date in YYYY-MM-DD format, after check-in. When omitted, check-out is set to three days after check-in."
          },
          "adults": {
            "title": "Adults",
            "minimum": 1,
            "maximum": 16,
            "type": "integer",
            "description": "Number of adults, 1 to 16. Default 1."
          },
          "children": {
            "title": "Children",
            "minimum": 0,
            "maximum": 10,
            "type": "integer",
            "description": "Number of children, 0 to 10."
          },
          "infants": {
            "title": "Infants",
            "minimum": 0,
            "maximum": 10,
            "type": "integer",
            "description": "Number of infants, 0 to 10."
          },
          "pets": {
            "title": "Pets",
            "minimum": 0,
            "maximum": 10,
            "type": "integer",
            "description": "Number of pets, 0 to 10."
          },
          "currency": {
            "title": "Currency",
            "pattern": "^[A-Z]{3}$",
            "type": "string",
            "description": "Three-letter currency code for prices, for example EUR or GBP. Default USD."
          },
          "price_max": {
            "title": "Maximum price per night",
            "minimum": 1,
            "type": "integer",
            "description": "Highest nightly price in the chosen currency."
          },
          "room_type": {
            "title": "Room type",
            "enum": [
              "entire_home",
              "private_room",
              "hotel_room"
            ],
            "type": "string",
            "description": "Only stays of this type. Leave empty for all types."
          },
          "maxResults": {
            "title": "Maximum Results",
            "minimum": 1,
            "maximum": 300,
            "type": "integer",
            "description": "Maximum stays to save for each search. Airbnb shows 18 stays per page and up to about 270 per search.",
            "default": 50
          },
          "maxPages": {
            "title": "Maximum Pages",
            "minimum": 1,
            "maximum": 20,
            "type": "integer",
            "description": "Maximum pages to request for each batch entry.",
            "default": 20
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}