> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://docs.westiq.ai/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.westiq.ai/_mcp/server.

# WestIQ Partner Documentation

Welcome to the WestIQ partner documentation. These docs are public;
**API access is credential-gated** — partner credentials are issued during
onboarding.

WestIQ delivers AI-driven personalization for in-flight entertainment. This
site documents the **WestIQ Platform API (v1)** — the server-to-server
integration surface of the WestIQ platform.

## What you can do today

| Capability                                                        | Endpoints                                                                                                                                                 |
| ----------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Natural-language catalog search                                   | `POST /v1/search`                                                                                                                                         |
| Behavioral-signal ingestion                                       | `POST /v1/events`                                                                                                                                         |
| Airline UI theme                                                  | `GET /v1/theme`                                                                                                                                           |
| Bind a seat's members for a session                               | `POST /v1/personas/session`                                                                                                                               |
| Per-member personas                                               | `POST /v1/personas/generate`, `GET /v1/personas`                                                                                                          |
| Age-gated catalog, unscored & per-member scored                   | `GET` / `POST /v1/catalog/serve`                                                                                                                          |
| Batch catalog ingestion (submit + poll)                           | `POST /v1/catalog/ingest/jobs`, `GET /v1/catalog/ingest/jobs/{jobId}`                                                                                     |
| Batch product ingestion — duty-free, F\&B, retail (submit + poll) | `POST /v1/products/ingest/jobs`, `GET /v1/products/ingest/jobs/{jobId}`                                                                                   |
| Flight registration & active-catalog push                         | `PUT /v1/flights/{id}`, `PUT /v1/flights/{id}/active-catalog`                                                                                             |
| Per-member suggestions & enrichment                               | `POST /v1/suggestions`, `POST /v1/enrichment`                                                                                                             |
| Live session events                                               | `GET /v1/sessions/{id}/stream`, `GET /v1/sessions/{id}/state`                                                                                             |
| Shopping search & curated sections                                | `POST /v1/shopping/search`, `POST /v1/shopping/curate`, `POST /v1/shopping/rescore`                                                                       |
| Per-member ad decisioning                                         | `POST /v1/ads/decision`                                                                                                                                   |
| Destination POI search & itinerary planning                       | `POST /v1/destination/search`, `POST /v1/destination/replace`, `POST /v1/destination/plan`, `POST /v1/destination/extend`, `POST /v1/destination/weather` |
| Hero/banner images                                                | `POST /v1/shopping/hero-image`, `POST /v1/destination/hero-image`                                                                                         |
| Liveness check                                                    | `GET /healthz` (anonymous)                                                                                                                                |

Authentication is OAuth 2.0 client credentials. Your credential is bound to
your airline on the WestIQ side — you never send an airline identifier, and
your calls can only ever see your airline's catalog plus the shared global
catalog. The per-member endpoints additionally use a passenger-session locator
— see [Sessions & Member Locators](/guides/sessions).

> **Note**
>
> Access is granted to approved airline and integration partners. Need access
> or API credentials? Contact your WestIQ partner manager.

## Where to start

* **[Quickstart](/getting-started/quickstart)** — get a token and make your
  first authenticated call.
* **[Authentication & Access](/guides/authentication)** — the credential
  model, the one scope, and the auth failures you can hit.
* **[Sessions & Member Locators](/guides/sessions)** — the `X-Session-Id`
  header, seat/member locators, and the age-tier model the per-member
  endpoints share.
* **[Search](/guides/search)** — how queries are parsed, scored, and how
  catalog coverage is reported.
* **[Behavioral events](/guides/behavioral-events)** — batching passenger
  interaction signals, rejection codes, and the signal vocabulary.
* **Personalization** — [theme](/guides/theme),
  [session setup](/guides/session-setup), [personas](/guides/personas),
  [catalog serve](/guides/catalog-serve), [suggestions](/guides/suggestions),
  [enrichment](/guides/enrichment), and [session events](/guides/session-events).
* **Catalog operations** — [catalog ingestion](/guides/catalog-ingest) (submit
  your titles in batches and poll the job), [product ingestion](/guides/products-ingest) (the same flow for duty-free, food &
  beverage, and retail products), and [flights & active catalog](/guides/flights) (register a flight, then push the titles actually
  loaded on the aircraft).
* **Shopping & ads** — [shopping search](/guides/shopping-search),
  [shopping curate & rescore](/guides/shopping-curate), and
  [ads decisioning](/guides/ads-decision).
* **Destination** — [search & replace](/guides/destination-search),
  [plan & extend](/guides/destination-plan), [weather](/guides/destination-weather), and the
  shared [hero images](/guides/hero-images) endpoints.
* **[Errors & limits](/guides/errors)** — the error envelope, correlation
  IDs, request limits, and rate limiting.
* **[API Reference](/api-reference)** — the full endpoint reference,
  generated from the platform's OpenAPI document.
* **[Security & Trust](/security)** — isolation, encryption, PII handling,
  and our compliance posture, stated as proofs rather than promises.