Search
Natural-language catalog search — request limits, query understanding, scoring, and coverage.
POST /v1/search searches your airline’s catalog (plus the shared global
catalog) in natural language. You send a passenger-style query; the platform
parses it into structured constraints, ranks the matching titles semantically,
and tells you exactly how it understood the query.
Request
The request body is capped at 64 KiB (413 above it). There is no
airline field — your credential carries the airline.
How your query is understood
Every response echoes the parse in parsed, so you never have to guess what
the platform did with the text:
originalQuery— your text, verbatim.filters— the structured constraints extracted from it:yearFrom/yearTo,genres[](all listed genres must match),cast[],titleContains,contentKind,ratingMax— plusairlineId, the tenant your credential resolved to (server-side; you never send it).semanticText— the meaning left over after constraint extraction (“feel-good”), used for semantic ranking. Empty when nothing remains.source— which parser produced the filters:"rules"(the deterministic engine) or"ai".
Parsing handles the phrasings passengers actually use:
- Decades: ”90s” or “1990s” ⇒
yearFrom: 1990, yearTo: 1999. - Compound genres: “romcom” ⇒
genres: ["Romance", "Comedy"]. - Kind keywords: “shows”, “series”, “TV” ⇒
contentKind: "TV".
Current limitation. In the current release, parsing runs on the
deterministic rules engine ("source": "rules"), which does not extract
cast names from query text. Fuzzy correction of well-known names (“Tom
Cruz” → “Tom Cruise”) arrives with the AI parser in a later release. A
query like “movies with Tom Cruise” still searches semantically — it just
won’t produce a structured cast filter yet.
Results & scoring
Ranking is a fixed pipeline: structured filters prune the candidate set, vector similarity ranks the survivors, and an exact-title containment match adds a fixed boost on top of the semantic score.
Each result carries:
candidateCount is how many items survived the filters; totalItems is the
size of your visible catalog.
Coverage, reported honestly
coverage tells you how complete the metadata behind your results is —
reported, never papered over:
The three …Pct fields are percentages on the 0–100 scale (42.5 means
42.5%), never 0–1 fractions. They report how many of your visible items carry
at least one genre, at least one cast member, and a synopsis respectively —
if a coverage number is low, semantic ranking quality is limited by the
catalog metadata, not by your queries. The sandbox catalog currently reports
100 on all three.
Worked example
Abridged response (sandbox tenant):
Full request and response schemas are in the API Reference. Error responses use the standard error envelope.