# Skyscanner Flights & Travel API (`elis/skyscanner-api`) Actor

Comprehensive Skyscanner scraping API with real-time flights, hotels, and car hire data. 20 endpoints.

- **URL**: https://apify.com/elis/skyscanner-api.md
- **Developed by:** [Elis Bushaj](https://apify.com/elis) (community)
- **Categories:** Travel
- **Stats:** 3 total users, 1 monthly users, 100.0% runs succeeded, NaN bookmarks
- **User rating**: No ratings yet

## Pricing

Pay per usage

This Actor is paid per platform usage. The Actor is free to use, and you only pay for the Apify platform usage, which gets cheaper the higher subscription plan you have.

Learn more: https://docs.apify.com/platform/actors/running/actors-in-store#pay-per-usage

## What's an Apify Actor?

Actors are a software tools running on the Apify platform, for all kinds of web data extraction and automation use cases.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
The best way to integrate Actors is as follows.

In JavaScript/TypeScript projects, use official [JavaScript/TypeScript client](https://docs.apify.com/api/client/js.md):

```bash
npm install apify-client
```

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python.md):

```bash
pip install apify-client
```

In shell scripts, use [Apify CLI](https://docs.apify.com/cli/docs.md):

````bash
# MacOS / Linux
curl -fsSL https://apify.com/install-cli.sh | bash
# Windows
irm https://apify.com/install-cli.ps1 | iex
```bash

In AI frameworks, you might use the [Apify MCP server](https://docs.apify.com/platform/integrations/mcp.md).

If your project is in a different language, use the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).


# README

## Skyscanner Flights & Travel API

Extract real-time flight prices, hotel listings, and car hire data from Skyscanner's internal API — the same data shown to users in the Skyscanner app, with full session-managed anti-bot handling. This is the only Skyscanner Actor on Apify that covers **flights, hotels, and car hire** in a single integration, priced 32% below the only request-model competitor.

**20 endpoints** | **Pay-Per-Event pricing** | **Batch mode — bulk download & export**

---

### Features

- **Full flight search + Google Flights** — one-way, return, multi-stop, "fly everywhere", and Google Flights roundtrip/one-way with price grids; more flight data types than any Skyscanner competitor on Apify
- **Only Skyscanner Actor with hotels and car hire** — search destinations, compare hotel prices and reviews, find car hire options; no competitor on Apify includes these
- **Price calendars with 2D return grids** — find cheapest travel windows with one-way and return date-grid pricing; the 2D return calendar is missing from the leading RapidAPI competitor
- **Batch mode** — paste URLs/requests, run, get results in the dataset. No polling, no API client required.
- **Pay only for what you use** — no monthly commitment, cancel any time; pricing active from 2026-04-29

---

### Quick Start

#### Option 1 — Apify Console

1. Click **Try for free** on this listing
2. In the **Input** tab, fill in your request (see example below)
3. Click **Start** and wait ~30 seconds
4. Open the **Output** tab to view results or download as JSON/CSV

**Example input (London → New York, 2026-08-01):**
```json
{
  "requests": [
    {
      "originSkyId": "LOND",
      "destinationSkyId": "NYCA",
      "originEntityId": "27544008",
      "destinationEntityId": "27537542",
      "date": "2026-08-01",
      "currency": "USD",
      "market": "US"
    }
  ]
}
````

#### Option 2 — REST API (Standby)

```bash
curl -X GET \
  "https://elis--skyscanner-api.apify.actor/flights/searchAirport?query=London" \
  -H "Authorization: Bearer $APIFY_TOKEN"
```

Replace `$APIFY_TOKEN` with your token from **Apify Console → Settings → Integrations**.

**Example response (trimmed):**

```json
{
  "status": 200,
  "data": {
    "places": [
      {
        "skyId": "LOND",
        "entityId": "27544008",
        "iataCode": "LON",
        "name": "London",
        "cityName": "London",
        "countryName": "United Kingdom",
        "placeType": "CITY"
      }
    ]
  }
}
```

***

### Pricing & Budget Guide

**Pricing model:** Pay-Per-Event — charged once per URL/request processed.

| Event | Price | When it fires |
|---|---|---|
| `request` | **$0.0034** | Once per request processed in a batch run |

**Budget translation** — set `ACTOR_MAX_TOTAL_CHARGE_USD` to cap your spend:

| Budget | ~Requests | Use case |
|---|---|---|
| $0.10 | ~29 | Quick test, try all endpoint types |
| $1.00 | ~294 | Hobbyist — daily flight monitoring |
| $9.99 | ~2,938 | Pro — route research, price tracking |
| $99.99 | ~29,408 | Heavy — bulk scraping, multiple routes |

When your budget is reached, the Actor stops cleanly and saves all results collected so far. Raise `ACTOR_MAX_TOTAL_CHARGE_USD` and re-run to continue.

**Market context:** Pricing active 2026-04-29 (14-day notice period). The only direct Skyscanner competitor on Apify charges $0.0025/result-item (per-result model); our per-request model charges once per API call regardless of result count.

***

### Endpoint Reference

#### GET /flights/searchAirport

Search for airports and cities by name — returns `skyId` and `entityId` needed for flight searches.

| Parameter | Type | Required | Description |
|---|---|---|---|
| `query` | string | ✅ | City or airport name (e.g. `"London"`, `"JFK"`) |
| `market` | string | ❌ | Market code, default `"US"` |
| `locale` | string | ❌ | Locale code, default `"en-US"` |

```bash
curl "https://elis--skyscanner-api.apify.actor/flights/searchAirport?query=London" \
  -H "Authorization: Bearer $APIFY_TOKEN"
```

***

#### GET /flights/searchFlights

Search for one-way or return flights between two airports.

| Parameter | Type | Required | Description |
|---|---|---|---|
| `originSkyId` | string | ✅ | Origin SkyId (e.g. `"LOND"`) |
| `destinationSkyId` | string | ✅ | Destination SkyId (e.g. `"NYCA"`) |
| `originEntityId` | string | ✅ | Origin entity ID (e.g. `"27544008"`) |
| `destinationEntityId` | string | ✅ | Destination entity ID (e.g. `"27537542"`) |
| `date` | string | ✅ | Outbound date `YYYY-MM-DD` |
| `returnDate` | string | ❌ | Return date for round trips |
| `adults` | integer | ❌ | Number of adults, default `1` |
| `cabinClass` | string | ❌ | `economy`, `premiumeconomy`, `business`, `first` |
| `currency` | string | ❌ | Currency code, default `"USD"` |
| `market` | string | ❌ | Market code, default `"US"` |
| `countryCode` | string | ❌ | Country code, default `"US"` |

```bash
curl "https://elis--skyscanner-api.apify.actor/flights/searchFlights?originSkyId=LOND&destinationSkyId=NYCA&originEntityId=27544008&destinationEntityId=27537542&date=2026-08-01" \
  -H "Authorization: Bearer $APIFY_TOKEN"
```

***

#### GET /flights/searchIncomplete

Paginate a live flight search session — call after `searchFlights` to load additional itineraries.

| Parameter | Type | Required | Description |
|---|---|---|---|
| `sessionId` | string | ✅ | Session ID from `searchFlights` response |

```bash
curl "https://elis--skyscanner-api.apify.actor/flights/searchIncomplete?sessionId=SESSION_ID" \
  -H "Authorization: Bearer $APIFY_TOKEN"
```

***

#### GET /flights/getFlightDetails

Retrieve full details for a specific itinerary including booking links.

| Parameter | Type | Required | Description |
|---|---|---|---|
| `itineraryId` | string | ✅ | Itinerary ID from `searchFlights` |
| `sessionId` | string | ✅ | Session ID from `searchFlights` |

```bash
curl "https://elis--skyscanner-api.apify.actor/flights/getFlightDetails?itineraryId=ITINERARY_ID&sessionId=SESSION_ID" \
  -H "Authorization: Bearer $APIFY_TOKEN"
```

***

#### GET /flights/getPriceCalendar

Get a one-way price calendar — minimum prices per departure date for a route.

| Parameter | Type | Required | Description |
|---|---|---|---|
| `originSkyId` | string | ✅ | Origin SkyId |
| `destinationSkyId` | string | ✅ | Destination SkyId |
| `fromDate` | string | ✅ | Start date `YYYY-MM-DD` |
| `toDate` | string | ❌ | End date `YYYY-MM-DD` |
| `cabinClass` | string | ❌ | Cabin class |
| `currency` | string | ❌ | Currency code |

```bash
curl "https://elis--skyscanner-api.apify.actor/flights/getPriceCalendar?originSkyId=LOND&destinationSkyId=NYCA&fromDate=2026-08-01" \
  -H "Authorization: Bearer $APIFY_TOKEN"
```

***

#### GET /flights/getPriceCalendarReturn

Get a 2D return price calendar — outbound × return date grid with minimum prices. Not available in the leading competitor.

| Parameter | Type | Required | Description |
|---|---|---|---|
| `originSkyId` | string | ✅ | Origin SkyId |
| `destinationSkyId` | string | ✅ | Destination SkyId |
| `fromDate` | string | ✅ | Outbound start date |
| `toDate` | string | ❌ | Outbound end date |
| `returnFromDate` | string | ❌ | Return start date |
| `returnToDate` | string | ❌ | Return end date |
| `currency` | string | ❌ | Currency code |

```bash
curl "https://elis--skyscanner-api.apify.actor/flights/getPriceCalendarReturn?originSkyId=LOND&destinationSkyId=NYCA&fromDate=2026-08-01&returnFromDate=2026-08-08" \
  -H "Authorization: Bearer $APIFY_TOKEN"
```

***

#### GET /flights/searchFlightsMultiStops

Search for multi-stop itineraries across several legs in a single request.

| Parameter | Type | Required | Description |
|---|---|---|---|
| `legs` | string (JSON) | ✅ | JSON array of leg objects with `originSkyId`, `destinationSkyId`, `date` |
| `adults` | integer | ❌ | Number of adults |
| `cabinClass` | string | ❌ | Cabin class |
| `currency` | string | ❌ | Currency code |

```bash
curl "https://elis--skyscanner-api.apify.actor/flights/searchFlightsMultiStops?legs=[{\"originSkyId\":\"LOND\",\"destinationSkyId\":\"NYCA\",\"date\":\"2026-08-01\"},{\"originSkyId\":\"NYCA\",\"destinationSkyId\":\"CDGB\",\"date\":\"2026-08-10\"}]" \
  -H "Authorization: Bearer $APIFY_TOKEN"
```

***

#### GET /flights/searchFlightEverywhere

Discover the cheapest destinations from an origin — "fly anywhere" price discovery.

| Parameter | Type | Required | Description |
|---|---|---|---|
| `originSkyId` | string | ✅ | Origin SkyId |
| `originEntityId` | string | ✅ | Origin entity ID |
| `cabinClass` | string | ❌ | Cabin class |
| `currency` | string | ❌ | Currency code |
| `market` | string | ❌ | Market code |

```bash
curl "https://elis--skyscanner-api.apify.actor/flights/searchFlightEverywhere?originSkyId=LOND&originEntityId=27544008" \
  -H "Authorization: Bearer $APIFY_TOKEN"
```

***

#### GET /flights/getCheapestOneway

Get the cheapest one-way fares from an origin across all destinations.

| Parameter | Type | Required | Description |
|---|---|---|---|
| `originSkyId` | string | ✅ | Origin SkyId |
| `originEntityId` | string | ✅ | Origin entity ID |
| `currency` | string | ❌ | Currency code |
| `market` | string | ❌ | Market code |

```bash
curl "https://elis--skyscanner-api.apify.actor/flights/getCheapestOneway?originSkyId=LOND&originEntityId=27544008" \
  -H "Authorization: Bearer $APIFY_TOKEN"
```

***

#### GET /hotels/searchDestination

Search for hotel destinations by name — returns destination IDs for hotel searches.

| Parameter | Type | Required | Description |
|---|---|---|---|
| `query` | string | ✅ | Destination name (e.g. `"Paris"`) |
| `locale` | string | ❌ | Locale code, default `"en-GB"` |

```bash
curl "https://elis--skyscanner-api.apify.actor/hotels/searchDestination?query=Paris" \
  -H "Authorization: Bearer $APIFY_TOKEN"
```

***

#### GET /hotels/searchHotels

Search for hotels at a destination with pricing and availability.

| Parameter | Type | Required | Description |
|---|---|---|---|
| `entityId` | string | ✅ | Destination entity ID from `searchDestination` |
| `checkin` | string | ✅ | Check-in date `YYYY-MM-DD` |
| `checkout` | string | ✅ | Check-out date `YYYY-MM-DD` |
| `adults` | integer | ❌ | Number of adults, default `1` |
| `rooms` | integer | ❌ | Number of rooms, default `1` |
| `currency` | string | ❌ | Currency code |
| `market` | string | ❌ | Market code |

```bash
curl "https://elis--skyscanner-api.apify.actor/hotels/searchHotels?entityId=27539733&checkin=2026-08-01&checkout=2026-08-05" \
  -H "Authorization: Bearer $APIFY_TOKEN"
```

***

#### GET /hotels/getHotelDetails

Get full details for a specific hotel including amenities and location.

| Parameter | Type | Required | Description |
|---|---|---|---|
| `hotelId` | string | ✅ | Hotel ID from `searchHotels` |
| `entityId` | string | ✅ | Destination entity ID |
| `checkin` | string | ✅ | Check-in date |
| `checkout` | string | ✅ | Check-out date |
| `currency` | string | ❌ | Currency code |

```bash
curl "https://elis--skyscanner-api.apify.actor/hotels/getHotelDetails?hotelId=HOTEL_ID&entityId=27539733&checkin=2026-08-01&checkout=2026-08-05" \
  -H "Authorization: Bearer $APIFY_TOKEN"
```

***

#### GET /hotels/getHotelPrices

Get room prices and availability for a hotel.

| Parameter | Type | Required | Description |
|---|---|---|---|
| `hotelId` | string | ✅ | Hotel ID |
| `entityId` | string | ✅ | Destination entity ID |
| `checkin` | string | ✅ | Check-in date |
| `checkout` | string | ✅ | Check-out date |
| `adults` | integer | ❌ | Number of adults |
| `currency` | string | ❌ | Currency code |

```bash
curl "https://elis--skyscanner-api.apify.actor/hotels/getHotelPrices?hotelId=HOTEL_ID&entityId=27539733&checkin=2026-08-01&checkout=2026-08-05" \
  -H "Authorization: Bearer $APIFY_TOKEN"
```

***

#### GET /hotels/getHotelReviews

Retrieve guest reviews for a specific hotel.

| Parameter | Type | Required | Description |
|---|---|---|---|
| `hotelId` | string | ✅ | Hotel ID |
| `entityId` | string | ✅ | Destination entity ID |
| `locale` | string | ❌ | Locale for reviews, default `"en-GB"` |

```bash
curl "https://elis--skyscanner-api.apify.actor/hotels/getHotelReviews?hotelId=HOTEL_ID&entityId=27539733" \
  -H "Authorization: Bearer $APIFY_TOKEN"
```

***

#### GET /hotels/getSimilarHotels

Get a list of similar hotels near a given hotel.

| Parameter | Type | Required | Description |
|---|---|---|---|
| `hotelId` | string | ✅ | Reference hotel ID |
| `entityId` | string | ✅ | Destination entity ID |
| `checkin` | string | ✅ | Check-in date |
| `checkout` | string | ✅ | Check-out date |

```bash
curl "https://elis--skyscanner-api.apify.actor/hotels/getSimilarHotels?hotelId=HOTEL_ID&entityId=27539733&checkin=2026-08-01&checkout=2026-08-05" \
  -H "Authorization: Bearer $APIFY_TOKEN"
```

***

#### GET /hotels/getNearbyMap

Get hotels near a specific map location (lat/lng).

| Parameter | Type | Required | Description |
|---|---|---|---|
| `lat` | number | ✅ | Latitude |
| `lng` | number | ✅ | Longitude |
| `checkin` | string | ✅ | Check-in date |
| `checkout` | string | ✅ | Check-out date |
| `currency` | string | ❌ | Currency code |

```bash
curl "https://elis--skyscanner-api.apify.actor/hotels/getNearbyMap?lat=48.8566&lng=2.3522&checkin=2026-08-01&checkout=2026-08-05" \
  -H "Authorization: Bearer $APIFY_TOKEN"
```

***

#### GET /cars/searchLocation

Search for car hire pickup/dropoff locations by name.

| Parameter | Type | Required | Description |
|---|---|---|---|
| `query` | string | ✅ | Location name (e.g. `"Heathrow Airport"`) |
| `locale` | string | ❌ | Locale code |

```bash
curl "https://elis--skyscanner-api.apify.actor/cars/searchLocation?query=Heathrow+Airport" \
  -H "Authorization: Bearer $APIFY_TOKEN"
```

***

#### GET /cars/searchCars

Search for available car hire options between pickup and dropoff.

| Parameter | Type | Required | Description |
|---|---|---|---|
| `pickupEntityId` | string | ✅ | Pickup location entity ID |
| `dropoffEntityId` | string | ✅ | Dropoff location entity ID |
| `pickupDate` | string | ✅ | Pickup date `YYYY-MM-DD` |
| `dropoffDate` | string | ✅ | Dropoff date `YYYY-MM-DD` |
| `pickupTime` | string | ❌ | Pickup time `HH:MM`, default `"10:00"` |
| `dropoffTime` | string | ❌ | Dropoff time `HH:MM`, default `"10:00"` |
| `currency` | string | ❌ | Currency code |
| `market` | string | ❌ | Market code |

```bash
curl "https://elis--skyscanner-api.apify.actor/cars/searchCars?pickupEntityId=ENTITY_ID&dropoffEntityId=ENTITY_ID&pickupDate=2026-08-01&dropoffDate=2026-08-08" \
  -H "Authorization: Bearer $APIFY_TOKEN"
```

***

#### GET /config/getLocale

Get locale information for a market including currency, language, and country.

| Parameter | Type | Required | Description |
|---|---|---|---|
| `market` | string | ❌ | Market code, default `"US"` |

```bash
curl "https://elis--skyscanner-api.apify.actor/config/getLocale?market=US" \
  -H "Authorization: Bearer $APIFY_TOKEN"
```

***

#### GET /config/getExchangeRates

Get current exchange rates for a base currency.

| Parameter | Type | Required | Description |
|---|---|---|---|
| `baseCurrency` | string | ✅ | Base currency code (e.g. `"USD"`) |

```bash
curl "https://elis--skyscanner-api.apify.actor/config/getExchangeRates?baseCurrency=USD" \
  -H "Authorization: Bearer $APIFY_TOKEN"
```

***

### FAQ

**How is this different from the official Skyscanner API?**
Skyscanner's official Partner API requires approval and is only available to approved travel businesses. This Actor uses Skyscanner's internal web API (the same endpoints the app uses) — no approval needed, works today.

**Is there a free tier?**
New Apify accounts receive $5 free credit. At $0.0034/request, that's approximately **1,470 free requests** to evaluate the API across all endpoint types.

**How does batch mode work?**
Fill in the Input tab with a `requests` array — each entry is one API call. Click Start, wait for the run to finish, then download all results from the Output tab as JSON, CSV, or JSONL. No client library required.

**What happens when I reach my budget?**
The Actor stops cleanly after the current request finishes. All results collected so far are saved to the dataset. Increase `ACTOR_MAX_TOTAL_CHARGE_USD` and re-run to continue.

**Can I automate this via API?**
Yes — use the Apify REST API or any Apify SDK (Node.js, Python). Runs are schedulable via Apify Console → Schedules. See [Apify API docs](https://docs.apify.com/api/v2) for details.

**Does this include Google Flights data?**
Yes — `/flights/searchFlightEverywhere` and `/flights/getCheapestOneway` use Google Flights data for price discovery. Standard flight search endpoints use Skyscanner data.

**What if a request fails due to anti-bot?**
The Actor uses session-managed proxy rotation to handle Skyscanner's anti-bot. If a request fails, it is retried automatically. Persistent failures are recorded with `status: "error"` and the reason.

# Actor input Schema

## `requests` (type: `array`):

Array of request objects. Each must include `endpoint` plus its required parameters (see table above).

## Actor input object example

```json
{
  "requests": [
    {
      "endpoint": "searchFlights",
      "originSkyId": "LOND",
      "destinationSkyId": "NYCA",
      "originEntityId": "27544008",
      "destinationEntityId": "27537542",
      "date": "2026-08-01",
      "currency": "USD",
      "market": "US"
    },
    {
      "endpoint": "searchHotels",
      "entityId": "27537542",
      "checkIn": "2026-08-01",
      "checkOut": "2026-08-05",
      "adults": 2,
      "currency": "USD",
      "market": "US"
    },
    {
      "endpoint": "searchCars",
      "pickupEntityId": "95673486",
      "pickupDate": "2026-08-01",
      "dropoffDate": "2026-08-05",
      "currency": "USD",
      "market": "US"
    },
    {
      "endpoint": "getExchangeRates",
      "baseCurrency": "USD"
    }
  ]
}
```

# Actor output Schema

## `results` (type: `string`):

No description

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "requests": [
        {
            "endpoint": "searchFlights",
            "originSkyId": "LOND",
            "destinationSkyId": "NYCA",
            "originEntityId": "27544008",
            "destinationEntityId": "27537542",
            "date": "2026-08-01",
            "currency": "USD",
            "market": "US"
        },
        {
            "endpoint": "searchHotels",
            "entityId": "27537542",
            "checkIn": "2026-08-01",
            "checkOut": "2026-08-05",
            "adults": 2,
            "currency": "USD",
            "market": "US"
        },
        {
            "endpoint": "searchCars",
            "pickupEntityId": "95673486",
            "pickupDate": "2026-08-01",
            "dropoffDate": "2026-08-05",
            "currency": "USD",
            "market": "US"
        },
        {
            "endpoint": "getExchangeRates",
            "baseCurrency": "USD"
        }
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("elis/skyscanner-api").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = { "requests": [
        {
            "endpoint": "searchFlights",
            "originSkyId": "LOND",
            "destinationSkyId": "NYCA",
            "originEntityId": "27544008",
            "destinationEntityId": "27537542",
            "date": "2026-08-01",
            "currency": "USD",
            "market": "US",
        },
        {
            "endpoint": "searchHotels",
            "entityId": "27537542",
            "checkIn": "2026-08-01",
            "checkOut": "2026-08-05",
            "adults": 2,
            "currency": "USD",
            "market": "US",
        },
        {
            "endpoint": "searchCars",
            "pickupEntityId": "95673486",
            "pickupDate": "2026-08-01",
            "dropoffDate": "2026-08-05",
            "currency": "USD",
            "market": "US",
        },
        {
            "endpoint": "getExchangeRates",
            "baseCurrency": "USD",
        },
    ] }

# Run the Actor and wait for it to finish
run = client.actor("elis/skyscanner-api").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print("💾 Check your data here: https://console.apify.com/storage/datasets/" + run["defaultDatasetId"])
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "requests": [
    {
      "endpoint": "searchFlights",
      "originSkyId": "LOND",
      "destinationSkyId": "NYCA",
      "originEntityId": "27544008",
      "destinationEntityId": "27537542",
      "date": "2026-08-01",
      "currency": "USD",
      "market": "US"
    },
    {
      "endpoint": "searchHotels",
      "entityId": "27537542",
      "checkIn": "2026-08-01",
      "checkOut": "2026-08-05",
      "adults": 2,
      "currency": "USD",
      "market": "US"
    },
    {
      "endpoint": "searchCars",
      "pickupEntityId": "95673486",
      "pickupDate": "2026-08-01",
      "dropoffDate": "2026-08-05",
      "currency": "USD",
      "market": "US"
    },
    {
      "endpoint": "getExchangeRates",
      "baseCurrency": "USD"
    }
  ]
}' |
apify call elis/skyscanner-api --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=elis/skyscanner-api",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Skyscanner Flights & Travel API",
        "description": "Comprehensive Skyscanner scraping API with real-time flights, hotels, and car hire data. 20 endpoints.\n",
        "version": "0.1",
        "x-build-id": "BBmw0rhQvV2gZOUZa"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/elis~skyscanner-api/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-elis-skyscanner-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/elis~skyscanner-api/runs": {
            "post": {
                "operationId": "runs-sync-elis-skyscanner-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/elis~skyscanner-api/run-sync": {
            "post": {
                "operationId": "run-sync-elis-skyscanner-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",
                "required": [
                    "requests"
                ],
                "properties": {
                    "requests": {
                        "title": "Request(s)",
                        "type": "array",
                        "description": "Array of request objects. Each must include `endpoint` plus its required parameters (see table above).",
                        "items": {
                            "type": "object"
                        }
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
