image

Flight search returns offers. Each offer has a token. Flight details take that token and return the itinerary: direction, airports, times, duration, baggage, and a short summary. You cannot call details with an airport code. The token is the offer.

The token has to be at least 50 characters. It comes from GET /v1/booking/flights/search.

👉 To access this endpoint, you must obtain an API key: https://steadyapi.com/register


Authentication

Every call uses a Bearer token from your SteadyAPI dashboard.

Documentation:
https://docs.steadyapi.com/#authenticating-requests

headers = {
  'Authorization': 'Bearer YOUR_API_KEY'
}

Where this fits

Resolve airport names with GET /v1/booking/flights/autocomplete, then search with GET /v1/booking/flights/search. Copy token from the offer you want. This details call is the end of that chain. Hotel routes do not accept a flight token, and this route does not accept a hotel_id.


One flight offer

Endpoint: GET /v1/booking/flights/details

Documentation:
https://docs.steadyapi.com/#bookingcom-GETapi-v1-booking-flights-details

Parameters

  • token — required string from GET /v1/booking/flights/search. It must be at least 50 characters.
  • include_branded_fares — optional boolean, default true
  • skip_branded_fares — optional 0 or 1, default 1
  • language — optional, default en-us

token selects the offer. include_branded_fares defaults to true. skip_branded_fares defaults to 1, which skips branded fare offers, and 0 includes them. Those two flags are independent. language changes labels. A token shorter than 50 characters is rejected before the offer is loaded.

Python

import requests

url = "https://api.steadyapi.com/v1/booking/flights/details"
headers = {"Authorization": "Bearer YOUR_API_KEY"}

response = requests.get(url, headers=headers, params={
    "token": offer["token"],
    "language": "en-us",
})
response.raise_for_status()
body = response.json().get("body", {})

for segment in body.get("segments", []):
    depart = segment["departure"]["airport"]
    arrive = segment["arrival"]["airport"]
    print(
        segment.get("direction"),
        depart.get("code"),
        "to",
        arrive.get("code"),
        segment["departure"].get("time"),
    )

Annotated sample

{
  "trip_type": "ROUNDTRIP",
  "segments": [
    {
      "segment_number": 1,
      "direction": "outbound",
      "departure": {
        "airport": { "code": "CVG", "city_name": "Cincinnati" },
        "time": "2026-02-02T07:00:00"
      },
      "arrival": {
        "airport": { "code": "OKC", "city_name": "Oklahoma City" },
        "time": "2026-02-02T10:35:00"
      },
      "total_duration_minutes": 275
    }
  ]
}

Store trip_type and each segment’s direction, airport code, city_name, and time. The first segment is outbound. A later segment is return. total_duration_minutes is that segment, not the whole trip. body.summary has total_segments, total_legs, total_duration_minutes, airlines, and airports for the offer. Baggage is on baggage.cabin and baggage.checked. Legs are the individual flights inside a segment. You do not need offer_reference or flight_key for a normal display.


Practical use

Keep the search token intact. It is one long string. Trimming it, or sending a city code in its place, fails the 50-character check.

A round trip has more than one segment. Read direction so the return is not shown as a second outbound. summary.total_duration_minutes adds the segments. A single segment’s total_duration_minutes does not include the return.

The default skip_branded_fares is 1. Set it to 0 when you need branded fare rows. include_branded_fares can stay at its default of true while you do that.

👉 Get your API key and open an offer: https://steadyapi.com/register

How to Read TikTok Video Comments Using SteadyAPI Oct 05, 2026

How to Read TikTok Video Comments Using SteadyAPI

Read TikTok comments 20 at a time. Video 7106594312292453675 has 1269 comments. The next cursor is the string 20.

How to Search Rental Listings Using SteadyAPI Oct 14, 2026

How to Search Rental Listings Using SteadyAPI

Search rental listings by location. Show price.display, and move to the next page with offset.

How to Get an NHL Roster Using SteadyAPI Oct 12, 2026

How to Get an NHL Roster Using SteadyAPI

Load forwards, defensemen, and goalies for one NHL abbreviation. Player names are objects with a default field.

How to Find Vehicles for Sale Using SteadyAPI Oct 11, 2026

How to Find Vehicles for Sale Using SteadyAPI

Search vehicle listings by make, model, and ZIP. Price and mileage on each row are numbers.