{
  "openapi": "3.0.1",
  "info": {
    "title": "Airbnb Scraper: Listings, Prices & Availability",
    "description": "Airbnb scraper for any city and dates: nightly price, stay total, discounts, the fees and taxes Airbnb states, rating, reviews, beds, baths, photos, coordinates and URL. Optional full listing detail adds amenities, house rules, host and guest capacity. $0.40 per 1,000 listings.",
    "version": "0.1",
    "x-build-id": "F35OtKakJe0dxscne"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/barefoot_grade~airbnb-stays-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-barefoot_grade-airbnb-stays-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/barefoot_grade~airbnb-stays-scraper/runs": {
      "post": {
        "operationId": "runs-sync-barefoot_grade-airbnb-stays-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/barefoot_grade~airbnb-stays-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-barefoot_grade-airbnb-stays-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": "Places to search",
            "type": "array",
            "description": "One or more places, e.g. 'San Francisco, CA' or 'Paris, France'. Each place is searched separately; results are combined and de-duplicated. Add a price range below to reach past a place's first page of results.",
            "items": {
              "type": "string",
              "minLength": 2,
              "maxLength": 120
            },
            "default": [
              "San Francisco, CA"
            ]
          },
          "startUrls": {
            "title": "Search URLs (advanced)",
            "type": "array",
            "description": "Advanced: paste one or more Airbnb search URLs to run exactly those searches. Leave empty to search the places above.",
            "items": {
              "type": "string"
            }
          },
          "checkIn": {
            "title": "Check-in",
            "type": "string",
            "description": "Stay check-in date (YYYY-MM-DD). Provide with Check-out for stay totals; leave both empty for a general place search."
          },
          "checkOut": {
            "title": "Check-out",
            "type": "string",
            "description": "Stay check-out date (YYYY-MM-DD). Must be after check-in."
          },
          "flexibleMonths": {
            "title": "Flexible months",
            "type": "array",
            "description": "Search a stay that can happen in any of these months: month names such as 'november' or YYYY-MM such as '2026-11'. A YYYY-MM value keeps only the month and searches its next occurrence; the year is advisory. Up to 12 months. Leave empty unless using flexible dates; do not combine with checkIn/checkOut or monthlyStart.",
            "items": {
              "type": "string",
              "minLength": 3,
              "maxLength": 20
            }
          },
          "flexibleStayLength": {
            "title": "Flexible stay length",
            "enum": [
              "weekend",
              "week",
              "month"
            ],
            "type": "string",
            "description": "How long the flexible stay is: a weekend, a week, or about a month.",
            "default": "month"
          },
          "monthlyStart": {
            "title": "Monthly stay start",
            "type": "string",
            "description": "Start date (YYYY-MM-DD) for a monthly stay. Must be a real calendar date. Searches a stay of monthlyLength months from this date and reports the actual dates and total for each listing. Do not combine with checkIn/checkOut or flexibleMonths."
          },
          "monthlyLength": {
            "title": "Monthly stay length (months)",
            "minimum": 1,
            "maximum": 12,
            "type": "integer",
            "description": "How many months to search from monthlyStart, from 1 to 12 (Airbnb's monthly stays start at 28 nights, so 1 is a one-month stay). The stay ends on the same day of the month that many months later; each result reports the actual stay dates and number of nights.",
            "default": 3
          },
          "entirePlaceOnly": {
            "title": "Entire places only",
            "type": "boolean",
            "description": "Only include entire homes and apartments, excluding private rooms, shared rooms and hotels.",
            "default": false
          },
          "adults": {
            "title": "Adults",
            "minimum": 1,
            "maximum": 16,
            "type": "integer",
            "description": "Number of adult guests (1-16).",
            "default": 2
          },
          "children": {
            "title": "Children",
            "minimum": 0,
            "maximum": 16,
            "type": "integer",
            "description": "Number of children (0-16).",
            "default": 0
          },
          "infants": {
            "title": "Infants",
            "minimum": 0,
            "maximum": 16,
            "type": "integer",
            "description": "Number of infants (0-16).",
            "default": 0
          },
          "pets": {
            "title": "Pets",
            "minimum": 0,
            "maximum": 16,
            "type": "integer",
            "description": "Number of pets (0-16).",
            "default": 0
          },
          "priceMin": {
            "title": "Minimum nightly price",
            "minimum": 0,
            "type": "integer",
            "description": "Lowest price to include. In flexible-date and monthly searches Airbnb prices the whole window, so this value is applied to the price Airbnb displays there: the monthly price for month-long and longer windows. For a dated stay of 28+ nights the nightly value is converted to Airbnb's monthly price basis. The Actor automatically expands dense searches across this price range.",
            "default": 0
          },
          "priceMax": {
            "title": "Maximum price",
            "minimum": 1,
            "type": "integer",
            "description": "Optional. Highest price to include, in the run currency. Leave empty to include listings at any price (no cap). For dated searches this is a nightly price; for a dated stay of 28+ nights it is converted to Airbnb's monthly price basis. Flexible-date and monthly searches are priced as a whole window, so there it caps the price Airbnb displays for the window (the monthly price for month-long and longer windows)."
          },
          "minBedrooms": {
            "title": "Minimum bedrooms",
            "minimum": 0,
            "maximum": 50,
            "type": "integer",
            "description": "Only listings with at least this many bedrooms (0 = no filter).",
            "default": 0
          },
          "minBeds": {
            "title": "Minimum beds",
            "minimum": 0,
            "maximum": 50,
            "type": "integer",
            "description": "Only listings with at least this many beds (0 = no filter).",
            "default": 0
          },
          "minBathrooms": {
            "title": "Minimum bathrooms",
            "minimum": 0,
            "maximum": 50,
            "type": "integer",
            "description": "Only listings with at least this many bathrooms (0 = no filter).",
            "default": 0
          },
          "mode": {
            "title": "Detail level",
            "enum": [
              "search",
              "full"
            ],
            "type": "string",
            "description": "Search results are fast and cover the core fields. Full listing detail also visits each listing page for amenities, house rules, host information and guest capacity.",
            "default": "search"
          },
          "maxResults": {
            "title": "Maximum listings",
            "minimum": 1,
            "maximum": 5000,
            "type": "integer",
            "description": "Stop after this many listings across all places.",
            "default": 60
          },
          "maxDetails": {
            "title": "Maximum detailed listings",
            "minimum": 0,
            "maximum": 500,
            "type": "integer",
            "description": "In full-detail mode, the number of listings to open for amenities, house rules and host. The rest keep their search-result fields.",
            "default": 20
          },
          "maxPagesPerQuery": {
            "title": "Maximum pages per location",
            "minimum": 1,
            "maximum": 100,
            "type": "integer",
            "description": "How many result pages to read per location/price bucket before moving on.",
            "default": 15
          },
          "currency": {
            "title": "Currency",
            "type": "string",
            "description": "Three-letter currency code for the returned prices, e.g. USD, EUR, GBP.",
            "default": "USD"
          },
          "locale": {
            "title": "Language",
            "type": "string",
            "description": "Supported search language: English (en). Legacy non-English locale inputs fall back to en with a warning; currency is unchanged.",
            "default": "en"
          },
          "strictLocation": {
            "title": "Keep results inside the searched place",
            "type": "boolean",
            "description": "Drop listings outside the resolved place boundary (recommended). Turn off to also keep nearby recommendations.",
            "default": true
          },
          "requestDelaySecs": {
            "title": "Delay between requests (seconds)",
            "minimum": 0,
            "maximum": 10,
            "type": "number",
            "description": "Polite pause between page requests.",
            "default": 0.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
                  },
                  "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}