Trace
curl --request GET \
--url https://data.flightportrait.com/v1/trace/{hex}import requests
url = "https://data.flightportrait.com/v1/trace/{hex}"
response = requests.get(url)
print(response.text)const options = {method: 'GET'};
fetch('https://data.flightportrait.com/v1/trace/{hex}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://data.flightportrait.com/v1/trace/{hex}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://data.flightportrait.com/v1/trace/{hex}"
req, _ := http.NewRequest("GET", url, nil)
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://data.flightportrait.com/v1/trace/{hex}")
.asString();require 'uri'
require 'net/http'
url = URI("https://data.flightportrait.com/v1/trace/{hex}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
response = http.request(request)
puts response.read_body{
"hex": "76cd06",
"points": [
[
1787924000,
1.48,
103.7,
6000,
84
],
[
1787924061,
1.5,
103.8,
6325,
85.4
]
],
"departure": {
"at": 1787923500,
"lat": 1.36,
"lon": 103.99,
"alt_ft": 425
}
}{
"error": "<string>",
"detail": "<string>"
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>",
"input": "<unknown>",
"ctx": {}
}
]
}{
"error": "rate_limited",
"detail": "slow down"
}Live
Trace
Recent positions for one aircraft, oldest first. Each point is [t, lat, lon, alt_baro, track]. Held in memory about 30 minutes; a restart forgets and trails regrow. 404 if none. Rate: 600 per 600 s (bucket trace). Cache: 5 s edge.
GET
/
v1
/
trace
/
{hex}
Trace
curl --request GET \
--url https://data.flightportrait.com/v1/trace/{hex}import requests
url = "https://data.flightportrait.com/v1/trace/{hex}"
response = requests.get(url)
print(response.text)const options = {method: 'GET'};
fetch('https://data.flightportrait.com/v1/trace/{hex}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://data.flightportrait.com/v1/trace/{hex}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://data.flightportrait.com/v1/trace/{hex}"
req, _ := http.NewRequest("GET", url, nil)
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://data.flightportrait.com/v1/trace/{hex}")
.asString();require 'uri'
require 'net/http'
url = URI("https://data.flightportrait.com/v1/trace/{hex}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
response = http.request(request)
puts response.read_body{
"hex": "76cd06",
"points": [
[
1787924000,
1.48,
103.7,
6000,
84
],
[
1787924061,
1.5,
103.8,
6325,
85.4
]
],
"departure": {
"at": 1787923500,
"lat": 1.36,
"lon": 103.99,
"alt_ft": 425
}
}{
"error": "<string>",
"detail": "<string>"
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>",
"input": "<unknown>",
"ctx": {}
}
]
}{
"error": "rate_limited",
"detail": "slow down"
}Path Parameters
ICAO 24-bit address, 6 hex chars. Case-insensitive.
Response
OK
[t, lat, lon, alt_baro, track], oldest first.
Show child attributes
Show child attributes
When and where this flight took off, from the day's trace: present when the network heard the take-off (from the ground or below 5,000 ft). Null when first heard aloft.
Show child attributes
Show child attributes
When and where it landed, when the trace ends on the ground.
Show child attributes
Show child attributes