| Field | Value | Copy |
|---|---|---|
| {{ row.label }} | {{ row.value }} |
| # | Callsign | ICAO | Altitude (ft) | Speed (kts) | Last contact | Copy |
|---|---|---|---|---|---|---|
| {{ row.rank }} | {{ row.callsign }} | {{ row.icao24 }} | {{ row.altitude }} | {{ row.speed }} | {{ row.lastSeen }} |
|
| No flights found for the current query. | ||||||
Flight position reports are snapshots of where an aircraft is and how it is moving at a given moment, drawn from public surveillance messages and aggregated feeds. A live flight tracker by callsign helps you connect that stream to a single flight so you can see whether it is airborne, climbing, or holding on the ground.
You provide a short identifier such as a callsign, a flight number style label, or a hexadecimal aircraft address and the tool returns the freshest matching state it can find. When you limit the search to a region around a center point, the query stays smaller and the results arrive faster, which is handy when you are tracking a local departure. If you choose a global scan, expect more traffic and more ambiguity when several flights share similar identifiers.
For example, if you hear a callsign and want to confirm the direction of travel, enter it and compare the reported heading with what you observe on a map. The snapshot also shows the last contact time, so you can tell whether the feed is current or has gone quiet. Copy the coordinates into a map when you need a quick visual check of where the aircraft was last seen.
A match that looks right is still only a pattern match on public fields, so it does not prove the identity of an aircraft or confirm a flight plan. If you are sharing results, treat precise locations as sensitive and avoid using them to harass, stalk, or interfere with others.
For steadier tracking, keep your region center close to the expected route and refresh at a moderate pace to stay within public rate limits. If the data looks inconsistent, widen the region or try the hex address, then compare several updates rather than a single point.
Aircraft state data is returned as a list of snapshots that include latitude, longitude, altitude, ground velocity, heading, vertical rate, and a last contact timestamp. This app treats a callsign as the primary human label and also supports matching by the International Civil Aviation Organization (ICAO) 24 bit aircraft address shown in hexadecimal.
Each snapshot is normalized into aviation friendly units and labels, then filtered by an uppercase substring match across callsign, ICAO hex, squawk, and origin country. The matching pool is sorted to prefer the freshest last contact time, with ground speed used as a tie breaker, and the top result becomes the focused flight.
Interpretation is intentionally simple: higher ground speed usually means the aircraft is moving faster over the surface, a positive vertical rate suggests a climb, and an on ground flag indicates the feed believes the aircraft is on the surface. Heading is shown in degrees and also mapped into an eight point compass direction for quick scanning.
Comparisons work best when the scope and refresh rhythm stay consistent, because the upstream feed can change between requests and coverage varies by region and aircraft. Region queries use an approximate bounding box around the chosen center and radius, so the edge of the search window is an estimate rather than a strict circle.
| Symbol | Meaning | Unit or Datatype | Source |
|---|---|---|---|
| Latitude | degrees | Input or feed | |
| Longitude | degrees | Input or feed | |
| Search radius | km | Input | |
| Altitude selected for display | m | Derived | |
| Altitude in feet | ft | Derived | |
| Ground velocity | m/s | Feed | |
| Ground speed in knots | kts | Derived | |
| Vertical rate | m/s | Feed | |
| Vertical rate in feet per minute | fpm | Derived |
Assume one state report provides altitude 10,500 m, velocity 230 m/s, and vertical rate minus 6 m/s.
Interpreting that snapshot, the aircraft is around 34,449 ft, moving about 447 kts over the ground, and descending at roughly 1,181 fpm.
| Code | Label shown | Plain meaning |
|---|---|---|
| 0 | ADS-B | Automatic Dependent Surveillance Broadcast position. |
| 1 | ASTERIX | All Purpose Structured Eurocontrol Surveillance Information Exchange feed format. |
| 2 | MLAT | Multilateration based position estimate. |
| 3 | FLARM | Shown as labeled by the upstream feed. |
| Heading degrees | Cardinal | Note |
|---|---|---|
| 0 to 360 | N, NE, E, SE, S, SW, W, NW | Computed by rounding heading divided by 45 degrees. |
| Parameter | Meaning | Unit or Datatype | Typical range | Sensitivity | Notes |
|---|---|---|---|---|---|
| identifier | Substring used to match callsign, ICAO hex, squawk, or origin country | text | any | High | Uppercased and trimmed before matching. |
| scope | Search mode | enum | region, global | High | Region adds a bounding box to the request. |
| center_lat | Latitude of region center | number | −90 to 90 | Medium | Default 40.6413. |
| center_lng | Longitude of region center | number | −180 to 180 | Medium | Default −73.7781. |
| radius_km | Search radius used to build the bounding box | km | 20 to 2000 | High | Default 500, clamped to bounds. |
| auto_refresh | Whether repeated fetches run on a timer | 0 or 1 | 0 or 1 | Medium | When enabled, interval uses refresh_seconds. |
| refresh_seconds | Timer interval for automatic refresh | seconds | 5 to 300 | Medium | Default 30, clamped to bounds. |
| result_limit | Maximum flights kept after filtering | count | 1 to 200 | Low | Default 60, applied after sorting. |
| Constant | Value | Unit | Source | Notes |
|---|---|---|---|---|
| Earth radius | 6371 | km | constant | Used for haversine distance from region center. |
| Latitude km per degree | 111 | km/deg | constant | Used to estimate latitude delta for the bounding box. |
| Minimum longitude scale | 0.2 | unitless | constant | Avoids extreme longitude expansion near the poles. |
| m to ft | 3.28084 | ft/m | constant | Altitude conversion. |
| m/s to kts | 1.943844 | kts per (m/s) | constant | Ground speed conversion. |
| m/s to mph | 2.23694 | mph per (m/s) | constant | Shown alongside knots. |
| m/s to km/h | 3.6 | km/h per (m/s) | constant | Shown alongside knots. |
| m/s to fpm | 196.850394 | fpm per (m/s) | constant | Vertical rate conversion. |
Coordinates shown for copying are rounded to four decimals using fixed point formatting and use a dot as the decimal separator. Bounding box parameters are also rounded to four decimals, while altitude, speed, and vertical rate labels are displayed to zero decimals and request latency is displayed to one decimal. Timestamps are rendered with locale aware date formatting, and relative time is rounded to whole seconds, minutes, hours, or days.
| Field | Type | Min | Max | Step or Pattern | Error text | Placeholder |
|---|---|---|---|---|---|---|
| Flight identifier | text | — | — | Uppercase substring match | — | DAL84, UAL100, or A123BC |
| Search scope | enum | — | — | region, global | — | Region (fast, default) |
| Center latitude | number | −90 | 90 | step 0.0001 | Enter valid latitude and longitude for the region search. | — |
| Center longitude | number | −180 | 180 | step 0.0001 | — | |
| Radius | number | 20 | 2000 | step 10 | — | — |
| Auto refresh interval | number | 5 | 300 | step 1 | — | — |
| Result cap | number | 1 | 200 | step 1 | — | — |
| Input | Accepted families | Output | Encoding or precision | Rounding |
|---|---|---|---|---|
| Identifier | Callsign, flight number style callsign, ICAO hex | Matched state list and focused snapshot | Uppercase substring search | — |
| Region inputs | Center latitude and longitude, radius in km | Bounding box parameters | Four decimals in request parameters | Rounded to four decimals |
| Status export | Two column table | CSV copy or download, DOCX export | CSV includes header Field, Value | As displayed |
| Matches export | Ranked table | CSV copy or download, DOCX export | Columns include altitude in ft and speed in kts | As displayed |
| JSON export | Structured payload | Copy or download | Pretty printed with two space indentation | Numeric values preserved as provided |
The state list is fetched from the OpenSky Network public States API path /api/states/all with optional region parameters lamin, lomin, lamax, and lomax. Requests use a no store cache directive and rely on cross origin access, and the map view pulls standard map tiles when displayed. No explicit local or session storage calls appear in this package.
For a feed response with n states, normalization and filtering are linear in n, and the freshness sort is O(n log n). To avoid stale updates, only the latest in flight request is allowed to update the view, so repeated refreshes remain deterministic for a given response payload.
All feed strings should be treated as untrusted input when rendered or exported, especially in the highlighted JSON view that injects formatted markup into the page. Clipboard writes and file saves depend on browser permissions and can fail silently in restrictive contexts, and opening external map pages may share coordinates with those services.
This page makes browser initiated requests to third party services for flight states and map tiles, and it does not transmit or store a personal account, but precise locations can still be sensitive so use and share results responsibly.
For authoritative definitions, refer to International Civil Aviation Organization guidance on aircraft identifiers and surveillance, standard latitude and longitude conventions used with WGS 84, and published documentation for the OpenSky Network States API.
Flight tracking works best when the identifier and the search window match where the aircraft is likely to be.
Heads-up Callsigns can be reused and can collide, so confirm location, altitude, and last contact before assuming a match.
Example: Track a departure by entering DAL84, keep scope set to region, set the center near your airport, and use a 500 km radius to find the freshest matching flight.
If several matches appear, increase the result cap and switch to the ICAO hex address for a cleaner match.
Pro tip: When a callsign is ambiguous, match on altitude trend and last contact recency to pick the right aircraft.
Once the snapshot looks consistent across updates, you can treat it as a reliable short term view of the flight state.
This package does not include explicit localStorage or sessionStorage usage. It does request flight states from the public feed and loads map tiles when the map is shown, and opening external map pages may share coordinates with those sites. The identifier you type is used for local filtering rather than being sent as a query parameter.
Accuracy depends on the upstream feed and its last contact time for each aircraft. Use the shown last contact label to judge freshness, and compare multiple refreshes when you need confidence. Altitude uses geometric altitude when available, otherwise barometric altitude, and speeds are ground speed conversions from meters per second.
ICAO hex is the International Civil Aviation Organization aircraft address encoded as hexadecimal, for example A123BC. It is usually more specific than a callsign because it identifies the transponder address rather than a flight label.
A network connection is required to fetch flight states and to load map tiles. If you already have results on screen, copying values and exporting from the current snapshot may still work, but you will not be able to refresh or change scope meaningfully without connectivity.
Enter the flight number in the same format the callsign typically uses, such as an airline code plus digits. Matching is a case insensitive substring search across callsign and related fields, so partial input can work, but adding the airline prefix usually reduces collisions.
You can copy or download CSV for both the status and matches tables, export each table to DOCX, and copy or download a formatted JSON payload. Default filenames include flight_status.csv, flight_matches.csv, flight_tracker.json, and timestamped DOCX names for table exports.
When multiple rows match your identifier, the tool chooses the one with the most recent last contact time, and if those are equal it prefers the higher ground speed. This is a pragmatic guess for live tracking, but it can still pick the wrong aircraft when callsigns collide.
The provided files do not include a license statement. If you are redistributing or embedding the tool, add the appropriate licensing and attribution text for your project and for any third party data sources you rely on.
Caveat: deployment terms are set outside this package.If you see repeated fetch failures, pause automatic refresh and try a region query later, because the upstream service may be rate limiting or temporarily unavailable.