---
title: "Create Flight Share"
method: POST
path: "/conv/trips/{trip_id}/flight-shares"
tags: ["conversational"]
---

# Create Flight Share

`POST /conv/trips/{trip_id}/flight-shares`

Mint a public-safe flight share from a user's own trip.

## Path parameters

- `trip_id` string, required

## Request body

- union
  - FlightDealShareCreateRequest — Mint a pre-book flight share from a trip-owned observation.
    - `kind` 'deal', required
    - `observation_id` string, required
    - `fare_name` string, nullable
    - `passenger_count` integer, nullable
  - FlightSavingsShareCreateRequest — Mint a post-book savings share from an owned Axel booking.
    - `kind` 'savings', required
    - `booking_id` string, required
    - `booking_session_id` string, uuid, required

## Response `200`

Successful Response

- FlightShareCreateResponse — New public URL plus the exact immutable facts it will resolve to.
  - `url` string, required
  - `share` FlightShareWakeLinkResolveResponse, required — Public response for a shared deal or post-book savings receipt.
    - `target` FlightShareTarget, required — Public target discriminator for a shared flight.
      - `type` 'flight_share'
    - `share_kind` 'deal' | 'savings', required
    - `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[]
      - `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
      - `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

## Other responses

- `422` — Validation Error

## Changes

> 21 revisions in range; 1 not diffed.

- **2026-09-15** `fa4c4b94f345` — 1 info
  - added the optional property `share/snapshot/legs/items/connection_airports` to the response with the `200` status
- **2026-09-14** `40b17b2af72a` — 1 info
  - added the optional property `share/snapshot/non_member_price_total` to the response with the `200` status

[Change history](https://skmtc.dev/helloaxel/apis/client-api-gateway/changes/conv/trips/:trip_id/flight-shares/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/82939784d881?raw)
