{
  "openapi": "3.0.1",
  "info": {
    "title": "Airbnb Scraper API - Total Prices, Calendar, Reviews & Hosts",
    "description": "🏠 Scrape Airbnb listings by location, search URL or listing URL with every filter. Real prices for your dates with fee breakdown, full listing page (host, amenities, rules, photos), 12-month availability calendar with occupancy metrics, and reviews. No 270-listing cap. Pay per result.",
    "version": "0.1",
    "x-build-id": "TmjuPKqtdIzH7WeFh"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/scrapifier~airbnb-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-scrapifier-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/scrapifier~airbnb-scraper/runs": {
      "post": {
        "operationId": "runs-sync-scrapifier-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/scrapifier~airbnb-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-scrapifier-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": {
          "locations": {
            "title": "Locations",
            "type": "array",
            "description": "Cities, neighbourhoods, regions or addresses as you would type them on Airbnb (\"Paris, France\", \"Lisbon\", \"Brooklyn, NY\"). One search each; big searches are split automatically until every listing is reached.",
            "items": {
              "type": "string"
            }
          },
          "searchUrls": {
            "title": "Airbnb search URLs",
            "type": "array",
            "description": "Any Airbnb search results URL (https://www.airbnb.com/s/Paris/homes?...) — its dates, guests, filters and map bounds are kept.",
            "items": {
              "type": "object",
              "required": [
                "url"
              ],
              "properties": {
                "url": {
                  "type": "string",
                  "title": "URL of a web page",
                  "format": "uri"
                }
              }
            }
          },
          "listingUrls": {
            "title": "Listing URLs or IDs",
            "type": "array",
            "description": "Specific listings: https://www.airbnb.com/rooms/45482776 or just 45482776. Each gets its full listing page.",
            "items": {
              "type": "string"
            }
          },
          "dataType": {
            "title": "Data type",
            "enum": [
              "listings",
              "reviews"
            ],
            "type": "string",
            "description": "Listings: one row per listing with the real price for your dates and, optionally, the full listing page, the availability calendar with occupancy metrics and the latest reviews nested. Reviews: one row per review for each listing found.",
            "default": "listings"
          },
          "checkIn": {
            "title": "Check-in date",
            "type": "string",
            "description": "YYYY-MM-DD. With dates, every listing carries its real total price and breakdown for the stay. Without dates Airbnb shows an indicative nightly price."
          },
          "checkOut": {
            "title": "Check-out date",
            "type": "string",
            "description": "YYYY-MM-DD. Defaults to two nights after check-in."
          },
          "adults": {
            "title": "Adults",
            "minimum": 1,
            "maximum": 16,
            "type": "integer",
            "description": "Number of adult guests.",
            "default": 1
          },
          "children": {
            "title": "Children",
            "minimum": 0,
            "maximum": 10,
            "type": "integer",
            "description": "Number of children (2-12).",
            "default": 0
          },
          "infants": {
            "title": "Infants",
            "minimum": 0,
            "maximum": 5,
            "type": "integer",
            "description": "Number of infants (under 2).",
            "default": 0
          },
          "pets": {
            "title": "Pets",
            "minimum": 0,
            "maximum": 5,
            "type": "integer",
            "description": "Number of pets — only pet-friendly listings are returned when set.",
            "default": 0
          },
          "priceMin": {
            "title": "Minimum nightly price",
            "minimum": 0,
            "type": "integer",
            "description": "In the selected currency."
          },
          "priceMax": {
            "title": "Maximum nightly price",
            "minimum": 0,
            "type": "integer",
            "description": "In the selected currency."
          },
          "roomTypes": {
            "title": "Type of place",
            "type": "array",
            "description": "Empty = any.",
            "items": {
              "type": "string",
              "enum": [
                "entire_home",
                "private_room",
                "shared_room",
                "hotel_room"
              ],
              "enumTitles": [
                "Entire home / apartment",
                "Private room",
                "Shared room",
                "Hotel room"
              ]
            }
          },
          "minBedrooms": {
            "title": "Minimum bedrooms",
            "minimum": 0,
            "maximum": 10,
            "type": "integer",
            "description": "0 = any."
          },
          "minBeds": {
            "title": "Minimum beds",
            "minimum": 0,
            "maximum": 20,
            "type": "integer",
            "description": "0 = any."
          },
          "minBathrooms": {
            "title": "Minimum bathrooms",
            "minimum": 0,
            "maximum": 10,
            "type": "integer",
            "description": "0 = any."
          },
          "amenities": {
            "title": "Amenities",
            "type": "array",
            "description": "Only listings offering all the selected amenities.",
            "items": {
              "type": "string",
              "enum": [
                "wifi",
                "kitchen",
                "washer",
                "dryer",
                "air_conditioning",
                "heating",
                "dedicated_workspace",
                "tv",
                "hair_dryer",
                "iron",
                "pool",
                "hot_tub",
                "free_parking",
                "ev_charger",
                "gym",
                "bbq_grill",
                "breakfast",
                "indoor_fireplace",
                "smoking_allowed",
                "crib"
              ],
              "enumTitles": [
                "Wifi",
                "Kitchen",
                "Washer",
                "Dryer",
                "Air conditioning",
                "Heating",
                "Dedicated workspace",
                "TV",
                "Hair dryer",
                "Iron",
                "Pool",
                "Hot tub",
                "Free parking",
                "EV charger",
                "Gym",
                "BBQ grill",
                "Breakfast",
                "Indoor fireplace",
                "Smoking allowed",
                "Crib"
              ]
            }
          },
          "superhostOnly": {
            "title": "Superhosts only",
            "type": "boolean",
            "description": "Keep only listings run by a Superhost.",
            "default": false
          },
          "instantBookOnly": {
            "title": "Instant Book only",
            "type": "boolean",
            "description": "Keep only listings bookable instantly.",
            "default": false
          },
          "currency": {
            "title": "Currency",
            "enum": [
              "USD",
              "EUR",
              "GBP",
              "CAD",
              "AUD",
              "CHF",
              "JPY",
              "BRL",
              "MXN",
              "INR",
              "SEK",
              "NOK",
              "DKK",
              "PLN",
              "CZK",
              "AED",
              "SGD",
              "HKD",
              "NZD",
              "ZAR",
              "TRY",
              "THB"
            ],
            "type": "string",
            "description": "Currency of every price in the output (and of the price filters).",
            "default": "USD"
          },
          "includeDetails": {
            "title": "Fetch each listing's page",
            "type": "boolean",
            "description": "One extra request per listing for the full record: description, amenities by group, host profile and stats, house rules, check-in/out times, safety, sleeping arrangement, category ratings, rating distribution, review tags, highlights, all photos, cancellation policy.",
            "default": false
          },
          "calendarMonths": {
            "title": "Availability calendar (months ahead)",
            "minimum": 0,
            "maximum": 12,
            "type": "integer",
            "description": "0 = off. 1-12 = read the day-by-day availability calendar this many months ahead and compute occupancy metrics (occupancy over 30/60/90/365 days, available and unavailable days, next available date, typical minimum stay, unavailable streaks). Unavailable days include both bookings and host blocks.",
            "default": 0
          },
          "maxReviewsPerListing": {
            "title": "Reviews per listing",
            "minimum": 0,
            "type": "integer",
            "description": "Listings mode: nest this many latest reviews in each listing row (0 = none, max 50). Reviews mode: stop after this many reviews per listing (0 = every review).",
            "default": 0
          },
          "reviewSort": {
            "title": "Review order",
            "enum": [
              "most_recent",
              "highest_rated",
              "lowest_rated",
              "most_relevant"
            ],
            "type": "string",
            "description": "Server-side order of the reviews.",
            "default": "most_recent"
          },
          "maxListingsPerSearch": {
            "title": "Max listings per location / search URL",
            "minimum": 0,
            "type": "integer",
            "description": "0 = every listing Airbnb returns for the search (the Actor keeps splitting the search until the site's 270-listing cap no longer applies).",
            "default": 0
          },
          "maxItems": {
            "title": "Maximum rows",
            "minimum": 0,
            "type": "integer",
            "description": "Stop after this many rows in total — the number of results you pay for. 0 = no limit.",
            "default": 0
          },
          "flatten": {
            "title": "Flatten rows for CSV/Excel",
            "type": "boolean",
            "description": "Emit flat columns (categoryRatings_cleanliness, amenities_Kitchen and dining…) instead of nested objects; the calendar becomes a JSON string.",
            "default": false
          },
          "emitInputStatus": {
            "title": "Report what each input returned",
            "type": "boolean",
            "description": "Write an input_status report to OUTPUT: listings found per input, the count Airbnb announced, requests used, and why any input returned nothing.",
            "default": true
          },
          "proxyConfiguration": {
            "title": "Proxy configuration",
            "type": "object",
            "description": "Keep the default residential proxy settings for reliable results; datacenter proxies are refused by Airbnb."
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}