---
title: "Find Recent Agent Flight Quotes By Route"
method: GET
path: "/conv/agent-flight-quotes/recent-by-route"
tags: ["conversational"]
---

# Find Recent Agent Flight Quotes By Route

`GET /conv/agent-flight-quotes/recent-by-route`

Recent saved assistant quotes for an origin market or route. PUBLIC.

An assistant often cites an indexed airport or route page it never read,
so the person's trip is nowhere on it. The page asks for the quotes
assistants saved lately for that origin (and destination on route pages)
and pins them first. Either side is an airport list: a multi-airport city
such as "ORD,MDW", or every airport a region page covers as its
destination; a trip matches when its stored airports overlap the list.
This exposes only what the public quote review pages already show; an
empty list is a normal answer.

## Query parameters

- `origin` string, required
- `destination` string, nullable
- `hours` integer
- `limit` integer

## Response `200`

Successful Response

- AgentFlightQuoteListResponse — Recent saved agent quotes and assistant searches for an origin market or route. Newest first in each list. A session that saved a quote appears only under ``quotes``. Empty lists are a normal answer: nobody looked at that route lately.
  - `quotes` AgentFlightQuoteLookupResponse[], 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
          - `connection_airports` string[], nullable — Ordered connection airport codes when every segment boundary is known and stays at the same airport. Null when unavailable, incomplete, or requiring an airport change; an empty list means a confirmed nonstop leg.
          - `flight_numbers` string[]
          - `segments` FlightShareSegment[]
            - `origin` string, nullable
            - `destination` string, nullable
            - `departure_date` string, nullable
            - `departure_time` string, nullable
            - `arrival_date` string, nullable
            - `arrival_time` string, nullable
            - `flight_number` string, nullable
            - `duration_minutes` integer, nullable
            - `layover_after_minutes` integer, nullable — Elapsed time until the next segment at the same airport; null when unknown or on the last segment.
        - `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
        - `ticketed_passenger_count` integer, nullable — Travelers occupying seats. Older snapshots lack the mix and retain their original passenger-count basis.
        - `axel_price_per_person` 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
        - `comparison_price_per_person` 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
        - `non_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
      - `checked_at` string, date-time, required
      - `fare_options` AgentFlightFareOption[]
        - `baggage` string[]
        - `baggage_policy` FareBaggagePolicy — Structured fare baggage policy, with raw supplier text preserved.
          - `source` 'serpapi_google_flights' | 'unknown'
          - `quotes` FareBaggageQuote[]
            - `bag_type` 'personal_item' | 'carry_on' | 'checked' | 'checked_first' | 'checked_second' | 'unknown'
            - `quantity` integer, nullable — Bag count when the supplier text states one; 0 for explicit restrictions.
            - `is_included` boolean
            - `is_restriction` boolean
            - `fee_amount` string, nullable
            - `fee_currency` string, nullable
            - `fee_basis` 'round_trip' | 'one_way' | 'per_segment' | 'unknown'
            - `pax_basis` 'per_pax' | 'total' | 'unknown'
            - `fee_amount_per_direction` string, nullable — Per-passenger one-way fee amount when it can be normalized from the supplier quote. For round-trip totals, this is half of fee_amount.
            - `source_key` 'together' | 'departing' | 'returning' | 'unknown'
            - `raw_text` string, required
        - `features` string[]
        - `fare_policy` FarePolicy
          - `facts` FarePolicyFact[]
            - `category` 'personal_item' | 'carry_on' | 'checked_bags' | 'seat_selection' | 'changes' | 'refunds' | 'seat_upgrade' | 'same_day_changes' | 'priority_boarding' | 'wifi' | 'meals' | 'lounge' | 'entertainment' | 'rewards', required
            - `state` 'included' | 'fee' | 'not_included' | 'not_available' | 'conditional' | 'unknown'
            - `quantity` integer, nullable — Included bag count, only when established by evidence.
            - `evidence` string[] — Supplier statements or curated airline-policy references, including qualifications.
            - `details` string[] — Qualifications the customer must see alongside the summary.
            - `reason` 'not_provided' | 'conflicting_evidence' | 'conditional' | 'varies_by_leg', nullable
          - `unclassified` string[]
        - `fare_name` 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
        - `non_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
        - `separate_tickets` boolean
      - `fare_options_retrieved_at` string, date-time, nullable
      - `fare_options_incomplete` boolean, nullable
      - `membership_required` true
      - `membership_terms` string
      - `non_member_booking` string
    - `created_at` string, date-time, required
  - `searches` AssistantFlightSearchSummary[]
    - `session_id` string, uuid, required
    - `stage` 'outbound' | 'return', 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'
    - `created_at` string, date-time, required

## Other responses

- `422` — Validation Error

## Changes

> 30 revisions in range; 1 not diffed.

- **2026-09-30** `d698bc4c58ea` — 1 info
  - endpoint added

[Change history](https://skmtc.dev/helloaxel/apis/client-api-gateway/changes/conv/agent-flight-quotes/recent-by-route/get.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/8f7eca7ced4d?raw)
