oneapi
Autentificare
Utile v1 / Aeroporturi

Aeroporturi

Căutare în aeroporturile lumii, după nume, oraş, cod IATA sau ICAO, cu filtre pe ţară şi pe tip. Include şi heliporturile şi aerodromurile mici, nu doar cele comerciale.

GET
https://oneapi.ro/api/utile/v1/aeroporturi

Parametri de interogare

NumeTipDescriereValori acceptate
qopțional string | null Caută în numele aeroportului și al localității. Spațiile înseamnă ȘI: „cluj napoca" cere ambele cuvinte. max 80 car.
taraopțional string | null Codul ISO alpha-2 al țării. max 2 car.
continentopțional string | null Codul continentului: EU, AS, AF, NA, SA, OC, AN. max 2 car.
tipopțional string | null Unul din large_airport, medium_airport, small_airport, heliport, seaplane_base, balloonport, closed. large_airportmedium_airportsmall_airportheliportseaplane_baseballoonportclosed
cu_iataopțional boolean | null 1 păstrează doar înregistrările cu cod IATA — aeroporturile în sensul uzual al cuvântului. ex. 1
cu_curseopțional boolean | null 1 păstrează doar aeroporturile cu curse regulate declarate. ex. true
per_paginaopțional text Câte pe pagină (implicit 50, maxim 200). ex. 10
paginaopțional text Pagina, numărată de la 1. ex. 1

Cum se comportă

  • Din cele ~86.000 de înregistrări, doar ~9.000 au cod IATA. Restul sunt heliporturi, aerodromuri private și piste închise. Fără cu_iata=1, o căutare simplă întoarce mult zgomot.
  • Ordinea e stabilă și utilă: aeroporturile mari întâi, apoi alfabetic. Fără o ordine explicită, paginarea ar returna rânduri în ordinea fizică a tabelei, care se schimbă la fiecare reimport.
  • closed sunt aerodromuri care nu mai funcționează. Rămân în date fiindcă apar în documente vechi și în baze istorice, dar nu le folosi pentru rutare.

La ce folosește

  • Populezi un autocomplete de aeroporturi într-un formular de rezervare.
  • Listezi aeroporturile comerciale dintr-o țară, ca să știi unde poți livra pe cale aeriană.
  • Cauți un aeroport după numele orașului, când nu știi codul.

Structura răspunsului

CâmpTipDescriere
data.aeroporturi[].ident string Identificatorul OurAirports — singurul garantat unic.
data.aeroporturi[].iata string Codul IATA de trei litere, sau null.
data.aeroporturi[].icao string Codul ICAO de patru litere, sau null.
data.aeroporturi[].nume string Numele, aşa cum îl publică sursa.
data.aeroporturi[].tip string Categoria aerodromului.
data.aeroporturi[].municipiu string Municipiul deservit.
data.aeroporturi[].tara object Codul și numele țării.
data.aeroporturi[].tara.cod string Codul din nomenclatorul sursei — cheia pe care se filtrează.
data.aeroporturi[].tara.nume string Numele, aşa cum îl publică sursa.
data.aeroporturi[].regiune object Subdiviziunea (ISO 3166-2) și numele ei.
data.aeroporturi[].regiune.cod string Codul din nomenclatorul sursei — cheia pe care se filtrează.
data.aeroporturi[].regiune.nume string Numele, aşa cum îl publică sursa.
data.aeroporturi[].continent string Continentul pe care se află.
data.aeroporturi[].latitudine number Latitudinea, în grade zecimale (WGS 84).
data.aeroporturi[].longitudine number Longitudinea, în grade zecimale (WGS 84).
data.aeroporturi[].altitudine_ft integer Altitudinea în picioare, cum o publică sursa.
data.aeroporturi[].altitudine_m integer Aceeași altitudine convertită în metri, ca să n-o convertești tu.
data.aeroporturi[].curse_regulate boolean Dacă sursa declară curse regulate.
data.aeroporturi[].wikipedia string Adresa articolului de Wikipedia.
data.aeroporturi[].site string Adresa sitului oficial.
data.observatie string Precizare despre cum se citeşte răspunsul: o convenţie de calcul sau o limită a datelor.
data.sursa.nume string Denumirea sursei oficiale.
data.sursa.url string Adresa publică a sursei.
data.sursa.licenta string Licenţa sub care sursa permite reutilizarea.
meta.paginare.pagina integer Pagina curentă, numărată de la 1.
meta.paginare.per_pagina integer Câte înregistrări are o pagină.
meta.paginare.total integer Totalul înregistrărilor care se potrivesc, dincolo de pagina curentă.
meta.paginare.pagini integer Câte pagini are lista.

Exemple de răspuns

GEThttps://oneapi.ro/api/utile/v1/aeroporturi?tara=RO&tip=large_airport
{
    "data": {
        "aeroporturi": [
            {
                "ident": "LRCL",
                "iata": "CLJ",
                "icao": "LRCL",
                "nume": "Avram Iancu Cluj International Airport",
                "tip": "large_airport",
                "municipiu": "Cluj-Napoca",
                "tara": {
                    "cod": "RO",
                    "nume": "România"
                },
                "regiune": {
                    "cod": "RO-CJ",
                    "nume": "Cluj County"
                },
                "continent": "EU",
                "latitudine": 46.786042,
                "longitudine": 23.685733,
                "altitudine_ft": 1039,
                "altitudine_m": 317,
                "curse_regulate": true,
                "wikipedia": "https://en.wikipedia.org/wiki/Cluj_International_Airport",
                "site": "http://www.airportcluj.ro/"
            }
        ],
        "observatie": "Din cele ~86.000 de înregistrări, doar ~9.000 au cod IATA: restul sunt heliporturi, aerodromuri private și piste închise. Filtrează cu `cu_iata=1` dacă vrei doar aeroporturi comerciale.",
        "sursa": {
            "nume": "OurAirports — export public zilnic",
            "url": "https://ourairports.com/data/",
            "licenta": "Domeniu public („All data is released to the Public Domain\"), fără obligație de atribuire."
        }
    },
    "meta": {
        "paginare": {
            "pagina": 1,
            "per_pagina": 50,
            "total": 12,
            "pagini": 1
        }
    }
}

Coduri de eroare

CodSlugCând apare
401neautentificatToken lipsă, invalid, expirat sau revocat.
403feature_indisponibilPlanul curent nu include funcţia de care ţine ruta.
422validareUn parametru nedeclarat ori o valoare care nu trece validarea (q, tara, continent, tip, cu_iata, cu_curse). Câmpul vinovat e în detalii.
429cota_depasitaCota lunară a planului a fost depăşită (vezi Retry-After).

Toate erorile au aceeași formă. eroare.cod e stabil și e cel după care trebuie să ramifici în cod — nu după textul din mesaj, care se poate schimba.

{
    "eroare": {
        "cod": "validare",
        "mesaj": "Un parametru nedeclarat ori o valoare care nu trece validarea (q, tara, continent, tip, cu_iata, cu_curse). Câmpul vinovat e în detalii.",
        "detalii": {
            "q": [
                "Valoarea trimisă nu respectă regula parametrului."
            ]
        }
    }
}