02 List services at an airport

View as Markdown
Browses the service catalogue and returns the raw rate variables for each service at each terminal, so you can price locally before creating a quote. It does **not** return a total: send a quote request for that. Despite being a `POST`, all parameters go in the query string. | Parameter | Type | Default | Notes | | --- | --- | --- | --- | | `airport_code` | string | — | IATA code, e.g. `AUH`. Must exist. | | `country_code` | string | — | ISO country code, e.g. `GB`. Must exist. | | `query` | string | — | Free-text match on the service name. | | `page` | integer | `1` | | | `limit` | integer | `25` | Maximum `100`. | | `sort` | string | — | Accepted by validation but **not used**. | **Response** is the paginated envelope. Each entry carries `id`, `service_name`, `description`, `variables[]`, `terminal` and `airport` (including that airport's `charges`: surcharge bands, additional-hour rate and tax). `variables[]` is the rate card. Which keys appear depends on the service: | Key | Used by | | --- | --- | | `int_arr_dep`, `int_con`, `dom_arr_dep`, `dom_con` | Meet & Assist. Nine comma-separated **cumulative totals** indexed by passenger count, so `250,500,560,…` means 1 pax costs 250 and 2 pax costs 500, not 2 × 250. | | `ratePerAdult`, `ratePerChild`, `ratePerInfant` | Lounge Access. Per head, each charged at its own rate. | | `bandbrk`, `ratePerRange` | Porter Service. Price is `ceil(bags / bandbrk) × ratePerRange`. | | Status | `error_code` | When | | --- | --- | --- | | `200` | — | Always, even with no matches. `message` is `Successful.` | | `422` | `validation_failed` | Unknown `airport_code` or `country_code`, or `limit` above 100. | | `401` | `unauthenticated` | Bearer token missing, invalid or expired. | | `500` | `server_error` | Our fault. | **Two limits worth knowing.** This endpoint only returns Meet & Assist, Porter Service and Lounge Access; the service list is hardcoded server-side. Booking accepts far more than that, so any other service id has to be given to you out of band. And the `id` returned here is a **service id**, while the `services` array on a quote is validated against terminal service ids. In practice the service id is what works for pricing, which is what the quote examples use.

Authentication

AuthorizationBearer

Bearer authentication of the form Bearer <token>, where token is your auth token.

Query parameters

pageintegerOptional
Page number.
limitintegerOptional
Items per page. Maximum 100.
country_codestringOptional
Optional ISO country code filter.
airport_codestringOptional
Optional airport IATA code filter.
querystringOptional
Optional service search term.

Response headers

X-Powered-BystringOptional
Cache-ControlstringOptional
Access-Control-Allow-OriginstringOptional

Response

OK
messagestring
statusinteger
responseTimestring
tracelist of any
dataobject

Errors

422
Unprocessable Entity Error