3 · Available dates
List available dates for a route.
What: the departure dates the suppliers’ own catalogues list for an origin → destination. A listed date is what the supplier publishes, not a promise of a seat: search the date to see fares.
When: to build a date picker / calendar before searching.
How: POST with a JSON body { origin, destination, tripType? }. No query params.
Response: { origin, destination, tripType, dates[] } — the route + trip kind are echoed ONCE (they are the request body inputs), with the bookable dates listed under them. meta.count = number of dates.
- No
tripTypesent (every kind):tripTypeisnull; one row per date, sorted, each{ departureDate, tripTypes }— the kinds the catalogues list for that day,ONE_WAYfirst.["ROUND_TRIP"]alone means only round-trip packages were listed for that day (a one-way supplier that failed is reported inmeta.suppliers). Round-trip dates are asked only of suppliers that sell round-trip packages. tripTypesent: only that kind,{ departureDate }per date, and notripTypes.- No return dates: a date is the day a trip LEAVES. Packages leaving the same day can come back on different days, so
/searchnames each package with its ownreturnDate.
Gotcha: this returns dates only — no prices or seats. Call /search for offers + prices. sources works as on /origins.
Supplier health: meta.suppliers[] has one entry per supplier Kitionz considered, for each trip kind it was asked about: { sourceCode, tripType, status, tookMs }. With no tripType in the request, a supplier that sells round trips has two entries (ONE_WAY and ROUND_TRIP). status = ok, not_asked, or a classified error code. not_asked (with reason = ORIGIN_NOT_LISTED or DEST_NOT_LISTED) means the supplier was not called because its own saved list for the previous step did not contain the airport — an answer, not a fault; treat only error codes as failures, and treat an unrecognised status as opaque. If a supplier fails (or is backing off after rate-limiting Kitionz) and Kitionz holds a recent good answer from it, that answer is still included and its entry carries stale: true + staleAgeMs (route lists up to 24 h old, date lists up to 2 h old with past dates removed). Route lists are cached for up to 2 h and date lists for up to 15 min: a list is served from the cache inside its window and fetched again on the first request after it.
Example — request (every trip kind):
Response (trimmed) — 15 Jan has one-way flights only; on 16 Jan a round-trip package leaves too:
Authentication
Your Kitionz API key, sent as Authorization: Bearer keyId:secret. Create it in your Kitionz console under API → API keys.
Request
ONE_WAY or ROUND_TRIP lists only that kind of trip. Leave it out to list every kind: one-way flights and round-trip packages together (as /search does).
Optional. Leave it out to use every supplier your account has switched on. Send a list of sourceCodes only to narrow this call to some of them; a code you cannot use is refused (403), and blank entries are ignored.