---
title: "Fares, rates and partners"
description: "Which flight fares and hotel rates are bookable on wego.com, and which are not."
---

> Documentation Index
> Fetch the complete documentation index at: https://agents.wego.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Fares, rates and partners

A flight trip carries one or more fares, each with `kind` `"wego"`, `"airline"` or `"partner"`. Wego fares are bookable on wego.com and continue into `getFareOptions` (`/v1/flights/fares/{fareId}/options`, the fare's bookable options such as Saver and Flex; an option's id is its `fareOptionId`) and `getFareBookingLink` (`/v1/flights/fares/{fareId}/booking-link`). Airline and partner fares are fulfilled by the airline or the travel agency directly and do not work with the fare endpoints: `getFareOptions` rejects a non-wego `fareId` with a `400`. Every fare carries a `handoffUrl` on the trip read (`GET /v1/flights/trips/{tripId}`, `fares[].handoffUrl`), whatever its `kind`, so it is not what tells the kinds apart: on a wego fare it points at wego.com checkout, on the other two at the provider.

## One option, or one per leg

`getFareOptions` returns the options ordered by **leg first, then price within a leg**, so `options[0]` is the cheapest option of leg 1 rather than the cheapest of the fare. How many ids you carry into `getFareBookingLink` depends on what each option prices, which it states in `price.covers`:

- `"trip"` – the option covers the whole journey. Pass exactly one `fareOptionId`.
- `"leg"` – the option covers only its own leg, and its `legId` names which. Pass **one id per leg**, as a comma-separated `fareOptionId` (at most 8, none repeated, order irrelevant). The response's `legs[]` is the set to cover; it is present whenever every option carries a `legId` matching one of them, which is the case this branch describes.

Passing a single `"leg"` id is the failure worth knowing about, because nothing rejects it: the booking page opens on the whole round trip while pricing one leg of it, so the traveler sees a total that is not the trip's. `covers` is a **positive witness** – absent means the upstream did not let us attribute the option, never that it covers the trip.

For the trip total, read the response's own top-level `price`, which is the whole-trip price for the fare. Never sum the options and never take `min(options)`: one is wrong on a `"trip"` fare, the other on a `"leg"` one.

From the CLI, `wego flights fares <fareId>` lists them and `wego flights booking-link` takes `--fare-option` once per leg.

## Hotel rates

Hotel rates follow the same rule: everything `getHotelRates` (`/v1/hotels/{hotelId}/rates`) returns is bookable on wego.com, each rate carrying board and refundability fields plus a rate id for the checkout link.

Source: https://agents.wego.com/api/fares-rates-partners/index.mdx
