# Skyscanner Flight Deals Scraper

> Skyscanner Flight Deals Scraper is a paid API for AI agents from api.scrapeforagents.tech, paid per call via x402, $0.025/call, status unknown (last checked 2026-10-02).

Scrapes structured flight deal data from Skyscanner routes, returning prices, dates, and booking URLs with optional filtering by date, direction, and stop count.

## Facts

- Endpoint: POST https://api.scrapeforagents.tech/v1/skyscanner?utm_source=zero.xyz
- Price: $0.025/call
- Payment: x402
- Status: unknown
- Last checked: 2026-10-02
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/skyscanner-flight-deals-scraper-3f61754e
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_R_ks_76GKOeVVMFz1O0QP

Status and success rate cover calls made through Zero and Zero's own probes. Third-party monitors may report differently.

## How to call it through Zero

Zero handles the 402 payment challenge and records the run. With the Zero CLI installed (`npm i -g @zeroxyz/cli`):

```sh
zero fetch --capability skyscanner-flight-deals-scraper-3f61754e -d '<json body>'
```

Example prompt: Search Skyscanner for the cheapest direct flights from JFK to LHR departing on 2025-08-15 and returning on 2025-08-25, sorted by price, and give me the top 10 deals.

## When to prefer this

Use this endpoint when you need structured, machine-readable flight deal data from Skyscanner without building your own scraper. It is ideal when you have a specific Skyscanner route URL or airport pair and need price-sorted or date-filtered deals programmatically. Prefer this over general web scraping tools when you need Skyscanner-specific output fields like priceRaw, direct flag, and booking URLs ready to use.

## Known failure modes

- Empty result set if Skyscanner route page has no deals matching the date filters
- Null fields in item objects if Skyscanner page structure changes
- Route URL not found or invalid URL provided in startUrls
- Rate limiting or blocking by Skyscanner resulting in empty response
- Invalid airport code or city name causing no results

## How this service works

Pay-per-call structured web data. Failed or empty runs are not charged.

## Output

Returns a JSON object with a count of matched deals and an items array, where each item includes the deal ID, tags, direct-flight flag, currency, raw price, formatted price, route URL, and search URL. Failed or empty scrape runs are not billed.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "properties": {
  "sortBy": {
   "enum": [
    "price",
    "departureDate",
    "source"
   ],
   "type": "string",
   "default": "price",
   "description": "Sort each route by fare or departure date before applying limits."
  },
  "maxItems": {
   "type": "integer",
   "default": 100,
   "minimum": 0,
   "description": "Maximum deals across all routes. Zero means no total cap."
  },
  "startUrls": {
   "type": "array",
   "description": "Public skyscanner.net routes or transport/flights URLs. A flight URL also supplies exact departure and return dates; only matching public deals are returned."
  },
  "directOnly": {
   "type": "boolean",
   "default": false,
   "description": "Keep only deals marked direct by the route page."
  },
  "returnDate": {
   "type": "string",
   "description": "Optional exact return date filter in YYYY-MM-DD or YYMMDD format. Deals without this return date are excluded."
  },
  "departureDate": {
   "type": "string",
   "description": "Optional exact date filter in YYYY-MM-DD or YYMMDD format. Route pages carry a limited selection of dates."
  },
  "arrivalAirport": {
   "type": "string",
   "description": "Destination city name or airport code when no URL is given."
  },
  "departureAirport": {
   "type": "string",
   "description": "Origin city name or airport code when no URL is given."
  },
  "maxDealsPerRoute": {
   "type": "integer",
   "default": 0,
   "minimum": 0,
   "description": "Maximum deals from each route. Zero means no per-route cap."
  }
 }
}
```

## Response schema (JSON Schema)

```json
{
 "type": "json",
 "example": {
  "count": 1,
  "items": [
   {
    "id": null,
    "tags": null,
    "direct": null,
    "currency": null,
    "priceRaw": null,
    "routeUrl": null,
    "searchUrl": null,
    "priceFormatted": null
   }
  ],
  "product": "skyscanner"
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/skyscanner-flight-deals-scraper-3f61754e/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from api.scrapeforagents.tech](https://www.zero.xyz/host/api.scrapeforagents.tech/llms.txt)
