{
  "openapi": "3.0.1",
  "info": {
    "title": "Airbnb and Vrbo Market Data API - Occupancy, ADR, RevPAR",
    "description": "Short-term rental data API for Airbnb and Vrbo markets: weekly and monthly occupancy, ADR, RevPAR and revenue KPIs, listings with 12-month performance and 6-month forecasts, listing calendars and nightly rates, and arrival benchmarking. Bring your own key.",
    "version": "0.1",
    "x-build-id": "F2UNokhhuGctEnxEa"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/nabeelbaghoor~airbnb-vrbo-market-data-api/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-nabeelbaghoor-airbnb-vrbo-market-data-api",
        "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/nabeelbaghoor~airbnb-vrbo-market-data-api/runs": {
      "post": {
        "operationId": "runs-sync-nabeelbaghoor-airbnb-vrbo-market-data-api",
        "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/nabeelbaghoor~airbnb-vrbo-market-data-api/run-sync": {
      "post": {
        "operationId": "run-sync-nabeelbaghoor-airbnb-vrbo-market-data-api",
        "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": {
          "service": {
            "title": "What to read",
            "enum": [
              "marketKpisMonthly",
              "marketKpisWeekly",
              "marketListings",
              "listing",
              "listingKpisMonthly",
              "listingKpisWeekly",
              "listingAvailability",
              "benchmarkingArrival",
              "markets"
            ],
            "type": "string",
            "description": "One service per run. Market services read one or more market UUIDs; listing services read one or more listing ids. Run Available markets first to see which markets your account covers and their UUIDs.",
            "default": "marketKpisMonthly"
          },
          "marketIds": {
            "title": "Market UUIDs",
            "type": "array",
            "description": "One market UUID per line, for the market KPI, market listings and benchmarking services. The prefilled UUID is the provider's own documentation example (30A, Florida). Benchmarking sends up to 10 markets per request.",
            "items": {
              "type": "string"
            }
          },
          "listingIds": {
            "title": "Listing ids or URLs",
            "type": "array",
            "description": "One listing per line, for the listing services: the provider's id such as airbnb_17024610 or vrbo_3700771, or an Airbnb or Vrbo listing URL, which is converted to that id.",
            "items": {
              "type": "string"
            }
          },
          "startDate": {
            "title": "Start date",
            "type": "string",
            "description": "First day of the range, inclusive (YYYY-MM-DD). For benchmarking this is the first arrival date. Left blank, the range is the twelve months before the end date. The provider recommends at most 104 weeks for weekly KPIs, 36 months for monthly KPIs, 365 days for availability and 1 year for benchmarking."
          },
          "endDate": {
            "title": "End date",
            "type": "string",
            "description": "Last day of the range, inclusive (YYYY-MM-DD). Must be after the start date. Left blank, it is today."
          },
          "currency": {
            "title": "Currency",
            "type": "string",
            "description": "ISO 4217 code for every money value, for example USD, EUR, GBP or CAD. The provider converts at current exchange rates. Defaults to USD.",
            "default": "USD"
          },
          "ota": {
            "title": "Platform",
            "enum": [
              "both",
              "airbnb",
              "vrbo"
            ],
            "type": "string",
            "description": "Restrict market KPIs and market listings to one platform. Leave on both for figures aggregated across Airbnb and Vrbo.",
            "default": "both"
          },
          "sortBy": {
            "title": "Sort listings by",
            "enum": [
              "last_12mo_revenue",
              "listing_id",
              "review_count"
            ],
            "type": "string",
            "description": "Order of the market listings. Trailing 12 month revenue is the provider's default and puts the top earners first; listing id gives stable paging.",
            "default": "last_12mo_revenue"
          },
          "propertyTypes": {
            "title": "Property types",
            "type": "array",
            "description": "Market listings only. One per line, lower case as the provider returns them, for example house, apartment, hotel or unique.",
            "items": {
              "type": "string"
            }
          },
          "bedroomsMin": {
            "title": "Bedrooms - minimum",
            "minimum": 0,
            "type": "integer",
            "description": "Market listings only. Smallest number of bedrooms."
          },
          "bedroomsMax": {
            "title": "Bedrooms - maximum",
            "minimum": 0,
            "type": "integer",
            "description": "Market listings only. Largest number of bedrooms."
          },
          "bedsMin": {
            "title": "Beds - minimum",
            "minimum": 0,
            "type": "integer",
            "description": "Market listings only. Smallest number of beds."
          },
          "bedsMax": {
            "title": "Beds - maximum",
            "minimum": 0,
            "type": "integer",
            "description": "Market listings only. Largest number of beds."
          },
          "bathroomsMin": {
            "title": "Bathrooms - minimum",
            "minimum": 0,
            "type": "number",
            "description": "Market listings only. Smallest number of bathrooms (half baths allowed, for example 2.5)."
          },
          "bathroomsMax": {
            "title": "Bathrooms - maximum",
            "minimum": 0,
            "type": "number",
            "description": "Market listings only. Largest number of bathrooms (half baths allowed, for example 2.5)."
          },
          "reviewCountMin": {
            "title": "Review count - minimum",
            "minimum": 0,
            "type": "integer",
            "description": "Market listings only. Smallest number of reviews."
          },
          "reviewCountMax": {
            "title": "Review count - maximum",
            "minimum": 0,
            "type": "integer",
            "description": "Market listings only. Largest number of reviews."
          },
          "amenities": {
            "title": "Must have amenities",
            "type": "array",
            "description": "Market listings only. Keep listings the provider flags with every selected amenity.",
            "items": {
              "type": "string",
              "enum": [
                "has_pool",
                "has_hot_tub",
                "has_water",
                "has_mountain",
                "has_ski",
                "has_golf",
                "has_parking"
              ],
              "enumTitles": [
                "Pool",
                "Hot tub",
                "Water view or access",
                "Mountain view or access",
                "Ski access",
                "Golf",
                "Parking"
              ]
            }
          },
          "professionallyManaged": {
            "title": "Professionally managed",
            "enum": [
              "either",
              "true",
              "false"
            ],
            "type": "string",
            "description": "Market listings only. Keep only listings run by a professional management company, or only those that are not.",
            "default": "either"
          },
          "propertyManagerDomain": {
            "title": "Property manager domain",
            "type": "string",
            "description": "Market listings only. Keep listings run by the manager with this web domain."
          },
          "superhostOnly": {
            "title": "Airbnb Superhosts only",
            "type": "boolean",
            "description": "Market listings only. Keep listings whose host is an Airbnb Superhost.",
            "default": false
          },
          "last12moPerformanceTier": {
            "title": "Last 12 months performance tier",
            "type": "array",
            "description": "Market listings only. Keep listings the provider ranks in any selected tier, relative to their market and property type cohort.",
            "items": {
              "type": "string",
              "enum": [
                "1_market_leader",
                "2_above_market",
                "3_market_average",
                "4_below_market",
                "5_lagging"
              ],
              "enumTitles": [
                "Market leader",
                "Above market",
                "Market average",
                "Below market",
                "Lagging"
              ]
            }
          },
          "last12moAdrTier": {
            "title": "Last 12 months ADR tier",
            "type": "array",
            "description": "Market listings only. Keep listings the provider ranks in any selected tier, relative to their market and property type cohort.",
            "items": {
              "type": "string",
              "enum": [
                "1_premium",
                "2_upscale",
                "3_midscale",
                "4_budget",
                "5_economy"
              ],
              "enumTitles": [
                "Premium",
                "Upscale",
                "Midscale",
                "Budget",
                "Economy"
              ]
            }
          },
          "next6moPerformanceTier": {
            "title": "Next 6 months forecast performance tier",
            "type": "array",
            "description": "Market listings only. Keep listings the provider ranks in any selected tier, relative to their market and property type cohort.",
            "items": {
              "type": "string",
              "enum": [
                "1_market_leader",
                "2_above_market",
                "3_market_average",
                "4_below_market",
                "5_lagging"
              ],
              "enumTitles": [
                "Market leader",
                "Above market",
                "Market average",
                "Below market",
                "Lagging"
              ]
            }
          },
          "next6moAdrTier": {
            "title": "Next 6 months forecast ADR tier",
            "type": "array",
            "description": "Market listings only. Keep listings the provider ranks in any selected tier, relative to their market and property type cohort.",
            "items": {
              "type": "string",
              "enum": [
                "1_premium",
                "2_upscale",
                "3_midscale",
                "4_budget",
                "5_economy"
              ],
              "enumTitles": [
                "Premium",
                "Upscale",
                "Midscale",
                "Budget",
                "Economy"
              ]
            }
          },
          "excludeSections": {
            "title": "Leave out sections",
            "type": "array",
            "description": "Market listings only. Drop these sections from each listing to shrink the answer, for example performance for a plain supply count.",
            "items": {
              "type": "string",
              "enum": [
                "amenity_list",
                "host",
                "reviews",
                "performance"
              ],
              "enumTitles": [
                "Full amenity list",
                "Host",
                "Reviews",
                "Performance"
              ]
            }
          },
          "includeRawAmenities": {
            "title": "Include full amenity list",
            "type": "boolean",
            "description": "One listing only. Add the raw amenities list the provider leaves out by default.",
            "default": false
          },
          "timeScale": {
            "title": "Benchmarking time scale",
            "enum": [
              "week",
              "day",
              "month",
              "quarter",
              "year",
              "none"
            ],
            "type": "string",
            "description": "Benchmarking only. Size of each time bucket. The provider defaults to week.",
            "default": "week"
          },
          "startDayOfWeek": {
            "title": "Benchmarking week starts on",
            "enum": [
              "saturday",
              "sunday",
              "monday",
              "tuesday",
              "wednesday",
              "thursday",
              "friday"
            ],
            "type": "string",
            "description": "Benchmarking only. First day of each weekly bucket. The provider defaults to Saturday, the usual vacation rental changeover day.",
            "default": "saturday"
          },
          "groupBy": {
            "title": "Benchmarking group by",
            "enum": [
              "none",
              "bedrooms",
              "sleeps",
              "property_type",
              "booking_source",
              "length_of_stay",
              "booking_window"
            ],
            "type": "string",
            "description": "Benchmarking only. Split each bucket by one dimension.",
            "default": "none"
          },
          "aggregateAreas": {
            "title": "Benchmarking: combine markets",
            "type": "boolean",
            "description": "Benchmarking only. Combine all markets in a request into one result. Turn off for one set of rows per market.",
            "default": true
          },
          "asOfDate": {
            "title": "Benchmarking as-of date",
            "type": "string",
            "description": "Benchmarking only. Point-in-time booking snapshot (YYYY-MM-DD): what was on the books on that date. Leave blank for the latest data."
          },
          "includeCanceled": {
            "title": "Benchmarking: include later cancellations",
            "type": "boolean",
            "description": "Benchmarking only, with an as-of date. Include reservations canceled after the as-of date.",
            "default": false
          },
          "benchmarkFilters": {
            "title": "Benchmarking property filters",
            "type": "object",
            "description": "Benchmarking only. The provider's filters object, passed exactly as written. Documented keys are bedrooms, sleeps, property_types, amenities, locations and stay_lengths, each as {\"type\": \"include\" or \"exclude\", \"values\": [...]}, for example {\"bedrooms\": {\"type\": \"include\", \"values\": [3, 4]}}."
          },
          "maxResults": {
            "title": "Maximum results",
            "minimum": 1,
            "maximum": 100000,
            "type": "integer",
            "description": "Stop after this many rows. Market listings can run to thousands per market and a year of availability is 365 rows per listing, so this is what bounds the cost of a run.",
            "default": 500
          },
          "requestsPerMinute": {
            "title": "Requests per minute",
            "minimum": 1,
            "maximum": 300,
            "type": "integer",
            "description": "Pacing ceiling for calls to the provider. Lower it if your plan rate limits you.",
            "default": 30
          },
          "apiKey": {
            "title": "API key",
            "type": "string",
            "description": "Your own API key for the short-term rental market data provider, sent as the x-api-key header. This actor is bring-your-own-key and never ships a key of its own. Leave blank to use the DATA_API_KEY environment secret instead."
          },
          "baseUrl": {
            "title": "API base URL",
            "type": "string",
            "description": "Override the host the actor calls. Only useful for testing against a different environment."
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}