/v1/meta
Totals & surface breakdown
Try it live
10 free calls per day — no sign-up, no API key. Goes through the oanor gateway.
It works. Grab an API key and use it in your project.
Get an API keyCode snippets
curl "https://api.oanor.com/runways-api/v1/meta" \ -H "x-oanor-key: oanor_test_..."
await fetch("https://api.oanor.com/runways-api/v1/meta", {
headers: { "x-oanor-key": "oanor_test_..." }
});
$ch = curl_init("https://api.oanor.com/runways-api/v1/meta");
curl_setopt($ch, CURLOPT_HTTPHEADER, ["x-oanor-key: oanor_test_..."]);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$out = curl_exec($ch);
import requests
requests.get(
"https://api.oanor.com/runways-api/v1/meta",
headers={"x-oanor-key": "oanor_test_..."}
)
Example response
A real response from this endpoint, captured by the latest health check.
{
"data": {
"note": "Surface codes are as published (ASP/ASPH = asphalt, CON/CONC = concrete, TURF/GRS = grass, PEM = porous friction course, …). Headings in degrees true.",
"total": 47984,
"fields": [
"airport",
"designation",
"length_ft",
"length_m",
"width_ft",
"surface",
"lighted",
"closed",
"low_end",
"high_end"
],
"source": "OurAirports runways dataset",
"lighted": 12302,
"airports": 40895,
"top_surfaces": [
{
"count": 11355,
"surface": "ASP"
},
{
"count": 7490,
"surface": "TURF"
},
{
"count": 3620,
"surface": "CON"
},
{
"count": 3102,
"surface": "CONC"
},
{
"count": 2229,
"surface": "GRS"
},
{
"count": 1676,
"surface": "ASPH"
},
{
"count": 1539,
"surface": "GRE"
},
{
"count": 1280,
"surface": "Turf"
},
{
"count": 1055,
"surface": "GVL"
},
{
"count": 1013,
"surface": "TURF-G"
},
{
"count": 662,
"surface": "WATER"
},
{
"count": 624,
"surface": "Earth"
}
]
},
"meta": {
"timestamp": "2026-05-31T07:00:19.094Z",
"request_id": "852f6d91-153e-4225-866a-6f8580fc2e19"
},
"status": "ok",
"message": "Meta retrieved",
"success": true
}