Retrieve active military aircraft positions.
GET /public/aircraft
Returns thinned position data for military aircraft tracked over the last 2 hours. Positions are decimated (every 3rd record per aircraft) to reduce bandwidth while preserving flight paths.
Request
GET https://api.hydra.fast/public/aircraft
Headers: None required
Query Parameters: None
Response
Status: 200 OK
Content-Type: application/json
{
"data": [
{
"icaoHex": "AE1234",
"lat": 36.12,
"lng": -5.35,
"altitude": 35000,
"speed": 420,
"category": "ISR",
"country": "United States",
"flagCode": "US",
"timestamp": "2026-03-21T08:30:00.000Z"
},
{
"icaoHex": "3C6589",
"lat": 54.32,
"lng": 13.07,
"altitude": 28000,
"speed": 380,
"category": "TANKER",
"country": "Germany",
"flagCode": "DE",
"timestamp": "2026-03-21T08:28:00.000Z"
}
]
}
Response Fields
| Field | Type | Description |
|---|---|---|
icaoHex |
string | ICAO 24-bit hex address (unique aircraft identifier) |
lat |
number | Latitude in decimal degrees |
lng |
number | Longitude in decimal degrees |
altitude |
number | null | Barometric altitude in feet |
speed |
number | null | Ground speed in knots |
category |
string | Aircraft classification |
country |
string | null | Operator country name |
flagCode |
string | null | ISO 3166-1 alpha-2 country code |
timestamp |
string | ISO 8601 position timestamp |
Aircraft Categories
ISR Intelligence, Surveillance, Reconnaissance
VIP Government / Head of State transport
BOMBER Strategic bomber
COMMAND Airborne command post (E-6, E-4, etc.)
TANKER Aerial refueling
TRANSPORT Military cargo / transport
FIGHTER Fighter / multirole combat aircraft
HELICOPTER Military rotary-wing
UAV Unmanned aerial vehicle
TRAINER Training aircraft
UNKNOWN Unclassified military
Code Examples
cURL
curl https://api.hydra.fast/public/aircraft
JavaScript (fetch)
const response = await fetch('https://api.hydra.fast/public/aircraft');
const { data } = await response.json();
console.log(`Tracking ${data.length} military aircraft positions`);
data.forEach(ac => {
console.log(`${ac.icaoHex} [${ac.category}] — ${ac.country}`);
console.log(` Position: ${ac.lat}, ${ac.lng} at ${ac.altitude}ft`);
});
Python (requests)
import requests
response = requests.get("https://api.hydra.fast/public/aircraft")
aircraft = response.json()["data"]
for ac in aircraft:
print(f"{ac['icaoHex']} [{ac['category']}] — {ac.get('country', 'Unknown')}")
print(f" Alt: {ac.get('altitude', 'N/A')}ft | Speed: {ac.get('speed', 'N/A')}kts")
Notes
- Positions are thinned — every 3rd position per aircraft is returned
- Only aircraft from the last 2 hours are included
- Maximum of 600 total positions returned
- Only military aircraft are included
- For full position history and callsign data, use the token-gated API