{
  "openapi": "3.0.1",
  "info": {
    "title": "Airbnb Search Scraper",
    "description": "Search Airbnb rentals by city with filters for dates, guests, price range and room type. Extract 35+ fields per listing: nightly prices, fee breakdowns, amenities, ratings, host info, GPS coordinates, photos and cancellation policies. Supports 35+ Airbnb markets for analysis and monitoring.",
    "version": "1.0",
    "x-build-id": "I6RkbsqeXe2Ux5e83"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/silentflow~airbnb-search-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-silentflow-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/silentflow~airbnb-search-scraper/runs": {
      "post": {
        "operationId": "runs-sync-silentflow-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/silentflow~airbnb-search-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-silentflow-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",
        "properties": {
          "mode": {
            "title": "Mode",
            "enum": [
              "searchUrl",
              "search",
              "urls"
            ],
            "type": "string",
            "description": "**Search by URL** — Paste an Airbnb search URL with all your filters already applied. Easiest way to get started.\n\n**Search by Location** — Discover rentals by location with optional filters.\n\n**Listing URLs** — Paste one or multiple Airbnb listing URLs to extract their data.",
            "default": "searchUrl"
          },
          "searchUrls": {
            "title": "Search URLs",
            "type": "array",
            "description": "Paste one or more Airbnb search URLs. Go to airbnb.com, apply your filters (dates, guests, price, room type, etc.), then copy the URL from your browser and paste it here. All filters from the URL are used automatically.",
            "items": {
              "type": "object",
              "required": [
                "url"
              ],
              "properties": {
                "url": {
                  "type": "string",
                  "title": "URL of a web page",
                  "format": "uri"
                }
              }
            }
          },
          "locations": {
            "title": "Locations",
            "type": "array",
            "description": "Add one location per line. Can be a city, region, or landmark (e.g. Paris, Côte d'Azur, Rome, Tokyo).",
            "items": {
              "type": "string"
            }
          },
          "listingUrls": {
            "title": "Listing URLs",
            "type": "array",
            "description": "Paste one or more Airbnb listing URLs. Works with airbnb.com, airbnb.fr, airbnb.es, etc.",
            "items": {
              "type": "object",
              "required": [
                "url"
              ],
              "properties": {
                "url": {
                  "type": "string",
                  "title": "URL of a web page",
                  "format": "uri"
                }
              }
            }
          },
          "checkIn": {
            "title": "Check-in Date",
            "type": "string",
            "description": "Check-in date in YYYY-MM-DD format (e.g. 2025-07-15). Leave empty to search without dates. Only used in **Search by Location** mode — Search by URL reads dates from the URL."
          },
          "checkOut": {
            "title": "Check-out Date",
            "type": "string",
            "description": "Check-out date in YYYY-MM-DD format (e.g. 2025-07-22). Required if check-in is set."
          },
          "adults": {
            "title": "Adults",
            "minimum": 1,
            "maximum": 16,
            "type": "integer",
            "description": "Number of adults (default: 1).",
            "default": 1
          },
          "children": {
            "title": "Children",
            "minimum": 0,
            "maximum": 5,
            "type": "integer",
            "description": "Number of children (ages 2–12).",
            "default": 0
          },
          "infants": {
            "title": "Infants",
            "minimum": 0,
            "maximum": 5,
            "type": "integer",
            "description": "Number of infants (under 2 years).",
            "default": 0
          },
          "pets": {
            "title": "Pets",
            "minimum": 0,
            "maximum": 5,
            "type": "integer",
            "description": "Number of pets.",
            "default": 0
          },
          "priceMin": {
            "title": "Minimum Price (per night)",
            "minimum": 0,
            "type": "integer",
            "description": "Minimum nightly price in the selected currency."
          },
          "priceMax": {
            "title": "Maximum Price (per night)",
            "minimum": 0,
            "type": "integer",
            "description": "Maximum nightly price in the selected currency."
          },
          "currency": {
            "title": "Currency",
            "enum": [
              "USD",
              "EUR",
              "GBP",
              "CAD",
              "AUD",
              "JPY",
              "CHF",
              "CNY",
              "SEK",
              "NOK",
              "DKK",
              "BRL",
              "MXN",
              "INR",
              "KRW",
              "THB",
              "SGD",
              "HKD",
              "NZD",
              "ZAR",
              "TRY",
              "PLN",
              "CZK",
              "HUF",
              "RON",
              "AED",
              "SAR"
            ],
            "type": "string",
            "description": "Currency for prices.",
            "default": "USD"
          },
          "roomTypes": {
            "title": "Room Types",
            "type": "array",
            "description": "Filter by room type. Leave empty to include all types.",
            "items": {
              "type": "string",
              "enum": [
                "Entire home/apt",
                "Private room",
                "Hotel room",
                "Shared room"
              ],
              "enumTitles": [
                "Entire home / apartment",
                "Private room",
                "Hotel room",
                "Shared room"
              ]
            }
          },
          "minBedrooms": {
            "title": "Minimum Bedrooms",
            "minimum": 0,
            "maximum": 10,
            "type": "integer",
            "description": "Minimum number of bedrooms."
          },
          "minBeds": {
            "title": "Minimum Beds",
            "minimum": 0,
            "maximum": 10,
            "type": "integer",
            "description": "Minimum number of beds."
          },
          "minBathrooms": {
            "title": "Minimum Bathrooms",
            "minimum": 0,
            "maximum": 10,
            "type": "integer",
            "description": "Minimum number of bathrooms."
          },
          "locale": {
            "title": "Market / Language",
            "enum": [
              "en",
              "fr",
              "es",
              "de",
              "it",
              "pt",
              "nl",
              "da",
              "sv",
              "no",
              "fi",
              "pl",
              "cs",
              "el",
              "tr",
              "ru",
              "ja",
              "ko",
              "zh",
              "th",
              "id",
              "ar",
              "he",
              "en-gb",
              "en-au",
              "en-ca",
              "en-ie",
              "en-nz",
              "es-mx",
              "es-ar",
              "pt-br",
              "fr-be",
              "fr-ch",
              "de-at"
            ],
            "type": "string",
            "description": "Selects the Airbnb domain and language for results. Only used in **Search by Location** mode — Search by URL uses the domain from the URL.",
            "default": "en"
          },
          "maxListings": {
            "title": "Max Listings",
            "minimum": 0,
            "type": "integer",
            "description": "Maximum total listings to collect. Set to 0 for no limit.",
            "default": 0
          },
          "maxPages": {
            "title": "Max Pages per Location",
            "minimum": 0,
            "maximum": 200,
            "type": "integer",
            "description": "Each page returns ~18 listings. Set to 0 for no limit.",
            "default": 0
          },
          "includeDetails": {
            "title": "Include Full Details",
            "type": "boolean",
            "description": "When enabled, each listing is enriched with its detail page data: full description, amenities, cancellation policy, room breakdown, and host info. Recommended for complete data.",
            "default": true
          },
          "extractionQuality": {
            "title": "Extraction Quality",
            "enum": [
              "recommended",
              "fast",
              "thorough"
            ],
            "type": "string",
            "description": "Controls the balance between speed and data completeness.\n\n- **Recommended** — Best balance of speed and completeness.\n- **Fast** — 3x faster, search results only (no detail pages).\n- **Thorough** — Slowest, most complete data.",
            "default": "recommended"
          },
          "antiBlocking": {
            "title": "Anti-blocking Level",
            "enum": [
              "low",
              "medium",
              "high"
            ],
            "type": "string",
            "description": "How aggressively to avoid rate limits.\n\n- **Low** — fastest\n- **Medium** — balanced, safe for most runs\n- **High** — slowest, most reliable",
            "default": "medium"
          },
          "proxyType": {
            "title": "Proxy Type",
            "enum": [
              "residential",
              "datacenter",
              "auto"
            ],
            "type": "string",
            "description": "Type of proxy to use. Residential proxies are recommended for best results.",
            "default": "residential"
          }
        }
      },
      "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
                  }
                }
              },
              "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}