{
  "openapi": "3.0.1",
  "info": {
    "title": "Booking.com Market Supply & Facet Census",
    "description": "Profile the accommodation supply of any Booking.com market in one pass: star ratings, review-score bands, property types, neighbourhoods, brands, facilities, meal plans and cancellation policies, each with the number of properties behind it and its share of the market.",
    "version": "0.0",
    "x-build-id": "TbHevCmZrNhV5vwRe"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/apt_marble~booking-market-supply-census/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-apt_marble-booking-market-supply-census",
        "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/apt_marble~booking-market-supply-census/runs": {
      "post": {
        "operationId": "runs-sync-apt_marble-booking-market-supply-census",
        "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/apt_marble~booking-market-supply-census/run-sync": {
      "post": {
        "operationId": "run-sync-apt_marble-booking-market-supply-census",
        "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",
        "required": [
          "destinations"
        ],
        "properties": {
          "destinations": {
            "title": "Destinations",
            "maxItems": 200,
            "type": "array",
            "description": "The markets to profile. Type place names (Austin, Lisbon, Bali) or coordinate pairs (30.2672,-97.7431). One row set is produced per entry.",
            "default": [
              "Austin"
            ],
            "items": {
              "type": "string"
            }
          },
          "destinationType": {
            "title": "Destination type",
            "enum": [
              "CITY",
              "REGION",
              "COUNTRY",
              "DISTRICT",
              "AIRPORT",
              "LANDMARK",
              "LATLONG"
            ],
            "type": "string",
            "description": "How to read your place names. City covers most needs; use Region for a state or province, District for a neighbourhood, and Coordinates when you are passing lat,lon pairs. Coordinate pairs are always read as coordinates whatever you choose here.",
            "default": "CITY"
          },
          "checkIn": {
            "title": "Check-in date",
            "type": "string",
            "description": "First night of the stay the market is profiled for, as YYYY-MM-DD. Leave empty to use a date 45 days from the day the run starts, which keeps scheduled runs from drifting into the past.",
            "default": ""
          },
          "checkOut": {
            "title": "Check-out date",
            "type": "string",
            "description": "Last day of the stay, as YYYY-MM-DD. Leave empty for a two-night stay starting on the check-in date.",
            "default": ""
          },
          "adults": {
            "title": "Adults",
            "minimum": 1,
            "maximum": 30,
            "type": "integer",
            "description": "Adults the stay is priced and counted for. Bigger parties reduce how many properties qualify.",
            "default": 2
          },
          "rooms": {
            "title": "Rooms",
            "minimum": 1,
            "maximum": 30,
            "type": "integer",
            "description": "Rooms the stay is counted for.",
            "default": 1
          },
          "children": {
            "title": "Children",
            "minimum": 0,
            "maximum": 10,
            "type": "integer",
            "description": "Children in the party. Booking.com decides availability by a child's age, so fill in Children's ages as well.",
            "default": 0
          },
          "childrenAges": {
            "title": "Children's ages",
            "maxItems": 10,
            "type": "array",
            "description": "One age per child, 0 to 17. Required for accurate counts whenever Children is above zero.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "includeFacetGroups": {
            "title": "Only these option groups",
            "maxItems": 24,
            "type": "array",
            "description": "Leave empty to report every group Booking.com publishes for the market. To narrow the dataset, list group names such as class, review_score, ht_id, di, chaincode, hotelfacility, roomfacility, mealplan, fc, distance, popular_activities or accessible_facilities.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "expandTail": {
            "title": "Expand truncated option lists",
            "type": "boolean",
            "description": "Booking.com trims long lists (brands, neighbourhoods, property types) to the leading entries. Switch this on to profile each market again inside the segments below, which brings more of the tail into view. It multiplies the work per market and can never be proven complete.",
            "default": false
          },
          "tailPreFilters": {
            "title": "Segments used to expand the tail",
            "maxItems": 12,
            "type": "array",
            "description": "Segments each market is re-profiled inside when tail expansion is on, written as group=value (for example class=5 for five-star properties or ht_id=201 for apartments). Rows found this way are labelled with the segment that surfaced them and their counts are counts within that segment.",
            "default": [
              "class=3",
              "class=4",
              "class=5"
            ],
            "items": {
              "type": "string"
            }
          },
          "emitDestinationSummary": {
            "title": "Add a rollup row per market",
            "type": "boolean",
            "description": "Adds one summary row per market with the total number of properties, the star mix, review-score bands, property-type and neighbourhood mixes, the free-cancellation share and the brands present. It comes out of the same lookup, so it adds no extra work.",
            "default": true
          },
          "maxDestinations": {
            "title": "Maximum markets per run",
            "minimum": 1,
            "maximum": 500,
            "type": "integer",
            "description": "Safety cap on how many markets one run will profile. Entries beyond it are reported in the log and skipped.",
            "default": 100
          },
          "maxRequests": {
            "title": "Maximum lookups per run",
            "minimum": 1,
            "maximum": 6000,
            "type": "integer",
            "description": "Hard budget for the run. One market needs one lookup, plus one more per segment when tail expansion is on. The run stops cleanly once the budget is spent and says so in the log.",
            "default": 600
          },
          "maxConcurrency": {
            "title": "Markets in parallel",
            "minimum": 1,
            "maximum": 8,
            "type": "integer",
            "description": "How many markets are profiled at the same time. Four is a good balance; raise it for long lists.",
            "default": 4
          },
          "currency": {
            "title": "Currency",
            "type": "string",
            "description": "Three-letter currency code the market is read in, for example USD, EUR or GBP.",
            "default": "USD"
          },
          "language": {
            "title": "Language",
            "type": "string",
            "description": "Language of the option labels, for example en-us, en-gb, de or fr. Labels outside English are returned as Booking.com writes them.",
            "default": "en-us"
          },
          "proxyCountry": {
            "title": "Browse from country",
            "type": "string",
            "description": "Country to appear to browse from, as a two-letter code such as us, gb or de. Leave empty for the default.",
            "default": ""
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}