---
title: "Resolve Wake Link"
method: GET
path: "/conv/wake-links/{token}"
tags: ["conversational"]
---

# Resolve Wake Link

`GET /conv/wake-links/{token}`

Resolve a wake short-link token — PUBLIC, the token is the secret.

## Path parameters

- `token` string, required

## Response `200`

Successful Response

- union
  - FlightShareWakeLinkResolveResponse — 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
  - FlightWakeLinkResolveResponse — Resolve response for flight wake links.
    - `trip_id` string, required
    - `checkout_observation_id` string, nullable, required
    - `fare_name` string, nullable, required
    - `quoted_price_cents` integer, nullable, required
    - `currency` string, required
    - `src` string, required
    - `wake_token_hash` string, required
    - `minted_at` string, nullable — ISO-8601 UTC timestamp the wake link was minted (the wake_links row created_at). Additive; absent for links minted before this field.
    - `flight_negotiation_offer_id` string, nullable
    - `checkout_card` FlightWakeLinkCheckoutCard — Known flight checkout-card fields returned from a wake-link resolve.
      - `observation_id` string, required
      - `conv_trip_id` string, nullable
      - `carrier` string, nullable
      - `from` string, nullable
      - `to` string, nullable
      - `from_city` string, nullable
      - `to_city` string, nullable
      - `date` string, nullable
      - `depart_date` string, nullable
      - `dep` string, nullable
      - `arr` string, nullable
      - `stops` integer, nullable
      - `duration` string, nullable
      - `price` union
        - integer
        - number
      - `price_pp` union
        - integer
        - number
      - `passengers` integer, nullable
      - `is_international` boolean, nullable
      - `cabin` string, nullable
      - `cabin_verification_status` string, nullable
      - `bookable` boolean, nullable
      - `already_booked` boolean, nullable
      - `booking_in_progress` boolean, nullable
      - `booked_booking_id` string, nullable
      - `active_negotiation_offer_id` string, nullable
      - `active_negotiation_observation_id` string, nullable
      - `active_negotiation_locked_total_cents` integer, nullable
      - `active_negotiation_expires_at` string, nullable
    - `target` FlightReturnSelectionTarget
      - `type` 'flight_return_selection'
      - `id` string, required
  - HotelWakeLinkResolveResponse — Resolve response for hotel map and hotel negotiation wake links.
    - `trip_id` string, required
    - `src` string, required
    - `currency` string, required
    - `wake_token_hash` string, required — Privacy-safe SHA-256 of the wake-link token. Lets the web app attach wake attribution to existing hotel checkout signals without exposing the raw token (which is the secret).
    - `target` WakeLinkHotelTarget, required — Typed target metadata for hotel wake links.
      - `type` 'hotel', required
      - `id` string, nullable
    - `hotel_id` union
      - integer
      - string
    - `hotel_search_session_id` string, nullable
    - `hotel_negotiation_offer_id` string, nullable
    - `expires_at` string, nullable — ISO timestamp when the locked hotel negotiation offer expires.
    - `quote_id` string, nullable
    - `check_in` string, nullable
    - `check_out` string, nullable
    - `open_checkout` boolean, required
    - `hotel_map` HotelNegotiationMapPayload — Known fields in the hotel_map payload attached to hotel negotiations.
      - `component` 'hotel_map'
      - `map_session_id` string, nullable
      - `update_mode` string, nullable
      - `hotel_search_session_id` union
        - string
        - string, uuid
      - `criteria_hash` string, nullable
      - `anchor` HotelSearchAnchor — Canonical search anchor for a hotel map session. Extends LocationRadius to keep the existing flat latitude/longitude/radius_km shape while adding the label/type metadata FE needs. This prevents map-first hotel search from falling back to a vague destination code or implicit city centroid.
        - `latitude` number, required
        - `longitude` number, required
        - `radius_km` number, required
        - `label` string, required
        - `source` 'city' | 'neighborhood' | 'hotel' | 'airport' | 'user_phrase' | 'map', required — Source/type of the canonical hotel map search anchor.
        - `place_code` string, nullable
      - `loaded_bounds` Viewport — Map viewport defined by SW and NE corners of the visible area. Sent by the client whenever the user pans or zooms the map.
        - `sw` LatLng, required — Geographic coordinate pair. Used by both pricing and discovery APIs.
          - `latitude` number, required
          - `longitude` number, required
        - `ne` LatLng, required — Geographic coordinate pair. Used by both pricing and discovery APIs.
          - `latitude` number, required
          - `longitude` number, required
      - `pins` object[]
      - `map_pins` object[]
      - `clusters` object[]
      - `pricing_status` string, nullable
      - `check_in` string, date, nullable
      - `check_out` string, date, nullable
      - `nights` integer, nullable
      - `guests` integer, nullable
      - `rooms` integer, nullable
      - `guest_rooms` GuestRoomOutput[]
        - `adults` integer, required — Number of adults
        - `children` object[] — List of children with ages
      - `focused_hotel_id` union
        - integer
        - string
      - `conv_trip_id` string, nullable
      - `hotel_negotiation_offer_id` string, nullable
      - `quote_id` string, nullable
      - `rate_identity_json` object, nullable
    - `rendered_token` string, nullable
    - `locked_customer_price` 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
    - `locked_nightly_rate` 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
    - `expedia_price` 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
    - `savings_amount` 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
    - `star_rating` number, nullable
    - `compare_price_provider` string, nullable
    - `compare_price_source` string, nullable
    - `is_refundable` boolean, nullable
    - `savings_percent` number, nullable — Fraction saved vs the comparison price, e.g. 0.22 = 22%.
    - `message_facts` HotelNegotiationMessageFacts — Customer-safe facts used to render hotel negotiation offer copy.
      - `hotel_name` string, nullable
      - `room_name` string, nullable
      - `star_rating` number, nullable
      - `star_rating_display` string, nullable
      - `check_in` string, date, nullable
      - `check_out` string, date, nullable
      - `nights` integer, nullable
      - `is_refundable` boolean, nullable
      - `locked_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
      - `locked_nightly` 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
      - `compare_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
      - `compare_nightly` 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
      - `compare_price_provider` string, nullable
      - `compare_price_source` string, nullable
      - `compare_price_source_display` string, nullable
      - `savings_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
      - `savings_percent` number, nullable — Fraction saved vs the comparison price, e.g. 0.22 = 22%.
      - `savings_percent_display` string, nullable
      - `free_cancellation_until` string, nullable
      - `customer_pay_by` string, nullable

## 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/7ffb16b1c40d/schema)
