{
  "openapi": "3.0.1",
  "info": {
    "title": "Skyscanner Hotels Scraper API $1.5/1k — Prices & Content",
    "description": "Search Skyscanner hotels by destination and dates. One row per hotel with the cheapest live price and the partner offering it (Booking.com, Trip.com, Hotels.com, Expedia and more), room and cancellation terms, ratings and images, plus optional full content with AI review summaries.",
    "version": "0.0",
    "x-build-id": "qo1LW29Xqc0bW2VNX"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/memo23~skyscanner-hotels-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-memo23-skyscanner-hotels-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/memo23~skyscanner-hotels-scraper/runs": {
      "post": {
        "operationId": "runs-sync-memo23-skyscanner-hotels-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/memo23~skyscanner-hotels-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-memo23-skyscanner-hotels-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": {
          "startUrls": {
            "title": "Start URLs",
            "type": "array",
            "description": "Skyscanner hotels URLs. The destination id is read from a search URL (…/hotels/search?entity_id=27544008…), a city or place page (…/london-hotels/ci-27544008, …/pl-207147685), or a hotel page that carries search_entity_id=….",
            "items": {
              "type": "object",
              "properties": {
                "url": {
                  "type": "string",
                  "title": "URL",
                  "description": "A Skyscanner hotels URL."
                }
              },
              "required": [
                "url"
              ]
            }
          },
          "entityId": {
            "title": "Entity ID",
            "type": "string",
            "description": "Skyscanner destination id (city, neighbourhood or place). London is 27544008. It is the entity_id or search_entity_id value in a Skyscanner hotels URL. Not needed when startUrls has a usable URL."
          },
          "checkIn": {
            "title": "Check-in date",
            "type": "string",
            "description": "Pick a date, or switch to relative to search a fixed distance ahead (\"30 days\" means 30 days from the day the run starts), which keeps a scheduled run current. Leave empty to search a stay starting 30 days from today."
          },
          "checkOut": {
            "title": "Check-out date",
            "type": "string",
            "description": "Pick a date, or a relative value counted from the day the run starts, like check-in (\"32 days\" with check-in \"30 days\" is a 2-night stay). Leave empty for a 2-night stay."
          },
          "adults": {
            "title": "Adults",
            "minimum": 1,
            "type": "integer",
            "description": "Adults per room (12+).",
            "default": 2
          },
          "rooms": {
            "title": "Rooms",
            "minimum": 1,
            "type": "integer",
            "description": "Number of rooms.",
            "default": 1
          },
          "childrenAges": {
            "title": "Children ages",
            "type": "array",
            "description": "One age per entry, 0 to 17. Leave empty for no children.",
            "items": {
              "type": "string"
            }
          },
          "maxItems": {
            "title": "Max results",
            "minimum": 1,
            "type": "integer",
            "description": "Maximum number of hotels to return. Hotels are fetched 50 at a time until this is reached.",
            "default": 50
          },
          "includeContent": {
            "title": "Include full content",
            "type": "boolean",
            "description": "Add full content to each hotel: description, amenities, full gallery and the AI review summary, via the content/batch endpoint. Add-on: $0.001 per hotel it enriches.",
            "default": false
          },
          "sortBy": {
            "title": "Sort by",
            "enum": [
              "RECOMMENDED",
              "PRICE_LOW",
              "PRICE_HIGH",
              "RATING",
              "DISTANCE",
              "STARS",
              "STARS_LOW"
            ],
            "type": "string",
            "description": "Order of the hotels.",
            "default": "RECOMMENDED"
          },
          "minStars": {
            "title": "Min stars",
            "minimum": 1,
            "maximum": 5,
            "type": "integer",
            "description": "Only hotels with at least this many stars (1 to 5). Unrated properties are left out when set."
          },
          "minReviewScore": {
            "title": "Min guest rating",
            "minimum": 0,
            "maximum": 5,
            "type": "number",
            "description": "Only hotels with at least this guest rating, out of 5. Skyscanner offers 3, 3.5, 4, 4.5 and 5; another value is rounded down to one of them."
          },
          "minPricePerNight": {
            "title": "Min price per night",
            "minimum": 0,
            "type": "number",
            "description": "Lowest price per night, in the currency below."
          },
          "maxPricePerNight": {
            "title": "Max price per night",
            "minimum": 0,
            "type": "number",
            "description": "Highest price per night, in the currency below."
          },
          "freeCancellationOnly": {
            "title": "Free cancellation only",
            "type": "boolean",
            "description": "Only return hotels with free cancellation.",
            "default": false
          },
          "mealPlans": {
            "title": "Meal plans",
            "type": "array",
            "description": "Only hotels offering one of these meal plans.",
            "items": {
              "type": "string",
              "enum": [
                "breakfast_included",
                "half_board",
                "all_inclusive"
              ],
              "enumTitles": [
                "Breakfast included",
                "Half board (breakfast and dinner)",
                "All inclusive"
              ]
            }
          },
          "propertyTypes": {
            "title": "Property types",
            "type": "array",
            "description": "Only these kinds of property.",
            "items": {
              "type": "string",
              "enum": [
                "accom_type_hotels",
                "accom_type_homes_and_apartments",
                "accom_type_guesthouses_and_bed_and_breakfasts",
                "accom_type_villas_and_holiday_rentals",
                "accom_type_hostels_and_capsule_hotels",
                "accom_type_motels",
                "accom_type_resorts_and_wellness",
                "accom_type_camping_and_holiday_parks",
                "accom_type_boats_and_floating_stays",
                "accom_type_local_style"
              ],
              "enumTitles": [
                "Hotel",
                "Homes and apartments",
                "Guesthouses and B&Bs",
                "Villas and holiday rentals",
                "Hostels and capsule hotels",
                "Motel",
                "Resorts and wellness",
                "Camping and holiday parks",
                "Boats and floating stays",
                "Local style"
              ]
            }
          },
          "amenities": {
            "title": "Amenities",
            "type": "array",
            "description": "Only hotels that have all of these. Pick from the list, or type another amenity code from Skyscanner (hotel_amenity_…).",
            "items": {
              "type": "string",
              "enumSuggestedValues": [
                "hotel_amenity_wifi_service",
                "hotel_amenity_parking",
                "hotel_amenity_air_conditioning",
                "hotel_amenity_pool",
                "hotel_amenity_spa",
                "hotel_amenity_fitness_center",
                "hotel_amenity_restaurant",
                "hotel_amenity_bar",
                "hotel_amenity_kitchen",
                "hotel_amenity_pets_allowed_service",
                "hotel_amenity_airport_shuttle_service",
                "hotel_amenity_front_desk_24h_service",
                "hotel_amenity_laundry",
                "hotel_amenity_lift",
                "hotel_amenity_non_smoking_service",
                "hotel_amenity_television",
                "hotel_amenity_bathtub",
                "hotel_amenity_baby_sitting_service",
                "hotel_amenity_disabled_facility",
                "hotel_amenity_wheel_chair_access"
              ],
              "enumTitles": [
                "Wi-Fi",
                "Parking",
                "Air conditioning",
                "Pool",
                "Spa",
                "Fitness centre",
                "Restaurant",
                "Bar",
                "Kitchen",
                "Pets allowed",
                "Airport shuttle",
                "24-hour front desk",
                "Laundry",
                "Lift",
                "Non-smoking",
                "Television",
                "Bathtub",
                "Baby-sitting",
                "Disabled facilities",
                "Wheelchair access"
              ]
            }
          },
          "market": {
            "title": "Market",
            "type": "string",
            "description": "Country Skyscanner searches from, which can change prices and partners. Pick one or type another country code.",
            "default": "GB"
          },
          "locale": {
            "title": "Language",
            "type": "string",
            "description": "Language of hotel names, descriptions and AI summaries. Pick one or type another locale code.",
            "default": "en-GB"
          },
          "currency": {
            "title": "Currency",
            "type": "string",
            "description": "Currency of every price, and of the price filters. Pick one or type another currency code.",
            "default": "GBP"
          },
          "proxy": {
            "title": "Proxy",
            "type": "object",
            "description": "Proxy configuration (non-paying users). Paying users use our residential pool automatically."
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}