{
  "openapi": "3.0.1",
  "info": {
    "title": "Airbnb Scraper — Search & Public Listing Details",
    "description": "Search Airbnb by destination or direct room URL. Get prices from search results plus ratings, hosts, amenities, rules and images. $1/1K basic or $1.50/1K detailed listings. No login or cookies; pay only for delivered unique listings.",
    "version": "0.1",
    "x-build-id": "zdpQipb9eSfV43cp4"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/meka.im~airbnb-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-meka.im-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/meka.im~airbnb-scraper/runs": {
      "post": {
        "operationId": "runs-sync-meka.im-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/meka.im~airbnb-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-meka.im-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": {
          "locationQueries": {
            "title": "Destinations",
            "type": "array",
            "description": "One destination per line, for example \"Lisbon, Portugal\". Separators are normalized for Airbnb. \"New York, United States\" means New York City; use \"New York State, United States\" for the state. Airbnb may recommend nearby towns even for a city search.",
            "items": {
              "type": "string"
            }
          },
          "startUrls": {
            "title": "Room URLs or IDs",
            "type": "array",
            "description": "Airbnb room links (airbnb.com/rooms/…) or plain numeric room IDs. Order is preserved. Invalid entries are skipped and never charged.",
            "items": {
              "type": "string"
            }
          },
          "includeDetails": {
            "title": "Fetch public listing details for search results",
            "type": "boolean",
            "description": "Off: search results only, charged as listing-delivered. On: one extra public request per listing for amenities, house rules, sub-ratings, host and images, charged as detailed-listing-delivered. Direct room URLs always fetch details.",
            "default": false
          },
          "maxResults": {
            "title": "Listings per destination",
            "minimum": 1,
            "maximum": 450,
            "type": "integer",
            "description": "Airbnb caps a single search at 15 pages. Pages overlap, so a destination yields roughly 220 unique listings at most.",
            "default": 100
          },
          "checkIn": {
            "title": "Check-in",
            "type": "string",
            "description": "YYYY-MM-DD. Give both dates or neither. Without dates Airbnb picks a stay window per listing, so prices are not comparable across rows."
          },
          "checkOut": {
            "title": "Check-out",
            "type": "string",
            "description": "YYYY-MM-DD."
          },
          "adults": {
            "title": "Adults",
            "minimum": 1,
            "maximum": 16,
            "type": "integer",
            "description": "Number of adults for the stay. Affects which listings Airbnb returns and how they are priced.",
            "default": 1
          },
          "children": {
            "title": "Children",
            "minimum": 0,
            "maximum": 15,
            "type": "integer",
            "description": "Number of children aged 2 to 17.",
            "default": 0
          },
          "infants": {
            "title": "Infants",
            "minimum": 0,
            "maximum": 5,
            "type": "integer",
            "description": "Number of infants under 2. Airbnb does not count them toward a listing capacity.",
            "default": 0
          },
          "pets": {
            "title": "Pets",
            "minimum": 0,
            "maximum": 5,
            "type": "integer",
            "description": "Number of pets. Listings that do not allow pets are filtered out by Airbnb.",
            "default": 0
          },
          "currency": {
            "title": "Currency",
            "type": "string",
            "description": "Prices come back in this currency, as Airbnb formats them.",
            "default": "USD"
          },
          "locale": {
            "title": "Language",
            "type": "string",
            "description": "Language of names, descriptions and amenity labels.",
            "default": "en-US"
          },
          "priceMin": {
            "title": "Minimum price per night",
            "minimum": 0,
            "maximum": 100000,
            "type": "integer",
            "description": "Airbnb filters on the nightly price. The price field on each row is the stay total, so a row's own number will not fall inside this range."
          },
          "priceMax": {
            "title": "Maximum price per night",
            "minimum": 0,
            "maximum": 100000,
            "type": "integer",
            "description": "Airbnb filters on the nightly price. The price field on each row is the stay total, so a row own number will not fall inside this range."
          },
          "includePriceQuote": {
            "title": "Include public price quote",
            "type": "boolean",
            "description": "Requires explicit checkIn and checkOut. Adds priceQuote (quote contractVersion 1) with the anonymous checkout total, all discount lines, taxes or combined taxes and fees, and explicit payment schedule. Automatically includes details; one additional public request per delivered listing. Existing price remains the search display price. Missing quotes are marked unavailable.",
            "default": false
          },
          "enrichUserProfiles": {
            "title": "Add host profile details",
            "type": "boolean",
            "description": "One extra public request per host for about text, hosting years, host rating and review count, listing count, verification and profile highlights such as languages. Charged at the same rate; a failed enrichment never fails the listing.",
            "default": false
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}