MENU navbar-image

🏨 Booking.com

Access booking.com data including location discovery, hotel searches, metadata, and comprehensive travel information. Unified travel intelligence API with normalized data from booking.com for travel applications, booking platforms, and travel tools.

Hotels & Details

Search and autocomplete destinations, cities, and locations with fast, real-time results.

GET /v1/hotels/autocomplete

requires authentication

Destination autocomplete suggestions using Booking.com API.

Example request:
import requests
import json

url = 'https://api.steadyapi.com/v1/booking/hotels/autocomplete'
params = {
  'search': 'oklah',
  'language': 'en-us',
}
headers = {
  'Authorization': 'Bearer {YOUR_AUTH_KEY}'
}

response = requests.request('GET', url, headers=headers, params=params)
response.json()
$client = new \GuzzleHttp\Client();
$url = 'https://api.steadyapi.com/v1/booking/hotels/autocomplete';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
        ],
        'query' => [
            'search' => 'oklah',
            'language' => 'en-us',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
const url = new URL(
    "https://api.steadyapi.com/v1/booking/hotels/autocomplete"
);

const params = {
    "search": "oklah",
    "language": "en-us",
};
Object.keys(params)
    .forEach(key => url.searchParams.append(key, params[key]));

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
curl --request GET \
    --get "https://api.steadyapi.com/v1/booking/hotels/autocomplete?search=oklah&language=en-us" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}"

Example response (200, Success):


{
    "meta": {
      "version": "v1.0",
      "status": 200,
      "copywrite": "https://steadyapi.com",
      "query": "Oklahoma",
      "language": "en-us",
      "limit": 10,
      "total": 10,
      "timestamp": 1769201089000
    },
    "body": [
      {
        "id": "city/20014181",
        "type": "CITY",
        "name": "Los Angeles",
        "full_name": "Los Angeles, United States",
        "subtitle": "United States",
        "country_code": "us",
        "destination_id": "20014181",
        "coordinates": {
          "latitude": 0,
          "longitude": 0
        },
        "image_url": "https://www.booking.comhttps://cf.bstatic.com/xdata/images/city/square250/977423.jpg?k=0193bafd576ab928da833eda51d335337b2852f314b1496c4874fccdaedf863f&o=",
        "label_components": [],
        "metadata": {
          "language_code": "xu",
          "max_stay": 90,
          "eligible_pages": [],
          "is_ski_destination": false,
          "source": "RECP"
        },
        "city": "Los Angeles"
      },
      { ... }
    ]
  }
 

Example response (401, Unauthenticated):


{
    "message": "Unauthenticated."
}
 

Example response (404, Not Found):


{
    "success": false,
    "message": "Resource Not Found"
}
 

Example response (422, Error Validations):


{
    "message": "The ticker field is required.",
    "errors": {
        "ticker": [
            "The ticker field is required."
        ]
    }
}
 

Request      

GET v1/booking/hotels/autocomplete

Headers

Authorization Bearer {YOUR_AUTH_KEY}

Query Parameters

Parameter Type Description
search required string

Search term for destination. Example: oklah

language optional string

optional Language code (default: en-us). Example: en-us

GET /v1/hotels/search-by-coordinates

requires authentication

Search for hotels/properties by geographic coordinates.

Example request:
import requests
import json

url = 'https://api.steadyapi.com/v1/booking/hotels/search-by-coordinates'
params = {
  'latitude': '35.458611',
  'longitude': '-97.600556',
  'radius': '10',
  'checkin': '2026-01-24',
  'checkout': '2026-01-27',
  'adults': '2',
  'children_ages': '5,8',
  'language': 'en-us',
  'min_price': '50',
  'max_price': '300',
}
headers = {
  'Authorization': 'Bearer {YOUR_AUTH_KEY}'
}

response = requests.request('GET', url, headers=headers, params=params)
response.json()
$client = new \GuzzleHttp\Client();
$url = 'https://api.steadyapi.com/v1/booking/hotels/search-by-coordinates';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
        ],
        'query' => [
            'latitude' => '35.458611',
            'longitude' => '-97.600556',
            'radius' => '10',
            'checkin' => '2026-01-24',
            'checkout' => '2026-01-27',
            'adults' => '2',
            'children_ages' => '5,8',
            'language' => 'en-us',
            'min_price' => '50',
            'max_price' => '300',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
const url = new URL(
    "https://api.steadyapi.com/v1/booking/hotels/search-by-coordinates"
);

const params = {
    "latitude": "35.458611",
    "longitude": "-97.600556",
    "radius": "10",
    "checkin": "2026-01-24",
    "checkout": "2026-01-27",
    "adults": "2",
    "children_ages": "5,8",
    "language": "en-us",
    "min_price": "50",
    "max_price": "300",
};
Object.keys(params)
    .forEach(key => url.searchParams.append(key, params[key]));

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
curl --request GET \
    --get "https://api.steadyapi.com/v1/booking/hotels/search-by-coordinates?latitude=35.458611&longitude=-97.600556&radius=10&checkin=2026-01-24&checkout=2026-01-27&adults=2&children_ages=5%2C8&language=en-us&min_price=50&max_price=300" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}"

Example response (200, Success):


{
    "meta": {
      "version": "v1.0",
      "status": 200,
      "copywrite": "https://steadyapi.com",
      "latitude": "35.458611",
      "longitude": "-97",
      "radius_km": "10",
      "checkin": "2026-01-24",
      "checkout": "2026-01-30",
      "adults": 2,
      "children": 0,
      "rooms": 1,
      "language": "en-us",
      "map_markers": [
        {
          "id": 20103163,
          "name": "Meeker",
          "coordinates": {
            "latitude": 35.5032997131348,
            "longitude": -96.9024963378906
          }
        }
      ]
    },
    "body": [
      {
        "hotel_id": 521256,
        "name": "Super 8 by Wyndham Shawnee",
        "accommodation_type": 204,
        "ufi": 20103613,
        "page_name": "super-8-shawnee",
        "location": {
          "address": "4900 North Harrison Street",
          "formatted_address": "4900 North Harrison Street, Shawnee, OK",
          "country_code": "us",
          "coordinates": {
            "latitude": 35.385774,
            "longitude": -96.91233
          },
          "beach_distance": null,
          "main_distance": null,
          "nearby_beach_names": [],
          "location_score": 7.4,
          "location_formatted_score": "7.4",
          "location_text": "Location"
        },
        "photos": {
          "low_res": "https://cf.bstatic.com/xdata/images/hotel/square240/156624265.webp?k=b39c258f54277e16e2f7681049c62e3853ea5957219da119a6e09d34029781e7&o=",
          "high_res": "https://cf.bstatic.com/xdata/images/hotel/square600/156624265.webp?k=b39c258f54277e16e2f7681049c62e3853ea5957219da119a6e09d34029781e7&o="
        },
        "ratings": { ... },
        "availability": { ... },
        "policies": { ... },
        "price_info": {
          "display_price": {
            "copy": "Total",
            "amount_per_stay": {
              "amount": "$309.60",
              "amount_rounded": "$310",
              "amount_unformatted": 309.6,
              "currency": "USD"
            }
          },
          "average_price_per_night": {
            "amount": "$51.60",
            "amount_rounded": "$52",
            "amount_unformatted": 51.6000000000001,
            "currency": "USD"
          },
          "price_before_discount": {
            "copy": "Original price",
            "amount_per_stay": {
              "amount": "$387",
              "amount_rounded": "$387",
              "amount_unformatted": 387,
              "currency": "USD"
            }
          },
          "discounts": [
            {
              "name": "Early 2026 Deal",
              "description": "This property is offering a discount on stays between Jan 1 and Apr 1 2026.",
              "item_type": "rate",
              "product_id": "campaign_37_rate_plan",
              "amount": {
                "amount": "$77.40",
                "amount_rounded": "$77",
                "amount_unformatted": 77.4000000000001,
                "currency": "USD"
              }
            }
          ],
          "badges": [
            {
              "name": "Early 2026 Deal",
              "tooltip": "This property is offering a discount on stays between Jan 1 and Apr 1 2026.",
              "style": "constructive",
              "identifier": "Early Year Deals"
            }
          ],
          "charges_info": null,
          "excluded_charges": {
            "aggregated": {
              "copy": null,
              "amount_per_stay": {
                "amount": "$46.44",
                "amount_rounded": "$46",
                "amount_unformatted": 46.4400000000001,
                "currency": "USD"
              }
            },
            "list": [
              {
                "charge_type": 23,
                "charge_mode": "PERCENTAGE",
                "charge_inclusion": "EXCLUDED",
                "amount_per_stay": {
                  "amount": "$46.44",
                  "amount_rounded": "$46",
                  "amount_unformatted": 46.4400000000001,
                  "currency": "USD"
                }
              }
            ]
          },
          "use_rounded_amount": false
        },
        "room_blocks": 1,
        "meal_plan": {
          "type": "MEAL_PLAN",
          "text": "Breakfast included"
        },
        "genius_info": { ... },
        "persuasion_flags": { ... },
        "recommended_dates": { ... }
      },
      { ... }
    ]
  }
 

Example response (401, Unauthenticated):


{
    "message": "Unauthenticated."
}
 

Example response (404, Not Found):


{
    "success": false,
    "message": "Resource Not Found"
}
 

Example response (422, Error Validations):


{
    "message": "The ticker field is required.",
    "errors": {
        "ticker": [
            "The ticker field is required."
        ]
    }
}
 

Request      

GET v1/booking/hotels/search-by-coordinates

Headers

Authorization Bearer {YOUR_AUTH_KEY}

Query Parameters

Parameter Type Description
latitude required string

numeric Latitude coordinate. Example: 35.458611

longitude required string

numeric Longitude coordinate. Example: -97.600556

radius optional integer

optional Search radius in kilometers (default: 10). Example: 10

checkin optional string

optional Check-in date (YYYY-MM-DD). Example: 2026-01-24

checkout optional string

optional Check-out date (YYYY-MM-DD). Example: 2026-01-27

adults optional integer

optional Number of adults (default: 2). Example: 2

children optional integer

optional Number of children (default: 0).

rooms optional integer

optional Number of rooms (default: 1).

children_ages optional string

optional Comma-separated ages of children. Example: 5,8

language optional string

optional Language code (default: en-us). Example: en-us

min_price optional integer

optional Minimum price per night. Example: 50

max_price optional integer

optional Maximum price per night. Example: 300

stars optional integer[]

optional Star ratings filter (comma-separated).

limit optional integer

optional Maximum number of results (default: 20, max: 50).

page optional integer

optional Page number for pagination (default: 1).

GET /v1/hotels/details

requires authentication

Get comprehensive details for a specific hotel/property.

Example request:
import requests
import json

url = 'https://api.steadyapi.com/v1/booking/hotels/details'
params = {
  'hotel_id': '2572691',
  'checkin': '2026-01-24',
  'checkout': '2026-01-27',
  'adults': '2',
  'children': '0',
  'rooms': '1',
  'children_ages': '5,8',
  'language': 'en-us',
}
headers = {
  'Authorization': 'Bearer {YOUR_AUTH_KEY}'
}

response = requests.request('GET', url, headers=headers, params=params)
response.json()
$client = new \GuzzleHttp\Client();
$url = 'https://api.steadyapi.com/v1/booking/hotels/details';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
        ],
        'query' => [
            'hotel_id' => '2572691',
            'checkin' => '2026-01-24',
            'checkout' => '2026-01-27',
            'adults' => '2',
            'children' => '0',
            'rooms' => '1',
            'children_ages' => '5,8',
            'language' => 'en-us',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
const url = new URL(
    "https://api.steadyapi.com/v1/booking/hotels/details"
);

const params = {
    "hotel_id": "2572691",
    "checkin": "2026-01-24",
    "checkout": "2026-01-27",
    "adults": "2",
    "children": "0",
    "rooms": "1",
    "children_ages": "5,8",
    "language": "en-us",
};
Object.keys(params)
    .forEach(key => url.searchParams.append(key, params[key]));

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
curl --request GET \
    --get "https://api.steadyapi.com/v1/booking/hotels/details?hotel_id=2572691&checkin=2026-01-24&checkout=2026-01-27&adults=2&children=0&rooms=1&children_ages=5%2C8&language=en-us" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}"

Example response (200, Success):


{
    "meta": {
      "version": "v1.0",
      "status": 200,
      "copywrite": "https://steadyapi.com",
      "hotel_id": "2572691",
      "checkin": "2026-01-25",
      "checkout": "2026-01-28",
      "adults": 2,
      "children": 0,
      "rooms": 1,
      "language": "en-us",
      "currency": "USD"
    },
    "body": {
      "hotel_id": 2572691,
      "name": "La Quinta by Wyndham Oklahoma City Airport",
      "accommodation_type": 204,
      "ufi": 20103321,
      "page_name": "la-quinta-inn-suites-oklahoma-city-airport",
      "location": {
        "address": "808 S Meridian Ave",
        "formatted_address": "808 S Meridian Ave, Oklahoma City, OK",
        "country_code": "us",
        "coordinates": {
          "latitude": 35.458611,
          "longitude": -97.600556
        },
        "beach_distance": null,
        "main_distance": null,
        "nearby_beach_names": [],
        "location_score": 8.7,
        "location_formatted_score": "8.7",
        "location_text": "Location"
      },
      "photos": {
        "low_res": "https://cf.bstatic.com/xdata/images/hotel/square240/226690967.webp?k=8288ed35831fb235a9a93b3042d933358718d9eee2ed99243ef3deef6ccefd92&o=",
        "high_res": "https://cf.bstatic.com/xdata/images/hotel/square600/226690967.webp?k=8288ed35831fb235a9a93b3042d933358718d9eee2ed99243ef3deef6ccefd92&o="
      },
      "ratings": {
        "internal": {
          "score": 8.2,
          "count": 753,
          "total_score_text": "Very Good",
          "secondary_score": 0,
          "secondary_text": null,
          "show_secondary_score": false
        },
        "external": { ... },
        "star_rating": { ... }
      },
      "availability": {
        "is_sold_out": false,
        "alternative_dates": [],
        "is_newly_opened": false,
        "is_tpi_exclusive": false
      },
      "policies": {
        "free_cancellation": false,
        "no_prepayment": true
      },
      "price_info": {
        "display_price": {
          "copy": "Total",
          "amount_per_stay": {
            "amount": "$196.80",
            "amount_rounded": "$197",
            "amount_unformatted": 196.8,
            "currency": "USD"
          }
        },
        "average_price_per_night": {
          "amount": "$65.60",
          "amount_rounded": "$66",
          "amount_unformatted": 65.6000000000001,
          "currency": "USD"
        },
        "price_before_discount": {
          "copy": "Original price",
          "amount_per_stay": {
            "amount": "$246",
            "amount_rounded": "$246",
            "amount_unformatted": 246,
            "currency": "USD"
          }
        },
        "discounts": [ ... ],
        "badges": [ ... ],
        "charges_info": null,
        "excluded_charges": { ... },
        "use_rounded_amount": false
      },
      "room_blocks": [ ... ],
      "unit_configurations": { ... },
      "genius_info": { ... },
      "persuasion_flags": {
        "preferred": true,
        "preferred_plus": false,
        "highlighted": false,
        "show_native_ad_label": false
      },
      "meal_plan": {
        "type": "MEAL_PLAN",
        "text": "Breakfast included"
      },
      "recommended_dates": { ... }
    }
  }
 

Example response (401, Unauthenticated):


{
    "message": "Unauthenticated."
}
 

Example response (404, Not Found):


{
    "success": false,
    "message": "Resource Not Found"
}
 

Example response (422, Error Validations):


{
    "message": "The ticker field is required.",
    "errors": {
        "ticker": [
            "The ticker field is required."
        ]
    }
}
 

Request      

GET v1/booking/hotels/details

Headers

Authorization Bearer {YOUR_AUTH_KEY}

Query Parameters

Parameter Type Description
hotel_id required integer

Booking.com hotel ID. Example: 2572691

checkin optional string

optional Check-in date (YYYY-MM-DD). Example: 2026-01-24

checkout optional string

optional Check-out date (YYYY-MM-DD). Example: 2026-01-27

adults optional integer

optional Number of adults (default: 2). Example: 2

children optional integer

optional Number of children (default: 0). Example: 0

rooms optional integer

optional Number of rooms (default: 1). Example: 1

children_ages optional string

optional Comma-separated ages of children. Example: 5,8

language optional string

optional Language code (default: en-us). Example: en-us

GET /v1/hotels/rooms

requires authentication

Get detailed room information including photos, bed configurations, facilities, privacy levels, and room-specific review scores.

Example request:
import requests
import json

url = 'https://api.steadyapi.com/v1/booking/hotels/rooms'
params = {
  'hotel_id': '2572691',
  'language': 'en-us',
  'rooms': '1',
  'adults': '2',
}
headers = {
  'Authorization': 'Bearer {YOUR_AUTH_KEY}'
}

response = requests.request('GET', url, headers=headers, params=params)
response.json()
$client = new \GuzzleHttp\Client();
$url = 'https://api.steadyapi.com/v1/booking/hotels/rooms';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
        ],
        'query' => [
            'hotel_id' => '2572691',
            'language' => 'en-us',
            'rooms' => '1',
            'adults' => '2',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
const url = new URL(
    "https://api.steadyapi.com/v1/booking/hotels/rooms"
);

const params = {
    "hotel_id": "2572691",
    "language": "en-us",
    "rooms": "1",
    "adults": "2",
};
Object.keys(params)
    .forEach(key => url.searchParams.append(key, params[key]));

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
curl --request GET \
    --get "https://api.steadyapi.com/v1/booking/hotels/rooms?hotel_id=2572691&language=en-us&rooms=1&adults=2" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}"

Example response (200, Success):


{
    "meta": {
      "version": "v1.0",
      "status": 200,
      "copywrite": "https://steadyapi.com",
      "hotel_id": "2572691",
      "language": "en-us",
      "total_rooms": 8,
      "search_config": {
        "rooms": 1,
        "adults": 2,
        "children": 0,
        "children_ages": [],
        "travel_reason": "LEISURE"
      },
      "has_review_scores": true,
      "timestamp": 1769321456000
    },
    "body": {
      "property": {
        "id": 2572691,
        "name": "La Quinta by Wyndham Oklahoma City Airport",
        "accommodation_type": {
          "type": "HOTEL",
          "__typename": "PropertyType",
          "id": 204
        },
        "has_designated_smoking_area": false,
        "area_measurement_unit": "SQUARE_FEET",
        "has_rooms_with_different_privacy_levels": false
      },
      "rooms": [
        {
          "id": 257269101,
          "hotel_id": "2572691",
          "room_type_id": 13,
          "name": "Queen Room with Two Queen Beds",
          "description": "Providing free toiletries, this family room includes a private bathroom with a bath, a shower and a hairdryer. This family room is air-conditioned and features a flat-screen TV, a tea and coffee maker, a wardrobe and a tiled floor. The unit offers 2 beds.",
          "size": {
            "square_meters": 27.87,
            "is_bigger_than_average": false
          },
          "privacy_level": 1,
          "occupancy": {
            "max_guests": 5,
            "max_persons": 5,
            "max_children": 4
          },
          "bed_configurations": [
            {
              "id": 1,
              "beds": [
                {
                  "type": "LARGE_DOUBLE_BED",
                  "count": 2,
                  "translation": "Queen bed(s)"
                }
              ]
            }
          ],
          "apartment_rooms": [],
          "bathrooms": {
            "count": 0,
            "facilities": {
              "is_ensuite_bathroom": false,
              "is_external_bathroom": false
            }
          },
          "smoking_policy": {
            "is_smoking": false,
            "has_designated_area": null
          },
          "photos": [
            {
              "id": 264839682,
              "url": "https://cf.bstatic.com/xdata/images/hotel/max1024x768/264839682.jpg?k=846be3ceef43d15efddf71f8c24167eea96127b3a2a0e31860e61899e557505e&o=",
              "thumbnail_url": "https://cf.bstatic.com/xdata/images/hotel/square60/264839682.jpg?k=846be3ceef43d15efddf71f8c24167eea96127b3a2a0e31860e61899e557505e&o="
            },
            { ... }
          ],
          "facilities": [
            {
              "category": "BATHROOM_PRIVATE",
              "facilities": [
                {
                  "id": 5,
                  "name": "Bathtub"
                },
                {
                  "id": 27,
                  "name": "Free toiletries"
                },
                { ... }
              ]
            },
            {
              "category": "OTHER",
              "facilities": [
                {
                  "id": 11,
                  "name": "Air conditioning"
                },
                {
                  "id": 125,
                  "name": "Linens"
                },
                { ... }
              ]
            }
          ],
          "highlights": {
            "privacy": "PRIVACY_LEVEL_1",
            "size": 300,
            "room_facilities": [
              {
                "id": 5,
                "name": "Bathtub"
              },
              { ... }
            ],
            "hotel_facilities": [ ... ]
          },
          "cribs": {
            "available_for_free": true
          },
          "metadata": {
            "total_photos": 8,
            "has_multiple_bed_configs": false,
            "has_apartment_layout": false,
            "privacy_type": "unknown"
          }
        },
        { ... }
      ],
      "facilities_summary": { ... },
      "review_scores": [ ... ]
    }
  }
 

Example response (401, Unauthenticated):


{
    "message": "Unauthenticated."
}
 

Example response (404, Not Found):


{
    "success": false,
    "message": "Resource Not Found"
}
 

Example response (422, Error Validations):


{
    "message": "The ticker field is required.",
    "errors": {
        "ticker": [
            "The ticker field is required."
        ]
    }
}
 

Request      

GET v1/booking/hotels/rooms

Headers

Authorization Bearer {YOUR_AUTH_KEY}

Query Parameters

Parameter Type Description
hotel_id required integer

Booking.com hotel ID. Example: 2572691

language optional string

optional Language code (default: en-us). Example: en-us

rooms optional integer

optional Number of rooms (default: 1). Example: 1

adults optional integer

optional Number of adults (default: 2). Example: 2

children optional integer

optional Number of children (default: 0).

children_ages optional string

optional Comma-separated children ages (e.g., "5,8").

travel_reason optional string

optional Travel reason: LEISURE, BUSINESS (default: LEISURE).

include_review_scores optional boolean

optional Include room review scores (default: true).

review_questions optional string

optional Comma-separated review questions (e.g., "bed_comfort,cleanliness").

customer_type optional string

optional Customer type: ALL, FAMILY, COUPLE, SOLO, BUSINESS, FRIENDS (default: ALL).

GET /v1/hotels/availability

requires authentication

Get availability and pricing calendar for a hotel showing available dates, prices, and minimum stay requirements over a specified period.

Example request:
import requests
import json

url = 'https://api.steadyapi.com/v1/booking/hotels/availability'
params = {
  'hotel_id': '2572691',
  'start_date': '',
  'days': '7',
  'language': 'en-us',
  'children_ages': '5,8',
}
headers = {
  'Authorization': 'Bearer {YOUR_AUTH_KEY}'
}

response = requests.request('GET', url, headers=headers, params=params)
response.json()
$client = new \GuzzleHttp\Client();
$url = 'https://api.steadyapi.com/v1/booking/hotels/availability';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
        ],
        'query' => [
            'hotel_id' => '2572691',
            'start_date' => '',
            'days' => '7',
            'language' => 'en-us',
            'children_ages' => '5,8',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
const url = new URL(
    "https://api.steadyapi.com/v1/booking/hotels/availability"
);

const params = {
    "hotel_id": "2572691",
    "start_date": "",
    "days": "7",
    "language": "en-us",
    "children_ages": "5,8",
};
Object.keys(params)
    .forEach(key => url.searchParams.append(key, params[key]));

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
curl --request GET \
    --get "https://api.steadyapi.com/v1/booking/hotels/availability?hotel_id=2572691&start_date=&days=7&language=en-us&children_ages=5%2C8" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}"

Example response (200, Success):


{
    "meta": {
      "version": "v1.0",
      "status": 200,
      "copywrite": "https://steadyapi.com",
      "hotel_id": "2572691",
      "hotel_name": "la-quinta-inn-suites-oklahoma-city-airport",
      "language": "en-us",
      "country_code": "us",
      "has_availability": true,
      "period": {
        "start_date": "2026-01-01",
        "end_date": "2026-03-02",
        "days_requested": 60
      },
      "search_config": {
        "adults": 2,
        "rooms": 1,
        "children": 0,
        "travel_purpose": 2
      },
      "timestamp": 1769326227000
    },
    "body": {
      "calendar": [
        {
          "date": "2026-01-01",
          "available": true,
          "checkin": "2026-02-10",
          "price_formatted": "$74",
          "min_stay": 1,
          "is_past_date": true
        },
        { ... }
      ],
      "summary": {
        "total_days": 60,
        "available_days": 60,
        "available_percentage": 100
      }
    }
  }
 

Example response (401, Unauthenticated):


{
    "message": "Unauthenticated."
}
 

Example response (404, Not Found):


{
    "success": false,
    "message": "Resource Not Found"
}
 

Example response (422, Error Validations):


{
    "message": "The ticker field is required.",
    "errors": {
        "ticker": [
            "The ticker field is required."
        ]
    }
}
 

Request      

GET v1/booking/hotels/availability

Headers

Authorization Bearer {YOUR_AUTH_KEY}

Query Parameters

Parameter Type Description
hotel_id required integer

Booking.com hotel ID. Example: 2572691

start_date required string

date Start date in YYYY-MM-DD format.

days optional integer

optional Number of days to check (default: 28, min: 1, max: 90). Example: 7

language optional string

optional Language code (default: en-us). Example: en-us

adults optional integer

optional Number of adults (default: 2, min: 1).

rooms optional integer

optional Number of rooms (default: 1, min: 1, max: 10).

children optional integer

optional Number of children (default: 0).

children_ages optional string

optional Comma-separated list of children ages. Example: 5,8

travel_purpose optional integer

optional Travel purpose: 1=leisure, 2=business (default: 2).

GET /v1/hotels/reviews

requires authentication

Retrieve hotel reviews with filtering, sorting, and pagination using Booking.com API.

Example request:
import requests
import json

url = 'https://api.steadyapi.com/v1/booking/hotels/reviews'
params = {
  'hotel_id': '2572691',
  'language': 'en-us',
  'sort': 'NEWEST_FIRST',
  'score': '4',
  'topic': 'clean',
}
headers = {
  'Authorization': 'Bearer {YOUR_AUTH_KEY}'
}

response = requests.request('GET', url, headers=headers, params=params)
response.json()
$client = new \GuzzleHttp\Client();
$url = 'https://api.steadyapi.com/v1/booking/hotels/reviews';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
        ],
        'query' => [
            'hotel_id' => '2572691',
            'language' => 'en-us',
            'sort' => 'NEWEST_FIRST',
            'score' => '4',
            'topic' => 'clean',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
const url = new URL(
    "https://api.steadyapi.com/v1/booking/hotels/reviews"
);

const params = {
    "hotel_id": "2572691",
    "language": "en-us",
    "sort": "NEWEST_FIRST",
    "score": "4",
    "topic": "clean",
};
Object.keys(params)
    .forEach(key => url.searchParams.append(key, params[key]));

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
curl --request GET \
    --get "https://api.steadyapi.com/v1/booking/hotels/reviews?hotel_id=2572691&language=en-us&sort=NEWEST_FIRST&score=4&topic=clean" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}"

Example response (200, Success):


{
    "meta": {
      "version": "v1.0",
      "status": 200,
      "copywrite": "https://steadyapi.com",
      "hotel_id": "2572691",
      "language": "en-us",
      "total_reviews": 755,
      "has_reviews": true,
      "pagination": {
        "skip": "10",
        "limit": 10,
        "total": 755,
        "has_more": true,
        "next_skip": 20
      },
      "sort_options": [
        {
          "value": "MOST_RELEVANT",
          "name": "Most relevant"
        },
        {
          "value": "NEWEST_FIRST",
          "name": "Newest first"
        },
        {
          "value": "OLDEST_FIRST",
          "name": "Oldest first"
        },
        {
          "value": "SCORE_DESC",
          "name": "Highest scores"
        },
        {
          "value": "SCORE_ASC",
          "name": "Lowest scores"
        }
      ],
      "current_sort": "NEWEST_FIRST",
      "score": "ALL",
      "timestamp": 1769301171000
    },
    "body": {
      "reviews": [
        {
        "id": "134cd3fee145284f85950605d23d39db",
        "hotel_id": "2572691",
        "review_url": "7a7956e20eca73cd",
        "guest": {
            "username": "Scott",
            "is_anonymous": false,
            "country": {
            "code": "us",
            "name": "United States",
            "show_flag": true
            },
            "avatar": {
            "url": "https://graph.facebook.com/v2.9/10207316841399212/picture?type=square&height=64&width=64",
            "color": null
            },
            "guest_type": "Solo traveler"
        },
        "booking": {
            "customer_type": "SOLO_TRAVELLERS",
            "room": {
            "id": 257269102,
            "type": "King Room"
            },
            "stay_dates": {
            "checkin": "2025-11-08",
            "checkout": "2025-11-09"
            },
            "nights": 1,
            "status": "stayed"
        },
        "text": {
            "title": null,
            "positive": "An Amazing bed, great shower, great bathroom, plenty of room, great room. The breakfast was excellent.",
            "negative": "The landscape needs a little help, and please dump the outdoor trash cans.",
            "language": "xu",
            "is_translatable": false
        },
        "score": {
            "overall": 9,
            "breakdown": null
        },
        "dates": {
            "reviewed": 1767242551,
            "stay": {
            "month": null,
            "year": null
            }
        },
        "metrics": {
            "helpful_votes": 0,
            "is_approved": true
        },
        "photos": [],
        "partner_reply": {
            "reply": "Thank you for taking the time to share your feedback. We’re delighted to hear that you enjoyed the bed, room, bathroom, shower, and our breakfast—your kind words mean a lot to our team.\n\nWe also appreciate you bringing the landscaping and outdoor trash cans to our attention. Your comments have been noted, and we will address these areas to ensure an improved experience for future guests. We hope to have the opportunity to welcome you back again."
        },
        "highlights": {
            "positive": [],
            "negative": []
        }
        },
        { ... }
      ],
      "summary": [
        {
          "category": "hotel_staff",
          "translation": "Staff",
          "score": 8.39221096038818,
          "average_range": {
            "ufiScoreHigherBound": 9.43247509002686,
            "ufiScoreLowerBound": 7.39169979095459
          }
        },
        { ... }
      ],
      "filters": { ... },
      "stats": {
        "average_score": null,
        "distribution": [
          {
            "score": "ALL",
            "name": "All (755)",
            "count": 755
          },
          {
            "score": "REVIEW_ADJ_SUPERB",
            "name": "Wonderful: 9+ (436)",
            "count": 436
          },
          { ... }
        ]
      }
    }
  }
 

Example response (401, Unauthenticated):


{
    "message": "Unauthenticated."
}
 

Example response (404, Not Found):


{
    "success": false,
    "message": "Resource Not Found"
}
 

Example response (422, Error Validations):


{
    "message": "The ticker field is required.",
    "errors": {
        "ticker": [
            "The ticker field is required."
        ]
    }
}
 

Request      

GET v1/booking/hotels/reviews

Headers

Authorization Bearer {YOUR_AUTH_KEY}

Query Parameters

Parameter Type Description
hotel_id required integer

Booking.com hotel ID. Example: 2572691

language optional string

optional Language code (default: en-us). Example: en-us

sort optional string

optional Sort order: NEWEST_FIRST, MOST_RELEVANT, HIGHEST_SCORE_FIRST, LOWEST_SCORE_FIRST (default: NEWEST_FIRST). Example: NEWEST_FIRST

skip optional integer

optional Number of reviews to skip for pagination (default: 0).

limit optional integer

optional Number of reviews per page (default: 10, max: 50).

text optional string

optional Filter reviews containing specific text.

score optional string

optional Filter by score: 1=very_poor, 2=poor, 3=average, 4=good, 5=superb. Example: 4

topic optional string

optional Topics: breakfast,clean,room,airport,parking,safe,dog or IDs. Example: clean

guest_type optional string

optional Filter by guest type: FAMILY, COUPLE, SOLO, BUSINESS, FRIENDS.

GET /v1/hotels/nearby-attractions

requires authentication

Get detailed information about what's nearby a hotel including airports, landmarks, restaurants, beaches, public transport, and natural attractions.

Example request:
import requests
import json

url = 'https://api.steadyapi.com/v1/booking/hotels/nearby-attractions'
params = {
  'hotel_id': '2572691',
  'language': 'en-us',
}
headers = {
  'Authorization': 'Bearer {YOUR_AUTH_KEY}'
}

response = requests.request('GET', url, headers=headers, params=params)
response.json()
$client = new \GuzzleHttp\Client();
$url = 'https://api.steadyapi.com/v1/booking/hotels/nearby-attractions';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
        ],
        'query' => [
            'hotel_id' => '2572691',
            'language' => 'en-us',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
const url = new URL(
    "https://api.steadyapi.com/v1/booking/hotels/nearby-attractions"
);

const params = {
    "hotel_id": "2572691",
    "language": "en-us",
};
Object.keys(params)
    .forEach(key => url.searchParams.append(key, params[key]));

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
curl --request GET \
    --get "https://api.steadyapi.com/v1/booking/hotels/nearby-attractions?hotel_id=2572691&language=en-us" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}"

Example response (200, Success):


{
    "meta": {
      "version": "v1.0",
      "status": 200,
      "copywrite": "https://steadyapi.com",
      "hotel_id": "2572691",
      "language": "en-us",
      "has_surroundings": true,
      "categories_found": [
        "airports",
        "dining",
        "landmarks",
        "public_transport",
        "natural_beauty"
      ],
      "category_counts": {
        "airports": 1,
        "dining": 2,
        "landmarks": 2,
        "public_transport": 3,
        "natural_beauty": 5
      },
      "include_ski": false,
      "include_commute": false,
      "timestamp": 1769319132000
    },
    "body": {
      "attractions": {
        "airports": [
          {
            "id": "67559",
            "legacy_id": 207,
            "name": "Will Rogers World Airport",
            "type": "airport",
            "geo_class": "Airports",
            "location": {
              "latitude": 35.3953,
              "longitude": -97.5962
            },
            "distance": {
              "raw": 5.238,
              "localized": "3.3 mi"
            },
            "real_distance": {
              "isIsolated": false,
              "commuteTime": {
                "byCarLocalized": "7 min",
                "byFootLocalized": "1 hr 17 min"
              },
              "commuteDistance": {
                "byCarLocalized": "4.7 mi",
                "byCarMeters": 7512,
                "byFootMeters": 6472,
                "byFootLocalized": "4 mi"
              }
            },
            "commute": null,
            "metadata": {
              "has_commute_info": true,
              "is_isolated": false
            }
          }
        ],
        "dining": { ... },
        "landmarks": { ... },
        "public_transport": { ... },
        "natural_beauty": { ... }
      },
      "summary": {
        "total_categories": 5,
        "total_items": 17,
        "closest_item": {
          "id": "8348708",
          "name": "Maple Korean BBQ",
          "type": "restaurant",
          "geo_class": "Restaurants",
          "cuisine_type": null,
          "location": {
            "latitude": 35.45921,
            "longitude": -97.59996
          },
          "distance": {
            "raw": 0.085,
            "localized": "250 ft"
          },
          "real_distance": {
            "commuteDistance": {
              "byFootLocalized": "600 ft",
              "byCarLocalized": "650 ft",
              "byCarMeters": 207,
              "byFootMeters": 193
            },
            "commuteTime": {
              "byFootLocalized": "2 min",
              "byCarLocalized": "1 min"
            },
            "isIsolated": false
          },
          "commute": null,
          "metadata": {
            "has_commute_info": true,
            "is_isolated": false
          }
        }
      }
    }
  }
 

Example response (401, Unauthenticated):


{
    "message": "Unauthenticated."
}
 

Example response (404, Not Found):


{
    "success": false,
    "message": "Resource Not Found"
}
 

Example response (422, Error Validations):


{
    "message": "The ticker field is required.",
    "errors": {
        "ticker": [
            "The ticker field is required."
        ]
    }
}
 

Request      

GET v1/booking/hotels/nearby-attractions

Headers

Authorization Bearer {YOUR_AUTH_KEY}

Query Parameters

Parameter Type Description
hotel_id required integer

Booking.com hotel ID. Example: 2572691

language optional string

optional Language code (default: en-us). Example: en-us

include_ski optional boolean

optional Include ski surroundings (default: false).

include_commute optional boolean

optional Include commute information (default: false).

max_airports optional integer

optional Max airports to return (default: 3).

max_airport_distance optional integer

optional Max distance for airports in km (default: 100).

max_landmarks optional integer

optional Max landmarks to return (default: 10).

max_landmark_distance optional integer

optional Max distance for landmarks in km (default: 20).

max_restaurants optional integer

optional Max restaurants to return (default: 3).

max_restaurant_distance optional integer

optional Max distance for restaurants in km (default: 50).

max_beaches optional integer

optional Max beaches to return (default: 5).

max_beach_distance optional integer

optional Max distance for beaches in km (default: 10).

max_transport optional integer

optional Max transport stations to return (default: 2).

max_transport_distance optional integer

optional Max distance for transport in km (default: 20).

max_natural optional integer

optional Max natural attractions to return (default: 1).

max_natural_distance optional integer

optional Max distance for natural attractions in km (default: 15).

GET /v1/hotels/faq

requires authentication

Get frequently asked questions for a specific hotel from Booking.com.

Example request:
import requests
import json

url = 'https://api.steadyapi.com/v1/booking/hotels/faq'
params = {
  'hotel_id': '2572691',
  'language': 'en-us',
}
headers = {
  'Authorization': 'Bearer {YOUR_AUTH_KEY}'
}

response = requests.request('GET', url, headers=headers, params=params)
response.json()
$client = new \GuzzleHttp\Client();
$url = 'https://api.steadyapi.com/v1/booking/hotels/faq';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
        ],
        'query' => [
            'hotel_id' => '2572691',
            'language' => 'en-us',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
const url = new URL(
    "https://api.steadyapi.com/v1/booking/hotels/faq"
);

const params = {
    "hotel_id": "2572691",
    "language": "en-us",
};
Object.keys(params)
    .forEach(key => url.searchParams.append(key, params[key]));

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
curl --request GET \
    --get "https://api.steadyapi.com/v1/booking/hotels/faq?hotel_id=2572691&language=en-us" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}"

Example response (200, Success):


{
    "meta": {
      "version": "v1.0",
      "status": 200,
      "copywrite": "https://steadyapi.com",
      "hotel_id": "2572691",
      "language": "en-us",
      "country_code": "us",
      "has_faq": true,
      "faq_title": "FAQs about La Quinta by Wyndham Oklahoma City Airport",
      "total_questions": 8,
      "timestamp": 1769327086000
    },
    "body": [
      {
        "id": 1,
        "question": "What kind of breakfast is served at La Quinta by Wyndham Oklahoma City Airport?",
        "answer": "Guests staying at La Quinta by Wyndham Oklahoma City Airport can enjoy a highly-rated breakfast during their stay (guest review score: 8.2).\n\nBreakfast option(s) include: [ITEM_LIST]Continental;American;Buffet[/ITEM_LIST]"
      },
      { ... }
    ]
  }
 

Example response (401, Unauthenticated):


{
    "message": "Unauthenticated."
}
 

Example response (404, Not Found):


{
    "success": false,
    "message": "Resource Not Found"
}
 

Example response (422, Error Validations):


{
    "message": "The ticker field is required.",
    "errors": {
        "ticker": [
            "The ticker field is required."
        ]
    }
}
 

Request      

GET v1/booking/hotels/faq

Headers

Authorization Bearer {YOUR_AUTH_KEY}

Query Parameters

Parameter Type Description
hotel_id required integer

Booking.com hotel ID. Example: 2572691

language optional string

optional Language code (default: en-us). Example: en-us

Flights & Details

Flight search, availability, and booking functionality.

GET /v1/flights/autocomplete

requires authentication

Flight destination autocomplete for airports, cities, and regions. Used for flight search input fields.

Example request:
import requests
import json

url = 'https://api.steadyapi.com/v1/booking/flights/autocomplete'
params = {
  'search': 'okc',
  'language': 'en',
}
headers = {
  'Authorization': 'Bearer {YOUR_AUTH_KEY}'
}

response = requests.request('GET', url, headers=headers, params=params)
response.json()
$client = new \GuzzleHttp\Client();
$url = 'https://api.steadyapi.com/v1/booking/flights/autocomplete';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
        ],
        'query' => [
            'search' => 'okc',
            'language' => 'en',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
const url = new URL(
    "https://api.steadyapi.com/v1/booking/flights/autocomplete"
);

const params = {
    "search": "okc",
    "language": "en",
};
Object.keys(params)
    .forEach(key => url.searchParams.append(key, params[key]));

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
curl --request GET \
    --get "https://api.steadyapi.com/v1/booking/flights/autocomplete?search=okc&language=en" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}"

Example response (200, Success):


{
    "meta": {
        "version": "v1.0",
        "status": 200,
        "copywrite": "https://steadyapi.com",
        "query": "cvg",
        "language": "en",
        "total_results": 1
    },
    "body": [
        {
            "type": "AIRPORT",
            "name": "Cincinnati/Northern Kentucky International Airport",
            "code": "CVG",
            "city": "Cincinnati",
            "region": "Ohio",
            "country": "United States",
            "photo_uri": "https://q-xx.bstatic.com/xdata/images/city/square150/648134.jpg?k=f6570e159ef41c78e7b17192aa3cbdbc538da0ba2e06d325fd400140f3b20b91&o=",
            "distance_to_city": {
                "value": 14.1991694153932,
                "unit": "km"
            }
        }
    ]
}
 

Example response (401, Unauthenticated):


{
    "message": "Unauthenticated."
}
 

Example response (404, Not Found):


{
    "success": false,
    "message": "Resource Not Found"
}
 

Example response (422, Error Validations):


{
    "message": "The ticker field is required.",
    "errors": {
        "ticker": [
            "The ticker field is required."
        ]
    }
}
 

Request      

GET v1/booking/flights/autocomplete

Headers

Authorization Bearer {YOUR_AUTH_KEY}

Query Parameters

Parameter Type Description
search required string

Search query (airport code, city name, or region). Example: okc

language optional string

optional Language code (default: en). Example: en

requires authentication

Search for flight options between two locations with specified dates and passengers. Returns flight options with pricing, schedules, and filtering aggregations.

Example request:
import requests
import json

url = 'https://api.steadyapi.com/v1/booking/flights/search'
params = {
  'from': 'CVG.AIRPORT',
  'to': 'OKC.AIRPORT',
  'depart': '2026-02-02',
  'return': '2026-02-05',
  'type': 'ROUNDTRIP',
  'adults': '1',
  'infants': '1',
  'cabinClass': 'ECONOMY',
  'fromCountry': 'US',
  'toCountry': 'US',
  'currency': 'USD',
  'language': 'en',
}
headers = {
  'Authorization': 'Bearer {YOUR_AUTH_KEY}'
}

response = requests.request('GET', url, headers=headers, params=params)
response.json()
$client = new \GuzzleHttp\Client();
$url = 'https://api.steadyapi.com/v1/booking/flights/search';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
        ],
        'query' => [
            'from' => 'CVG.AIRPORT',
            'to' => 'OKC.AIRPORT',
            'depart' => '2026-02-02',
            'return' => '2026-02-05',
            'type' => 'ROUNDTRIP',
            'adults' => '1',
            'infants' => '1',
            'cabinClass' => 'ECONOMY',
            'fromCountry' => 'US',
            'toCountry' => 'US',
            'currency' => 'USD',
            'language' => 'en',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
const url = new URL(
    "https://api.steadyapi.com/v1/booking/flights/search"
);

const params = {
    "from": "CVG.AIRPORT",
    "to": "OKC.AIRPORT",
    "depart": "2026-02-02",
    "return": "2026-02-05",
    "type": "ROUNDTRIP",
    "adults": "1",
    "infants": "1",
    "cabinClass": "ECONOMY",
    "fromCountry": "US",
    "toCountry": "US",
    "currency": "USD",
    "language": "en",
};
Object.keys(params)
    .forEach(key => url.searchParams.append(key, params[key]));

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
curl --request GET \
    --get "https://api.steadyapi.com/v1/booking/flights/search?from=CVG.AIRPORT&to=OKC.AIRPORT&depart=2026-02-02&return=2026-02-05&type=ROUNDTRIP&adults=1&infants=1&cabinClass=ECONOMY&fromCountry=US&toCountry=US&currency=USD&language=en" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}"

Example response (200, Success):


{
    "meta": {
      "version": "v1.0",
      "status": 200,
      "copywrite": "https://steadyapi.com",
      "search_id": "B5E03A22839B15A1CF169A86EDF15633",
      "total_results": 15,
      "total_pages": 2,
      "current_page": 1,
      "page_size": 10
    },
    "body": {
      "aggregation": {
        "totalCount": 441,
        "filteredTotalCount": 441,
        "stops": [
          {
            "numberOfStops": 1,
            "count": 208,
            "minPrice": {
              "currencyCode": "USD",
              "units": 1969,
              "nanos": 200000000,
              "amount": 1969.2
            },
            "minPriceRound": {
              "currencyCode": "USD",
              "units": 1970,
              "nanos": 0,
              "amount": 1970
            },
            "minPricePerAdult": {
              "currencyCode": "USD",
              "units": 657,
              "nanos": 0,
              "amount": 657
            },
            "cheapestAirline": {
              "name": "Southwest Airlines",
              "code": "WN",
              "logo": "https://r-xx.bstatic.com/data/airlines_logo/WN.png"
            }
          },
          {
            "numberOfStops": 2,
            "count": 441,
            "minPrice": {
              "currencyCode": "USD",
              "units": 1969,
              "nanos": 200000000,
              "amount": 1969.2
            },
            "minPriceRound": {
              "currencyCode": "USD",
              "units": 1970,
              "nanos": 0,
              "amount": 1970
            },
            "minPricePerAdult": {
              "currencyCode": "USD",
              "units": 657,
              "nanos": 0,
              "amount": 657
            },
            "cheapestAirline": {
              "name": "Southwest Airlines",
              "code": "WN",
              "logo": "https://r-xx.bstatic.com/data/airlines_logo/WN.png"
            }
          }
        ],
        "airlines": [
          {
            "name": "American Airlines",
            "logoUrl": "https://r-xx.bstatic.com/data/airlines_logo/AA.png",
            "iataCode": "AA",
            "count": 209,
            "minPrice": {
              "currencyCode": "USD",
              "units": 1974,
              "nanos": 580000000,
              "amount": 1974.58
            },
            "minPricePerAdult": {
              "currencyCode": "USD",
              "units": 659,
              "nanos": 0,
              "amount": 659
            }
          },
          {
            "name": "Southwest Airlines",
            "logoUrl": "https://r-xx.bstatic.com/data/airlines_logo/WN.png",
            "iataCode": "WN",
            "count": 134,
            "minPrice": {
              "currencyCode": "USD",
              "units": 1969,
              "nanos": 200000000,
              "amount": 1969.2
            },
            "minPricePerAdult": {
              "currencyCode": "USD",
              "units": 657,
              "nanos": 0,
              "amount": 657
            }
          },
          {
            "name": "United Airlines",
            "logoUrl": "https://r-xx.bstatic.com/data/airlines_logo/UA.png",
            "iataCode": "UA",
            "count": 98,
            "minPrice": {
              "currencyCode": "USD",
              "units": 1998,
              "nanos": 10000000,
              "amount": 1998.01
            },
            "minPricePerAdult": {
              "currencyCode": "USD",
              "units": 667,
              "nanos": 0,
              "amount": 667
            }
          }
        ],
        "departureIntervals": [
          {
            "start": "05:55",
            "end": "17:55"
          },
          {
            "start": "05:00",
            "end": "17:00"
          }
        ],
        "flightTimes": [
          {
            "arrival": [
              {
                "start": "00:00",
                "end": "05:59",
                "count": 0
              },
              {
                "start": "06:00",
                "end": "11:59",
                "count": 61
              },
              {
                "start": "12:00",
                "end": "17:59",
                "count": 106
              },
              {
                "start": "18:00",
                "end": "23:59",
                "count": 274
              }
            ],
            "departure": [
              {
                "start": "00:00",
                "end": "05:59",
                "count": 21
              },
              {
                "start": "06:00",
                "end": "11:59",
                "count": 159
              },
              {
                "start": "12:00",
                "end": "17:59",
                "count": 261
              },
              {
                "start": "18:00",
                "end": "23:59",
                "count": 0
              }
            ]
          },
          {
            "arrival": [
              {
                "start": "00:00",
                "end": "05:59",
                "count": 0
              },
              {
                "start": "06:00",
                "end": "11:59",
                "count": 10
              },
              {
                "start": "12:00",
                "end": "17:59",
                "count": 254
              },
              {
                "start": "18:00",
                "end": "23:59",
                "count": 177
              }
            ],
            "departure": [
              {
                "start": "00:00",
                "end": "05:59",
                "count": 73
              },
              {
                "start": "06:00",
                "end": "11:59",
                "count": 250
              },
              {
                "start": "12:00",
                "end": "17:59",
                "count": 118
              },
              {
                "start": "18:00",
                "end": "23:59",
                "count": 0
              }
            ]
          }
        ],
        "shortLayoverConnection": {
          "count": 142
        },
        "durationMin": 5,
        "durationMax": 16,
        "minPrice": {
          "currencyCode": "USD",
          "units": 1969,
          "nanos": 200000000,
          "amount": 1969.2
        },
        "minRoundPrice": {
          "currencyCode": "USD",
          "units": 1970,
          "nanos": 0,
          "amount": 1970
        },
        "minPricePerAdult": {
          "currencyCode": "USD",
          "units": 656,
          "nanos": 400000000,
          "amount": 656.4
        },
        "minPriceFiltered": {
          "currencyCode": "USD",
          "units": 1969,
          "nanos": 200000000,
          "amount": 1969.2
        },
        "baggage": [
          {
            "paramName": "includedBaggage",
            "count": 441,
            "enabled": true,
            "baggageType": "CABIN"
          },
          {
            "paramName": "includedBaggage",
            "count": 0,
            "enabled": false,
            "baggageType": "CHECKIN"
          }
        ],
        "budget": {
          "paramName": "maxBudget",
          "min": {
            "currencyCode": "USD",
            "units": 1969,
            "nanos": 200000000,
            "amount": 1969.2
          },
          "max": {
            "currencyCode": "USD",
            "units": 4311,
            "nanos": 780000000,
            "amount": 4311.78
          }
        },
        "budgetPerAdult": {
          "paramName": "maxBudgetPerAdult",
          "min": {
            "currencyCode": "USD",
            "units": 656,
            "nanos": 400000000,
            "amount": 656.4
          },
          "max": {
            "currencyCode": "USD",
            "units": 1437,
            "nanos": 260000000,
            "amount": 1437.26
          }
        },
        "duration": [
          {
            "min": 5,
            "max": 16,
            "durationType": "JOURNEY",
            "enabled": true,
            "paramName": "maxDuration"
          },
          {
            "min": 1,
            "max": 11,
            "durationType": "LAYOVER",
            "enabled": true,
            "paramName": "maxLayoverDuration"
          }
        ],
        "flexibleTicket": {
          "count": 209
        },
        "filtersOrder": []
      },
      "flightOffers": [
        {
          "token": "c8e49_528902410ab36854e72a5245e09bd5ecd8217dee997c8f87a3a8c2c815bfb874dfda29f96a5fab84a452565361dafd1b94d86d312c76b53a01edd4bd9f4f1107da8ec2bb191083d1797e353b371196875c0de0aafc1af993098962dfa6151e4ed77ae992768063948ee481eb1f661217594971aff9027b714e206ca6969b5ccd336e9187fd6f8679e292a211214bd7e553f849b3459f6fbc71029939a8adfa9b224f148e06f81576182cb080304e2399586e435319635befe70fcb9a74fe2ab56b4bcb364f1e1d1360244e97057250885fed255617543a26ca887c0147ceaaf5c9814edaf04eb7952e438475737cb7599c583360cd2f7d00c2f5b0f3bf99451153301dade6947cce9284e7b2",
          "segments": [
            {
              "departureAirport": {
                "type": "AIRPORT",
                "code": "CVG",
                "name": "Cincinnati/Northern Kentucky International Airport",
                "city": "CVG",
                "cityName": "Cincinnati",
                "country": "US",
                "countryName": "United States",
                "province": "Ohio",
                "provinceCode": "OH"
              },
              "arrivalAirport": {
                "type": "AIRPORT",
                "code": "OKC",
                "name": "Will Rogers World Airport",
                "city": "OKC",
                "cityName": "Oklahoma City",
                "country": "US",
                "countryName": "United States",
                "province": "Oklahoma",
                "provinceCode": "OK"
              },
              "departureTime": "2026-02-02T07:00:00",
              "arrivalTime": "2026-02-02T10:35:00",
              "legs": [
                {
                  "departureTime": "2026-02-02T07:00:00",
                  "arrivalTime": "2026-02-02T07:25:00",
                  "departureAirport": {
                    "type": "AIRPORT",
                    "code": "CVG",
                    "name": "Cincinnati/Northern Kentucky International Airport",
                    "city": "CVG",
                    "cityName": "Cincinnati",
                    "country": "US",
                    "countryName": "United States",
                    "province": "Ohio",
                    "provinceCode": "OH"
                  },
                  "arrivalAirport": {
                    "type": "AIRPORT",
                    "code": "MDW",
                    "name": "Midway International Airport",
                    "city": "CHI",
                    "cityName": "Chicago",
                    "country": "US",
                    "countryName": "United States",
                    "province": "Illinois",
                    "provinceCode": "IL"
                  },
                  "cabinClass": "ECONOMY",
                  "flightInfo": {
                    "facilities": [],
                    "flightNumber": 4926,
                    "planeType": "7S7",
                    "carrierInfo": {
                      "operatingCarrier": "WN",
                      "marketingCarrier": "WN",
                      "operatingCarrierDisclosureText": ""
                    }
                  },
                  "carriers": [
                    "WN",
                    "WN"
                  ],
                  "carriersData": [
                    {
                      "name": "Southwest Airlines",
                      "code": "WN",
                      "logo": "https://r-xx.bstatic.com/data/airlines_logo/WN.png"
                    },
                    {
                      "name": "Southwest Airlines",
                      "code": "WN",
                      "logo": "https://r-xx.bstatic.com/data/airlines_logo/WN.png"
                    }
                  ],
                  "totalTime": 5100,
                  "flightStops": [],
                  "amenities": [],
                  "departureTimeTz": "2026-02-02T07:00:00-05:00",
                  "arrivalTimeTz": "2026-02-02T07:25:00-06:00"
                },
                {
                  "departureTime": "2026-02-02T08:15:00",
                  "arrivalTime": "2026-02-02T10:35:00",
                  "departureAirport": {
                    "type": "AIRPORT",
                    "code": "MDW",
                    "name": "Midway International Airport",
                    "city": "CHI",
                    "cityName": "Chicago",
                    "country": "US",
                    "countryName": "United States",
                    "province": "Illinois",
                    "provinceCode": "IL"
                  },
                  "arrivalAirport": {
                    "type": "AIRPORT",
                    "code": "OKC",
                    "name": "Will Rogers World Airport",
                    "city": "OKC",
                    "cityName": "Oklahoma City",
                    "country": "US",
                    "countryName": "United States",
                    "province": "Oklahoma",
                    "provinceCode": "OK"
                  },
                  "cabinClass": "ECONOMY",
                  "flightInfo": {
                    "facilities": [],
                    "flightNumber": 4893,
                    "planeType": "7S7",
                    "carrierInfo": {
                      "operatingCarrier": "WN",
                      "marketingCarrier": "WN",
                      "operatingCarrierDisclosureText": ""
                    }
                  },
                  "carriers": [
                    "WN",
                    "WN"
                  ],
                  "carriersData": [
                    {
                      "name": "Southwest Airlines",
                      "code": "WN",
                      "logo": "https://r-xx.bstatic.com/data/airlines_logo/WN.png"
                    },
                    {
                      "name": "Southwest Airlines",
                      "code": "WN",
                      "logo": "https://r-xx.bstatic.com/data/airlines_logo/WN.png"
                    }
                  ],
                  "totalTime": 8400,
                  "flightStops": [],
                  "amenities": [],
                  "departureTimeTz": "2026-02-02T08:15:00-06:00",
                  "arrivalTimeTz": "2026-02-02T10:35:00-06:00"
                }
              ],
              "totalTime": 16500,
              "travellerCheckedLuggage": [],
              "travellerCabinLuggage": [
                {
                  "travellerReference": "1",
                  "luggageAllowance": {
                    "luggageType": "HAND",
                    "maxPiece": 1,
                    "sizeRestrictions": {
                      "maxLength": 23.6,
                      "maxWidth": 15.8,
                      "maxHeight": 9.8,
                      "sizeUnit": "INCH"
                    }
                  },
                  "personalItem": true
                },
                {
                  "travellerReference": "2",
                  "luggageAllowance": {
                    "luggageType": "HAND",
                    "maxPiece": 1,
                    "sizeRestrictions": {
                      "maxLength": 23.6,
                      "maxWidth": 15.8,
                      "maxHeight": 9.8,
                      "sizeUnit": "INCH"
                    }
                  },
                  "personalItem": true
                },
                {
                  "travellerReference": "3",
                  "luggageAllowance": {
                    "luggageType": "HAND",
                    "maxPiece": 1,
                    "sizeRestrictions": {
                      "maxLength": 23.6,
                      "maxWidth": 15.8,
                      "maxHeight": 9.8,
                      "sizeUnit": "INCH"
                    }
                  },
                  "personalItem": true
                }
              ],
              "isAtolProtected": false,
              "departureTimeTz": "2026-02-02T07:00:00-05:00",
              "arrivalTimeTz": "2026-02-02T10:35:00-06:00",
              "showWarningDestinationAirport": false,
              "showWarningOriginAirport": false
            },
            {
              "departureAirport": {
                "type": "AIRPORT",
                "code": "OKC",
                "name": "Will Rogers World Airport",
                "city": "OKC",
                "cityName": "Oklahoma City",
                "country": "US",
                "countryName": "United States",
                "province": "Oklahoma",
                "provinceCode": "OK"
              },
              "arrivalAirport": {
                "type": "AIRPORT",
                "code": "CVG",
                "name": "Cincinnati/Northern Kentucky International Airport",
                "city": "CVG",
                "cityName": "Cincinnati",
                "country": "US",
                "countryName": "United States",
                "province": "Ohio",
                "provinceCode": "OH"
              },
              "departureTime": "2026-02-05T15:10:00",
              "arrivalTime": "2026-02-05T20:15:00",
              "legs": [
                {
                  "departureTime": "2026-02-05T15:10:00",
                  "arrivalTime": "2026-02-05T17:15:00",
                  "departureAirport": {
                    "type": "AIRPORT",
                    "code": "OKC",
                    "name": "Will Rogers World Airport",
                    "city": "OKC",
                    "cityName": "Oklahoma City",
                    "country": "US",
                    "countryName": "United States",
                    "province": "Oklahoma",
                    "provinceCode": "OK"
                  },
                  "arrivalAirport": {
                    "type": "AIRPORT",
                    "code": "MDW",
                    "name": "Midway International Airport",
                    "city": "CHI",
                    "cityName": "Chicago",
                    "country": "US",
                    "countryName": "United States",
                    "province": "Illinois",
                    "provinceCode": "IL"
                  },
                  "cabinClass": "ECONOMY",
                  "flightInfo": {
                    "facilities": [],
                    "flightNumber": 2991,
                    "planeType": "7S7",
                    "carrierInfo": {
                      "operatingCarrier": "WN",
                      "marketingCarrier": "WN",
                      "operatingCarrierDisclosureText": ""
                    }
                  },
                  "carriers": [
                    "WN",
                    "WN"
                  ],
                  "carriersData": [
                    {
                      "name": "Southwest Airlines",
                      "code": "WN",
                      "logo": "https://r-xx.bstatic.com/data/airlines_logo/WN.png"
                    },
                    {
                      "name": "Southwest Airlines",
                      "code": "WN",
                      "logo": "https://r-xx.bstatic.com/data/airlines_logo/WN.png"
                    }
                  ],
                  "totalTime": 7500,
                  "flightStops": [],
                  "amenities": [],
                  "departureTimeTz": "2026-02-05T15:10:00-06:00",
                  "arrivalTimeTz": "2026-02-05T17:15:00-06:00"
                },
                {
                  "departureTime": "2026-02-05T18:05:00",
                  "arrivalTime": "2026-02-05T20:15:00",
                  "departureAirport": {
                    "type": "AIRPORT",
                    "code": "MDW",
                    "name": "Midway International Airport",
                    "city": "CHI",
                    "cityName": "Chicago",
                    "country": "US",
                    "countryName": "United States",
                    "province": "Illinois",
                    "provinceCode": "IL"
                  },
                  "arrivalAirport": {
                    "type": "AIRPORT",
                    "code": "CVG",
                    "name": "Cincinnati/Northern Kentucky International Airport",
                    "city": "CVG",
                    "cityName": "Cincinnati",
                    "country": "US",
                    "countryName": "United States",
                    "province": "Ohio",
                    "provinceCode": "OH"
                  },
                  "cabinClass": "ECONOMY",
                  "flightInfo": {
                    "facilities": [],
                    "flightNumber": 1659,
                    "planeType": "7S7",
                    "carrierInfo": {
                      "operatingCarrier": "WN",
                      "marketingCarrier": "WN",
                      "operatingCarrierDisclosureText": ""
                    }
                  },
                  "carriers": [
                    "WN",
                    "WN"
                  ],
                  "carriersData": [
                    {
                      "name": "Southwest Airlines",
                      "code": "WN",
                      "logo": "https://r-xx.bstatic.com/data/airlines_logo/WN.png"
                    },
                    {
                      "name": "Southwest Airlines",
                      "code": "WN",
                      "logo": "https://r-xx.bstatic.com/data/airlines_logo/WN.png"
                    }
                  ],
                  "totalTime": 4200,
                  "flightStops": [],
                  "amenities": [],
                  "departureTimeTz": "2026-02-05T18:05:00-06:00",
                  "arrivalTimeTz": "2026-02-05T20:15:00-05:00"
                }
              ],
              "totalTime": 14700,
              "travellerCheckedLuggage": [],
              "travellerCabinLuggage": [
                {
                  "travellerReference": "1",
                  "luggageAllowance": {
                    "luggageType": "HAND",
                    "maxPiece": 1,
                    "sizeRestrictions": {
                      "maxLength": 23.6,
                      "maxWidth": 15.8,
                      "maxHeight": 9.8,
                      "sizeUnit": "INCH"
                    }
                  },
                  "personalItem": true
                },
                {
                  "travellerReference": "2",
                  "luggageAllowance": {
                    "luggageType": "HAND",
                    "maxPiece": 1,
                    "sizeRestrictions": {
                      "maxLength": 23.6,
                      "maxWidth": 15.8,
                      "maxHeight": 9.8,
                      "sizeUnit": "INCH"
                    }
                  },
                  "personalItem": true
                },
                {
                  "travellerReference": "3",
                  "luggageAllowance": {
                    "luggageType": "HAND",
                    "maxPiece": 1,
                    "sizeRestrictions": {
                      "maxLength": 23.6,
                      "maxWidth": 15.8,
                      "maxHeight": 9.8,
                      "sizeUnit": "INCH"
                    }
                  },
                  "personalItem": true
                }
              ],
              "isAtolProtected": false,
              "departureTimeTz": "2026-02-05T15:10:00-06:00",
              "arrivalTimeTz": "2026-02-05T20:15:00-05:00",
              "showWarningDestinationAirport": false,
              "showWarningOriginAirport": false
            }
          ],
          "priceBreakdown": {
            "total": {
              "currencyCode": "USD",
              "units": 1969,
              "nanos": 200000000,
              "amount": 1969.2
            },
            "baseFare": {
              "currencyCode": "USD",
              "units": 1691,
              "nanos": 160000000,
              "amount": 1691.16
            },
            "fee": {
              "currencyCode": "USD",
              "units": 0,
              "nanos": 0,
              "amount": 0
            },
            "tax": {
              "currencyCode": "USD",
              "units": 278,
              "nanos": 40000000,
              "amount": 278.04
            },
            "totalRounded": {
              "currencyCode": "USD",
              "nanos": 0,
              "units": 1970,
              "amount": 1970
            },
            "discount": {
              "currencyCode": "USD",
              "units": 0,
              "nanos": 0,
              "amount": 0
            },
            "totalWithoutDiscount": {
              "currencyCode": "USD",
              "units": 1969,
              "nanos": 200000000,
              "amount": 1969.2
            },
            "totalWithoutDiscountRounded": {
              "currencyCode": "USD",
              "nanos": 0,
              "units": 1970,
              "amount": 1970
            },
            "showPriceStrikethrough": false
          },
          "travellerPrices": [
            {
              "travellerPriceBreakdown": {
                "total": {
                  "currencyCode": "USD",
                  "units": 656,
                  "nanos": 400000000,
                  "amount": 656.4
                },
                "baseFare": {
                  "currencyCode": "USD",
                  "units": 563,
                  "nanos": 720000000,
                  "amount": 563.72
                },
                "fee": {
                  "currencyCode": "USD",
                  "units": 0,
                  "nanos": 0,
                  "amount": 0
                },
                "tax": {
                  "currencyCode": "USD",
                  "units": 92,
                  "nanos": 680000000,
                  "amount": 92.68
                },
                "totalRounded": {
                  "currencyCode": "USD",
                  "nanos": 0,
                  "units": 657,
                  "amount": 657
                },
                "discount": {
                  "currencyCode": "USD",
                  "units": 0,
                  "nanos": 0,
                  "amount": 0
                },
                "totalWithoutDiscount": {
                  "currencyCode": "USD",
                  "units": 656,
                  "nanos": 400000000,
                  "amount": 656.4
                },
                "totalWithoutDiscountRounded": {
                  "currencyCode": "USD",
                  "nanos": 0,
                  "units": 657,
                  "amount": 657
                },
                "showPriceStrikethrough": false
              },
              "travellerReference": "1",
              "travellerType": "ADULT"
            },
            {
              "travellerPriceBreakdown": {
                "total": {
                  "currencyCode": "USD",
                  "units": 656,
                  "nanos": 400000000,
                  "amount": 656.4
                },
                "baseFare": {
                  "currencyCode": "USD",
                  "units": 563,
                  "nanos": 720000000,
                  "amount": 563.72
                },
                "fee": {
                  "currencyCode": "USD",
                  "units": 0,
                  "nanos": 0,
                  "amount": 0
                },
                "tax": {
                  "currencyCode": "USD",
                  "units": 92,
                  "nanos": 680000000,
                  "amount": 92.68
                },
                "totalRounded": {
                  "currencyCode": "USD",
                  "nanos": 0,
                  "units": 657,
                  "amount": 657
                },
                "discount": {
                  "currencyCode": "USD",
                  "units": 0,
                  "nanos": 0,
                  "amount": 0
                },
                "totalWithoutDiscount": {
                  "currencyCode": "USD",
                  "units": 656,
                  "nanos": 400000000,
                  "amount": 656.4
                },
                "totalWithoutDiscountRounded": {
                  "currencyCode": "USD",
                  "nanos": 0,
                  "units": 657,
                  "amount": 657
                },
                "showPriceStrikethrough": false
              },
              "travellerReference": "2",
              "travellerType": "KID"
            },
            {
              "travellerPriceBreakdown": {
                "total": {
                  "currencyCode": "USD",
                  "units": 656,
                  "nanos": 400000000,
                  "amount": 656.4
                },
                "baseFare": {
                  "currencyCode": "USD",
                  "units": 563,
                  "nanos": 720000000,
                  "amount": 563.72
                },
                "fee": {
                  "currencyCode": "USD",
                  "units": 0,
                  "nanos": 0,
                  "amount": 0
                },
                "tax": {
                  "currencyCode": "USD",
                  "units": 92,
                  "nanos": 680000000,
                  "amount": 92.68
                },
                "totalRounded": {
                  "currencyCode": "USD",
                  "nanos": 0,
                  "units": 657,
                  "amount": 657
                },
                "discount": {
                  "currencyCode": "USD",
                  "units": 0,
                  "nanos": 0,
                  "amount": 0
                },
                "totalWithoutDiscount": {
                  "currencyCode": "USD",
                  "units": 656,
                  "nanos": 400000000,
                  "amount": 656.4
                },
                "totalWithoutDiscountRounded": {
                  "currencyCode": "USD",
                  "nanos": 0,
                  "units": 657,
                  "amount": 657
                },
                "showPriceStrikethrough": false
              },
              "travellerReference": "3",
              "travellerType": "KID"
            }
          ],
          "priceDisplayRequirements": [],
          "pointOfSale": "us",
          "tripType": "ROUNDTRIP",
          "travellerDataRequirements": [
            "DATE_OF_BIRTH"
          ],
          "travellers": [
            {
              "travellerReference": "1",
              "type": "ADULT"
            },
            {
              "travellerReference": "2",
              "type": "KID",
              "age": 0
            },
            {
              "travellerReference": "3",
              "type": "KID",
              "age": 0
            }
          ],
          "posMismatch": {
            "detectedPointOfSale": "us",
            "isPOSMismatch": false,
            "offerSalesCountry": "us"
          },
          "includedProductsBySegment": [
            [
              {
                "travellerReference": "1",
                "travellerProducts": [
                  {
                    "type": "cabinBaggage",
                    "product": {
                      "luggageType": "HAND",
                      "maxPiece": 1,
                      "sizeRestrictions": {
                        "maxLength": 23.6,
                        "maxWidth": 15.8,
                        "maxHeight": 9.8,
                        "sizeUnit": "INCH"
                      }
                    }
                  },
                  {
                    "type": "personalItem"
                  }
                ]
              },
              { ... }
            ],
            [
              {
                "travellerReference": "1",
                "travellerProducts": [
                  {
                    "type": "cabinBaggage",
                    "product": {
                      "luggageType": "HAND",
                      "maxPiece": 1,
                      "sizeRestrictions": {
                        "maxLength": 23.6,
                        "maxWidth": 15.8,
                        "maxHeight": 9.8,
                        "sizeUnit": "INCH"
                      }
                    }
                  },
                  {
                    "type": "personalItem"
                  }
                ]
              },
              { ... }
            ]
          ],
          "includedProducts": {
            "areAllSegmentsIdentical": true,
            "segments": [
              [
                {
                  "luggageType": "PERSONAL_ITEM",
                  "maxPiece": 3,
                  "piecePerPax": 1
                },
                {
                  "luggageType": "HAND",
                  "maxPiece": 3,
                  "sizeRestrictions": {
                    "maxLength": 23.6,
                    "maxWidth": 15.8,
                    "maxHeight": 9.8,
                    "sizeUnit": "INCH"
                  },
                  "piecePerPax": 1
                }
              ]
            ]
          },
          "ancillaries": [],
          "brandedFareInfo": {
            "fareName": "Choice",
            "cabinClass": "ECONOMY",
            "features": [
              {
                "featureName": "PERSONAL_BAGGAGE",
                "category": "BAGGAGE",
                "code": "BK03",
                "label": "3 personal items",
                "availability": "INCLUDED",
                "priority": 0,
                "content": [],
                "sectionCategory": {
                  "groupingKey": "BAGGAGE",
                  "heading": "Baggage",
                  "priority": 1
                }
              },
              { ... }
            ],
            "fareAttributes": [],
            "nonIncludedFeaturesRequired": false,
            "nonIncludedFeatures": [],
            "featuresList": [],
            "checkinBaggageExcluded": true,
            "cabinBaggageExcluded": false
          },
          "appliedDiscounts": [],
          "offerKeyToHighlight": "1_WN4926_WN4893_2_WN2991_WN1659.CVG20260202.OKC20260205",
          "flightKey": "1_WN4926_WN4893_2_WN2991_WN1659.CVG20260202.OKC20260205",
          "extraProductDisplayRequirements": [],
          "brandedFareOffers": [
            {
              "brandedFareInfo": {
                "fareName": "Choice",
                "cabinClass": "ECONOMY",
                "features": [
                  {
                    "featureName": "PERSONAL_BAGGAGE",
                    "category": "BAGGAGE",
                    "code": "BK03",
                    "label": "3 personal items",
                    "availability": "INCLUDED",
                    "priority": 0,
                    "content": [],
                    "sectionCategory": {
                      "groupingKey": "BAGGAGE",
                      "heading": "Baggage",
                      "priority": 1
                    }
                  },
                  {
                    "featureName": "CABIN_BAGGAGE",
                    "category": "BAGGAGE",
                    "code": "BK02",
                    "label": "3 cabin bags",
                    "availability": "INCLUDED",
                    "priority": 2,
                    "content": [],
                    "sectionCategory": {
                      "groupingKey": "BAGGAGE",
                      "heading": "Baggage",
                      "priority": 1
                    }
                  },
                  {
                    "featureName": "BASIC_SEAT",
                    "availability": "INCLUDED",
                    "category": "SEATS",
                    "code": "STS",
                    "priority": 7,
                    "content": [],
                    "sectionCategory": {
                      "groupingKey": "TRAVEL_EXPERIENCE",
                      "heading": "Travel experience",
                      "priority": 3
                    },
                    "label": "Choice of basic seating"
                  },
                  {
                    "featureName": "CHANGEABLE_TICKET",
                    "availability": "INCLUDED",
                    "category": "CHANGE",
                    "code": "08R",
                    "priority": 9,
                    "content": [],
                    "sectionCategory": {
                      "groupingKey": "FLEXIBILITY",
                      "heading": "Flexibility",
                      "priority": 2
                    },
                    "label": "Flight change allowed"
                  },
                  {
                    "featureName": "REFUND_WITH_TRANSFERABLE_CREDIT_12_MONTHS",
                    "availability": "INCLUDED",
                    "category": "CANCEL",
                    "code": "",
                    "priority": 32,
                    "content": [],
                    "sectionCategory": {
                      "groupingKey": "FLEXIBILITY",
                      "heading": "Flexibility",
                      "priority": 2
                    },
                    "label": "Refund as transferable airline credit if you cancel, valid for 12 months"
                  }
                ],
                "fareAttributes": [],
                "nonIncludedFeaturesRequired": false,
                "nonIncludedFeatures": [],
                "featuresList": [],
                "checkinBaggageExcluded": true,
                "cabinBaggageExcluded": false
              },
              "ancillaries": [],
              "token": "c8e49_3904B@528902410ab36854e72a520fd0ec3b23d1e968dc739c5493a15ad993e16201f4505e8de137ddb3e8e3e47ff4e719ae2358fc983b966b492b1415ffb6a8d749ab4d22f516e965b61af7e66ae8200db535b57734f90d5eb6de74982cc04c8b101fb2c4cc358b93845027d3eac40b1fad948c006dcba5da8657ef399df3a5d30e50b161ffa4b0a78873c049c95ccca8ab6e7aaf82326f3df2c5c8bc0fbf3e6b1d2898e1e3479bff8c53095b528e20ed70f958cc0bcda103e5a430b7aba731c4ea916a84db83b35e89a8ea0bd48ce105d1814b55b3177b9e8221f974eaf84e5571c8565fb0f2ef34171147ea4fb7abf649c4a7214f52004e19b493380036e83e6eca4318fd18e8aaa864a55690c1",
              "offerReference": "c8e49_3904B@528902410ab36854e72a520fd0ec3b23d1e968dc739c5493a15ad993e16201f4505e8de137ddb3e8e3e47ff4e719ae2358fc983b966b492b1415ffb6a8d749ab4d22f516e965b61af7e66ae8200db535b57734f90d5eb6de74982cc04c8b101fb2c4cc358b93845027d3eac40b1fad948c006dcba5da8657ef399df3a5d30e50b161ffa4b0a78873c049c95ccca8ab6e7aaf82326f3df2c5c8bc0fbf3e6b1d2898e1e3479bff8c53095b528e20ed70f958cc0bcda103e5a430b7aba731c4ea916a84db83b35e89a8ea0bd48ce105d1814b55b3177b9e8221f974eaf84e5571c8565fb0f2ef34171147ea4fb7abf649c4a7214f52004e19b493380036e83e6eca4318fd18e8aaa864a55690c1",
              "priceBreakdown": {
                "total": {
                  "currencyCode": "USD",
                  "units": 1969,
                  "nanos": 200000000,
                  "amount": 1969.2
                },
                "baseFare": {
                  "currencyCode": "USD",
                  "units": 1691,
                  "nanos": 160000000,
                  "amount": 1691.16
                },
                "fee": {
                  "currencyCode": "USD",
                  "units": 0,
                  "nanos": 0,
                  "amount": 0
                },
                "tax": {
                  "currencyCode": "USD",
                  "units": 278,
                  "nanos": 40000000,
                  "amount": 278.04
                },
                "totalRounded": {
                  "currencyCode": "USD",
                  "nanos": 0,
                  "units": 1970,
                  "amount": 1970
                },
                "discount": {
                  "currencyCode": "USD",
                  "units": 0,
                  "nanos": 0,
                  "amount": 0
                },
                "totalWithoutDiscount": {
                  "currencyCode": "USD",
                  "units": 1969,
                  "nanos": 200000000,
                  "amount": 1969.2
                },
                "totalWithoutDiscountRounded": {
                  "currencyCode": "USD",
                  "nanos": 0,
                  "units": 1970,
                  "amount": 1970
                },
                "showPriceStrikethrough": false,
                "farePriceDifference": {
                  "currencyCode": "USD",
                  "units": 0,
                  "nanos": 0,
                  "amount": 0
                },
                "travellerFarePriceDifference": {
                  "currencyCode": "USD",
                  "units": 0,
                  "nanos": 0,
                  "amount": 0
                },
                "travellerPrice": {
                  "currencyCode": "USD",
                  "units": 656,
                  "nanos": 400000000
                }
              },
              "travellerPrices": [
                {
                  "travellerPriceBreakdown": {
                    "total": {
                      "currencyCode": "USD",
                      "units": 656,
                      "nanos": 400000000
                    },
                    "baseFare": {
                      "currencyCode": "USD",
                      "units": 563,
                      "nanos": 720000000
                    },
                    "fee": {
                      "currencyCode": "USD",
                      "units": 0,
                      "nanos": 0
                    },
                    "tax": {
                      "currencyCode": "USD",
                      "units": 92,
                      "nanos": 680000000
                    },
                    "totalRounded": {
                      "currencyCode": "USD",
                      "nanos": 0,
                      "units": 657
                    },
                    "discount": {
                      "currencyCode": "USD",
                      "units": 0,
                      "nanos": 0
                    },
                    "totalWithoutDiscount": {
                      "currencyCode": "USD",
                      "units": 656,
                      "nanos": 400000000
                    },
                    "totalWithoutDiscountRounded": {
                      "currencyCode": "USD",
                      "nanos": 0,
                      "units": 657
                    },
                    "showPriceStrikethrough": false
                  },
                  "travellerReference": "1",
                  "travellerType": "ADULT"
                },
                {
                  "travellerPriceBreakdown": {
                    "total": {
                      "currencyCode": "USD",
                      "units": 656,
                      "nanos": 400000000
                    },
                    "baseFare": {
                      "currencyCode": "USD",
                      "units": 563,
                      "nanos": 720000000
                    },
                    "fee": {
                      "currencyCode": "USD",
                      "units": 0,
                      "nanos": 0
                    },
                    "tax": {
                      "currencyCode": "USD",
                      "units": 92,
                      "nanos": 680000000
                    },
                    "totalRounded": {
                      "currencyCode": "USD",
                      "nanos": 0,
                      "units": 657
                    },
                    "discount": {
                      "currencyCode": "USD",
                      "units": 0,
                      "nanos": 0
                    },
                    "totalWithoutDiscount": {
                      "currencyCode": "USD",
                      "units": 656,
                      "nanos": 400000000
                    },
                    "totalWithoutDiscountRounded": {
                      "currencyCode": "USD",
                      "nanos": 0,
                      "units": 657
                    },
                    "showPriceStrikethrough": false
                  },
                  "travellerReference": "2",
                  "travellerType": "KID"
                },
                {
                  "travellerPriceBreakdown": {
                    "total": {
                      "currencyCode": "USD",
                      "units": 656,
                      "nanos": 400000000
                    },
                    "baseFare": {
                      "currencyCode": "USD",
                      "units": 563,
                      "nanos": 720000000
                    },
                    "fee": {
                      "currencyCode": "USD",
                      "units": 0,
                      "nanos": 0
                    },
                    "tax": {
                      "currencyCode": "USD",
                      "units": 92,
                      "nanos": 680000000
                    },
                    "totalRounded": {
                      "currencyCode": "USD",
                      "nanos": 0,
                      "units": 657
                    },
                    "discount": {
                      "currencyCode": "USD",
                      "units": 0,
                      "nanos": 0
                    },
                    "totalWithoutDiscount": {
                      "currencyCode": "USD",
                      "units": 656,
                      "nanos": 400000000
                    },
                    "totalWithoutDiscountRounded": {
                      "currencyCode": "USD",
                      "nanos": 0,
                      "units": 657
                    },
                    "showPriceStrikethrough": false
                  },
                  "travellerReference": "3",
                  "travellerType": "KID"
                }
              ],
              "includedProductsBySegment": [
                [
                  {
                    "travellerReference": "1",
                    "travellerProducts": [
                      {
                        "type": "cabinBaggage",
                        "product": {
                          "luggageType": "HAND",
                          "maxPiece": 1,
                          "sizeRestrictions": {
                            "maxLength": 23.6,
                            "maxWidth": 15.8,
                            "maxHeight": 9.8,
                            "sizeUnit": "INCH"
                          }
                        }
                      },
                      {
                        "type": "personalItem"
                      }
                    ]
                  },
                  {
                    "travellerReference": "2",
                    "travellerProducts": [
                      {
                        "type": "cabinBaggage",
                        "product": {
                          "luggageType": "HAND",
                          "maxPiece": 1,
                          "sizeRestrictions": {
                            "maxLength": 23.6,
                            "maxWidth": 15.8,
                            "maxHeight": 9.8,
                            "sizeUnit": "INCH"
                          }
                        }
                      },
                      {
                        "type": "personalItem"
                      }
                    ]
                  },
                  {
                    "travellerReference": "3",
                    "travellerProducts": [
                      {
                        "type": "cabinBaggage",
                        "product": {
                          "luggageType": "HAND",
                          "maxPiece": 1,
                          "sizeRestrictions": {
                            "maxLength": 23.6,
                            "maxWidth": 15.8,
                            "maxHeight": 9.8,
                            "sizeUnit": "INCH"
                          }
                        }
                      },
                      {
                        "type": "personalItem"
                      }
                    ]
                  }
                ],
                [
                  {
                    "travellerReference": "1",
                    "travellerProducts": [
                      {
                        "type": "cabinBaggage",
                        "product": {
                          "luggageType": "HAND",
                          "maxPiece": 1,
                          "sizeRestrictions": {
                            "maxLength": 23.6,
                            "maxWidth": 15.8,
                            "maxHeight": 9.8,
                            "sizeUnit": "INCH"
                          }
                        }
                      },
                      {
                        "type": "personalItem"
                      }
                    ]
                  },
                  {
                    "travellerReference": "2",
                    "travellerProducts": [
                      {
                        "type": "cabinBaggage",
                        "product": {
                          "luggageType": "HAND",
                          "maxPiece": 1,
                          "sizeRestrictions": {
                            "maxLength": 23.6,
                            "maxWidth": 15.8,
                            "maxHeight": 9.8,
                            "sizeUnit": "INCH"
                          }
                        }
                      },
                      {
                        "type": "personalItem"
                      }
                    ]
                  },
                  {
                    "travellerReference": "3",
                    "travellerProducts": [
                      {
                        "type": "cabinBaggage",
                        "product": {
                          "luggageType": "HAND",
                          "maxPiece": 1,
                          "sizeRestrictions": {
                            "maxLength": 23.6,
                            "maxWidth": 15.8,
                            "maxHeight": 9.8,
                            "sizeUnit": "INCH"
                          }
                        }
                      },
                      {
                        "type": "personalItem"
                      }
                    ]
                  }
                ]
              ],
              "includedProducts": {
                "areAllSegmentsIdentical": true,
                "segments": [
                  [
                    {
                      "luggageType": "PERSONAL_ITEM",
                      "maxPiece": 3,
                      "piecePerPax": 1
                    },
                    {
                      "luggageType": "HAND",
                      "maxPiece": 3,
                      "sizeRestrictions": {
                        "maxLength": 23.6,
                        "maxWidth": 15.8,
                        "maxHeight": 9.8,
                        "sizeUnit": "INCH"
                      },
                      "piecePerPax": 1
                    }
                  ]
                ]
              },
              "unifiedPriceBreakdown": {
                "id": "WN4926.CVG2026-02-02T07:00:00.MDW2026-02-02T07:25:00.ECONOMY,WN4893.MDW2026-02-02T08:15:00.OKC2026-02-02T10:35:00.ECONOMY,WN2991.OKC2026-02-05T15:10:00.MDW2026-02-05T17:15:00.ECONOMY,WN1659.MDW2026-02-05T18:05:00.CVG2026-02-05T20:15:00.ECONOMY_0_1ADULT.2INFANT_DIRECT_FIREFLY",
                "price": {
                  "currencyCode": "USD",
                  "units": 1969,
                  "nanos": 200000000
                },
                "items": [
                  {
                    "scope": "FLIGHT_ADULT",
                    "quantity": 1,
                    "id": "flight_adult",
                    "title": "Adult (1)",
                    "price": {
                      "currencyCode": "USD",
                      "units": 656,
                      "nanos": 400000000
                    },
                    "items": [
                      {
                        "id": "flight_adult-basefare",
                        "title": "Flight fare",
                        "price": {
                          "currencyCode": "USD",
                          "units": 563,
                          "nanos": 720000000
                        },
                        "items": []
                      },
                      {
                        "id": "flight_adult-tax",
                        "title": "Taxes and airline fees",
                        "price": {
                          "currencyCode": "USD",
                          "units": 92,
                          "nanos": 680000000
                        },
                        "items": []
                      }
                    ]
                  },
                  {
                    "scope": "FLIGHT_INFANT",
                    "quantity": 2,
                    "id": "flight_infant",
                    "title": "Infants (2)",
                    "price": {
                      "currencyCode": "USD",
                      "units": 1312,
                      "nanos": 800000000
                    },
                    "items": [
                      {
                        "id": "flight_infant-basefare",
                        "title": "Flight fare",
                        "price": {
                          "currencyCode": "USD",
                          "units": 1127,
                          "nanos": 440000000
                        },
                        "items": []
                      },
                      {
                        "id": "flight_infant-tax",
                        "title": "Taxes and airline fees",
                        "price": {
                          "currencyCode": "USD",
                          "units": 185,
                          "nanos": 360000000
                        },
                        "items": []
                      }
                    ]
                  }
                ],
                "addedItems": []
              }
            },
            {
              "brandedFareInfo": {
                "fareName": "Choice Preferred",
                "cabinClass": "ECONOMY",
                "features": [
                  {
                    "featureName": "PERSONAL_BAGGAGE",
                    "category": "BAGGAGE",
                    "code": "BK03",
                    "label": "3 personal items",
                    "availability": "INCLUDED",
                    "priority": 0,
                    "content": [],
                    "sectionCategory": {
                      "groupingKey": "BAGGAGE",
                      "heading": "Baggage",
                      "priority": 1
                    }
                  },
                  {
                    "featureName": "CABIN_BAGGAGE",
                    "category": "BAGGAGE",
                    "code": "BK02",
                    "label": "3 cabin bags",
                    "availability": "INCLUDED",
                    "priority": 2,
                    "content": [],
                    "sectionCategory": {
                      "groupingKey": "BAGGAGE",
                      "heading": "Baggage",
                      "priority": 1
                    }
                  },
                  {
                    "featureName": "REFUNDABLE_TICKET",
                    "availability": "INCLUDED",
                    "category": "CANCEL",
                    "code": "056",
                    "priority": 11,
                    "content": [],
                    "sectionCategory": {
                      "groupingKey": "FLEXIBILITY",
                      "heading": "Flexibility",
                      "priority": 2
                    },
                    "label": "Refund if you cancel "
                  },
                  {
                    "featureName": "CHANGEABLE_TICKET",
                    "availability": "INCLUDED",
                    "category": "CHANGE",
                    "code": "08R",
                    "priority": 9,
                    "content": [],
                    "sectionCategory": {
                      "groupingKey": "FLEXIBILITY",
                      "heading": "Flexibility",
                      "priority": 2
                    },
                    "label": "Flight change allowed"
                  },
                  {
                    "featureName": "PRE_RESERVED_SEAT_ASSIGNMENT",
                    "availability": "INCLUDED",
                    "category": "SEATS",
                    "code": "0B5",
                    "priority": 8,
                    "content": [],
                    "sectionCategory": {
                      "groupingKey": "TRAVEL_EXPERIENCE",
                      "heading": "Travel experience",
                      "priority": 3
                    },
                    "label": "Choose your own seats"
                  }
                ],
                "fareAttributes": [],
                "nonIncludedFeaturesRequired": false,
                "nonIncludedFeatures": [],
                "featuresList": [],
                "checkinBaggageExcluded": true,
                "cabinBaggageExcluded": false,
                "fareTag": "REFUNDABLE"
              },
              "ancillaries": [],
              "token": "c8e49_3904B@528902410ab36854e72a52d26092a851893f47f209e80868012f7d2a7d21181bcb8a4b9efa0f82681a507b1a1e12d268ff52c04a1f8ae21ee66aef68614a9ec5d10791b030d5522bc4239a3bb84be1f76aa1864809f3d767f7df3647a06417dbb23e617d027050112080a1c2918b0d6fe99a97bf3a6977507803993285754a5f6207a19d63bdca4efb68ea3110688934fb8a0f64e247b3b94add4ea9878745b87b1af1763d963e7decb1f7e780544d717e2aac684e579618fad7873e661f3a6c6d198417c7236488cb6f21c654d7de1c3dae8aebc6d1043280ad4a39550b9296cf873d599cc2076a64abe25fb836db51648bc7139da015a98f780a2c9f92de9c7ae609aa0f29bf81a88e3fb2",
              "offerReference": "c8e49_3904B@528902410ab36854e72a52d26092a851893f47f209e80868012f7d2a7d21181bcb8a4b9efa0f82681a507b1a1e12d268ff52c04a1f8ae21ee66aef68614a9ec5d10791b030d5522bc4239a3bb84be1f76aa1864809f3d767f7df3647a06417dbb23e617d027050112080a1c2918b0d6fe99a97bf3a6977507803993285754a5f6207a19d63bdca4efb68ea3110688934fb8a0f64e247b3b94add4ea9878745b87b1af1763d963e7decb1f7e780544d717e2aac684e579618fad7873e661f3a6c6d198417c7236488cb6f21c654d7de1c3dae8aebc6d1043280ad4a39550b9296cf873d599cc2076a64abe25fb836db51648bc7139da015a98f780a2c9f92de9c7ae609aa0f29bf81a88e3fb2",
              "priceBreakdown": {
                "total": {
                  "currencyCode": "USD",
                  "units": 2389,
                  "nanos": 230000000,
                  "amount": 2389.23
                },
                "baseFare": {
                  "currencyCode": "USD",
                  "units": 2081,
                  "nanos": 880000000,
                  "amount": 2081.88
                },
                "fee": {
                  "currencyCode": "USD",
                  "units": 0,
                  "nanos": 0,
                  "amount": 0
                },
                "tax": {
                  "currencyCode": "USD",
                  "units": 307,
                  "nanos": 350000000,
                  "amount": 307.35
                },
                "totalRounded": {
                  "currencyCode": "USD",
                  "nanos": 0,
                  "units": 2390,
                  "amount": 2390
                },
                "discount": {
                  "currencyCode": "USD",
                  "units": 0,
                  "nanos": 0,
                  "amount": 0
                },
                "totalWithoutDiscount": {
                  "currencyCode": "USD",
                  "units": 2389,
                  "nanos": 230000000,
                  "amount": 2389.23
                },
                "totalWithoutDiscountRounded": {
                  "currencyCode": "USD",
                  "nanos": 0,
                  "units": 2390,
                  "amount": 2390
                },
                "showPriceStrikethrough": false,
                "farePriceDifference": {
                  "currencyCode": "USD",
                  "units": 420,
                  "nanos": 30000000,
                  "amount": 420.03
                },
                "travellerFarePriceDifference": {
                  "currencyCode": "USD",
                  "units": 140,
                  "nanos": 10000000,
                  "amount": 140.01
                },
                "travellerPrice": {
                  "currencyCode": "USD",
                  "units": 656,
                  "nanos": 400000000
                }
              },
              "travellerPrices": [
                {
                  "travellerPriceBreakdown": {
                    "total": {
                      "currencyCode": "USD",
                      "units": 796,
                      "nanos": 410000000
                    },
                    "baseFare": {
                      "currencyCode": "USD",
                      "units": 693,
                      "nanos": 960000000
                    },
                    "fee": {
                      "currencyCode": "USD",
                      "units": 0,
                      "nanos": 0
                    },
                    "tax": {
                      "currencyCode": "USD",
                      "units": 102,
                      "nanos": 450000000
                    },
                    "totalRounded": {
                      "currencyCode": "USD",
                      "nanos": 0,
                      "units": 797
                    },
                    "discount": {
                      "currencyCode": "USD",
                      "units": 0,
                      "nanos": 0
                    },
                    "totalWithoutDiscount": {
                      "currencyCode": "USD",
                      "units": 796,
                      "nanos": 410000000
                    },
                    "totalWithoutDiscountRounded": {
                      "currencyCode": "USD",
                      "nanos": 0,
                      "units": 797
                    },
                    "showPriceStrikethrough": false
                  },
                  "travellerReference": "1",
                  "travellerType": "ADULT"
                },
                {
                  "travellerPriceBreakdown": {
                    "total": {
                      "currencyCode": "USD",
                      "units": 796,
                      "nanos": 410000000
                    },
                    "baseFare": {
                      "currencyCode": "USD",
                      "units": 693,
                      "nanos": 960000000
                    },
                    "fee": {
                      "currencyCode": "USD",
                      "units": 0,
                      "nanos": 0
                    },
                    "tax": {
                      "currencyCode": "USD",
                      "units": 102,
                      "nanos": 450000000
                    },
                    "totalRounded": {
                      "currencyCode": "USD",
                      "nanos": 0,
                      "units": 797
                    },
                    "discount": {
                      "currencyCode": "USD",
                      "units": 0,
                      "nanos": 0
                    },
                    "totalWithoutDiscount": {
                      "currencyCode": "USD",
                      "units": 796,
                      "nanos": 410000000
                    },
                    "totalWithoutDiscountRounded": {
                      "currencyCode": "USD",
                      "nanos": 0,
                      "units": 797
                    },
                    "showPriceStrikethrough": false
                  },
                  "travellerReference": "2",
                  "travellerType": "KID"
                },
                {
                  "travellerPriceBreakdown": {
                    "total": {
                      "currencyCode": "USD",
                      "units": 796,
                      "nanos": 410000000
                    },
                    "baseFare": {
                      "currencyCode": "USD",
                      "units": 693,
                      "nanos": 960000000
                    },
                    "fee": {
                      "currencyCode": "USD",
                      "units": 0,
                      "nanos": 0
                    },
                    "tax": {
                      "currencyCode": "USD",
                      "units": 102,
                      "nanos": 450000000
                    },
                    "totalRounded": {
                      "currencyCode": "USD",
                      "nanos": 0,
                      "units": 797
                    },
                    "discount": {
                      "currencyCode": "USD",
                      "units": 0,
                      "nanos": 0
                    },
                    "totalWithoutDiscount": {
                      "currencyCode": "USD",
                      "units": 796,
                      "nanos": 410000000
                    },
                    "totalWithoutDiscountRounded": {
                      "currencyCode": "USD",
                      "nanos": 0,
                      "units": 797
                    },
                    "showPriceStrikethrough": false
                  },
                  "travellerReference": "3",
                  "travellerType": "KID"
                }
              ],
              "includedProductsBySegment": [
                [
                  {
                    "travellerReference": "1",
                    "travellerProducts": [
                      {
                        "type": "cabinBaggage",
                        "product": {
                          "luggageType": "HAND",
                          "maxPiece": 1,
                          "sizeRestrictions": {
                            "maxLength": 23.6,
                            "maxWidth": 15.8,
                            "maxHeight": 9.8,
                            "sizeUnit": "INCH"
                          }
                        }
                      },
                      {
                        "type": "personalItem"
                      }
                    ]
                  },
                  {
                    "travellerReference": "2",
                    "travellerProducts": [
                      {
                        "type": "cabinBaggage",
                        "product": {
                          "luggageType": "HAND",
                          "maxPiece": 1,
                          "sizeRestrictions": {
                            "maxLength": 23.6,
                            "maxWidth": 15.8,
                            "maxHeight": 9.8,
                            "sizeUnit": "INCH"
                          }
                        }
                      },
                      {
                        "type": "personalItem"
                      }
                    ]
                  },
                  {
                    "travellerReference": "3",
                    "travellerProducts": [
                      {
                        "type": "cabinBaggage",
                        "product": {
                          "luggageType": "HAND",
                          "maxPiece": 1,
                          "sizeRestrictions": {
                            "maxLength": 23.6,
                            "maxWidth": 15.8,
                            "maxHeight": 9.8,
                            "sizeUnit": "INCH"
                          }
                        }
                      },
                      {
                        "type": "personalItem"
                      }
                    ]
                  }
                ],
                [
                  {
                    "travellerReference": "1",
                    "travellerProducts": [
                      {
                        "type": "cabinBaggage",
                        "product": {
                          "luggageType": "HAND",
                          "maxPiece": 1,
                          "sizeRestrictions": {
                            "maxLength": 23.6,
                            "maxWidth": 15.8,
                            "maxHeight": 9.8,
                            "sizeUnit": "INCH"
                          }
                        }
                      },
                      {
                        "type": "personalItem"
                      }
                    ]
                  },
                  {
                    "travellerReference": "2",
                    "travellerProducts": [
                      {
                        "type": "cabinBaggage",
                        "product": {
                          "luggageType": "HAND",
                          "maxPiece": 1,
                          "sizeRestrictions": {
                            "maxLength": 23.6,
                            "maxWidth": 15.8,
                            "maxHeight": 9.8,
                            "sizeUnit": "INCH"
                          }
                        }
                      },
                      {
                        "type": "personalItem"
                      }
                    ]
                  },
                  {
                    "travellerReference": "3",
                    "travellerProducts": [
                      {
                        "type": "cabinBaggage",
                        "product": {
                          "luggageType": "HAND",
                          "maxPiece": 1,
                          "sizeRestrictions": {
                            "maxLength": 23.6,
                            "maxWidth": 15.8,
                            "maxHeight": 9.8,
                            "sizeUnit": "INCH"
                          }
                        }
                      },
                      {
                        "type": "personalItem"
                      }
                    ]
                  }
                ]
              ],
              "includedProducts": {
                "areAllSegmentsIdentical": true,
                "segments": [
                  [
                    {
                      "luggageType": "PERSONAL_ITEM",
                      "maxPiece": 3,
                      "piecePerPax": 1
                    },
                    {
                      "luggageType": "HAND",
                      "maxPiece": 3,
                      "sizeRestrictions": {
                        "maxLength": 23.6,
                        "maxWidth": 15.8,
                        "maxHeight": 9.8,
                        "sizeUnit": "INCH"
                      },
                      "piecePerPax": 1
                    }
                  ]
                ]
              },
              "unifiedPriceBreakdown": {
                "id": "WN4926.CVG2026-02-02T07:00:00.MDW2026-02-02T07:25:00.ECONOMY,WN4893.MDW2026-02-02T08:15:00.OKC2026-02-02T10:35:00.ECONOMY,WN2991.OKC2026-02-05T15:10:00.MDW2026-02-05T17:15:00.ECONOMY,WN1659.MDW2026-02-05T18:05:00.CVG2026-02-05T20:15:00.ECONOMY_0_1ADULT.2INFANT_DIRECT_FIREFLY",
                "price": {
                  "currencyCode": "USD",
                  "units": 2389,
                  "nanos": 230000000
                },
                "items": [
                  {
                    "scope": "FLIGHT_ADULT",
                    "quantity": 1,
                    "id": "flight_adult",
                    "title": "Adult (1)",
                    "price": {
                      "currencyCode": "USD",
                      "units": 796,
                      "nanos": 410000000
                    },
                    "items": [
                      {
                        "id": "flight_adult-basefare",
                        "title": "Flight fare",
                        "price": {
                          "currencyCode": "USD",
                          "units": 693,
                          "nanos": 960000000
                        },
                        "items": []
                      },
                      {
                        "id": "flight_adult-tax",
                        "title": "Taxes and airline fees",
                        "price": {
                          "currencyCode": "USD",
                          "units": 102,
                          "nanos": 450000000
                        },
                        "items": []
                      }
                    ]
                  },
                  {
                    "scope": "FLIGHT_INFANT",
                    "quantity": 2,
                    "id": "flight_infant",
                    "title": "Infants (2)",
                    "price": {
                      "currencyCode": "USD",
                      "units": 1592,
                      "nanos": 820000000
                    },
                    "items": [
                      {
                        "id": "flight_infant-basefare",
                        "title": "Flight fare",
                        "price": {
                          "currencyCode": "USD",
                          "units": 1387,
                          "nanos": 920000000
                        },
                        "items": []
                      },
                      {
                        "id": "flight_infant-tax",
                        "title": "Taxes and airline fees",
                        "price": {
                          "currencyCode": "USD",
                          "units": 204,
                          "nanos": 900000000
                        },
                        "items": []
                      }
                    ]
                  }
                ],
                "addedItems": []
              }
            },
            {
              "brandedFareInfo": {
                "fareName": "Choice Extra",
                "cabinClass": "ECONOMY",
                "features": [
                  {
                    "featureName": "PERSONAL_BAGGAGE",
                    "category": "BAGGAGE",
                    "code": "BK03",
                    "label": "3 personal items",
                    "availability": "INCLUDED",
                    "priority": 0,
                    "content": [],
                    "sectionCategory": {
                      "groupingKey": "BAGGAGE",
                      "heading": "Baggage",
                      "priority": 1
                    }
                  },
                  {
                    "featureName": "CABIN_BAGGAGE",
                    "category": "BAGGAGE",
                    "code": "BK02",
                    "label": "3 cabin bags",
                    "availability": "INCLUDED",
                    "priority": 2,
                    "content": [],
                    "sectionCategory": {
                      "groupingKey": "BAGGAGE",
                      "heading": "Baggage",
                      "priority": 1
                    }
                  },
                  {
                    "featureName": "CHECK_BAGGAGE",
                    "category": "BAGGAGE",
                    "code": "BK01",
                    "label": "6 checked bags",
                    "availability": "INCLUDED",
                    "priority": 4,
                    "content": [],
                    "sectionCategory": {
                      "groupingKey": "BAGGAGE",
                      "heading": "Baggage",
                      "priority": 1
                    }
                  },
                  {
                    "featureName": "REFUNDABLE_TICKET",
                    "availability": "INCLUDED",
                    "category": "CANCEL",
                    "code": "056",
                    "priority": 11,
                    "content": [],
                    "sectionCategory": {
                      "groupingKey": "FLEXIBILITY",
                      "heading": "Flexibility",
                      "priority": 2
                    },
                    "label": "Refund if you cancel "
                  },
                  {
                    "featureName": "CHANGEABLE_TICKET",
                    "availability": "INCLUDED",
                    "category": "CHANGE",
                    "code": "08R",
                    "priority": 9,
                    "content": [],
                    "sectionCategory": {
                      "groupingKey": "FLEXIBILITY",
                      "heading": "Flexibility",
                      "priority": 2
                    },
                    "label": "Flight change allowed"
                  },
                  {
                    "featureName": "PRIORITY_BOARDING",
                    "availability": "INCLUDED",
                    "category": "CHECK_IN",
                    "code": "0G6",
                    "priority": 14,
                    "content": [],
                    "sectionCategory": {
                      "groupingKey": "TRAVEL_EXPERIENCE",
                      "heading": "Travel experience",
                      "priority": 3
                    },
                    "label": "Priority boarding"
                  },
                  {
                    "featureName": "PREMIUM_SEAT",
                    "availability": "INCLUDED",
                    "category": "SEATS",
                    "code": "05Z",
                    "priority": 6,
                    "content": [],
                    "sectionCategory": {
                      "groupingKey": "TRAVEL_EXPERIENCE",
                      "heading": "Travel experience",
                      "priority": 3
                    },
                    "label": "Choice of premium seating"
                  }
                ],
                "fareAttributes": [],
                "nonIncludedFeaturesRequired": false,
                "nonIncludedFeatures": [],
                "featuresList": [],
                "checkinBaggageExcluded": false,
                "cabinBaggageExcluded": false,
                "fareTag": "BAGGAGE"
              },
              "ancillaries": [],
              "token": "c8e49_3904B@528902410ab36854e72a527ee1009e2ec77764bd43bdfefc922388eab4634975d9754dceae8b4c4571d14b1c60f7d3c5d4e03ee9eaf33bdae51c06fc9583cc2328b3bc10ec4245c3de883c079decfa4435338d1c84ca5b09e0913117d483c2720907e666e296dbd185baad69c5ae68aa5afc872259d28f3349c2ccc79fbdadcc1105878cc24ab1255ff82055a2a32e5d8cce7ad5d8c88fef7894f6633a9f52511b4aa005d00cbfc12d711f53d111e6fec503a4e73ba56041966913095064584139a1aefd65ba23d40b89f2f638907a8295b74b823895b0319783f5d830dcbb021f75f42a4d2c64ba4fdf784076832f1823f0238389120b09d5dcd0369cd8ea69a5e0a1b7a6b36b0dba02e1d1",
              "offerReference": "c8e49_3904B@528902410ab36854e72a527ee1009e2ec77764bd43bdfefc922388eab4634975d9754dceae8b4c4571d14b1c60f7d3c5d4e03ee9eaf33bdae51c06fc9583cc2328b3bc10ec4245c3de883c079decfa4435338d1c84ca5b09e0913117d483c2720907e666e296dbd185baad69c5ae68aa5afc872259d28f3349c2ccc79fbdadcc1105878cc24ab1255ff82055a2a32e5d8cce7ad5d8c88fef7894f6633a9f52511b4aa005d00cbfc12d711f53d111e6fec503a4e73ba56041966913095064584139a1aefd65ba23d40b89f2f638907a8295b74b823895b0319783f5d830dcbb021f75f42a4d2c64ba4fdf784076832f1823f0238389120b09d5dcd0369cd8ea69a5e0a1b7a6b36b0dba02e1d1",
              "priceBreakdown": {
                "total": {
                  "currencyCode": "USD",
                  "units": 2659,
                  "nanos": 230000000,
                  "amount": 2659.23
                },
                "baseFare": {
                  "currencyCode": "USD",
                  "units": 2333,
                  "nanos": 40000000,
                  "amount": 2333.04
                },
                "fee": {
                  "currencyCode": "USD",
                  "units": 0,
                  "nanos": 0,
                  "amount": 0
                },
                "tax": {
                  "currencyCode": "USD",
                  "units": 326,
                  "nanos": 190000000,
                  "amount": 326.19
                },
                "totalRounded": {
                  "currencyCode": "USD",
                  "nanos": 0,
                  "units": 2660,
                  "amount": 2660
                },
                "discount": {
                  "currencyCode": "USD",
                  "units": 0,
                  "nanos": 0,
                  "amount": 0
                },
                "totalWithoutDiscount": {
                  "currencyCode": "USD",
                  "units": 2659,
                  "nanos": 230000000,
                  "amount": 2659.23
                },
                "totalWithoutDiscountRounded": {
                  "currencyCode": "USD",
                  "nanos": 0,
                  "units": 2660,
                  "amount": 2660
                },
                "showPriceStrikethrough": false,
                "farePriceDifference": {
                  "currencyCode": "USD",
                  "units": 690,
                  "nanos": 30000000,
                  "amount": 690.03
                },
                "travellerFarePriceDifference": {
                  "currencyCode": "USD",
                  "units": 230,
                  "nanos": 10000000,
                  "amount": 230.01
                },
                "travellerPrice": {
                  "currencyCode": "USD",
                  "units": 656,
                  "nanos": 400000000
                }
              },
              "travellerPrices": [
                {
                  "travellerPriceBreakdown": {
                    "total": {
                      "currencyCode": "USD",
                      "units": 886,
                      "nanos": 410000000
                    },
                    "baseFare": {
                      "currencyCode": "USD",
                      "units": 777,
                      "nanos": 680000000
                    },
                    "fee": {
                      "currencyCode": "USD",
                      "units": 0,
                      "nanos": 0
                    },
                    "tax": {
                      "currencyCode": "USD",
                      "units": 108,
                      "nanos": 730000000
                    },
                    "totalRounded": {
                      "currencyCode": "USD",
                      "nanos": 0,
                      "units": 887
                    },
                    "discount": {
                      "currencyCode": "USD",
                      "units": 0,
                      "nanos": 0
                    },
                    "totalWithoutDiscount": {
                      "currencyCode": "USD",
                      "units": 886,
                      "nanos": 410000000
                    },
                    "totalWithoutDiscountRounded": {
                      "currencyCode": "USD",
                      "nanos": 0,
                      "units": 887
                    },
                    "showPriceStrikethrough": false
                  },
                  "travellerReference": "1",
                  "travellerType": "ADULT"
                },
                {
                  "travellerPriceBreakdown": {
                    "total": {
                      "currencyCode": "USD",
                      "units": 886,
                      "nanos": 410000000
                    },
                    "baseFare": {
                      "currencyCode": "USD",
                      "units": 777,
                      "nanos": 680000000
                    },
                    "fee": {
                      "currencyCode": "USD",
                      "units": 0,
                      "nanos": 0
                    },
                    "tax": {
                      "currencyCode": "USD",
                      "units": 108,
                      "nanos": 730000000
                    },
                    "totalRounded": {
                      "currencyCode": "USD",
                      "nanos": 0,
                      "units": 887
                    },
                    "discount": {
                      "currencyCode": "USD",
                      "units": 0,
                      "nanos": 0
                    },
                    "totalWithoutDiscount": {
                      "currencyCode": "USD",
                      "units": 886,
                      "nanos": 410000000
                    },
                    "totalWithoutDiscountRounded": {
                      "currencyCode": "USD",
                      "nanos": 0,
                      "units": 887
                    },
                    "showPriceStrikethrough": false
                  },
                  "travellerReference": "2",
                  "travellerType": "KID"
                },
                {
                  "travellerPriceBreakdown": {
                    "total": {
                      "currencyCode": "USD",
                      "units": 886,
                      "nanos": 410000000
                    },
                    "baseFare": {
                      "currencyCode": "USD",
                      "units": 777,
                      "nanos": 680000000
                    },
                    "fee": {
                      "currencyCode": "USD",
                      "units": 0,
                      "nanos": 0
                    },
                    "tax": {
                      "currencyCode": "USD",
                      "units": 108,
                      "nanos": 730000000
                    },
                    "totalRounded": {
                      "currencyCode": "USD",
                      "nanos": 0,
                      "units": 887
                    },
                    "discount": {
                      "currencyCode": "USD",
                      "units": 0,
                      "nanos": 0
                    },
                    "totalWithoutDiscount": {
                      "currencyCode": "USD",
                      "units": 886,
                      "nanos": 410000000
                    },
                    "totalWithoutDiscountRounded": {
                      "currencyCode": "USD",
                      "nanos": 0,
                      "units": 887
                    },
                    "showPriceStrikethrough": false
                  },
                  "travellerReference": "3",
                  "travellerType": "KID"
                }
              ],
              "includedProductsBySegment": [
                [
                  {
                    "travellerReference": "1",
                    "travellerProducts": [
                      {
                        "type": "checkedInBaggage",
                        "product": {
                          "luggageType": "CHECKED_IN",
                          "ruleType": "PIECE_BASED",
                          "maxPiece": 2
                        }
                      },
                      {
                        "type": "cabinBaggage",
                        "product": {
                          "luggageType": "HAND",
                          "maxPiece": 1,
                          "sizeRestrictions": {
                            "maxLength": 23.6,
                            "maxWidth": 15.8,
                            "maxHeight": 9.8,
                            "sizeUnit": "INCH"
                          }
                        }
                      },
                      {
                        "type": "personalItem"
                      }
                    ]
                  },
                  {
                    "travellerReference": "2",
                    "travellerProducts": [
                      {
                        "type": "checkedInBaggage",
                        "product": {
                          "luggageType": "CHECKED_IN",
                          "ruleType": "PIECE_BASED",
                          "maxPiece": 2
                        }
                      },
                      {
                        "type": "cabinBaggage",
                        "product": {
                          "luggageType": "HAND",
                          "maxPiece": 1,
                          "sizeRestrictions": {
                            "maxLength": 23.6,
                            "maxWidth": 15.8,
                            "maxHeight": 9.8,
                            "sizeUnit": "INCH"
                          }
                        }
                      },
                      {
                        "type": "personalItem"
                      }
                    ]
                  },
                  {
                    "travellerReference": "3",
                    "travellerProducts": [
                      {
                        "type": "checkedInBaggage",
                        "product": {
                          "luggageType": "CHECKED_IN",
                          "ruleType": "PIECE_BASED",
                          "maxPiece": 2
                        }
                      },
                      {
                        "type": "cabinBaggage",
                        "product": {
                          "luggageType": "HAND",
                          "maxPiece": 1,
                          "sizeRestrictions": {
                            "maxLength": 23.6,
                            "maxWidth": 15.8,
                            "maxHeight": 9.8,
                            "sizeUnit": "INCH"
                          }
                        }
                      },
                      {
                        "type": "personalItem"
                      }
                    ]
                  }
                ],
                [
                  {
                    "travellerReference": "1",
                    "travellerProducts": [
                      {
                        "type": "checkedInBaggage",
                        "product": {
                          "luggageType": "CHECKED_IN",
                          "ruleType": "PIECE_BASED",
                          "maxPiece": 2
                        }
                      },
                      {
                        "type": "cabinBaggage",
                        "product": {
                          "luggageType": "HAND",
                          "maxPiece": 1,
                          "sizeRestrictions": {
                            "maxLength": 23.6,
                            "maxWidth": 15.8,
                            "maxHeight": 9.8,
                            "sizeUnit": "INCH"
                          }
                        }
                      },
                      {
                        "type": "personalItem"
                      }
                    ]
                  },
                  {
                    "travellerReference": "2",
                    "travellerProducts": [
                      {
                        "type": "checkedInBaggage",
                        "product": {
                          "luggageType": "CHECKED_IN",
                          "ruleType": "PIECE_BASED",
                          "maxPiece": 2
                        }
                      },
                      {
                        "type": "cabinBaggage",
                        "product": {
                          "luggageType": "HAND",
                          "maxPiece": 1,
                          "sizeRestrictions": {
                            "maxLength": 23.6,
                            "maxWidth": 15.8,
                            "maxHeight": 9.8,
                            "sizeUnit": "INCH"
                          }
                        }
                      },
                      {
                        "type": "personalItem"
                      }
                    ]
                  },
                  {
                    "travellerReference": "3",
                    "travellerProducts": [
                      {
                        "type": "checkedInBaggage",
                        "product": {
                          "luggageType": "CHECKED_IN",
                          "ruleType": "PIECE_BASED",
                          "maxPiece": 2
                        }
                      },
                      {
                        "type": "cabinBaggage",
                        "product": {
                          "luggageType": "HAND",
                          "maxPiece": 1,
                          "sizeRestrictions": {
                            "maxLength": 23.6,
                            "maxWidth": 15.8,
                            "maxHeight": 9.8,
                            "sizeUnit": "INCH"
                          }
                        }
                      },
                      {
                        "type": "personalItem"
                      }
                    ]
                  }
                ]
              ],
              "includedProducts": {
                "areAllSegmentsIdentical": true,
                "segments": [
                  [
                    {
                      "luggageType": "PERSONAL_ITEM",
                      "maxPiece": 3,
                      "piecePerPax": 1
                    },
                    {
                      "luggageType": "HAND",
                      "maxPiece": 3,
                      "sizeRestrictions": {
                        "maxLength": 23.6,
                        "maxWidth": 15.8,
                        "maxHeight": 9.8,
                        "sizeUnit": "INCH"
                      },
                      "piecePerPax": 1
                    },
                    {
                      "luggageType": "CHECKED_IN",
                      "ruleType": "PIECE_BASED",
                      "maxPiece": 6,
                      "piecePerPax": 2
                    }
                  ]
                ]
              },
              "unifiedPriceBreakdown": {
                "id": "WN4926.CVG2026-02-02T07:00:00.MDW2026-02-02T07:25:00.ECONOMY,WN4893.MDW2026-02-02T08:15:00.OKC2026-02-02T10:35:00.ECONOMY,WN2991.OKC2026-02-05T15:10:00.MDW2026-02-05T17:15:00.ECONOMY,WN1659.MDW2026-02-05T18:05:00.CVG2026-02-05T20:15:00.ECONOMY_0_1ADULT.2INFANT_DIRECT_FIREFLY",
                "price": {
                  "currencyCode": "USD",
                  "units": 2659,
                  "nanos": 230000000
                },
                "items": [
                  {
                    "scope": "FLIGHT_ADULT",
                    "quantity": 1,
                    "id": "flight_adult",
                    "title": "Adult (1)",
                    "price": {
                      "currencyCode": "USD",
                      "units": 886,
                      "nanos": 410000000
                    },
                    "items": [
                      {
                        "id": "flight_adult-basefare",
                        "title": "Flight fare",
                        "price": {
                          "currencyCode": "USD",
                          "units": 777,
                          "nanos": 680000000
                        },
                        "items": []
                      },
                      {
                        "id": "flight_adult-tax",
                        "title": "Taxes and airline fees",
                        "price": {
                          "currencyCode": "USD",
                          "units": 108,
                          "nanos": 730000000
                        },
                        "items": []
                      }
                    ]
                  },
                  {
                    "scope": "FLIGHT_INFANT",
                    "quantity": 2,
                    "id": "flight_infant",
                    "title": "Infants (2)",
                    "price": {
                      "currencyCode": "USD",
                      "units": 1772,
                      "nanos": 820000000
                    },
                    "items": [
                      {
                        "id": "flight_infant-basefare",
                        "title": "Flight fare",
                        "price": {
                          "currencyCode": "USD",
                          "units": 1555,
                          "nanos": 360000000
                        },
                        "items": []
                      },
                      {
                        "id": "flight_infant-tax",
                        "title": "Taxes and airline fees",
                        "price": {
                          "currencyCode": "USD",
                          "units": 217,
                          "nanos": 460000000
                        },
                        "items": []
                      }
                    ]
                  }
                ],
                "addedItems": []
              }
            }
          ],
          "unifiedPriceBreakdown": {
            "id": "WN4926.CVG2026-02-02T07:00:00.MDW2026-02-02T07:25:00.ECONOMY,WN4893.MDW2026-02-02T08:15:00.OKC2026-02-02T10:35:00.ECONOMY,WN2991.OKC2026-02-05T15:10:00.MDW2026-02-05T17:15:00.ECONOMY,WN1659.MDW2026-02-05T18:05:00.CVG2026-02-05T20:15:00.ECONOMY_0_1ADULT.2INFANT_DIRECT_FIREFLY",
            "price": {
              "currencyCode": "USD",
              "units": 1969,
              "nanos": 200000000,
              "amount": 1969.2
            },
            "items": [
              {
                "scope": "FLIGHT_ADULT",
                "quantity": 1,
                "id": "flight_adult",
                "title": "Adult (1)",
                "price": {
                  "currencyCode": "USD",
                  "units": 656,
                  "nanos": 400000000,
                  "amount": 656.4
                },
                "items": [
                  {
                    "id": "flight_adult-basefare",
                    "title": "Flight fare",
                    "price": {
                      "currencyCode": "USD",
                      "units": 563,
                      "nanos": 720000000,
                      "amount": 563.72
                    },
                    "items": []
                  },
                  {
                    "id": "flight_adult-tax",
                    "title": "Taxes and airline fees",
                    "price": {
                      "currencyCode": "USD",
                      "units": 92,
                      "nanos": 680000000,
                      "amount": 92.68
                    },
                    "items": []
                  }
                ]
              },
              {
                "scope": "FLIGHT_INFANT",
                "quantity": 2,
                "id": "flight_infant",
                "title": "Infants (2)",
                "price": {
                  "currencyCode": "USD",
                  "units": 1312,
                  "nanos": 800000000,
                  "amount": 1312.8
                },
                "items": [
                  {
                    "id": "flight_infant-basefare",
                    "title": "Flight fare",
                    "price": {
                      "currencyCode": "USD",
                      "units": 1127,
                      "nanos": 440000000,
                      "amount": 1127.44
                    },
                    "items": []
                  },
                  {
                    "id": "flight_infant-tax",
                    "title": "Taxes and airline fees",
                    "price": {
                      "currencyCode": "USD",
                      "units": 185,
                      "nanos": 360000000,
                      "amount": 185.36
                    },
                    "items": []
                  }
                ]
              }
            ],
            "addedItems": []
          },
          "perTravellerPriceDifferences": []
        },
        { ... }
      ],
      "atolProtectedStatus": "NONE",
      "displayOptions": {
        "brandedFaresShownByDefault": true,
        "directFlightsOnlyFilterIgnored": false,
        "hideFlexiblePricesBanner": true
      },
      "searchCriteria": {
        "cabinClass": "ECONOMY"
      },
      "baggagePolicies": [
        {
          "code": "AA",
          "name": "American Airlines",
          "url": "https://aa.com/i18n/travel-info/baggage/checked-baggage-policy.jsp"
        },
        { ... }
      ],
      "personalisationSegments": [
        "INTERNATIONAL_FAMILY_VACATIONERS",
        "SHORT_HAUL_TRIP",
        "FAMILY_TRAVELLERS"
      ]
    }
  }
 

Example response (401, Unauthenticated):


{
    "message": "Unauthenticated."
}
 

Example response (404, Not Found):


{
    "success": false,
    "message": "Resource Not Found"
}
 

Example response (422, Error Validations):


{
    "message": "The ticker field is required.",
    "errors": {
        "ticker": [
            "The ticker field is required."
        ]
    }
}
 

GET /v1/flights/details

requires authentication

Retrieve detailed flight offer information including segments, pricing, baggage policies, and fare features. This endpoint uses a flight token from search results.

Example request:
import requests
import json

url = 'https://api.steadyapi.com/v1/booking/flights/details'
params = {
  'token': '',
  'skip_branded_fares': '1',
  'language': 'en-us',
}
headers = {
  'Authorization': 'Bearer {YOUR_AUTH_KEY}'
}

response = requests.request('GET', url, headers=headers, params=params)
response.json()
$client = new \GuzzleHttp\Client();
$url = 'https://api.steadyapi.com/v1/booking/flights/details';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
        ],
        'query' => [
            'token' => '',
            'skip_branded_fares' => '1',
            'language' => 'en-us',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
const url = new URL(
    "https://api.steadyapi.com/v1/booking/flights/details"
);

const params = {
    "token": "",
    "skip_branded_fares": "1",
    "language": "en-us",
};
Object.keys(params)
    .forEach(key => url.searchParams.append(key, params[key]));

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
curl --request GET \
    --get "https://api.steadyapi.com/v1/booking/flights/details?token=&skip_branded_fares=1&language=en-us" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}"

Example response (200, Success):


{
    "meta": {
        "version": "v1.0",
        "status": 200,
        "copywrite": "https://steadyapi.com",
        "token": "c8e49_528902410ab36854e72a...",
        "language": "en-us",
        "include_branded_fares": true,
        "skip_branded_fares": 1,
        "timestamp": 1769393844000
    },
    "body": {
        "token": "c8e49_528902410ab36854e72a...",
        "trip_type": "ROUNDTRIP",
        "point_of_sale": "us",
        "offer_reference": "c8e49_CgJ2MRIkZDE2NmM1ZWMtMGE4N...",
        "flight_key": "1_WN4926_WN4893_2_WN2991_WN1659.CVG20260202.OKC20260205",
        "segments": [
            {
                "segment_number": 1,
                "direction": "outbound",
                "departure": {
                    "airport": {
                        "code": "CVG",
                        "name": "Cincinnati/Northern Kentucky International Airport",
                        "city": "CVG",
                        "city_name": "Cincinnati",
                        "country": "US",
                        "country_name": "United States",
                        "province": "Ohio",
                        "province_code": "OH"
                    },
                    "time": "2026-02-02T07:00:00",
                    "time_tz": "2026-02-02T07:00:00-05:00"
                },
                "arrival": {
                    "airport": {
                        "code": "OKC",
                        "name": "Will Rogers World Airport",
                        "city": "OKC",
                        "city_name": "Oklahoma City",
                        "country": "US",
                        "country_name": "United States",
                        "province": "Oklahoma",
                        "province_code": "OK"
                    },
                    "time": "2026-02-02T10:35:00",
                    "time_tz": "2026-02-02T10:35:00-06:00"
                },
                "total_duration_minutes": 275,
                "legs": [
                    {
                        "leg_number": 1,
                        "departure": {
                            "airport": {
                                "code": "CVG",
                                "name": "Cincinnati/Northern Kentucky International Airport",
                                "city": "CVG"
                            },
                            "time": "2026-02-02T07:00:00",
                            "time_tz": "2026-02-02T07:00:00-05:00"
                        },
                        "arrival": {
                            "airport": {
                                "code": "MDW",
                                "name": "Midway International Airport",
                                "city": "CHI"
                            },
                            "time": "2026-02-02T07:25:00",
                            "time_tz": "2026-02-02T07:25:00-06:00"
                        },
                        "duration_minutes": 85,
                        "flight_info": {
                            "number": 4926,
                            "plane_type": "7S7",
                            "carrier": {
                                "operating": "WN",
                                "marketing": "WN",
                                "disclosure_text": ""
                            },
                            "facilities": []
                        },
                        "carriers": [
                            {
                                "code": "WN",
                                "name": "Southwest Airlines",
                                "logo": "https://r-xx.bstatic.com/data/airlines_logo/WN.png"
                            }
                        ],
                        "cabin_class": "ECONOMY",
                        "stops": 0,
                        "amenities": []
                    },
                    {
                        "leg_number": 2,
                        "departure": {
                            "airport": {
                                "code": "MDW",
                                "name": "Midway International Airport",
                                "city": "CHI"
                            },
                            "time": "2026-02-02T08:15:00",
                            "time_tz": "2026-02-02T08:15:00-06:00"
                        },
                        "arrival": {
                            "airport": {
                                "code": "OKC",
                                "name": "Will Rogers World Airport",
                                "city": "OKC"
                            },
                            "time": "2026-02-02T10:35:00",
                            "time_tz": "2026-02-02T10:35:00-06:00"
                        },
                        "duration_minutes": 140,
                        "flight_info": {
                            "number": 4893,
                            "plane_type": "7S7",
                            "carrier": {
                                "operating": "WN",
                                "marketing": "WN",
                                "disclosure_text": ""
                            },
                            "facilities": []
                        },
                        "carriers": [
                            {
                                "code": "WN",
                                "name": "Southwest Airlines",
                                "logo": "https://r-xx.bstatic.com/data/airlines_logo/WN.png"
                            }
                        ],
                        "cabin_class": "ECONOMY",
                        "stops": 0,
                        "amenities": []
                    }
                ],
                "baggage": {
                    "cabin": [
                        {
                            "type": "HAND",
                            "max_pieces": 1,
                            "size_restrictions": {
                                "maxLength": 23.6,
                                "maxWidth": 15.8,
                                "maxHeight": 9.8,
                                "sizeUnit": "INCH"
                            },
                            "personal_item": true
                        },
                        {
                            "type": "HAND",
                            "max_pieces": 1,
                            "size_restrictions": {
                                "sizeUnit": "INCH"
                            },
                            "personal_item": true
                        },
                        {
                            "type": "HAND",
                            "max_pieces": 1,
                            "size_restrictions": {
                                "sizeUnit": "INCH"
                            },
                            "personal_item": true
                        }
                    ],
                    "checked": []
                },
                "protection": {
                    "atol_protected": false,
                    "warnings": {
                        "origin_airport": false,
                        "destination_airport": false
                    }
                }
            },
            {
                "segment_number": 2,
                "direction": "return",
                "departure": {
                    "airport": {
                        "code": "OKC",
                        "name": "Will Rogers World Airport",
                        "city": "OKC",
                        "city_name": "Oklahoma City",
                        "country": "US",
                        "country_name": "United States",
                        "province": "Oklahoma",
                        "province_code": "OK"
                    },
                    "time": "2026-02-05T15:10:00",
                    "time_tz": "2026-02-05T15:10:00-06:00"
                },
                "arrival": {
                    "airport": {
                        "code": "CVG",
                        "name": "Cincinnati/Northern Kentucky International Airport",
                        "city": "CVG",
                        "city_name": "Cincinnati",
                        "country": "US",
                        "country_name": "United States",
                        "province": "Ohio",
                        "province_code": "OH"
                    },
                    "time": "2026-02-05T20:15:00",
                    "time_tz": "2026-02-05T20:15:00-05:00"
                },
                "total_duration_minutes": 245,
                "legs": [
                    {
                        "leg_number": 1,
                        "departure": {
                            "airport": {
                                "code": "OKC",
                                "name": "Will Rogers World Airport",
                                "city": "OKC"
                            },
                            "time": "2026-02-05T15:10:00",
                            "time_tz": "2026-02-05T15:10:00-06:00"
                        },
                        "arrival": {
                            "airport": {
                                "code": "MDW",
                                "name": "Midway International Airport",
                                "city": "CHI"
                            },
                            "time": "2026-02-05T17:15:00",
                            "time_tz": "2026-02-05T17:15:00-06:00"
                        },
                        "duration_minutes": 125,
                        "flight_info": {
                            "number": 2991,
                            "plane_type": "7S7",
                            "carrier": {
                                "operating": "WN",
                                "marketing": "WN",
                                "disclosure_text": ""
                            },
                            "facilities": []
                        },
                        "carriers": [
                            {
                                "code": "WN",
                                "name": "Southwest Airlines",
                                "logo": "https://r-xx.bstatic.com/data/airlines_logo/WN.png"
                            }
                        ],
                        "cabin_class": "ECONOMY",
                        "stops": 0,
                        "amenities": []
                    },
                    {
                        "leg_number": 2,
                        "departure": {
                            "airport": {
                                "code": "MDW",
                                "name": "Midway International Airport",
                                "city": "CHI"
                            },
                            "time": "2026-02-05T18:05:00",
                            "time_tz": "2026-02-05T18:05:00-06:00"
                        },
                        "arrival": {
                            "airport": {
                                "code": "CVG",
                                "name": "Cincinnati/Northern Kentucky International Airport",
                                "city": "CVG"
                            },
                            "time": "2026-02-05T20:15:00",
                            "time_tz": "2026-02-05T20:15:00-05:00"
                        },
                        "duration_minutes": 70,
                        "flight_info": {
                            "number": 1659,
                            "plane_type": "7S7",
                            "carrier": {
                                "operating": "WN",
                                "marketing": "WN",
                                "disclosure_text": ""
                            },
                            "facilities": []
                        },
                        "carriers": [
                            {
                                "code": "WN",
                                "name": "Southwest Airlines",
                                "logo": "https://r-xx.bstatic.com/data/airlines_logo/WN.png"
                            }
                        ],
                        "cabin_class": "ECONOMY",
                        "stops": 0,
                        "amenities": []
                    }
                ],
                "baggage": {
                    "cabin": [
                        {
                            "type": "HAND",
                            "max_pieces": 1,
                            "size_restrictions": {
                                "maxLength": 23.6,
                                "maxWidth": 15.8,
                                "maxHeight": 9.8,
                                "sizeUnit": "INCH"
                            },
                            "personal_item": true
                        },
                        {
                            "type": "HAND",
                            "max_pieces": 1,
                            "size_restrictions": {
                                "sizeUnit": "INCH"
                            },
                            "personal_item": true
                        },
                        {
                            "type": "HAND",
                            "max_pieces": 1,
                            "size_restrictions": {
                                "sizeUnit": "INCH"
                            },
                            "personal_item": true
                        }
                    ],
                    "checked": []
                },
                "protection": {
                    "atol_protected": false,
                    "warnings": {
                        "origin_airport": false,
                        "destination_airport": false
                    }
                }
            }
        ],
        "pricing": {
            "total": {
                "currency": "USD",
                "amount": 1969.2,
                "units": 1969,
                "nanos": 200000000,
                "formatted": "1,969.20"
            },
            "breakdown": {
                "base_fare": {
                    "currency": "USD",
                    "amount": 1691.16,
                    "units": 1691,
                    "nanos": 160000000,
                    "formatted": "1,691.16"
                },
                "taxes": {
                    "currency": "USD",
                    "amount": 278.04,
                    "units": 278,
                    "nanos": 40000000,
                    "formatted": "278.04"
                },
                "fees": {
                    "currency": "USD",
                    "amount": 0,
                    "units": 0,
                    "nanos": 0,
                    "formatted": "0.00"
                },
                "discount": {
                    "currency": "USD",
                    "amount": 0,
                    "units": 0,
                    "nanos": 0,
                    "formatted": "0.00"
                }
            },
            "display": {
                "total_rounded": {
                    "currency": "USD",
                    "amount": 1970,
                    "units": 1970,
                    "nanos": 0,
                    "formatted": "1,970.00"
                },
                "total_without_discount": {
                    "currency": "USD",
                    "amount": 1969.2,
                    "units": 1969,
                    "nanos": 200000000,
                    "formatted": "1,969.20"
                },
                "total_without_discount_rounded": {
                    "currency": "USD",
                    "amount": 1970,
                    "units": 1970,
                    "nanos": 0,
                    "formatted": "1,970.00"
                },
                "show_strikethrough": false
            }
        },
        "traveller_prices": [
            {
                "traveller_reference": "1",
                "traveller_type": "ADULT",
                "price_breakdown": {
                    "total": {
                        "amount": 656.4,
                        "currency": "USD"
                    }
                }
            },
            {
                "traveller_reference": "2",
                "traveller_type": "KID",
                "price_breakdown": {
                    "total": {
                        "amount": 656.4,
                        "currency": "USD"
                    }
                }
            },
            {
                "traveller_reference": "3",
                "traveller_type": "KID",
                "price_breakdown": {
                    "total": {
                        "amount": 656.4,
                        "currency": "USD"
                    }
                }
            }
        ],
        "travellers": [
            {
                "travellerReference": "1",
                "type": "ADULT"
            },
            {
                "travellerReference": "2",
                "type": "KID",
                "age": 4
            },
            {
                "travellerReference": "3",
                "type": "KID",
                "age": 2
            }
        ],
        "included_products": {
            "all_segments_identical": true,
            "segments": [
                [
                    {
                        "luggageType": "PERSONAL_ITEM",
                        "maxPiece": 3,
                        "piecePerPax": 1
                    },
                    {
                        "luggageType": "HAND",
                        "maxPiece": 1,
                        "sizeRestrictions": {
                            "maxLength": 23.6,
                            "maxWidth": 15.8,
                            "maxHeight": 9.8,
                            "sizeUnit": "INCH"
                        },
                        "piecePerPax": 1
                    },
                    {
                        "luggageType": "HAND",
                        "maxPiece": 2,
                        "sizeRestrictions": {
                            "sizeUnit": "INCH"
                        },
                        "piecePerPax": 1
                    }
                ]
            ]
        },
        "baggage_policies": [
            {
                "airline_code": "WN",
                "airline_name": "Southwest Airlines",
                "policy_url": "https://www.southwest.com/html/customer-service/baggage/index.html?clk=GFOOTER-CUSTOMER-BAGS"
            }
        ],
        "branded_fare": {
            "name": "Choice",
            "cabin_class": "ECONOMY",
            "features_by_category": {
                "BAGGAGE": [
                    {
                        "name": "PERSONAL_BAGGAGE",
                        "label": "3 personal items",
                        "code": "BK03",
                        "availability": "INCLUDED",
                        "priority": 0,
                        "category_info": {
                            "groupingKey": "BAGGAGE",
                            "heading": "Baggage",
                            "priority": 1
                        }
                    },
                    {
                        "name": "CABIN_BAGGAGE",
                        "label": "1 carry-on bag",
                        "code": "BK02",
                        "availability": "INCLUDED",
                        "priority": 2,
                        "category_info": {
                            "groupingKey": "BAGGAGE",
                            "heading": "Baggage",
                            "priority": 1
                        }
                    },
                    {
                        "name": "CABIN_BAGGAGE",
                        "label": "2 carry-on bags",
                        "code": "BK02",
                        "availability": "INCLUDED",
                        "priority": 2,
                        "category_info": {
                            "groupingKey": "BAGGAGE",
                            "heading": "Baggage",
                            "priority": 1
                        }
                    }
                ],
                "CANCEL": [
                    {
                        "name": "REFUND_WITH_TRANSFERABLE_CREDIT_12_MONTHS",
                        "label": "Refund as transferable airline credit if you cancel – valid for 12 months",
                        "code": "",
                        "availability": "INCLUDED",
                        "priority": 32,
                        "category_info": {
                            "groupingKey": "FLEXIBILITY",
                            "heading": "Flexibility",
                            "priority": 2
                        }
                    }
                ],
                "CHANGE": [
                    {
                        "name": "CHANGEABLE_TICKET",
                        "label": "Flight change allowed",
                        "code": "08R",
                        "availability": "INCLUDED",
                        "priority": 9,
                        "category_info": {
                            "groupingKey": "FLEXIBILITY",
                            "heading": "Flexibility",
                            "priority": 2
                        }
                    }
                ]
            },
            "baggage_exclusions": {
                "checkin": true,
                "cabin": false
            }
        },
        "requirements": {
            "traveller_data": [
                "DATE_OF_BIRTH"
            ],
            "booker_data": [
                "EMAIL",
                "PHONE"
            ]
        },
        "point_of_sale_info": {
            "detected_point_of_sale": "us",
            "is_mismatch": false,
            "offer_sales_country": "us"
        },
        "summary": {
            "total_segments": 2,
            "total_legs": 4,
            "total_duration_minutes": 520,
            "airlines": [
                {
                    "code": "WN",
                    "name": "Southwest Airlines",
                    "logo": "https://r-xx.bstatic.com/data/airlines_logo/WN.png"
                }
            ],
            "airports": [
                "CVG",
                "MDW",
                "OKC"
            ]
        }
    }
}
 

Example response (401, Unauthenticated):


{
    "message": "Unauthenticated."
}
 

Example response (404, Not Found):


{
    "success": false,
    "message": "Resource Not Found"
}
 

Example response (422, Error Validations):


{
    "message": "The ticker field is required.",
    "errors": {
        "ticker": [
            "The ticker field is required."
        ]
    }
}
 

Request      

GET v1/booking/flights/details

Headers

Authorization Bearer {YOUR_AUTH_KEY}

Query Parameters

Parameter Type Description
token required string

Unique flight token from search results.

include_branded_fares optional boolean

optional Include branded fare offers (default: true).

skip_branded_fares optional integer

optional Skip branded fares (0=include, 1=skip). Example: 1

language optional string

optional Language code (default: en-us). Example: en-us

Metadata & Utility

Search and autocomplete destinations, cities, and locations with fast, real-time results.

GET /v1/languages

requires authentication

Get all supported languages with their codes and country flags.

Example request:
import requests
import json

url = 'https://api.steadyapi.com/v1/booking/languages'
headers = {
  'Authorization': 'Bearer {YOUR_AUTH_KEY}'
}

response = requests.request('GET', url, headers=headers)
response.json()
$client = new \GuzzleHttp\Client();
$url = 'https://api.steadyapi.com/v1/booking/languages';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
const url = new URL(
    "https://api.steadyapi.com/v1/booking/languages"
);

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
curl --request GET \
    --get "https://api.steadyapi.com/v1/booking/languages" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}"

Example response (200, Success):


{
    "meta": {
      "version": "v1.0",
      "status": 200,
      "copywrite": "https://steadyapi.com",
      "timestamp": 1769394978,
      "total_languages": 45
    },
    "body": [
      {
        "name": "English (UK)",
        "code": "en-gb",
        "country_flag": "gb"
      },
      {
        "name": "English (US)",
        "code": "en-us",
        "country_flag": "us"
      },
      { ... }
    ]
  }
 

Example response (401, Unauthenticated):


{
    "message": "Unauthenticated."
}
 

Example response (404, Not Found):


{
    "success": false,
    "message": "Resource Not Found"
}
 

Example response (422, Error Validations):


{
    "message": "The ticker field is required.",
    "errors": {
        "ticker": [
            "The ticker field is required."
        ]
    }
}
 

Request      

GET v1/booking/languages

Headers

Authorization Bearer {YOUR_AUTH_KEY}

GET /v1/currencies

requires authentication

Get all supported currencies with their codes and symbols.

Example request:
import requests
import json

url = 'https://api.steadyapi.com/v1/booking/currencies'
headers = {
  'Authorization': 'Bearer {YOUR_AUTH_KEY}'
}

response = requests.request('GET', url, headers=headers)
response.json()
$client = new \GuzzleHttp\Client();
$url = 'https://api.steadyapi.com/v1/booking/currencies';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
const url = new URL(
    "https://api.steadyapi.com/v1/booking/currencies"
);

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
curl --request GET \
    --get "https://api.steadyapi.com/v1/booking/currencies" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}"

Example response (200, Success):


{
    "meta": {
      "version": "v1.0",
      "status": 200,
      "copywrite": "https://steadyapi.com",
      "timestamp": 1769400274,
      "total_currencies": 52
    },
    "body": [
      {
        "name": "Argentine Peso",
        "code": "ARS",
        "encoded_symbol": "AR$",
        "symbol": "AR$"
      },
      {
        "name": "Australian Dollar",
        "code": "AUD",
        "encoded_symbol": "AUD",
        "symbol": "AUD"
      },
      { ... }
    ]
  }
 

Example response (401, Unauthenticated):


{
    "message": "Unauthenticated."
}
 

Example response (404, Not Found):


{
    "success": false,
    "message": "Resource Not Found"
}
 

Example response (422, Error Validations):


{
    "message": "The ticker field is required.",
    "errors": {
        "ticker": [
            "The ticker field is required."
        ]
    }
}
 

Request      

GET v1/booking/currencies

Headers

Authorization Bearer {YOUR_AUTH_KEY}

GET /v1/location

requires authentication

Get location suggestions based on search term (airports, cities, districts, landmarks).

Example request:
import requests
import json

url = 'https://api.steadyapi.com/v1/booking/locations'
params = {
  'search': 'Cincinnati',
  'language': 'us',
  'country': 'us',
}
headers = {
  'Authorization': 'Bearer {YOUR_AUTH_KEY}'
}

response = requests.request('GET', url, headers=headers, params=params)
response.json()
$client = new \GuzzleHttp\Client();
$url = 'https://api.steadyapi.com/v1/booking/locations';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
        ],
        'query' => [
            'search' => 'Cincinnati',
            'language' => 'us',
            'country' => 'us',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
const url = new URL(
    "https://api.steadyapi.com/v1/booking/locations"
);

const params = {
    "search": "Cincinnati",
    "language": "us",
    "country": "us",
};
Object.keys(params)
    .forEach(key => url.searchParams.append(key, params[key]));

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
curl --request GET \
    --get "https://api.steadyapi.com/v1/booking/locations?search=Cincinnati&language=us&country=us" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}"

Example response (200, Success):


{
    "meta": {
      "version": "v1.0",
      "status": 200,
      "copywrite": "https://steadyapi.com",
      "query": "cincinnati",
      "language": "us",
      "country": "us",
      "affiliate_code": "booking-cars",
      "total_results": 5,
      "timestamp": 1769397368
    },
    "body": [
      {
        "name": "Cincinnati/Northern Kentucky International Airport",
        "type": "airport",
        "type_code": "A",
        "country": {
          "code": "us",
          "name": "United States"
        },
        "region": "Ohio",
        "city": "Cincinnati",
        "coordinates": {
          "latitude": 39.0449981689453,
          "longitude": -84.6600036621094
        },
        "airport_code": "CVG"
      },
      { ... }
    ]
  }
 

Example response (401, Unauthenticated):


{
    "message": "Unauthenticated."
}
 

Example response (422, Error Validations):


{
    "message": "The ticker field is required.",
    "errors": {
        "ticker": [
            "The ticker field is required."
        ]
    }
}
 

Request      

GET v1/booking/locations

Headers

Authorization Bearer {YOUR_AUTH_KEY}

Query Parameters

Parameter Type Description
search required string

Search term for location. Example: Cincinnati

language optional string

optional Language code (default: us). Example: us

country optional string

optional Country code for results. Example: us