Search airports by name, city or code
Searches airports by name, city or code, optionally in one country. Larger airports are listed first.
Request
GEThttps://airport-airline-lookup.p.apihiver.com/v1/airports?q=delhi
*
String. Name, city or code, e.g. 'mumbai' or 'heathrow'.
String. ISO country code filter, e.g. IN.
Number. Maximum number of results (1–50, default
10). Language
Client
1curl --request GET \
2 --url 'https://airport-airline-lookup.p.apihiver.com/v1/airports?q=delhi&country=%7Bcountry%7D&limit=%7Blimit%7D' \
3 --header 'Accept: application/json' \
4 --header 'X-API-Key: YOUR_API_KEY'Search airports by name, city or code: Airport & Airline Lookup API reference
Searches airports by name, city or code, optionally in one country. Larger airports are listed first. This endpoint is part of the Airport & Airline Lookup API: Look up airports and airlines worldwide by IATA/ICAO code or name — location, type, elevation, country, call sign and more.
Search airports by name, city or code: example requests in every language
GET /v1/airports in Shell (cURL)
curl --request GET \
--url 'https://airport-airline-lookup.p.apihiver.com/v1/airports?q=delhi&country=%7Bcountry%7D&limit=%7Blimit%7D' \
--header 'Accept: application/json' \
--header 'X-API-Key: YOUR_API_KEY'GET /v1/airports in Shell (HTTPie)
http GET 'https://airport-airline-lookup.p.apihiver.com/v1/airports?q=delhi&country=%7Bcountry%7D&limit=%7Blimit%7D' \
Accept:application/json \
X-API-Key:YOUR_API_KEYGET /v1/airports in Shell (Wget)
wget --quiet \
--method GET \
--header 'Accept: application/json' \
--header 'X-API-Key: YOUR_API_KEY' \
--output-document \
- 'https://airport-airline-lookup.p.apihiver.com/v1/airports?q=delhi&country=%7Bcountry%7D&limit=%7Blimit%7D'GET /v1/airports in Node.js (http)
const http = require('https');
const options = {
method: 'GET',
hostname: 'airport-airline-lookup.p.apihiver.com',
port: null,
path: '/v1/airports?q=delhi&country=%7Bcountry%7D&limit=%7Blimit%7D',
headers: {
Accept: 'application/json',
'X-API-Key': 'YOUR_API_KEY'
}
};
const req = http.request(options, function (res) {
const chunks = [];
res.on('data', function (chunk) {
chunks.push(chunk);
});
res.on('end', function () {
const body = Buffer.concat(chunks);
console.log(body.toString());
});
});
req.end();GET /v1/airports in Node.js (Request)
const request = require('request');
const options = {
method: 'GET',
url: 'https://airport-airline-lookup.p.apihiver.com/v1/airports',
qs: {q: 'delhi', country: '{country}', limit: '{limit}'},
headers: {Accept: 'application/json', 'X-API-Key': 'YOUR_API_KEY'}
};
request(options, function (error, response, body) {
if (error) throw new Error(error);
console.log(body);
});GET /v1/airports in Node.js (Unirest)
const unirest = require('unirest');
const req = unirest('GET', 'https://airport-airline-lookup.p.apihiver.com/v1/airports');
req.query({
q: 'delhi',
country: '{country}',
limit: '{limit}'
});
req.headers({
Accept: 'application/json',
'X-API-Key': 'YOUR_API_KEY'
});
req.end(function (res) {
if (res.error) throw new Error(res.error);
console.log(res.body);
});GET /v1/airports in Node.js (Axios)
const axios = require('axios').default;
const options = {
method: 'GET',
url: 'https://airport-airline-lookup.p.apihiver.com/v1/airports',
params: {q: 'delhi', country: '{country}', limit: '{limit}'},
headers: {Accept: 'application/json', 'X-API-Key': 'YOUR_API_KEY'}
};
try {
const { data } = await axios.request(options);
console.log(data);
} catch (error) {
console.error(error);
}GET /v1/airports in Node.js (Fetch)
const fetch = require('node-fetch');
const url = 'https://airport-airline-lookup.p.apihiver.com/v1/airports?q=delhi&country=%7Bcountry%7D&limit=%7Blimit%7D';
const options = {
method: 'GET',
headers: {Accept: 'application/json', 'X-API-Key': 'YOUR_API_KEY'}
};
try {
const response = await fetch(url, options);
const data = await response.json();
console.log(data);
} catch (error) {
console.error(error);
}GET /v1/airports in JavaScript (XMLHttpRequest)
const data = null;
const xhr = new XMLHttpRequest();
xhr.withCredentials = true;
xhr.addEventListener('readystatechange', function () {
if (this.readyState === this.DONE) {
console.log(this.responseText);
}
});
xhr.open('GET', 'https://airport-airline-lookup.p.apihiver.com/v1/airports?q=delhi&country=%7Bcountry%7D&limit=%7Blimit%7D');
xhr.setRequestHeader('Accept', 'application/json');
xhr.setRequestHeader('X-API-Key', 'YOUR_API_KEY');
xhr.send(data);GET /v1/airports in JavaScript (Axios)
import axios from 'axios';
const options = {
method: 'GET',
url: 'https://airport-airline-lookup.p.apihiver.com/v1/airports',
params: {q: 'delhi', country: '{country}', limit: '{limit}'},
headers: {Accept: 'application/json', 'X-API-Key': 'YOUR_API_KEY'}
};
try {
const { data } = await axios.request(options);
console.log(data);
} catch (error) {
console.error(error);
}GET /v1/airports in JavaScript (Fetch)
const url = 'https://airport-airline-lookup.p.apihiver.com/v1/airports?q=delhi&country=%7Bcountry%7D&limit=%7Blimit%7D';
const options = {
method: 'GET',
headers: {Accept: 'application/json', 'X-API-Key': 'YOUR_API_KEY'}
};
try {
const response = await fetch(url, options);
const data = await response.json();
console.log(data);
} catch (error) {
console.error(error);
}GET /v1/airports in JavaScript (jQuery)
const settings = {
async: true,
crossDomain: true,
url: 'https://airport-airline-lookup.p.apihiver.com/v1/airports?q=delhi&country=%7Bcountry%7D&limit=%7Blimit%7D',
method: 'GET',
headers: {
Accept: 'application/json',
'X-API-Key': 'YOUR_API_KEY'
}
};
$.ajax(settings).done(function (response) {
console.log(response);
});GET /v1/airports in Python (http.client)
import http.client
conn = http.client.HTTPSConnection("airport-airline-lookup.p.apihiver.com")
headers = {
'Accept': "application/json",
'X-API-Key': "YOUR_API_KEY"
}
conn.request("GET", "/v1/airports?q=delhi&country=%7Bcountry%7D&limit=%7Blimit%7D", headers=headers)
res = conn.getresponse()
data = res.read()
print(data.decode("utf-8"))GET /v1/airports in Python (Requests)
import requests
url = "https://airport-airline-lookup.p.apihiver.com/v1/airports"
querystring = {"q":"delhi","country":"{country}","limit":"{limit}"}
headers = {
"Accept": "application/json",
"X-API-Key": "YOUR_API_KEY"
}
response = requests.get(url, headers=headers, params=querystring)
print(response.json())GET /v1/airports in PHP (cURL)
<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://airport-airline-lookup.p.apihiver.com/v1/airports?q=delhi&country=%7Bcountry%7D&limit=%7Blimit%7D",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Accept: application/json",
"X-API-Key: YOUR_API_KEY"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}GET /v1/airports in PHP (Guzzle)
<?php
$client = new \GuzzleHttp\Client();
$response = $client->request('GET', 'https://airport-airline-lookup.p.apihiver.com/v1/airports?q=delhi&country=%7Bcountry%7D&limit=%7Blimit%7D', [
'headers' => [
'Accept' => 'application/json',
'X-API-Key' => 'YOUR_API_KEY',
],
]);
echo $response->getBody();GET /v1/airports in PHP (PECL HTTP v1)
<?php
$request = new HttpRequest();
$request->setUrl('https://airport-airline-lookup.p.apihiver.com/v1/airports');
$request->setMethod(HTTP_METH_GET);
$request->setQueryData([
'q' => 'delhi',
'country' => '{country}',
'limit' => '{limit}'
]);
$request->setHeaders([
'Accept' => 'application/json',
'X-API-Key' => 'YOUR_API_KEY'
]);
try {
$response = $request->send();
echo $response->getBody();
} catch (HttpException $ex) {
echo $ex;
}GET /v1/airports in PHP (PECL HTTP v2)
<?php
$client = new http\Client;
$request = new http\Client\Request;
$request->setRequestUrl('https://airport-airline-lookup.p.apihiver.com/v1/airports');
$request->setRequestMethod('GET');
$request->setQuery(new http\QueryString([
'q' => 'delhi',
'country' => '{country}',
'limit' => '{limit}'
]));
$request->setHeaders([
'Accept' => 'application/json',
'X-API-Key' => 'YOUR_API_KEY'
]);
$client->enqueue($request)->send();
$response = $client->getResponse();
echo $response->getBody();GET /v1/airports in Java (AsyncHttp)
AsyncHttpClient client = new DefaultAsyncHttpClient();
client.prepare("GET", "https://airport-airline-lookup.p.apihiver.com/v1/airports?q=delhi&country=%7Bcountry%7D&limit=%7Blimit%7D")
.setHeader("Accept", "application/json")
.setHeader("X-API-Key", "YOUR_API_KEY")
.execute()
.toCompletableFuture()
.thenAccept(System.out::println)
.join();
client.close();GET /v1/airports in Java (java.net.http)
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create("https://airport-airline-lookup.p.apihiver.com/v1/airports?q=delhi&country=%7Bcountry%7D&limit=%7Blimit%7D"))
.header("Accept", "application/json")
.header("X-API-Key", "YOUR_API_KEY")
.method("GET", HttpRequest.BodyPublishers.noBody())
.build();
HttpResponse<String> response = HttpClient.newHttpClient().send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());GET /v1/airports in Java (OkHttp)
OkHttpClient client = new OkHttpClient();
Request request = new Request.Builder()
.url("https://airport-airline-lookup.p.apihiver.com/v1/airports?q=delhi&country=%7Bcountry%7D&limit=%7Blimit%7D")
.get()
.addHeader("Accept", "application/json")
.addHeader("X-API-Key", "YOUR_API_KEY")
.build();
Response response = client.newCall(request).execute();GET /v1/airports in Java (Unirest)
HttpResponse<String> response = Unirest.get("https://airport-airline-lookup.p.apihiver.com/v1/airports?q=delhi&country=%7Bcountry%7D&limit=%7Blimit%7D")
.header("Accept", "application/json")
.header("X-API-Key", "YOUR_API_KEY")
.asString();GET /v1/airports in C# (HttpClient)
using System.Net.Http.Headers;
var client = new HttpClient();
var request = new HttpRequestMessage
{
Method = HttpMethod.Get,
RequestUri = new Uri("https://airport-airline-lookup.p.apihiver.com/v1/airports?q=delhi&country=%7Bcountry%7D&limit=%7Blimit%7D"),
Headers =
{
{ "Accept", "application/json" },
{ "X-API-Key", "YOUR_API_KEY" },
},
};
using (var response = await client.SendAsync(request))
{
response.EnsureSuccessStatusCode();
var body = await response.Content.ReadAsStringAsync();
Console.WriteLine(body);
}GET /v1/airports in C# (RestSharp)
var client = new RestClient("https://airport-airline-lookup.p.apihiver.com/v1/airports?q=delhi&country=%7Bcountry%7D&limit=%7Blimit%7D");
var request = new RestRequest("", Method.Get);
request.AddHeader("Accept", "application/json");
request.AddHeader("X-API-Key", "YOUR_API_KEY");
var response = client.Execute(request);GET /v1/airports in Go (NewRequest)
package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://airport-airline-lookup.p.apihiver.com/v1/airports?q=delhi&country=%7Bcountry%7D&limit=%7Blimit%7D"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Accept", "application/json")
req.Header.Add("X-API-Key", "YOUR_API_KEY")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(res)
fmt.Println(string(body))
}GET /v1/airports in Ruby (net::http)
require 'uri'
require 'net/http'
url = URI("https://airport-airline-lookup.p.apihiver.com/v1/airports?q=delhi&country=%7Bcountry%7D&limit=%7Blimit%7D")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Accept"] = 'application/json'
request["X-API-Key"] = 'YOUR_API_KEY'
response = http.request(request)
puts response.read_bodyGET /v1/airports in Swift (NSURLSession)
import Foundation
let headers = [
"Accept": "application/json",
"X-API-Key": "YOUR_API_KEY"
]
let request = NSMutableURLRequest(url: NSURL(string: "https://airport-airline-lookup.p.apihiver.com/v1/airports?q=delhi&country=%7Bcountry%7D&limit=%7Blimit%7D")! as URL,
cachePolicy: .useProtocolCachePolicy,
timeoutInterval: 10.0)
request.httpMethod = "GET"
request.allHTTPHeaderFields = headers
let session = URLSession.shared
let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in
if (error != nil) {
print(error as Any)
} else {
let httpResponse = response as? HTTPURLResponse
print(httpResponse)
}
})
dataTask.resume()GET /v1/airports in Objective-C (NSURLSession)
#import <Foundation/Foundation.h>
NSDictionary *headers = @{ @"Accept": @"application/json",
@"X-API-Key": @"YOUR_API_KEY" };
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:@"https://airport-airline-lookup.p.apihiver.com/v1/airports?q=delhi&country=%7Bcountry%7D&limit=%7Blimit%7D"]
cachePolicy:NSURLRequestUseProtocolCachePolicy
timeoutInterval:10.0];
[request setHTTPMethod:@"GET"];
[request setAllHTTPHeaderFields:headers];
NSURLSession *session = [NSURLSession sharedSession];
NSURLSessionDataTask *dataTask = [session dataTaskWithRequest:request
completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {
if (error) {
NSLog(@"%@", error);
} else {
NSHTTPURLResponse *httpResponse = (NSHTTPURLResponse *) response;
NSLog(@"%@", httpResponse);
}
}];
[dataTask resume];GET /v1/airports in Kotlin (OkHttp)
val client = OkHttpClient()
val request = Request.Builder()
.url("https://airport-airline-lookup.p.apihiver.com/v1/airports?q=delhi&country=%7Bcountry%7D&limit=%7Blimit%7D")
.get()
.addHeader("Accept", "application/json")
.addHeader("X-API-Key", "YOUR_API_KEY")
.build()
val response = client.newCall(request).execute()GET /v1/airports in C (libcurl)
CURL *hnd = curl_easy_init();
curl_easy_setopt(hnd, CURLOPT_CUSTOMREQUEST, "GET");
curl_easy_setopt(hnd, CURLOPT_URL, "https://airport-airline-lookup.p.apihiver.com/v1/airports?q=delhi&country=%7Bcountry%7D&limit=%7Blimit%7D");
struct curl_slist *headers = NULL;
headers = curl_slist_append(headers, "Accept: application/json");
headers = curl_slist_append(headers, "X-API-Key: YOUR_API_KEY");
curl_easy_setopt(hnd, CURLOPT_HTTPHEADER, headers);
CURLcode ret = curl_easy_perform(hnd);GET /v1/airports in Clojure (clj-http)
(require '[clj-http.client :as client])
(client/get "https://airport-airline-lookup.p.apihiver.com/v1/airports" {:headers {:X-API-Key "YOUR_API_KEY"}
:query-params {:q "delhi"
:country "{country}"
:limit "{limit}"}
:accept :json})GET /v1/airports in OCaml (CoHTTP)
open Cohttp_lwt_unix
open Cohttp
open Lwt
let uri = Uri.of_string "https://airport-airline-lookup.p.apihiver.com/v1/airports?q=delhi&country=%7Bcountry%7D&limit=%7Blimit%7D" in
let headers = Header.add_list (Header.init ()) [
("Accept", "application/json");
("X-API-Key", "YOUR_API_KEY");
] in
Client.call ~headers `GET uri
>>= fun (res, body_stream) ->
(* Do stuff with the result *)GET /v1/airports in R (httr)
library(httr)
url <- "https://airport-airline-lookup.p.apihiver.com/v1/airports"
queryString <- list(
q = "delhi",
country = "{country}",
limit = "{limit}"
)
response <- VERB("GET", url, query = queryString, add_headers('X-API-Key' = 'YOUR_API_KEY'), content_type(""), accept("application/json"))
content(response, "text")GET /v1/airports in PowerShell (Invoke-WebRequest)
$headers=@{}
$headers.Add("Accept", "application/json")
$headers.Add("X-API-Key", "YOUR_API_KEY")
$response = Invoke-WebRequest -Uri 'https://airport-airline-lookup.p.apihiver.com/v1/airports?q=delhi&country=%7Bcountry%7D&limit=%7Blimit%7D' -Method GET -Headers $headersGET /v1/airports in PowerShell (Invoke-RestMethod)
$headers=@{}
$headers.Add("Accept", "application/json")
$headers.Add("X-API-Key", "YOUR_API_KEY")
$response = Invoke-RestMethod -Uri 'https://airport-airline-lookup.p.apihiver.com/v1/airports?q=delhi&country=%7Bcountry%7D&limit=%7Blimit%7D' -Method GET -Headers $headersGET /v1/airports in HTTP (HTTP/1.1)
GET /v1/airports?q=delhi&country=%7Bcountry%7D&limit=%7Blimit%7D HTTP/1.1
Accept: application/json
X-Api-Key: YOUR_API_KEY
Host: airport-airline-lookup.p.apihiver.com
Example response (200, application/json)
Success.
1{
2 "count": 6,
3 "results": [
4 {
5 "lat": 28.55563,
6 "lon": 77.09519,
7 "city": "New Delhi",
8 "iata": "DEL",
9 "icao": "VIDP",
10 "name": "Indira Gandhi International Airport",
11 "type": "large",
12 "country": "India",
13 "website": "https://www.newdelhiairport.in/",
14 "wikipedia": "https://en.wikipedia.org/wiki/Indira_Gandhi_International_Airport",
15 "region_code": "IN-DL",
16 "country_code": "IN",
17 "elevation_ft": 777,
18 "scheduled_service": true
19 },
20 {
21 "lat": 28.585453,
22 "lon": 77.203563,
23 "city": "New Delhi",
24 "iata": null,
25 "icao": "VIDD",
26 "name": "Safdarjung Airport",
27 "type": "medium",
28 "country": "India",
29 "website": null,
30 "wikipedia": "https://en.wikipedia.org/wiki/Safdarjung_Airport",
31 "region_code": "IN-DL",
32 "country_code": "IN",
33 "elevation_ft": 705,
34 "scheduled_service": false
35 },
36 {
37 "lat": 42.8846,
38 "lon": -80.4062,
39 "city": "Delhi",
40 "iata": null,
41 "icao": "CDH6",
42 "name": "Delhi Airport",
43 "type": "small",
44 "country": "Canada",
45 "website": null,
46 "wikipedia": "https://en.wikipedia.org/wiki/Delhi_Aerodrome",
47 "region_code": "CA-ON",
48 "country_code": "CA",
49 "elevation_ft": 775,
50 "scheduled_service": false
51 }
52 ]
53}Errors
- 400 — A required parameter is missing or a value has the wrong format.
1{ 2 "error": { 3 "code": "INVALID_INPUT", 4 "message": "q: Field required" 5 } 6}
Gateway errors (missing key, no subscription, rate limits) are listed in Error codes.