Find Airports and Cities for Flight Search
View all Skyscanner Flights & Travel Search endpoints →Autocomplete an airport or city name with required query and optional market/locale codes. The observed response is an object with places; suggestions include skyId, entityId, iataCode, name, cityName, countryName, placeType and coordinates.lat/lng. London returned a CITY suggestion with skyId LOND and entityId 27544008, plus AIRPORT suggestions such as London Heathrow with skyId LHR and entityId 95565050. Use the selected suggestion's paired identifiers in subsequent flight searches, and distinguish city-wide selections from individual airports. iataCode can be an empty string even for a valid airport. A deliberately nonexistent query returned HTTP 200 with places:[], so an empty list is a clean no-match result, not evidence of an outage. Suggestion order and count can change.
API Features
Live API Demo
🔒 Sign in to try it live
Log in to call this API with your own API key. New accounts get 100 free credits — no card required.
Log in / Sign upNo active API key found. Create one in your Dashboard, then reload this page. Dashboard →
/api/project/skyscanner/flights-search-airport API Response (JSON)
{} curl -X GET 'https://api.opendata-api.com/api/project/skyscanner/flights-search-airport?key=<API_KEY>&query=<query>&market=US&locale=en-US'
Query Result
Use Cases
- Build origin and destination autocomplete that shows London city separately from Heathrow and carries each selected skyId/entityId pair forward.
- Normalize free-text airport names into reusable route selectors while retaining the chosen place type and country context.
- Show coordinates beside ambiguous airport suggestions to help users distinguish similarly named travel locations.
- Validate a traveler-entered place without manufacturing a match when places is empty or rejecting valid suggestions merely because iataCode is blank.
Frequently asked questions
How do skyId, entityId and IATA codes differ?
Use skyId and entityId from the same autocomplete suggestion as the paired identifiers for flight search. iataCode is separate airport or city code information and cannot replace entityId. A city skyId need not be a three-letter code: London returned LOND. Check placeType because city and airport suggestions cover different scopes.
What does HTTP 200 with empty places or a blank IATA code mean?
places:[] means no selectable match; refine the name or region and request again deliberately rather than inventing an ID. A blank iataCode on a populated suggestion is different: retain its skyId/entityId and confirm the place using its name, country and type instead of rejecting it solely for the blank code.