Required fields
Last updated 19 September 2026
Ktemia does not guess. If a required field is missing, the copilot asks you to elaborate. The API rejects the call and names the field. That rule is the same in the UI, on the wire, and in an agent skill.
This page is the docs version of that contract. The product copy says it in one line: if the question is unclear, we ask, we do not guess.
Why the rule exists
A trip or a move has fields you cannot invent without changing the job. Lisbon is not “soon”. LHR is not “Europe”. 12 October is not “next week” until you say the date. Guessing spends Free quota: 50 API requests a month.
Search returns rows to compare. It does not issue a ticket. Inventing a city and then ranking fares for that city is not search. It is a different trip.
What each route requires
- Flights: origin, destination, depart. See the flights API.
- Stays: city, check-in, check-out, guests.
- Cars: pick-up place and dates.
- Homes: place, plus the constraints you name (size, budget, area). Missing constraints fail the same way.
Cabin, passengers, vehicle class, and neighborhood filters are optional extras. They do not replace the required set.
Copilot turns
One credit is one copilot turn: a question, a package suggestion, or a drafted query. Unused credits reset with the billing period.
A follow-up that only supplies a missing origin is still a turn. That is the point. The copilot would rather spend a credit on a real field than invent one and waste the search.
APIs and agents
The HTTP contract must not be laxer than the copilot. If the UI requires origin, POST /v1/flights requires origin.
For agents, MCP servers, skills, and instructions say the same thing: ask if unclear. Do not paste a dashboard key into frontend JavaScript. The flights agent note is how to add a flights MCP.