Save up to 17% with yearly billing

See pricing

Historical Flight Data API — ADS-B

Replay
the whole sky.

Up to a year of archived ADS-B positions and flight history, sampled every 5 seconds - search the archive, replay any flight gate to gate, or pull traffic over any airport.

365 days
Archive depth
5 sec
Position sampling
Replay
Full flight tracks
Any airport
Traffic history

What you get

Every flight, on the record

Search months of archive, replay any flight's exact track, and study traffic over any airport - all from positions sampled every 5 seconds.

Replay any flight

The exact flown track, position by position - sampled every 5 seconds.

One call, full track

Pass a flight_id, get back the whole track - auto-bounded takeoff to landing.

365-day archive

Archive coverage begins 1 May 2026 - windows grow over time

Retention by path

Ninety days, or a full year. The path prefix sets the window and the per-request caps — not the plan name on your account.

Max window per request
/ultra/history/90 days

up to 5,000 positions · 1,000 flights per request

/mega/history/365 days

up to 10,000 positions · 2,000 flights per request

Available on PRO & BUSINESS plans.

90 days of history on PRO, a full year on BUSINESS - every flight sampled at 5-second resolution.

Archive coverage begins 1 May 2026

Compare Plans
Capabilities

Search, replay, and analyze the archive

Six ways into the same history - by flight, by aircraft, or by airport, across 90 to 365 days.

Search archived flights

Query any date range and filter by callsign, registration, ICAO24, or departure and arrival airport. Each record returns a flight_id for follow-up lookups.

Replay full flight tracks

Fetch the complete ADS-B track for any flight_id - automatically bounded to the takeoff→landing window with ±5 minutes of padding.

Position history by hex or tail

Pull raw position snapshots for any aircraft by ICAO24 hex or registration - sampled every 5 seconds, newest-first, with a companion list of overlapping flight windows.

Airport traffic history

Reconstruct historical arrivals and departures for any ICAO airport over any window - filter by direction (departures, arrivals, or both) for movement analysis.

90 to 365 days of retention

Reach back 90 days on the PRO plan or a full year on BUSINESS. Single requests can span up to 365 days - no stitching together windows yourself.

Registration auto-resolve

Query by tail number and SkyLink resolves it server-side to the right ICAO24 - so you never have to map registrations to hex codes yourself.

Integration

Replay a flight in two calls

Search the archive to find a flight, then pass its flight_id to get the full track back - auto-bounded from takeoff to landing, sampled every 5 seconds.

Full API Reference
node · replay.js
import { SkyLink } from "skylink-api";

const sky = new SkyLink({ apiKey: process.env.SKYLINK_API_KEY });

// 1 · find the flight in the archive
const [flight] = await sky.history.flights({
  registration: "G-XWBA",
  start: "2026-05-12",
  end: "2026-05-13",
});

// 2 · replay its full track by flight_id
const track = await sky.history.track(flight.flight_id);

console.log(track.positions.length, track.sampleSec);
// → 1287 5

Track auto-bounded takeoff→landing · TypeScript types included

ReplayG-XWBA
British Airways · Airbus A350-1000 · 12 May 2026
Archived
EGLL
London
KJFK
New York
Positions
1,287
Sampled every 5 sec
Track window
19:42 → 03:11 UTC
Off-blocks → on-blocks

* Sample data for illustration only.

Positions

Positions by tail or hex

Pull raw position snapshots for any aircraft over any window - by registration or ICAO24 hex. Tail numbers are resolved server-side, so either identifier works.

Returned newest-first at 5-second resolution, with a companion list of the flight windows those positions fall inside. Perfect for EFB logs, dispatch review, and research pipelines.

Positions API Reference
await sky.history.positions("G-XWBA", { start, end })

skylink-api — TypeScript SDK · Python SDK

PositionsG-XWBA· 406a3d
Newest-first · 5-second resolution
1 flight window
Time (UTC)LatLonAlt ftGS kt
03:06:2540.71-73.923,200248
03:06:2040.64-73.816,775291
03:06:1540.55-73.6610,100334
03:06:1040.44-73.4813,950372
Overlapping flight: EGLL → KJFK · 19:42 → 03:11 UTC

* Sample data for illustration only.

Search the archive, replay full tracks, pull positions by tail or hex, and study airport traffic - across 90 to 365 days.

BAW178 · G-XWBA
EGLL → KJFK · 12 May
a1f4c2
AAL100 · N801AN
KJFK → EGLL · 11 May
7b09e1
DLH400 · D-AIXP
EDDF → KSFO · 09 May
3c52aa
UAE2 · A6-EOB
OMDB → EGLL · 07 May
896d10
AFR6 · F-HRBA
LFPG → KJFK · 04 May
39ac84
QFA9 · VH-OQK
YPPH → EGLL · 01 May
7c6b2f

Every flight on record

Search by date, callsign, registration, or airport - each row carries a flight_id for replay.

What comes backJSON
GET/ultra/history/flight/{flight_id}/track
takeoff_time
string
landing_time
string
count
number
positions[].timestamp
string
positions[].altitude_baro
number
positions[].ground_speed
number

The full track between takeoff and landing, newest position first.

Full response reference

Gate-to-gate, replayed

Takeoff to landing with every recorded position — timestamp, altitude, speed and track.

Build your query

Flight search
both

Prefer fine-grained control?

Pick an endpoint - flight search, track, positions, or airport traffic - and shape the response.

Ready to dig into the archive?

Search, replay, positions, and airport traffic across 90 to 365 days - all behind one API key. Built for dispatch, EFBs, and research.