{
  "openapi": "3.0.1",
  "info": {
    "title": "Airbnb Scraper & API: Every Listing, Rates and Occupancy",
    "description": "Every listing in a city, nightly rates and occupancy for hosts and investors. No login required. Pay per listing delivered.",
    "version": "0.1",
    "x-build-id": "evs487471AAniOgrq"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/brainfoods_studio~airbnb-market-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-brainfoods_studio-airbnb-market-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/brainfoods_studio~airbnb-market-scraper/runs": {
      "post": {
        "operationId": "runs-sync-brainfoods_studio-airbnb-market-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/brainfoods_studio~airbnb-market-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-brainfoods_studio-airbnb-market-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",
            "maxItems": 10,
            "type": "array",
            "description": "Places to cover completely, up to 10, such as \"Austin, TX\" or \"Lisbon, Portugal\". Google Maps decides which place you mean. Cities and neighbourhoods are searched thoroughly to collect active listings. Duplicates are removed.",
            "items": {
              "type": "string"
            }
          },
          "customArea": {
            "title": "Custom area",
            "type": "object",
            "description": "Optional. Your own area instead of, or as well as, the locations. Give one of: {\"geojson\": a Polygon, MultiPolygon or Feature}, {\"center\": {\"lat\": 30.26, \"lng\": -97.74}, \"radiusKm\": 5} (up to 100 km), or {\"bbox\": {\"south\": 30.2, \"west\": -97.8, \"north\": 30.3, \"east\": -97.7}}. It appears in the results as \"custom area\"."
          },
          "checkin": {
            "title": "Check-in date",
            "type": "string",
            "description": "Check-in date (YYYY-MM-DD). Use together with check-out to search specific dates and get exact rates and available listings. Leave empty for occupancy or full-market inventory."
          },
          "checkout": {
            "title": "Check-out date",
            "type": "string",
            "description": "Check-out date (YYYY-MM-DD). Must be after check-in and at most 30 nights later."
          },
          "adults": {
            "title": "Adults",
            "minimum": 1,
            "maximum": 16,
            "type": "integer",
            "description": "Number of adult guests (1 to 16).",
            "default": 1
          },
          "currency": {
            "title": "Currency",
            "type": "string",
            "description": "3-letter currency code for prices (e.g. USD, EUR, GBP).",
            "default": "USD"
          },
          "occupancyWindows": {
            "title": "Occupancy windows",
            "minimum": 0,
            "maximum": 12,
            "type": "integer",
            "description": "Number of future windows to measure booked-or-blocked share (0 to 12). Requires check-in and check-out to be empty because occupancy is measured against total listings.",
            "default": 0
          },
          "windowNights": {
            "title": "Window nights",
            "minimum": 1,
            "maximum": 7,
            "type": "integer",
            "description": "Length of each occupancy window in nights (1 to 7).",
            "default": 2
          },
          "windowStart": {
            "title": "Window start date",
            "type": "string",
            "description": "Optional start date for the first occupancy window (YYYY-MM-DD). Defaults to the upcoming Friday. Each subsequent window steps forward by 7 days."
          },
          "includeAreaReport": {
            "title": "Include area report",
            "type": "boolean",
            "description": "Generate a market summary report for each area with rate percentiles, rating spreads, guest-favourite shares, and top zones.",
            "default": false
          },
          "marketMode": {
            "title": "Market numbers only (no listing rows)",
            "type": "boolean",
            "description": "Deliver only the occupancy and area report rows, not one row per listing. Every listing in the area is still searched and counted; you pay a small fee per listing searched instead of the listing price. For tracking a market over time.",
            "default": false
          },
          "includeDetails": {
            "title": "Include listing details",
            "type": "boolean",
            "description": "Fetch individual listing pages for superhost status, room type, guest capacity, amenities, and cancellation policy.",
            "default": false
          },
          "maxListings": {
            "title": "Max listings",
            "minimum": 1,
            "maximum": 100000,
            "type": "integer",
            "description": "Maximum number of listings to deliver across all areas.",
            "default": 50000
          },
          "maxConcurrency": {
            "title": "Max concurrency",
            "minimum": 1,
            "maximum": 16,
            "type": "integer",
            "description": "Maximum number of simultaneous requests (1 to 16).",
            "default": 8
          },
          "proxyConfiguration": {
            "title": "Proxy configuration",
            "type": "object",
            "description": "Proxy settings. Apify datacenter proxies are used by default.",
            "default": {
              "useApifyProxy": true
            }
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}