---
title: "Read a trip's experience signals"
method: GET
path: "/v1/flights/trips/{tripId}/experience"
tags: ["Flights"]
---

# Read a trip's experience signals

`GET /v1/flights/trips/{tripId}/experience`

Per-leg signals for what a journey is like to sit through: overnight, longStopover, earlyDeparture, lateArrival, plus positive-only witnesses for a tight connection, aircraft age and carrier rating. No score - Recommended sort ranks on the price-adjusted fare score, which one would not match.

## Path parameters

- `tripId` string, required

## Query parameters

- `searchId` string

## Response `200`

The trip's per-leg signals. A witness field that is absent was not asserted; it is not a negative.

- object
  - `tripId` string, required — The trip these signals are for.
  - `legs` object[], required — Per-leg comfort signals, in itinerary order (outbound first).
    - `id` string, required — The upstream leg id, e.g. `SIN-BKK:TR638~3:0`.
    - `departureAirportCode` string, required — Departure airport IATA code.
    - `arrivalAirportCode` string, required — Arrival airport IATA code.
    - `stopsCount` integer, required — Stopovers on this leg – what makes an absent shortStopover readable.
    - `signals` object, required — Per-leg comfort signals. newAircraft and highlyRatedCarrier are positive-only witnesses: present only when upstream asserts them, absent otherwise; absent is never a negative.
      - `overnight` boolean, required — The leg spans a night.
      - `longStopover` boolean, required — A stopover long enough to be a wait rather than a connection.
      - `earlyDeparture` boolean, required — Departs early enough to cost a night's sleep.
      - `lateArrival` boolean, required — Arrives late enough to cost one.
      - `shortStopover` true — A connection tight enough to be a risk. Omitted on a leg with no stopover: upstream reports every nonstop leg as a short stopover, which carries no information.
      - `newAircraft` true — Present only when asserted; absent means not asserted.
      - `highlyRatedCarrier` true — Present only when asserted; absent means not asserted.
  - `metadata` object, required — Trip-level experience metadata.
    - `legCount` integer, required — Legs on this trip: 1 one-way, 2 a return.

## Other responses

- `400` — Invalid request body/query/path parameters.
- `401` — Missing or invalid bearer token.
- `404` — Unknown trip, or its search has expired. Search again and re-open the trip - retrying the same id never recovers.
- `429` — Rate limit exceeded; retry after the `Retry-After` seconds.
- `502` — The upstream flights service returned an invalid response.
- `503` — The flights service is temporarily unavailable (`upstream_unavailable`) or rate-limited upstream (`upstream_rate_limited`); retry after the `Retry-After` seconds.

---

[API](https://skmtc.net/wego/apis/wego-api.md) · [All operations](https://skmtc.net/wego/apis/wego-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/wego/wego-api/revisions/e5d7af502419/schema)
