---
title: "Search"
method: POST
path: "/conv/agent-flight-searches"
tags: ["conversational"]
---

# Search

`POST /conv/agent-flight-searches`

## Headers

- `X-Axel-Quote-Session` string, uuid, required

## Request body

- AgentFlightQuoteRequest — Route search using existing airport resolution and traveler types.
  - `origin` string, required — Airport code, city/metro name or code, or comma-separated airport codes. Resolves to searchable airport codes before search.
  - `destination` string, required — Airport code, city/metro name or code, or comma-separated airport codes. Resolves to searchable airport codes before search.
  - `departure_date` string, date, required
  - `return_date` string, date, nullable
  - `passengers` AgentFlightPassengers, required — Anonymous pricing needs counts/types, never traveler identities.
    - `adults` integer, required
    - `children` integer
    - `infants_in_seat` integer
    - `infants_on_lap` integer
  - `airline` string, nullable
  - `max_stops` integer, nullable — Maximum stops per direction; null leaves stops unrestricted.
  - `cabin` 'economy' | 'business'
  - `currency` 'USD'

## Response `200`

Successful Response

- union
  - AgentFlightSearchOptionsResponse — Flight choices with stage-specific Member totals and no supplier tokens.
    - `stage` 'outbound' | 'return', required
    - `session_id` string, uuid, required
    - `request` AgentFlightQuoteRequest, required — Route search using existing airport resolution and traveler types.
      - `origin` string, required — Airport code, city/metro name or code, or comma-separated airport codes. Resolves to searchable airport codes before search.
      - `destination` string, required — Airport code, city/metro name or code, or comma-separated airport codes. Resolves to searchable airport codes before search.
      - `departure_date` string, date, required
      - `return_date` string, date, nullable
      - `passengers` AgentFlightPassengers, required — Anonymous pricing needs counts/types, never traveler identities.
        - `adults` integer, required
        - `children` integer
        - `infants_in_seat` integer
        - `infants_on_lap` integer
      - `airline` string, nullable
      - `max_stops` integer, nullable — Maximum stops per direction; null leaves stops unrestricted.
      - `cabin` 'economy' | 'business'
      - `currency` 'USD'
    - `options` AgentFlightSearchOption[], required
      - `option_id` string, uuid, required — Existing Axel flight observation ID; select this ID directly.
      - `summary` FlightShareLeg, required — Public-safe itinerary facts for one ordered leg of a flight.
        - `airline_name` string, nullable
        - `airline_code` string, nullable
        - `origin` string, required
        - `destination` string, required
        - `departure_date` string, required
        - `departure_time` string, nullable
        - `arrival_date` string, nullable
        - `arrival_time` string, nullable
        - `duration_minutes` integer, nullable
        - `stops` integer, required
        - `flight_numbers` string[]
      - `starting_member_price_total` Money — Immutable money value stored as integer minor units. Amount is always stored in the smallest currency unit (cents, yen, pesos, etc). This avoids floating-point precision issues and matches payment processor standards. Examples: $19.99 USD -> Money(amount=1999, currency="USD") ¥1000 JPY -> Money(amount=1000, currency="JPY") $1000.00 CLP -> Money(amount=1000, currency="CLP") Serializes to {"amount": 1999, "currency": "USD"}. IMPORTANT: Use Money.from_decimal() for user-facing amounts like "$19.99". The constructor expects integer minor units (cents).
        - `amount` integer, required
        - `currency` string, required
      - `member_price_total` Money — Immutable money value stored as integer minor units. Amount is always stored in the smallest currency unit (cents, yen, pesos, etc). This avoids floating-point precision issues and matches payment processor standards. Examples: $19.99 USD -> Money(amount=1999, currency="USD") ¥1000 JPY -> Money(amount=1000, currency="JPY") $1000.00 CLP -> Money(amount=1000, currency="CLP") Serializes to {"amount": 1999, "currency": "USD"}. IMPORTANT: Use Money.from_decimal() for user-facing amounts like "$19.99". The constructor expects integer minor units (cents).
        - `amount` integer, required
        - `currency` string, required
      - `airline_price_total` Money — Immutable money value stored as integer minor units. Amount is always stored in the smallest currency unit (cents, yen, pesos, etc). This avoids floating-point precision issues and matches payment processor standards. Examples: $19.99 USD -> Money(amount=1999, currency="USD") ¥1000 JPY -> Money(amount=1000, currency="JPY") $1000.00 CLP -> Money(amount=1000, currency="CLP") Serializes to {"amount": 1999, "currency": "USD"}. IMPORTANT: Use Money.from_decimal() for user-facing amounts like "$19.99". The constructor expects integer minor units (cents).
        - `amount` integer, required
        - `currency` string, required
    - `selected_outbound` FlightShareLeg — Public-safe itinerary facts for one ordered leg of a flight.
      - `airline_name` string, nullable
      - `airline_code` string, nullable
      - `origin` string, required
      - `destination` string, required
      - `departure_date` string, required
      - `departure_time` string, nullable
      - `arrival_date` string, nullable
      - `arrival_time` string, nullable
      - `duration_minutes` integer, nullable
      - `stops` integer, required
      - `flight_numbers` string[]
    - `origin_airports` string[] — Resolved origin airports included in this search.
    - `destination_airports` string[] — Resolved destination airports included in this search.
  - AgentFlightSearchQuoteResponse
    - `stage` 'quote'
    - `session_id` string, uuid, required
    - `checks_remaining` integer, required
    - `url` string, required
    - `share` AgentFlightQuoteResolveResponse, required — Persisted quote readable independently of its creating browser/session.
      - `target` FlightShareTarget — Public target discriminator for a shared flight.
        - `type` 'flight_share'
      - `share_kind` 'agent_quote'
      - `quote_id` string, uuid, required
      - `request` AgentFlightQuoteRequest, required — Route search using existing airport resolution and traveler types.
        - `origin` string, required — Airport code, city/metro name or code, or comma-separated airport codes. Resolves to searchable airport codes before search.
        - `destination` string, required — Airport code, city/metro name or code, or comma-separated airport codes. Resolves to searchable airport codes before search.
        - `departure_date` string, date, required
        - `return_date` string, date, nullable
        - `passengers` AgentFlightPassengers, required — Anonymous pricing needs counts/types, never traveler identities.
          - `adults` integer, required
          - `children` integer
          - `infants_in_seat` integer
          - `infants_on_lap` integer
        - `airline` string, nullable
        - `max_stops` integer, nullable — Maximum stops per direction; null leaves stops unrestricted.
        - `cabin` 'economy' | 'business'
        - `currency` 'USD'
      - `snapshot` FlightShareSnapshot, required — Immutable, explicitly whitelisted facts safe for a public share page.
        - `fare_label` string, nullable
        - `passenger_count` integer, required
        - `legs` FlightShareLeg[], required
          - `airline_name` string, nullable
          - `airline_code` string, nullable
          - `origin` string, required
          - `destination` string, required
          - `departure_date` string, required
          - `departure_time` string, nullable
          - `arrival_date` string, nullable
          - `arrival_time` string, nullable
          - `duration_minutes` integer, nullable
          - `stops` integer, required
          - `flight_numbers` string[]
        - `axel_price_total` Money, required — Immutable money value stored as integer minor units. Amount is always stored in the smallest currency unit (cents, yen, pesos, etc). This avoids floating-point precision issues and matches payment processor standards. Examples: $19.99 USD -> Money(amount=1999, currency="USD") ¥1000 JPY -> Money(amount=1000, currency="JPY") $1000.00 CLP -> Money(amount=1000, currency="CLP") Serializes to {"amount": 1999, "currency": "USD"}. IMPORTANT: Use Money.from_decimal() for user-facing amounts like "$19.99". The constructor expects integer minor units (cents).
          - `amount` integer, required
          - `currency` string, required
        - `comparison_price_total` Money — Immutable money value stored as integer minor units. Amount is always stored in the smallest currency unit (cents, yen, pesos, etc). This avoids floating-point precision issues and matches payment processor standards. Examples: $19.99 USD -> Money(amount=1999, currency="USD") ¥1000 JPY -> Money(amount=1000, currency="JPY") $1000.00 CLP -> Money(amount=1000, currency="CLP") Serializes to {"amount": 1999, "currency": "USD"}. IMPORTANT: Use Money.from_decimal() for user-facing amounts like "$19.99". The constructor expects integer minor units (cents).
          - `amount` integer, required
          - `currency` string, required
      - `checked_at` string, date-time, required
      - `membership_required` true
      - `membership_terms` string
      - `non_member_booking` string

## Other responses

- `422` — Validation Error

## Changes

- **2026-09-11** `106d2d712b27` — 1 info
  - endpoint added

[Change history](https://skmtc.dev/helloaxel/apis/client-api-gateway/changes/conv/agent-flight-searches/post.md)

---

[API](https://skmtc.dev/helloaxel/apis/client-api-gateway.md) · [All operations](https://skmtc.dev/helloaxel/apis/client-api-gateway/llms.txt) · [OpenAPI document](https://skmtc.dev/helloaxel/apis/client-api-gateway/revisions/106d2d712b27?raw)
