# SiteCheck Flight Search

> SiteCheck Flight Search is a paid API for AI agents from api.sitecheck-api.workers.dev, paid per call via x402, $0.05/call, status unknown (last checked 2026-10-19).

Search for flight itineraries between two airports by date, cabin class, and stop preference, returning ranked fares with carrier, duration, and segment details

## Facts

- Endpoint: GET https://api.sitecheck-api.workers.dev/api/flights?utm_source=zero.xyz
- Price: $0.05/call
- Payment: x402
- Status: unknown
- Last checked: 2026-10-19
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/sitecheck-flight-search-fb797d0b
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_NaKjQeGYR9wwxiQYsb2Y4

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 sitecheck-flight-search-fb797d0b
```

Example prompt: Find me economy flights from IST to LHR on November 20, 2026 — show up to 10 itineraries with at most 1 stop, priced in USD.

## When to prefer this

Use this endpoint when you need to quickly surface and compare available flight fares between two specific airports for a given date, cabin class, or stop preference. It is powered by Ignav's fare index and returns structured itinerary data suitable for agent reasoning — not for actual booking. Prefer this over generic web search when you need machine-parseable flight data with prices, carriers, and segment details in a single call.

## Known failure modes

- Missing required query parameters (from, to, date) returns a validation error
- Invalid IATA airport codes result in no results or an error response
- Date outside the allowed window (today to 330 days ahead) is rejected
- Fares may be stale — prices are observed snapshots, not live booking guarantees
- Self-transfer itineraries may have hidden re-check bag requirements
- Payment of $0.05 USDC required per call; unpaid requests are rejected with 402

## How this service works

Flight fares for one route and date, one-way or round trip: the cheapest, the fastest and the cheapest nonstop option, then up to 20 itineraries sorted by price with carrier, stops, duration, departure and arrival times (local and UTC), every flight segment and aircraft. Cabin, maximum stops and market (sets the currency) are optional. Fares for a single traveller from Ignav; a fare search, not a booking.

## Output

Returns a JSON object with a list of itineraries including price (amount, currency, verification status), carrier name, total duration in minutes, stop count, self-transfer flag, and full outbound/inbound segment breakdowns (flight number, aircraft, departure/arrival times in UTC and local). Also surfaces the single cheapest and fastest itinerary at the top level, along with the query echo and a data-freshness timestamp.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "$schema": "https://json-schema.org/draft/2020-12/schema",
 "required": [
  "input"
 ],
 "properties": {
  "input": {
   "type": "object",
   "required": [
    "type",
    "method"
   ],
   "properties": {
    "type": {
     "type": "string",
     "const": "http"
    },
    "method": {
     "enum": [
      "GET"
     ],
     "type": "string"
    },
    "queryParams": {
     "type": "object",
     "required": [
      "from",
      "to",
      "date"
     ],
     "properties": {
      "to": {
       "type": "string",
       "description": "Arrival airport, 3-letter IATA code, e.g. LHR"
      },
      "date": {
       "type": "string",
       "description": "Departure date YYYY-MM-DD (today to 330 days ahead)"
      },
      "from": {
       "type": "string",
       "description": "Departure airport, 3-letter IATA code, e.g. IST"
      },
      "cabin": {
       "type": "string",
       "description": "economy (default), premium_economy, business or first"
      },
      "limit": {
       "type": "string",
       "description": "Itineraries to return, 1-20, default 10"
      },
      "market": {
       "type": "string",
       "description": "2-letter country code that sets the currency, default US (USD); e.g. GB, DE, TR"
      },
      "return": {
       "type": "string",
       "description": "Return date YYYY-MM-DD for a round trip (optional)"
      },
      "maxStops": {
       "type": "string",
       "description": "Maximum stops per direction: 0, 1, 2 or 3 (optional)"
      }
     }
    }
   },
   "additionalProperties": false
  },
  "output": {
   "type": "object",
   "required": [
    "type"
   ],
   "properties": {
    "type": {
     "type": "string"
    },
    "example": {
     "type": "object"
    }
   }
  }
 }
}
```

## Response schema (JSON Schema)

```json
{
 "type": "json",
 "example": {
  "note": "Fares for a single traveller as observed by Ignav; prices change, confirm them on the airline or agency site before booking. selfTransfer true means separate tickets (you re-check bags). This is a fare search, not a booking.",
  "count": 11,
  "query": {
   "to": "LHR",
   "date": "2026-11-20",
   "from": "IST",
   "cabin": "economy",
   "market": "US",
   "return": null,
   "maxStops": null
  },
  "source": "Ignav fare search (https://ignav.com)",
  "fastest": {
   "price": {
    "amount": 142,
    "status": "verified",
    "currency": "USD"
   },
   "stops": 0,
   "carrier": "Turkish Airlines",
   "durationMinutes": 235
  },
  "cheapest": {
   "price": {
    "amount": 106,
    "status": "verified",
    "currency": "USD"
   },
   "stops": 1,
   "carrier": "LOT",
   "durationMinutes": 390
  },
  "currency": "USD",
  "checkedAt": "2026-10-15T07:05:15.817Z",
  "observedAt": "2026-10-15T07:04:11.923565Z",
  "itineraries": [
   {
    "cabin": "economy",
    "price": {
     "amount": 106,
     "status": "verified",
     "currency": "USD"
    },
    "ignavId": "482f12b5f25b480d970f05c178d91b5a",
    "inbound": null,
    "outbound": {
     "stops": 1,
     "arrival": {
      "utc": "2026-11-20T22:00:00Z",
      "local": "2026-11-20T22:00:00",
      "airport": "LHR"
     },
     "carrier": "LOT",
     "segments": [
      {
       "to": "WAW",
       "from": "IST",
       "flight": "LO136",
       "aircraft": "Boeing 737MAX 8 Passenger",
       "operatedBy": "LOT",
       "arrivalLocal": "2026-11-20T19:05:00",
       "departureLocal": "2026-11-20T18:30:00",
       "durationMinutes": 155
      },
      {
       "to": "LHR",
       "from": "WAW",
       "flight": "LO285",
       "aircraft": "Boeing 737MAX 8 Passenger",
       "operatedBy": "LOT",
       "arrivalLocal": "2026-11-20T22:00:00",
       "departureLocal": "2026-11-20T20:15:00",
       "durationMinutes": 165
      }
     ],
     "departure": {
      "utc": "2026-11-20T15:30:00Z",
      "local": "2026-11-20T18:30:00",
      "airport": "IST"
     },
     "durationMinutes": 390
    },
    "selfTransfer": false
   },
   {
    "cabin": "economy",
    "price": {
     "amount": 126,
     "status": "verified",
     "currency": "USD"
    },
    "ignavId": "cacde4b37b904c149a0d00574afb4715",
    "inbound": null,
    "outbound": {
     "stops": 0,
     "arrival": {
      "utc": "2026-11-20T19:55:00Z",
      "local": "2026-11-20T19:55:00",
      "airport": "LHR"
     },
     
… (truncated)
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/sitecheck-flight-search-fb797d0b/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from api.sitecheck-api.workers.dev](https://www.zero.xyz/host/api.sitecheck-api.workers.dev/llms.txt)
