---
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
        - `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

## Other responses

- `422` — Validation Error

---

[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-service-production.skmtc.workers.dev/v1/apis/helloaxel/client-api-gateway/revisions/4f4ea4eb6a21/schema)
