{
  "openapi": "3.0.1",
  "info": {
    "title": "Skyscanner Scraper | Flights Hotels Car Hire",
    "description": "Scrape Skyscanner.net guest flights, hotels and car hire. Extract Day View tickets, hotel street addresses, car-hire pickup locations, prices and live URLs. Export CSV, Excel or JSON. No login. Does not follow Go to site or Book. Platform usage included. Schedule runs or call the Apify API.",
    "version": "0.1",
    "x-build-id": "uTUzpgm9UufeYA0mA"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/lentic_clockss~skyscanner-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-lentic_clockss-skyscanner-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/lentic_clockss~skyscanner-scraper/runs": {
      "post": {
        "operationId": "runs-sync-lentic_clockss-skyscanner-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/lentic_clockss~skyscanner-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-lentic_clockss-skyscanner-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": {
          "service": {
            "title": "Service",
            "enum": [
              "flights",
              "hotels",
              "cars",
              "flights_seo",
              "hotel_detail",
              "flight_detail",
              "packages"
            ],
            "type": "string",
            "description": "flights Day View and flights_seo opened. hotels/cars Cloud Run partial (PX or hang). hotel_detail needs live /ht-. flight_detail needs live /config/. packages 未验证.",
            "default": "flights"
          },
          "market": {
            "title": "Market / host",
            "enum": [
              "skyscanner.net",
              "skyscanner.com"
            ],
            "type": "string",
            "description": "skyscanner.net opened (en-GB/GBP). skyscanner.com culture switch 未验证.",
            "default": "skyscanner.net"
          },
          "origin": {
            "title": "Origin place code",
            "type": "string",
            "description": "Skyscanner place code for flights (e.g. bkk). Can be origin|dest. Empty {} uses bkk.",
            "default": "bkk"
          },
          "destination": {
            "title": "Destination place code",
            "type": "string",
            "description": "Skyscanner place code for flights (e.g. sin). Empty {} uses sin.",
            "default": "sin"
          },
          "place": {
            "title": "flights-to place",
            "type": "string",
            "description": "Place code for service=flights_seo.",
            "default": ""
          },
          "placeSlug": {
            "title": "flights-to slug",
            "type": "string",
            "description": "Optional cheap-flights-to-{slug} segment.",
            "default": ""
          },
          "entityId": {
            "title": "Hotel geo entityId",
            "type": "string",
            "description": "Required for hotels. Geo entity (ci- / entity_id), not ht- hotel id.",
            "default": ""
          },
          "geoId": {
            "title": "Car hire geoId",
            "type": "string",
            "description": "Required for cars. Same family as hotel entity_id, not a supplier id.",
            "default": ""
          },
          "hotelUrl": {
            "title": "Live hotel URL",
            "type": "string",
            "description": "Optional live /ht-{id} URL. Do not invent ids.",
            "default": ""
          },
          "flightUrl": {
            "title": "Live flight config URL",
            "type": "string",
            "description": "Optional live /config/{id} URL. Do not invent ids.",
            "default": ""
          },
          "departureDate": {
            "title": "Flight departure (YYYY-MM-DD)",
            "type": "string",
            "description": "Optional. Worker defaults to today+21 if empty.",
            "default": ""
          },
          "returnDate": {
            "title": "Flight return (YYYY-MM-DD)",
            "type": "string",
            "description": "Optional return date for roundtrip flights. Worker defaults to departure+7 if empty.",
            "default": ""
          },
          "checkin": {
            "title": "Hotel/car start (YYYY-MM-DD)",
            "type": "string",
            "description": "Optional hotel check-in or car pickup date. Worker defaults to today+21 if empty.",
            "default": ""
          },
          "checkout": {
            "title": "Hotel/car end (YYYY-MM-DD)",
            "type": "string",
            "description": "Optional hotel check-out or car drop-off date. Worker defaults to checkin+3 if empty.",
            "default": ""
          },
          "tripType": {
            "title": "Trip type",
            "enum": [
              "roundtrip",
              "oneway"
            ],
            "type": "string",
            "description": "roundtrip adds a return YYMMDD path segment and rtn=1. oneway omits return.",
            "default": "roundtrip"
          },
          "adults": {
            "title": "Adults",
            "minimum": 1,
            "maximum": 10,
            "type": "integer",
            "description": "Adult passenger / guest count (adultsv2 / adults query).",
            "default": 1
          },
          "children": {
            "title": "Children count",
            "minimum": 0,
            "maximum": 10,
            "type": "integer",
            "description": "If >0 and childrenv2 empty, worker sends childrenv2 ages as 8 repeated. Recon query is childrenv2.",
            "default": 0
          },
          "childrenv2": {
            "title": "childrenv2 ages",
            "type": "string",
            "description": "Skyscanner childrenv2 query, pipe-separated ages (e.g. 8|5). Empty unless you need children.",
            "default": ""
          },
          "rooms": {
            "title": "Hotel rooms",
            "minimum": 1,
            "maximum": 8,
            "type": "integer",
            "description": "Hotel rooms query. Ignored for flights and cars.",
            "default": 1
          },
          "cabinclass": {
            "title": "Cabin",
            "enum": [
              "economy",
              "premiumeconomy",
              "business",
              "first"
            ],
            "type": "string",
            "description": "Flight cabinclass query: economy, premiumeconomy, business, first.",
            "default": "economy"
          },
          "driverAge": {
            "title": "Driver age",
            "minimum": 18,
            "maximum": 99,
            "type": "integer",
            "description": "Car-hire driver age path segment (recon used 30).",
            "default": 30
          },
          "preferDirects": {
            "title": "Prefer directs",
            "type": "boolean",
            "description": "Flights query preferdirects=true. Recon observed; page mix still measured per route.",
            "default": false
          },
          "dropoffGeoId": {
            "title": "Car drop-off geoId",
            "type": "string",
            "description": "Optional different drop-off geo. Empty uses pickup geoId. Same family as hotel entity_id.",
            "default": ""
          },
          "sort": {
            "title": "Sort",
            "type": "string",
            "description": "Hotels: price → sort_type_price_asc. Flights: cheapest clicks FqsTab (URL unchanged).",
            "default": ""
          },
          "includeDetail": {
            "title": "Follow live hotel LDP / flight config (lead enrich)",
            "type": "boolean",
            "description": "If true, open the first live /config/ from a flight SERP (and hotel /ht- when the worker does not already enrich). Store Test default is false. Never invents ids. Do not use this to click Go to site.",
            "default": false
          },
          "maxResults": {
            "title": "Max results",
            "minimum": 1,
            "maximum": 50,
            "type": "integer",
            "description": "Cap on dataset rows. Empty {} uses 1 (Store Console Test). Free Apify plans are clamped lower.",
            "default": 1
          },
          "workerBaseUrl": {
            "title": "Worker base URL override",
            "type": "string",
            "description": "Optional HTTPS Cloud Run origin. Production uses WORKER_BASE_URL env.",
            "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}