Flights API
Last updated 19 September 2026
A flight search API returns comparable fares. You send origin, destination, and a depart date. You get rows you can rank. You do not get a ticket.
Ktemia’s contract for that job is POST https://api.ktemia.com/v1/flights. The route is not live yet. The body below is the payload we will accept, not a production response with invented prices.
The longer commercial write-up, including how this differs from booking APIs and from Google Flights extraction, sits on the flight search API post. The agent wiring sits on flights MCP. This page is the docs contract.
Required fields
Three fields are required:
origindestinationdepart
If any of the three is missing, the call must fail and name the field. The copilot must ask. Neither invents an airport or a day.
Optional later, when the route is live: return date, cabin, passenger counts. They do not replace the three.
Request shape
One POST, one JSON body, when the route is live. This is not a create-then-poll session.
{
"origin": "LHR",
"destination": "LIS",
"depart": "2026-10-12"
}
Use the same worked query in the dashboard, the POST body, and the copilot: LHR to LIS, depart 2026-10-12. Do not copy a Skyscanner poll loop onto this contract.
Search is not booking
Ktemia’s terms treat a search as comparison, not a reservation. A booking API creates an order, takes payment, and issues a ticket. Mixing those jobs in one integration is how teams burn quota on the wrong product.
The Free plan includes 50 API requests a month. Guessing a city spends that cap on the wrong trip.
Authenticate with the dashboard key when keys exist. Do not put that key in frontend JavaScript. We will publish the exact header name with the route, not invent one here.
A successful search will return offers you can compare: carriers, times, stops, a price. It will not return a PNR, a ticket, or an aircraft position. We are not pasting a fake JSON fare list. When the endpoint responds, this page gets a dated example.