Routespring Logo
Request Demo

API reference · 29 operations

Every crew workflow, one contract.

Search the complete v1 surface across schedules, configuration, action items, bookings, retries, audit, exports, and hotel inventory.

29 endpoints

GET/crew/schedulesList schedule submissions

Returns a paginated list of schedule submissions for your airline, ordered by submission time descending (most recent first). Use this to look up a scheduleid when you don't have it from the original submit response, or to audit submission history. No filter is required — omitting all parameters returns the most recent 50 submissions.

Parameters

from
queryoptional
string<date>

Filter schedules received on/after this date.

to
queryoptional
string<date>

Filter schedules received on/before this date.

status
queryoptional
string

Filter by processing status. Useful for finding submissions still in progress (QUEUED, PROCESSING, BOOKING) or those that failed (FAILED).

limit
queryoptional
integer
cursor
queryoptional
string

Opaque pagination cursor. Echo from previous response.

Responses

200 OK401
POST/crew/schedulesSubmit a crew schedule

Push the airline's roster to Routespring as a JSON payload. Each submission represents the complete current state of all open pairings — Routespring computes the diff against the prior submission server-side and derives action items accordingly. Returns 202 immediately with a scheduleid; diffing, classification, and booking run asynchronously. Track outcomes at the three async levels described in the Async outcome model section of the API overview. Briefly: a submission of 200 duty periods where 3 individual hotel bookings fail surfaces as ProcessingStatus: COMPLETED plus 197 CONFIRMED and 3 FAILED bookings, each retrievable individually. JSON is the only ingestion format: the airline-workflow anchors (pairingnumber, employeeid, …) flow through as structured fields tied to your operational vocabulary.

JSON body

external_ref
bodyoptional
string

Airline-side identifier for this submission (echoed back).

as_of
bodyoptional
string<date-time>

Airline timestamp (UTC) when this snapshot was captured.

schedule_start_date
bodyrequired
string<date>

Inclusive start of the schedule window this submission covers (YYYY-MM-DD). Routespring only reconciles bookings on or after this date against the submission.

schedule_end_date
bodyrequired
string<date>

Inclusive end of the schedule window this submission covers (YYYY-MM-DD). Must be on or after schedulestartdate. Routespring only reconciles bookings on or before this date.

pairings
bodyrequired
object[]

Responses

202 Accepted for processing400 401 422
GET/crew/schedules/{schedule_id}Get schedule metadata + summary

Returns the full metadata and processing summary for a single schedule submission. Use this to check the outcome of a submission — how action items were distributed across auto-booked, pending review, and failed.

Parameters

schedule_id
pathrequired
string

Responses

200 OK404
GET/crew/schedules/{schedule_id}/processing-statusPoll processing status

Parameters

schedule_id
pathrequired
string

Responses

200 OK
GET/crew/schedules/{schedule_id}/action-itemsList action items derived from a schedule

Returns the action items Routespring derived from this schedule submission. Each item represents one booking decision — what the engine determined needed to happen and whether it acted automatically or held it for review. Call this after polling processing-status until pollrecommended is false. Filter by disposition: PENDINGREVIEW to find items requiring human action, or by type: FLIGHT to see all deadhead positioning needs.

Parameters

schedule_id
pathrequired
string
type
queryoptional
string

Filter by booking type — HOTEL for layover bookings, FLIGHT for deadhead positioning.

subtype
queryoptional
string

Filter by the nature of the change — NEWBOOKING, MODIFY, or CANCEL.

priority
queryoptional
string

Filter by urgency — P1 for IROPs requiring immediate action through to P4 for low-urgency backfills.

disposition
queryoptional
string

Filter by outcome — AUTOBOOKED / AUTOCANCELLED for items the engine handled automatically, PENDINGREVIEW to find items requiring human action, FAILED to find items needing retry.

limit
queryoptional
integer
cursor
queryoptional
string

Opaque pagination cursor. Echo from previous response.

Responses

200 OK404
GET/crew/schedules/{schedule_id}/audit-eventsList data-quality audit events

Parameters

schedule_id
pathrequired
string
limit
queryoptional
integer
cursor
queryoptional
string

Opaque pagination cursor. Echo from previous response.

Responses

200 OK404
GET/crew/schedules/{schedule_id}/actions.csvDownload action items as CSV

Flat CSV of every action item from this schedule submission. One row per action. Machine-readable; suitable for ingestion into airline-side BI / analytics systems.

Parameters

schedule_id
pathrequired
string

Responses

200 OK401 404
POST/crew/action-itemsInject an action item (IROP / out-of-schedule requirement)

The airline already knows what booking is required and asks Routespring to run it through the booking engine — searching the supplier pool, applying the active configuration, and either auto-booking or flagging for review per the same rules that govern diff-derived action items. Primary use case — IROPs. When operations diverges from the published roster (weather diversion, sick crew, cascading delay), the airline computes the new booking requirement before your crew management system catches up. Calling this endpoint with source: IROP and an iropref correlates every action item, booking, and audit event for that IROP for after-action analysis. When to use vs alternatives: Diff-derived (normal flow): just POST /schedules. Routespring computes the action items. Airline has not selected a specific flight, wants Routespring to search + auto-book per config: this endpoint. Airline has selected a specific flight (via GET /flight-options) and wants to commit it: POST /bookings/request instead — that path skips the search step and goes straight to the supplier. Returns the created ActionItem immediately (202). Execution (v1). Both HOTEL and FLIGHT injections are auto-booked asynchronously through the same engine the schedule flow uses (supplier search + selection + rate/fare from config); poll GET /bookings/{bookingid}/status for the outcome. POST /action-items takes no flightoptionid — the engine searches and selects the positioning flight for you. (If you have already chosen a specific flight via GET /flight-options and want to commit that exact one, use POST /bookings/request instead.) Resulting Booking.manualoverride defaults to true so a subsequent schedule submission's diff engine does not revert the injected booking. Idempotency (optional). Send an Idempotency-Key header to make retries safe: a repeated key for the same airline replays the original action item instead of injecting (and booking) a second time.

Parameters

Idempotency-Key
headeroptional
string

Optional. A repeated key for the same airline replays the original action item instead of injecting a second time.

JSON body

type
bodyrequired
string

Whether this is a hotel layover booking or a deadhead flight positioning requirement. Must match the sub-object provided — HOTEL requires hotel, FLIGHT requires flight.

classification
bodyrequired
string

Airline-supplied classification. Uses the same vocabulary as ActionItem.classification — common values for injected items: IROPNEWDEADHEAD, IROPREROUTE, IROPHOTELEXTEND, IROPHOTELCANCEL. For non-IROP injections, use the matching NEWLAYOVER / NEWDEADHEAD / LAYOVEREXTENDED value. The engine treats injected classifications the same way as diff-derived ones for disposition rules.

priority
bodyoptional
string

Drives queue ordering. Default P2. Bump to P1 for IROPs with tight SLAs (~5 min to commit). P3/P4 for low-urgency backfills.

source
bodyoptional
string

IROP enables IROP-specific telemetry (after-action grouping by iropref) and tightens default SLAs. AIRLINEINJECTED is the general-purpose injection (ad-hoc additions outside both the diff flow and IROPs).

irop_ref
bodyoptional
string

Airline-side correlation id. Required when source: IROP so all artifacts tied to one IROP can be queried together via GET /bookings?iropref=....

anchors
bodyrequired
object

Airline-meaningful identifiers for an injected action item or booking request. travelleremail is required so Routespring can resolve the crew member's bookable profile. employeeid and the other anchors are optional but encouraged when known — they flow into the booking's denormalized index so retrieval by any one is a single lookup. Note pairingnumber is recommended even for IROP-driven bookings where the original pairing has been disrupted: keeping the link lets the airline and Routespring see the IROP-injected booking next to the original pairing's other bookings in the same view.

flight
bodyoptional
object

Flight constraints Routespring searches against. The engine applies the active flight config (preferred airlines, cabin, autobookmaxprice, etc.) to pick a match — or flags PENDINGREVIEW when no match satisfies the config.

hotel
bodyoptional
object
manual_override
bodyoptional
boolean

Defaults to true — the diff engine will not modify the resulting booking on subsequent schedule submissions. Pass false to release the booking to auto-management immediately on creation.

notes
bodyoptional
string

Free-text context for this injection — reason for the IROP, operational notes for the travel manager. Appears on the resulting action item.

Responses

202 Accepted — action item created; booking pipeline running asynchronously400 401 422
GET/crew/config/hotelsGet hotel configuration (per-base preferred hotels + contract rates)

Returns your airline's active hotel configuration — the preferred hotel per crew base, with its contract rate and check-in/out policy. The booking engine uses the hotel configured for the crew member's layover city, matching against the contracted rate. To retrieve a historical snapshot, use GET /crew/config/hotels/versions/{version}.

Responses

200 OK
PUT/crew/config/hotelsReplace hotel configuration (idempotent, creates new version)

Replaces your airline's hotel configuration. The full list of bases and hotels must be sent — this is a full replacement, not a merge. One hotel per base. The previous config is archived as an immutable version; every booking records the config version active at the time it was made. The booking channel is derived from each propertyid: a match in Routespring's GDS inventory (look it up via GET /hotels) books via GDS; a propertyid that is not in the inventory is a DIRECT hotel only when it supplies its own chain. A non-inventory propertyid with no chain is treated as a mistyped GDS id and rejected with 422 UNKNOWNHOTELPROPERTY. handlertype is therefore not sent on input — it is returned (derived) on the config response.

JSON body

bases
bodyrequired
object[]

Responses

200 Replaced
GET/crew/config/flightsGet flight configuration (preferred / blacklisted airlines, cabin)

Returns your airline's carrier and cabin preferences for deadhead positioning flights. The booking engine applies these when searching for and selecting flights on behalf of crew.

Responses

200 OK
PUT/crew/config/flightsReplace flight configuration

Sets your airline's carrier and cabin preferences for deadhead positioning flights. Blacklisted carriers are never booked. Preferred carriers are tried first; if none have availability, the engine considers any non-blacklisted option. Set samecarrierpreference: true to prioritize your own airline's flights when repositioning crew.

JSON body

preferred_airlines
bodyoptional
string[]

IATA 2-letter carrier codes to prioritize when booking deadhead flights. The engine tries these carriers first; if none have availability, any non-blacklisted carrier is considered.

blacklisted_airlines
bodyoptional
string[]

IATA 2-letter carrier codes that must never be booked for deadhead positioning, regardless of availability or price.

preferred_cabin
bodyoptional
string

Default cabin class for deadhead flights. The engine will not book above this class. Can be overridden per-request via the cabinclass field on POST /bookings/request.

same_carrier_preference
bodyoptional
boolean

When true, the engine prioritizes the crew member's own airline's flights for deadhead positioning where available, before considering carriers in preferredairlines.

Responses

200 Replaced
GET/crew/config/flight-rulesGet flight rules (auto-book price ceiling)

Returns the price ceiling for auto-booking positioning (deadhead) flights. If a booking lands in NEEDSREVIEW unexpectedly, check autobookmaxprice — fares above this amount are held for travel manager approval rather than booked automatically.

Responses

200 OK
PUT/crew/config/flight-rulesReplace flight rules

autobookmaxprice is the per-ticket ceiling for auto-booking a positioning (deadhead) flight — fares above this are held as NEEDSREVIEW for travel manager approval rather than booked automatically. Only fields included in the request are updated; omitted fields retain their current values.

JSON body

auto_book_max_price
bodyoptional
object

Responses

200 Replaced
GET/crew/config/companyGet company crew-automation settings

Returns your airline's automation settings — the flags that control what Routespring executes automatically versus holds for human review, the account under which engine-driven bookings are placed, and the rate matching mode that determines how strictly contracted rates are enforced at booking time. When an automation flag is disabled, Routespring creates an action item for your team to handle instead of executing automatically. See the Action Items section for how these are surfaced and managed. If bookings are landing in NEEDSREVIEW unexpectedly, or automated cancellations and modifications are not executing, check these settings first.

Responses

200 OK401
PUT/crew/config/companySet company crew-automation settings

Sets the crew booker account and the booking preferences exposed here. crewbookeremail is required — all engine-driven bookings (hotel layovers, diff-engine amendments and cancellations) are placed under this account. Manual flight commits via POST /bookings/request are booked under the bearer token making the call. Omit a field to keep its current value. The automation execution levers (cancellation / modification / swap / deadhead-flight execution, NOC stats) are Routespring-managed and not set through this API.

JSON body

crew_booker_email
bodyrequired
string<email>

The Routespring account under which all engine-driven hotel bookings, amendments, and cancellations are placed. Manual flight commits via POST /bookings/request are booked under the bearer token making the call, not this account.

cancellation_lookback_days
bodyoptional
integer

Days before the processing date a checkout is still eligible for cancellation. Default 0.

Responses

200 Saved401 422
GET/crew/config/{config_type}/versions/{version}Retrieve a specific historical config version

Returns the immutable snapshot of the named config at the given version. Use this when a booking's configversionused references a non-current version and you need to know exactly which rules applied. The response shape depends on configtype: hotels returns a HotelConfig, flights returns a FlightConfig, etc. Note: only version = v1 resolves; any other version returns 404.

Parameters

config_type
pathrequired
string
version
pathrequired
string

Responses

200 OK404
GET/crew/bookingsSearch bookings by any anchor key

Bookings are denormalized with all anchor keys, so any combination of the query parameters below returns the same booking record set. At least one filter is required.

Parameters

schedule_id
queryoptional
string
employee_id
queryoptional
string

Airline's HR employee id — the crew anchor.

pairing_number
queryoptional
string
flight_number
queryoptional
string
irop_ref
queryoptional
string

Airline IROP correlation id. Returns every booking tied to a single IROP — useful for after-action cost reporting and audit. Set on bookings created via POST /bookings/request or POST /action-items with an iropref.

source
queryoptional
string

How the booking originated. Filter for AIRLINEINJECTED or IROP to find airline-injected bookings.

type
queryoptional
string
status
queryoptional
string
from_date
queryoptional
string<date>
to_date
queryoptional
string<date>
limit
queryoptional
integer
cursor
queryoptional
string

Opaque pagination cursor. Echo from previous response.

Responses

200 OK
GET/crew/flight-optionsSearch available flight options for a deadhead leg

Returns paginated flight options for a given origin/destination/date. Use this when you want to manually select a specific flight rather than letting Routespring auto-book via its built-in logic. Default behavior (no call needed): Routespring auto-selects and books the best available flight based on your booking configuration (preferred airlines, cabin, autobookmaxprice, etc.). You only need this endpoint if you want a human to review and pick. Typical IROP flow: 1. Call this endpoint to fetch options (10 per page by default). 2. Present pages to the travel manager. 3. POST the chosen flightoptionid to PATCH /bookings/{bookingid} or to POST /bookings/request to lock in that specific flight. Results are sourced from the same supplier pool Routespring uses for auto-booking. Prices and availability are live at query time.

Parameters

from_airport
queryoptional
string

IATA departure airport code. Required unless actionid is supplied.

to_airport
queryoptional
string

IATA arrival airport code. Required unless actionid is supplied.

date
queryoptional
string<date>

Desired travel date (local at origin). Required unless actionid is supplied.

arrive_by
queryoptional
string<date-time>

Latest acceptable arrival time (UTC). Filters out options that arrive too late for the crew's next duty period start.

action_id
queryoptional
string

If provided, the route and date (fromairport, toairport, date, arriveby) are pre-filled from the named action item, so you may omit those params. An unknown actionid returns 404.

employee_id
queryoptional
string

Airline HR employee id. Accepted but not currently applied to result filtering.

limit
queryoptional
integer

Results per page. Defaults to 10.

cursor
queryoptional
string

Opaque pagination cursor. Echo from previous response.

Responses

200 OK400 401
POST/crew/bookings/requestCreate a booking from an airline-supplied selection (IROP commit)

"I've already decided what to book — just book it." Pairs with GET /flight-options: airline searches, picks an option, posts the flightoptionid here. Execution (v1). A HOTEL request is booked for real, asynchronously, through the same engine the schedule flow uses (duplicate check → supplier selection in priority order → rate from config). The call returns 202; poll GET /bookings/{bookingid}/status for the outcome. A FLIGHT commit that carries a flightoptionid is booked for real through Routespring's internal Flights API — it tickets and yields a PNR, ticket number, and trip-session id; poll GET /bookings/{bookingid}/status, then read those off the flight block via GET /bookings/{bookingid}. A FLIGHT commit that omits flightoptionid and instead carries a route + date (fromairport + toairport + departdate) auto-selects and books the best matching flight — the same way a hotel commit auto-selects when propertyid is omitted (see BookingRequestFlight). (Deadhead positioning flights derived from POST /schedules are booked automatically by the engine and don't need this call at all.) When to use vs alternatives: The airline wants Routespring to search + auto-book against its config: use POST /action-items instead. The booking already exists and needs to change: use PATCH /bookings/{bookingid}. Diff-derived (normal flow): just POST /schedules. Typical IROP flow end-to-end: 1. Detect IROP in airline ops system. 2. GET /flight-options?fromairport=EWR&toairport=SLC&arriveby=...&employeeid=... 3. Travel manager picks an option (or your automation does). 4. POST that flightoptionid here with the anchors and a classification (IROPNEWDEADHEAD, IROPREROUTE, …). Bookings created here default to manualoverride: true so the eventual catch-up schedule submission's diff engine does not revert this booking. Set manualoverride: false to release immediately to auto-management. Idempotency (optional). Send an Idempotency-Key header to make retries safe: a repeated key for the same airline returns the booking the first call created instead of committing a second time. For HOTEL bookings (where there is no flight-options analogue), the airline supplies the city + checkindate + checkoutdate plus an optional propertyid to pin a specific hotel from its preferred-hotels config. If propertyid is omitted Routespring auto-selects per priority order — useful for hotel IROPs where the airline just needs any preferred hotel locked in fast.

Parameters

Idempotency-Key
headeroptional
string

Optional. A repeated key for the same airline replays the original booking instead of committing a second time.

JSON body

type
bodyrequired
string
classification
bodyrequired
string

Airline-supplied classification — same vocabulary as ActionItem.classification. Recorded on the resulting booking for audit and on the synthesized action item that backs it.

source
bodyoptional
string
irop_ref
bodyoptional
string

Required when source: IROP. Correlates this booking with every other artifact for the same IROP — searchable via GET /bookings?iropref=....

anchors
bodyrequired
object

Airline-meaningful identifiers for an injected action item or booking request. travelleremail is required so Routespring can resolve the crew member's bookable profile. employeeid and the other anchors are optional but encouraged when known — they flow into the booking's denormalized index so retrieval by any one is a single lookup. Note pairingnumber is recommended even for IROP-driven bookings where the original pairing has been disrupted: keeping the link lets the airline and Routespring see the IROP-injected booking next to the original pairing's other bookings in the same view.

flight
bodyoptional
object

Two ways to commit a positioning flight, mirroring BookingRequestHotel: - Pin a specific flight — pass flightoptionid (from a prior GET /flight-options call) to commit exactly that offer. - Auto-select — omit flightoptionid and pass fromairport + toairport + departdate (optionally departafter / arriveby / cabinclass); Routespring searches and books the best matching flight automatically. The crew member the ticket is for is taken from anchors.travelleremail. (Deadhead positioning flights derived from POST /schedules are booked automatically by the engine and do not need this call.)

hotel
bodyoptional
object
manual_override
bodyoptional
boolean

Defaults to true — the diff engine will not modify this booking on subsequent schedule submissions, even if the eventual catch-up roster contradicts it. Pass false to release immediately to auto-management.

notes
bodyoptional
string

Responses

202 Accepted — booking created in `PENDING`; supplier call in flight400 401 409 Conflict — a booking already exists for the same anchors and booking type (e.g. a hotel for the same crew + duty_date). Use `PATCH /bookings/{id}` to modify the existing booking instead, or release it first with `manual_override: false`. 422
GET/crew/bookings/{booking_id}Get booking detail

Parameters

booking_id
pathrequired
string

Responses

200 OK404
PATCH/crew/bookings/{booking_id}Modify a booking (date change, hotel swap, fare upgrade)

Modify an existing booking. Routespring performs the supplier change and returns 202 with the booking record reflecting the outcome (MODIFIED on a successful amend, or NEEDSREVIEW if the supplier rejected it). How the change is applied. A hotel date-window change (check-in / check-out) is applied as a true in-place supplier amend — the bookingid and supplier confirmation are preserved and the booking ends in MODIFIED. A hotel property swap or any flight change is applied as a cancel-and-rebook: the original booking moves to CANCELLED and a new CONFIRMED booking is created. Company levers (Routespring-managed, not set via this API in v1). An explicit PATCH always performs the requested amend — it is a deliberate operator action and is not gated by the per-company booking-modification execution lever (that lever governs only the automatic schedule-diff path). The strict-price-match lever still controls how strictly the amended rate must match the contracted rate (a mismatch fails the amend in strict mode, or is flagged in loose mode). These are configured by Routespring during onboarding; there is no self-serve config surface for them. Valid field combinations: send hotel for HOTEL bookings and flight for FLIGHT bookings (matching the booking's type); manualoverride may be sent alone or alongside. Side effect — manualoverride becomes true by default after a successful PATCH. Once set, the diff engine will no longer touch this booking on subsequent schedule submissions. To explicitly release the booking back to automatic management, PATCH with { "manualoverride": false } (alone or alongside other changes).

Parameters

booking_id
pathrequired
string

JSON body

reason
bodyoptional
string
manual_override
bodyoptional
boolean

Optional. Defaults to true on any modification request (so once you patch a booking, the diff engine stops managing it). Pass false explicitly to release the booking back to automatic management — e.g. "I overrode this last week; the issue is resolved, please let auto take over again."

hotel
bodyoptional
object
flight
bodyoptional
object

Either provide flightoptionid (from GET /flight-options) to book a specific flight, or provide desiredarrivalby to let Routespring auto-select. Omit the flight block entirely to use full auto-booking based on booking configuration.

Responses

202 Accepted for processing404
DELETE/crew/bookings/{booking_id}Cancel a booking

Cancel a booking. Routespring resolves the underlying supplier transaction and issues the cancellation, then returns 202 with the booking reflecting the outcome: CANCELLED on success, or NEEDSREVIEW if the supplier rejected the cancellation (the live ticket/room is still out there and an operator must reconcile it). Re-issuing DELETE on a NEEDSREVIEW booking retries the cancel; a booking already CANCELLED is idempotent (no second supplier call). Side effect — manualoverride becomes true. A cancelled booking is locked from the diff engine regardless of the supplier outcome; if the underlying pairing later reappears, Routespring will NOT auto-create a replacement. The airline must explicitly re-issue a new booking (e.g. by re-uploading the schedule with that pairing re-included).

Parameters

booking_id
pathrequired
string
reason
queryoptional
string

Free-text cancellation reason (recorded in audit log)

Responses

202 Cancellation accepted (async fee-checking may apply)404
GET/crew/bookings/{booking_id}/statusGet booking status + state-transition history

Parameters

booking_id
pathrequired
string

Responses

200 OK
POST/crew/bookings/{booking_id}/retryManually retry a failed booking

Re-attempt supplier booking for a single booking. The booking must be in FAILED state — once a retry starts the booking moves to PENDING, so a re-POST while a retry is already in progress returns 409. Each accepted retry increments retrycount on the booking. The supplier call runs asynchronously; the response returns immediately with the booking in PENDING state.

Parameters

booking_id
pathrequired
string

Responses

202 Retry accepted; supplier call in flight409 Retry not applicable (booking not in FAILED state, or max retries already reached)
GET/crew/bookings/retry-queueList bookings currently queued for retry

Returns bookings that have failed and are scheduled for an automatic retry attempt. Each entry shows the next scheduled attempt time and the prior error.

Parameters

limit
queryoptional
integer
cursor
queryoptional
string

Opaque pagination cursor. Echo from previous response.

Responses

200 OK
GET/crew/bookings/retry-jobsList recent retry jobs

Returns recent retry jobs plus their status (RUNNING / COMPLETED / FAILED) and aggregate counts.

Parameters

limit
queryoptional
integer
cursor
queryoptional
string

Opaque pagination cursor. Echo from previous response.

Responses

200 OK
GET/crew/bookings/retry-jobs/{retry_job_id}Get a retry job's status and progress

Parameters

retry_job_id
pathrequired
string

Responses

200 OK404
GET/hotelsSearch the GDS hotel inventory by name, city, or airport code

Search Routespring's GDS hotel inventory by any combination of name, city, and airportcode. At least one filter must be supplied. Use this to discover a hotel's propertyid before registering it via PUT /crew/config/hotels. A propertyid found in this GDS inventory is booked via GDS; one that is not is treated as DIRECT. How the filters compose. name and city each run an independent LIKE-search against CONCAT(hotelname, address, city); airportcode instead searches the hotels located nearby the given airport (a proximity search around the airport's location). Results are unioned, deduplicated on propertyid, and sorted. This is a global lookup: results are the same regardless of the calling airline, so the path is not airline-scoped. Only hotels bookable through GDS are returned. A bearer credential is still required.

Parameters

name
queryoptional
string

Partial, case-insensitive hotel-name match. Min 2 chars when supplied.

city
queryoptional
string

Partial, case-insensitive city-name match. Min 2 chars when supplied.

airport_code
queryoptional
string

3-letter IATA airport code (e.g. JFK, LAX, LHR). Searches the hotels located nearby the given airport.

limit
queryoptional
integer
cursor
queryoptional
string

Opaque pagination cursor. Echo from previous response.

Responses

200 OK400 401