# OpenSky Network

Posities van vliegtuigen, opgevangen door een wereldwijd netwerk van ontvangers. Zonder account beperkt tot actuele posities.

- Uitgever: OpenSky Network
- Gebied: Wereld · Laagste detail: vliegtuig
- Periode: 2013 – heden · Ververst: elke minuut
- Toegang: Open · Licentie: Niet-commercieel gebruik
- Koppelsleutels: ICAO24-code, tijdstip
- Status: ok (2026-10-16) · 144 vliegtuigen boven NL
- URL: https://opensky-network.org

## Wat kun je ermee?
- **Hoeveel vliegtuigen nu boven Nederland?.** Eén verzoek met een bounding box geeft alle actuele posities. Het aantal van de laatste check staat op de statuspagina.

## Vergelijkbare bronnen
- [Schiphol-statistieken](https://www.schiphol.nl): Vluchten per maand van en naar Schiphol.

## API (REST (JSON))

- Basis: https://opensky-network.org/api
- Toegang: Anoniem: alleen de actuele posities (states/all) en live tracks, 400 credits per dag per IP. Met een gratis account: een API-client (client_id en client_secret) aanmaken op de accountpagina en een token halen via OAuth2 client credentials; het token is 30 minuten geldig. Gebruikersnaam en wachtwoord (basic auth) werken niet meer. (getest)
- Formaten: json
- Omvang: 45 vliegtuigen boven Nederland (bbox 50,75–53,7 N, 3,2–7,22 O) op 16 okt 2026 om 23:37 (getest)
- Filteren: Geen querytaal: kies een bbox, ICAO24-codes, een luchthaven of een tijdsinterval met queryparameters.; 

### Endpoints
- `GET /states/all`: Statusvectoren (positie, hoogte, snelheid, koers) van alle vliegtuigen, of binnen een bbox of voor bepaalde ICAO24-codes. Anoniem alleen het nu.
- `GET /states/own`: Statusvectoren van je eigen ontvangers, zonder credits; alleen met account (anders 403).
- `GET /flights/all`: Alle vluchten in een interval van hoogstens 2 uur (begin, end); alleen met account.
- `GET /flights/aircraft`: Vluchten van één vliegtuig (icao24) in hoogstens 2 dagen; alleen met account. Vluchten worden 's nachts verwerkt: alleen gisteren en eerder.
- `GET /flights/arrival`: Aankomsten op een luchthaven (ICAO, bv. EHAM) in hoogstens 2 dagen; alleen met account, gisteren en eerder. Anoniem gaf 403 "You cannot access historical flights".
- `GET /flights/departure`: Vertrekken van een luchthaven (ICAO) in een interval; alleen met account.
- `GET /tracks/all`: Route van één vliegtuig als lijst punten (tijd, lat, lon, hoogte, koers, op de grond). time=0 = de lopende vlucht; werkte anoniem. Experimenteel, hoogstens 30 dagen terug.

### Parameters
- `lamin / lomin / lamax / lomax`: Bbox voor states/all; alle vier nodig. Nederland (50,75–53,7 N, 3,2–7,22 O) is ~12 vierkante graden = 1 credit. (getest)
- `icao24`: Transpondercode; herhaal de parameter voor meer vliegtuigen. Verplicht bij flights/aircraft en tracks. (uit de beschrijving)
- `time`: Moment voor states/all (met account tot 1 uur terug, per 5 s) of tracks (0 = live). Anoniem met time gaf 403 "Authenticate to get historical data". (getest)
- `extended`: Voegt de vliegtuigcategorie toe (index 17). Boven NL had 43 van de 45 categorie 0 (geen informatie). (getest)
- `begin / end`: Interval voor de flights-endpoints (all: max 2 uur; aircraft en arrival: max 2 dagen). (uit de beschrijving)
- `airport`: Luchthaven voor flights/arrival en flights/departure, bv. EHAM (Schiphol). (uit de beschrijving)

### Velden van een statusvector (states/all is een lijst van lijsten, op positie) (15)
`time` integer, `states[0] icao24` tekst, `states[1] callsign` tekst, `states[2] origin_country` tekst, `states[3] time_position / [4] last_contact` integer, `states[5] longitude / [6] latitude` getal, `states[7] baro_altitude` getal, `states[8] on_ground` boolean, `states[9] velocity` getal, `states[10] true_track` getal, `states[11] vertical_rate` getal, `states[13] geo_altitude` getal, `states[14] squawk` tekst, `states[16] position_source` integer, `states[17] category` integer

### Limieten en valkuilen
- Credits per dag, apart voor /states, /tracks en /flights: anoniem 400, met account 4.000, actieve feeder 8.000. Kop X-Rate-Limit-Remaining toont het saldo; op = 429 met X-Rate-Limit-Retry-After-Seconds. (uit de beschrijving)
- states/all kost 1 credit tot 25 vierkante graden, 2 tot 100, 3 tot 400, 4 daarboven of wereldwijd. Flights en tracks: 4 voor live of korter dan 24 uur, 30 voor 1–2 kalenderdagen, daarna fors meer per dag. (uit de beschrijving)
- Tijdsresolutie anoniem 10 seconden, met account 5 seconden. (uit de beschrijving)
- robots.txt van opensky-network.org geeft 403 aan iedereen (ook zonder User-Agent). Een onleesbare robots.txt legt geen regels op; de API zelf antwoordt anoniem. De documentatie staat op GitHub Pages. (getest)
- Geen historie zonder account: flights/* geeft anoniem 403 en een time-parameter bij states/all ook. Voor meer dan een uur terug verwijst de documentatie naar de Trino/MinIO-interface. (getest)
- In tracks staan startTime en endTime als drijvende-kommagetal in wetenschappelijke notatie (1.792184179E9): rond af naar een geheel getal. (getest)
- Dekking hangt af van vrijwillige ontvangers: laag vliegend verkeer en gebieden zonder ontvanger ontbreken. Tellingen zijn een ondergrens. (ervaring)

### Voorbeeld
```
https://opensky-network.org/api/states/all?lamin=50.75&lomin=3.2&lamax=53.7&lomax=7.22
```

## Wat je ermee kunt bouwen
- [Wat vliegt er nu boven mijn huis?](https://www.opendataindex.nl/bouwen/vliegtuigen-boven-je-huis.md): Een kleine app die elke paar minuten laat zien welke vliegtuigen binnen 25 km van jouw adres vliegen, hoe hoog, hoe snel en of ze stijgen of dalen, met de live posities van OpenSky en zonder account.

