{
  "openapi": "3.0.1",
  "info": {
    "title": "Airbnb Scraper: Listings, Prices, Reviews & Availability",
    "description": "Extract Airbnb listings, vacation rentals and short-term rental data from any destination. Get nightly prices, ratings, guest reviews, photos, coordinates, amenities and host details, plus 365-day availability and occupancy. Export to JSON, CSV or Excel. $1.99 per 1,000 results.",
    "version": "0.1",
    "x-build-id": "MJsnbMtaUXVwg9pYq"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/sourabhbgp~airbnb-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-sourabhbgp-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/sourabhbgp~airbnb-scraper/runs": {
      "post": {
        "operationId": "runs-sync-sourabhbgp-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/sourabhbgp~airbnb-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-sourabhbgp-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": {
          "mode": {
            "title": "Mode",
            "enum": [
              "search",
              "listing",
              "reviews"
            ],
            "type": "string",
            "description": "Scraping mode: search for listings by location, get listing details, or scrape reviews.",
            "default": "search"
          },
          "locationQueries": {
            "title": "Location Queries",
            "type": "array",
            "description": "Location names to search for listings (used in search mode). Examples: New York, Paris, Tokyo. You can also paste a full Airbnb search URL: every filter set on the website is kept, and the URL's own values (guests, currency, prices) take priority over this form.",
            "items": {
              "type": "string"
            }
          },
          "urls": {
            "title": "Listing URLs",
            "type": "array",
            "description": "Airbnb listing URLs for listing/reviews mode. Also accepts bare listing IDs.",
            "items": {
              "type": "string"
            }
          },
          "maxResults": {
            "title": "Max Results",
            "minimum": 0,
            "type": "integer",
            "description": "Maximum number of results for the whole run, across all places or listings. 0 = unlimited.",
            "default": 50
          },
          "checkIn": {
            "title": "Check-in Date",
            "type": "string",
            "description": "Check-in date (YYYY-MM-DD). Search and listing mode; needed for stay prices."
          },
          "checkOut": {
            "title": "Check-out Date",
            "type": "string",
            "description": "Check-out date (YYYY-MM-DD). Stays of 28 nights or more are priced monthly by Airbnb and come back without a stay price."
          },
          "adults": {
            "title": "Number of Adults",
            "minimum": 1,
            "type": "integer",
            "description": "Number of adult guests. Search and listing mode.",
            "default": 1
          },
          "children": {
            "title": "Children",
            "minimum": 0,
            "type": "integer",
            "description": "Search mode. Number of children (ages 2-12). Airbnb then only shows places that allow them."
          },
          "infants": {
            "title": "Infants",
            "minimum": 0,
            "type": "integer",
            "description": "Search mode. Number of infants (under 2)."
          },
          "pets": {
            "title": "Pets",
            "minimum": 0,
            "type": "integer",
            "description": "Search mode. Number of pets. Airbnb then only shows places that allow pets."
          },
          "currency": {
            "title": "Currency",
            "type": "string",
            "description": "Currency code for prices, e.g. USD, EUR, GBP. Search and listing mode.",
            "default": "USD"
          },
          "priceMin": {
            "title": "Minimum Price",
            "type": "integer",
            "description": "Minimum price per night filter."
          },
          "priceMax": {
            "title": "Maximum Price",
            "type": "integer",
            "description": "Maximum price per night filter."
          },
          "roomType": {
            "title": "Room Type",
            "enum": [
              "any",
              "Entire home/apt",
              "Private room",
              "Shared room"
            ],
            "type": "string",
            "description": "Filter by room type. Airbnb has no shared-room filter, so Shared room is filtered from the results and usually returns few listings.",
            "default": "any"
          },
          "propertyTypes": {
            "title": "Property types",
            "type": "array",
            "description": "Search mode. Only these property types, using Airbnb's own filter.",
            "items": {
              "type": "string",
              "enum": [
                "House",
                "Flat",
                "Guest house"
              ]
            }
          },
          "minBedrooms": {
            "title": "Minimum Bedrooms",
            "type": "integer",
            "description": "Minimum number of bedrooms."
          },
          "minBeds": {
            "title": "Minimum Beds",
            "minimum": 0,
            "type": "integer",
            "description": "Search mode. Minimum number of beds."
          },
          "minBathrooms": {
            "title": "Minimum Bathrooms",
            "type": "integer",
            "description": "Minimum number of bathrooms."
          },
          "privateBathroomOnly": {
            "title": "Private attached bathroom only",
            "type": "boolean",
            "description": "Search mode. Only places whose room has its own attached bathroom. Most useful together with Room Type: Private room.",
            "default": false
          },
          "instantBookOnly": {
            "title": "Instant Book only",
            "type": "boolean",
            "description": "Search mode. Only places you can book without waiting for host approval.",
            "default": false
          },
          "freeCancellationOnly": {
            "title": "Free cancellation only",
            "type": "boolean",
            "description": "Search mode. Only places that offer free cancellation, using Airbnb's own filter.",
            "default": false
          },
          "guestFavoriteOnly": {
            "title": "Guest favourites only",
            "type": "boolean",
            "description": "Search mode. Only places Airbnb marks as a Guest favourite.",
            "default": false
          },
          "superhostOnly": {
            "title": "Superhost Only",
            "type": "boolean",
            "description": "Only listings confirmed as Superhost in the search results. Airbnb badges only some superhosts there, so this returns fewer listings rather than include unconfirmed ones.",
            "default": false
          },
          "luxeOnly": {
            "title": "Airbnb Luxe only",
            "type": "boolean",
            "description": "Search mode. Only Airbnb Luxe homes, which are rare: many cities have only a handful.",
            "default": false
          },
          "placeCategories": {
            "title": "Place categories",
            "type": "array",
            "description": "Search mode. Only places in these Airbnb categories.",
            "items": {
              "type": "string",
              "enum": [
                "Beachfront",
                "Waterfront"
              ]
            }
          },
          "amenities": {
            "title": "Amenities",
            "type": "array",
            "description": "Search mode. Only places that have every amenity selected, using Airbnb's own filter.",
            "items": {
              "type": "string",
              "enum": [
                "Wifi",
                "Kitchen",
                "Washing machine",
                "Tumble dryer",
                "Air conditioning",
                "Heating",
                "Dedicated workspace",
                "TV",
                "Hairdryer",
                "Iron",
                "Pool",
                "Hot tub",
                "Free parking",
                "EV charger",
                "Cot",
                "King bed",
                "Gym",
                "BBQ grill",
                "Breakfast",
                "Indoor fireplace",
                "Smoking allowed",
                "Smoke alarm",
                "Carbon monoxide alarm",
                "Self check-in",
                "Step-free access",
                "Disabled parking spot",
                "Step-free bedroom access",
                "Step-free bathroom access",
                "Step-free shower",
                "Toilet grab bar",
                "Shower grab bar",
                "Shower or bath chair",
                "Ceiling or mobile hoist"
              ]
            }
          },
          "hostLanguages": {
            "title": "Host languages",
            "type": "array",
            "description": "Search mode. Only hosts who speak one of these languages.",
            "items": {
              "type": "string",
              "enum": [
                "en",
                "fr",
                "de",
                "it",
                "es",
                "pt",
                "zh",
                "ja",
                "ko",
                "ru",
                "ar",
                "nl",
                "sv",
                "no",
                "da",
                "fi",
                "pl",
                "cs",
                "el",
                "he",
                "hi",
                "hu",
                "id",
                "ms",
                "th",
                "tr",
                "uk",
                "vi",
                "ca",
                "hr",
                "ro",
                "sr",
                "sk",
                "sl",
                "bg",
                "et",
                "lv",
                "lt",
                "is",
                "fil",
                "tl",
                "bn",
                "ta",
                "te",
                "ur",
                "fa",
                "sw",
                "af",
                "sgn",
                "sq",
                "hy",
                "az",
                "eu",
                "be",
                "bs",
                "my",
                "gl",
                "ka",
                "gu",
                "ht",
                "ga",
                "kn",
                "km",
                "ky",
                "lo",
                "mk",
                "mt",
                "pa",
                "xh",
                "zu"
              ],
              "enumTitles": [
                "English",
                "French",
                "German",
                "Italian",
                "Spanish",
                "Portuguese",
                "Chinese (Simplified)",
                "Japanese",
                "Korean",
                "Russian",
                "Arabic",
                "Dutch",
                "Swedish",
                "Norwegian",
                "Danish",
                "Finnish",
                "Polish",
                "Czech",
                "Greek",
                "Hebrew",
                "Hindi",
                "Hungarian",
                "Indonesian",
                "Malay",
                "Thai",
                "Turkish",
                "Ukrainian",
                "Vietnamese",
                "Catalan",
                "Croatian",
                "Romanian",
                "Serbian",
                "Slovak",
                "Slovenian",
                "Bulgarian",
                "Estonian",
                "Latvian",
                "Lithuanian",
                "Icelandic",
                "Filipino",
                "Tagalog",
                "Bengali",
                "Tamil",
                "Telugu",
                "Urdu",
                "Persian",
                "Swahili",
                "Afrikaans",
                "Sign Language",
                "Albanian",
                "Armenian",
                "Azerbaijani",
                "Basque",
                "Belarusian",
                "Bosnian",
                "Burmese",
                "Galician",
                "Georgian",
                "Gujarati",
                "Haitian Creole",
                "Irish",
                "Kannada",
                "Khmer",
                "Kyrgyz",
                "Lao",
                "Macedonian",
                "Maltese",
                "Punjabi",
                "Xhosa",
                "Zulu"
              ]
            }
          },
          "includeAvailabilityCalendar": {
            "title": "Include availability calendar",
            "type": "boolean",
            "description": "Listing mode only. Adds a per-day availability calendar of up to 365 days to each listing, showing which dates are free and the minimum stay for each. Occupancy rate is always included and does not need this option.",
            "default": false
          },
          "includeHostPortfolio": {
            "title": "Include host portfolio",
            "type": "boolean",
            "description": "Listing mode only. Adds every other listing the same host manages, with room type, bed and bath counts. Uses one extra request per host.",
            "default": false
          },
          "reviewsSort": {
            "title": "Review order",
            "enum": [
              "BEST_QUALITY",
              "MOST_RECENT",
              "RATING_DESC",
              "RATING_ASC"
            ],
            "type": "string",
            "description": "Reviews mode. The order Airbnb returns reviews in: most relevant, most recent, highest rated first, or lowest rated first.",
            "default": "BEST_QUALITY"
          },
          "maxReviewsPerListing": {
            "title": "Max reviews per listing",
            "minimum": 0,
            "type": "integer",
            "description": "Reviews mode. Maximum reviews to take from each listing, so one busy listing cannot use up Max Results. 0 = no per-listing limit.",
            "default": 0
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}