---
title: "Save Trip"
method: POST
path: "/conv/agent-flight-trips/"
tags: ["conversational"]
---

# Save Trip

`POST /conv/agent-flight-trips/`

## Request

- Base URL: `https://api.helloaxel.com` (the document declares no server; this is the origin it was published from)
- URL: `https://api.helloaxel.com/conv/agent-flight-trips/`
- Auth: none declared

## Headers

- `X-Axel-Flight-Source` string, nullable: Optional web-proxy request source; trusted only with its server signature.
- `X-Axel-Flight-Source-Signature` string, nullable: HMAC-SHA256 of X-Axel-Flight-Source from the Axel web server.

## Request body

- AgentFlightTripState
  - `version` 1
  - `session_id` string, uuid, required
  - `search_started` boolean
  - `search_started_at` string, date-time, nullable: When this saved trip's outbound search started; carried across pending continuations, cleared when the trip changes.
  - `departure_comparison_anchor` string, date, nullable: Original departure for a nearby-date comparison; selecting a neighbor must not recursively prefetch more dates.
  - `date_comparison_anchor` AgentFlightDatePair
    - `departure_date` string, date, required
    - `return_date` string, date, nullable
  - `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'
  - `option_id` string, uuid, nullable
  - `outbound_id` string, uuid, nullable
  - `search_choices` FlightSearchChoices
    - `airline` string, nullable
    - `max_stops` integer, nullable
    - `outbound` FlightSearchLegChoices
      - `stops` 'nonstop' | 'one' | 'twoPlus', nullable
      - `airline_only` string, nullable
      - `avoided_airlines` string[]
    - `returning` FlightSearchLegChoices
      - `stops` 'nonstop' | 'one' | 'twoPlus', nullable
      - `airline_only` string, nullable
      - `avoided_airlines` string[]
    - `fare_preferences` FlightFarePreferences: Stated needs for this party; None is unstated, never a requirement.
      - `seat_selection` boolean, nullable
      - `carry_on` boolean, nullable
      - `checked_bags` integer, nullable: Checked bags needed per ticketed traveler, on each direction.
      - `changes` boolean, nullable
      - `refunds` boolean, nullable
  - `intent` TravelIntent: Null means unknown, never unconstrained or consent. USD totals are for the party.
    - `willingness` 'definite' | 'price_dependent', nullable
    - `date_flexibility` 'fixed' | 'flexible', nullable
    - `fixed_commitment` boolean, nullable
    - `departure_windows` TravelDateWindow[]
      - `start` string, date, required
      - `end` string, date, required
    - `return_windows` TravelDateWindow[]
      - `start` string, date, required
      - `end` string, date, required
    - `departure_weekdays` integer[]: Allowed departure weekdays, Monday=0. Empty means unknown.
    - `return_weekdays` integer[]: Allowed return weekdays, Monday=0. Empty means unknown.
    - `stay_nights` integer, nullable
    - `stay_nights_min` integer, nullable
    - `stay_nights_max` integer, nullable
    - `origin_airport_codes` string[], nullable
    - `destination_airport_codes` string[], nullable
    - `depart_after` string, nullable: Earliest outbound departure, local clock time, inclusive.
    - `depart_before` string, nullable: Latest outbound departure, local clock time, inclusive. Before earlier than after denotes an overnight window.
    - `return_depart_after` string, nullable: Earliest return departure, local clock time, inclusive.
    - `return_depart_before` string, nullable: Latest return departure, local clock time, inclusive. Before earlier than after denotes an overnight window.
    - `arrive_by` string, date-time, nullable: Latest acceptable arrival at destination, destination local time. Buffer is subtracted from this deadline.
    - `return_by` string, date-time, nullable: Latest acceptable arrival home, origin local time. Buffer is subtracted from this deadline.
    - `arrival_buffer_minutes` integer, nullable
    - `return_buffer_minutes` integer, nullable
    - `airport_flexibility` 'exact' | 'nearby', nullable
    - `budget_target_cents` integer, nullable
    - `budget_limit_cents` integer, nullable
    - `currency` 'USD'
  - `display_airlines` string[]
  - `assistant_source` 'chatgpt' | 'claude' | 'perplexity' | 'google' | 'muse', nullable

## Response `200`

Successful Response

- AgentFlightTripReference
  - `trip_reference` string, required
  - `state` AgentFlightTripState, required
    - `version` 1
    - `session_id` string, uuid, required
    - `search_started` boolean
    - `search_started_at` string, date-time, nullable: When this saved trip's outbound search started; carried across pending continuations, cleared when the trip changes.
    - `departure_comparison_anchor` string, date, nullable: Original departure for a nearby-date comparison; selecting a neighbor must not recursively prefetch more dates.
    - `date_comparison_anchor` AgentFlightDatePair
      - `departure_date` string, date, required
      - `return_date` string, date, nullable
    - `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'
    - `option_id` string, uuid, nullable
    - `outbound_id` string, uuid, nullable
    - `search_choices` FlightSearchChoices
      - `airline` string, nullable
      - `max_stops` integer, nullable
      - `outbound` FlightSearchLegChoices
        - `stops` 'nonstop' | 'one' | 'twoPlus', nullable
        - `airline_only` string, nullable
        - `avoided_airlines` string[]
      - `returning` FlightSearchLegChoices
        - `stops` 'nonstop' | 'one' | 'twoPlus', nullable
        - `airline_only` string, nullable
        - `avoided_airlines` string[]
      - `fare_preferences` FlightFarePreferences: Stated needs for this party; None is unstated, never a requirement.
        - `seat_selection` boolean, nullable
        - `carry_on` boolean, nullable
        - `checked_bags` integer, nullable: Checked bags needed per ticketed traveler, on each direction.
        - `changes` boolean, nullable
        - `refunds` boolean, nullable
    - `intent` TravelIntent: Null means unknown, never unconstrained or consent. USD totals are for the party.
      - `willingness` 'definite' | 'price_dependent', nullable
      - `date_flexibility` 'fixed' | 'flexible', nullable
      - `fixed_commitment` boolean, nullable
      - `departure_windows` TravelDateWindow[]
        - `start` string, date, required
        - `end` string, date, required
      - `return_windows` TravelDateWindow[]
        - `start` string, date, required
        - `end` string, date, required
      - `departure_weekdays` integer[]: Allowed departure weekdays, Monday=0. Empty means unknown.
      - `return_weekdays` integer[]: Allowed return weekdays, Monday=0. Empty means unknown.
      - `stay_nights` integer, nullable
      - `stay_nights_min` integer, nullable
      - `stay_nights_max` integer, nullable
      - `origin_airport_codes` string[], nullable
      - `destination_airport_codes` string[], nullable
      - `depart_after` string, nullable: Earliest outbound departure, local clock time, inclusive.
      - `depart_before` string, nullable: Latest outbound departure, local clock time, inclusive. Before earlier than after denotes an overnight window.
      - `return_depart_after` string, nullable: Earliest return departure, local clock time, inclusive.
      - `return_depart_before` string, nullable: Latest return departure, local clock time, inclusive. Before earlier than after denotes an overnight window.
      - `arrive_by` string, date-time, nullable: Latest acceptable arrival at destination, destination local time. Buffer is subtracted from this deadline.
      - `return_by` string, date-time, nullable: Latest acceptable arrival home, origin local time. Buffer is subtracted from this deadline.
      - `arrival_buffer_minutes` integer, nullable
      - `return_buffer_minutes` integer, nullable
      - `airport_flexibility` 'exact' | 'nearby', nullable
      - `budget_target_cents` integer, nullable
      - `budget_limit_cents` integer, nullable
      - `currency` 'USD'
    - `display_airlines` string[]
    - `assistant_source` 'chatgpt' | 'claude' | 'perplexity' | 'google' | 'muse', nullable

## Other responses

- `422`: Validation Error

## Changes

> 68 revisions in range; 1 not diffed.

- **2026-10-20** `11400fcce11a`: 1 warning, 1 info
  - added the new `muse` enum value to the `state/assistant_source/anyOf[subschema #1]/` response property for the response status `200`
  - added the new `muse` enum value to the request property `assistant_source/anyOf[subschema #1]/`
- **2026-10-18** `d5c0dc4b71d9`: 8 info
  - added the new optional request property `intent/depart_after`
  - added the new optional request property `intent/depart_before`
  - added the new optional request property `intent/return_depart_after`
  - added the new optional request property `intent/return_depart_before`
  - …4 more
- **2026-10-18** `5c44a367b274`: 2 info
  - added the new optional request property `search_started_at`
  - added the optional property `state/search_started_at` to the response with the `200` status
- **2026-10-16** `bffc187987a5`: 6 info
  - added the new optional request property `intent/departure_weekdays`
  - added the new optional request property `intent/return_weekdays`
  - added the new optional request property `search_choices/anyOf[subschema #1: FlightSearchChoices]/fare_preferences`
  - added the optional property `state/intent/departure_weekdays` to the response with the `200` status
  - …2 more
- …earlier changes not shown

[Operation history](https://skmtc.dev/helloaxel/apis/client-api-gateway/changes/conv/agent-flight-trips/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/8824999a7a0a?raw)
