{
  "openapi": "3.0.1",
  "info": {
    "title": "Airbnb Availability Calendar Scraper",
    "description": "Scrape an Airbnb listing's calendar for 1-12 months: day-by-day availability, check-in/check-out rules, minimum and maximum nights, and Airbnb's own quoted price (nightly, taxes, total) for sampled or all dates. Occupancy and pricing research for STR markets.",
    "version": "0.0",
    "x-build-id": "3RDbLbADwZz9Wc60F"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/scrapercompany~airbnb-availability-calendar-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-scrapercompany-airbnb-availability-calendar-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/scrapercompany~airbnb-availability-calendar-scraper/runs": {
      "post": {
        "operationId": "runs-sync-scrapercompany-airbnb-availability-calendar-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/scrapercompany~airbnb-availability-calendar-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-scrapercompany-airbnb-availability-calendar-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": {
          "listingIds": {
            "title": "Airbnb listing ids",
            "type": "array",
            "description": "Numeric Airbnb listing ids, one request each: the number in <code>https://www.airbnb.com/rooms/34397368</code>, or <code>id</code> from the Airbnb Search Scraper.",
            "default": [
              "34397368"
            ],
            "items": {
              "type": "string"
            }
          },
          "months": {
            "title": "Months",
            "minimum": 1,
            "maximum": 12,
            "type": "integer",
            "description": "Calendar months to return (1-12), starting with the start month.",
            "default": 2
          },
          "price_nights": {
            "title": "Price nights",
            "enum": [
              "none",
              "sample",
              "all"
            ],
            "type": "string",
            "description": "<b>None</b>: availability only. <b>Sample</b>: price up to <i>Max priced nights</i> check-in dates spread over the calendar. <b>All</b>: price every valid check-in date in order, up to <i>Max priced nights</i>. Each priced night is one <code>priced-night</code> event.",
            "default": "sample"
          },
          "max_price_quotes": {
            "title": "Max priced nights",
            "minimum": 1,
            "maximum": 92,
            "type": "integer",
            "description": "Upper bound on priced nights per listing (1-92). Caps the <code>priced-night</code> charges per listing.",
            "default": 8
          },
          "adults": {
            "title": "Adults",
            "minimum": 1,
            "maximum": 16,
            "type": "integer",
            "description": "Adults aged 13+ (1-16); quotes are priced for this party.",
            "default": 1
          },
          "children": {
            "title": "Children",
            "minimum": 0,
            "maximum": 15,
            "type": "integer",
            "description": "Children aged 2-12.",
            "default": 0
          },
          "infants": {
            "title": "Infants",
            "minimum": 0,
            "maximum": 5,
            "type": "integer",
            "description": "Infants under 2.",
            "default": 0
          },
          "pets": {
            "title": "Pets",
            "minimum": 0,
            "maximum": 5,
            "type": "integer",
            "description": "Pets.",
            "default": 0
          },
          "stay_nights": {
            "title": "Stay length for quotes",
            "minimum": 1,
            "maximum": 28,
            "type": "integer",
            "description": "Nights each priced date is quoted for (1-28). Leave empty to use each date's own minimum stay. Airbnb folds cleaning and service fees into the nightly rate, so longer stays cost less per night."
          },
          "start_month": {
            "title": "Start month",
            "minimum": 1,
            "maximum": 12,
            "type": "integer",
            "description": "First month, 1-12. Leave empty for the current month."
          },
          "start_year": {
            "title": "Start year",
            "minimum": 2024,
            "maximum": 2100,
            "type": "integer",
            "description": "Year of the start month. Leave empty for the current year."
          },
          "airbnb_domain": {
            "title": "Airbnb site",
            "enum": [
              "airbnb.ae",
              "airbnb.am",
              "airbnb.at",
              "airbnb.az",
              "airbnb.ba",
              "airbnb.be",
              "airbnb.ca",
              "airbnb.cat",
              "airbnb.ch",
              "airbnb.cl",
              "airbnb.cn",
              "airbnb.co.cr",
              "airbnb.co.id",
              "airbnb.co.in",
              "airbnb.co.kr",
              "airbnb.co.nz",
              "airbnb.co.uk",
              "airbnb.co.ve",
              "airbnb.com",
              "airbnb.com.ar",
              "airbnb.com.au",
              "airbnb.com.bo",
              "airbnb.com.br",
              "airbnb.com.bz",
              "airbnb.com.co",
              "airbnb.com.ec",
              "airbnb.com.ee",
              "airbnb.com.gt",
              "airbnb.com.hk",
              "airbnb.com.hn",
              "airbnb.com.my",
              "airbnb.com.ni",
              "airbnb.com.pa",
              "airbnb.com.pe",
              "airbnb.com.ph",
              "airbnb.com.py",
              "airbnb.com.ro",
              "airbnb.com.sg",
              "airbnb.com.sv",
              "airbnb.com.tr",
              "airbnb.com.tw",
              "airbnb.com.ua",
              "airbnb.com.vn",
              "airbnb.cz",
              "airbnb.de",
              "airbnb.dk",
              "airbnb.es",
              "airbnb.fi",
              "airbnb.fr",
              "airbnb.gr",
              "airbnb.gy",
              "airbnb.hu",
              "airbnb.ie",
              "airbnb.is",
              "airbnb.it",
              "airbnb.jp",
              "airbnb.lt",
              "airbnb.lu",
              "airbnb.lv",
              "airbnb.me",
              "airbnb.mx",
              "airbnb.nl",
              "airbnb.no",
              "airbnb.pl",
              "airbnb.pt",
              "airbnb.rs",
              "airbnb.ru",
              "airbnb.se",
              "airbnb.si",
              "ar.airbnb.com",
              "bg.airbnb.com",
              "de.airbnb.lu",
              "es.airbnb.com",
              "fr.airbnb.be",
              "fr.airbnb.ca",
              "fr.airbnb.ch",
              "ga.airbnb.ie",
              "he.airbnb.com",
              "hi.airbnb.co.in",
              "hr.airbnb.com",
              "it.airbnb.ch",
              "ka.airbnb.com",
              "kn.airbnb.co.in",
              "mk.airbnb.com",
              "mr.airbnb.co.in",
              "mt.airbnb.com.mt",
              "sk.airbnb.com",
              "sq.airbnb.com",
              "sw.airbnb.com",
              "th.airbnb.com",
              "xh.airbnb.co.za",
              "zh-t.airbnb.com",
              "zh.airbnb.com",
              "zu.airbnb.co.za"
            ],
            "type": "string",
            "description": "Country site, e.g. <code>airbnb.com</code>, <code>airbnb.ca</code>. It sets the default currency and egress market, not the price.",
            "default": "airbnb.com"
          },
          "currency": {
            "title": "Currency",
            "type": "string",
            "description": "Currency for quoted prices (ISO 4217). Leave empty for the site's default; every priced day reports the currency actually used."
          },
          "include_listing": {
            "title": "Include listing details",
            "type": "boolean",
            "description": "Add title, property type, rating, capacity and coordinates (no extra charge).",
            "default": false
          },
          "customRequests": {
            "title": "Custom requests (advanced)",
            "type": "array",
            "description": "Optional list of JSON objects, one request each, using the API field names shown above. Each object is merged over the options above, so you only need to give what differs. Example: <code>{\"listing_id\":\"34397368\",\"months\":6,\"price_nights\":\"all\",\"max_price_quotes\":30,\"stay_nights\":2}</code>"
          },
          "includeErrors": {
            "title": "Include failed requests in the dataset",
            "type": "boolean",
            "description": "When on, a request that fails (for example an unknown property id) is saved as a dataset item with an <code>error</code> message so you can see what went wrong. Failed requests are never charged.",
            "default": true
          },
          "maxConcurrency": {
            "title": "Parallel requests",
            "minimum": 1,
            "maximum": 10,
            "type": "integer",
            "description": "How many API requests run at the same time.",
            "default": 3
          },
          "maxRetries": {
            "title": "Retries per request",
            "minimum": 0,
            "maximum": 5,
            "type": "integer",
            "description": "Retries for rate limits (HTTP 429), temporary server errors (5xx) and network errors, with exponential backoff. Validation errors are never retried.",
            "default": 2
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}