VATSIM Feed - is a current information about online controllers, pilots, preflights, available data servers of VATSIM network.
We do download the VATSIM feed and provide it as a JSON-formatted data, so you can use it in your own project for whatever you need. Feed contents isn't changed with one
exception: VATSIM original feed contains arrays (lists) of data for each key of the feed, while we provide dictionary formatted data for each key.
Example:
Original feed
...
"pilot_ratings": [
{
"id": 0,
"short_name": "NEW",
"long_name": "Basic Member"
},
{
"id": 1,
"short_name": "PPL",
"long_name": "Private Pilot Licence"
},
...
...
"pilot_ratings": {
"0": {
"id": 0,
"short_name": "NEW",
"long_name": "Basic Member"
},
"1": {
"id": 1,
"short_name": "PPL",
"long_name": "Private Pilot Licence"
},
...
Output contains these key sections:
general
: information about current feed, including update timestamp, number of connected clients, feed version, feed update interval in minutes, etc.pilots
: list of the online pilotscontrollers
: list of the online controllers (including OBS connections)atis
: ATIS stations listservers
: available data serversprefiles
: prefiled flightsfacilities
: shortenings and full decoding of the ATC facility IDsratings
: shortenings and full decoding of the ATC rating IDspilot_ratings
: shortenings and full decoding of the pilots rating IDsUsage
Endpoint: /feed
Request method: GET
Headers:
Header parameter | Description | |
---|---|---|
X-API-Key |
Your unique API key | |
pretty |
If not set or set to 0 - return minified JSON output. If set to 1 - will return pretty-printed JSON. |
Example request:
Python
import requests
url = "https://api.vacc-ua.org/api/feed"
headers = {
'X-API-Key': "123456",
'pretty': "1",
'Cache-Control': "no-cache"
}
response = requests.request("GET", url, headers=headers)
print(response.text)
PHP
<?php
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_PORT => "443",
CURLOPT_URL => "https://api.vacc-ua.org/api/feed",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => array(
"X-API-Key: 123456",
"Cache-Control: no-cache",
"pretty: 1"
),
));
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}
Example response:
{
"general": {
"version": 3,
"reload": 1,
"update": "20210408215324",
"update_timestamp": "2021-04-08T21:53:24.8614399Z",
"connected_clients": 857,
"unique_users": 816
},
"pilots": {
"AFR1719": {
"cid": 1422745,
"name": "GOMBERT Laurent LFPG",
"callsign": "AFR1719",
"server": "GERMANY-2",
"pilot_rating": 0,
"latitude": -22.44371,
"longitude": -43.34159,
"altitude": 12041,
"groundspeed": 318,
"transponder": "3152",
"heading": 240,
"qnh_i_hg": 30.14,
"qnh_mb": 1021,
"flight_plan": {
"flight_rules": "I",
"aircraft": "H/A333/L",
"aircraft_faa": "H/A333/L",
"aircraft_short": "A333",
"departure": "LIRF",
"arrival": "SBGL",
"alternate": "SBFI",
"cruise_tas": "484",
"altitude": "40000",
"deptime": "0935",
"enroute_time": "1126",
"fuel_time": "1318",
"remarks": "OPR BY AIRFRANCE VIRTUEL.COM // PBN/A1B1C1D1O1S2 DOF/210408 REG/FLOLO EET/LFFF0040 LECB0102 LECM0144 GMMM0221 GCCC0324 GOOO0502 GVSC0507 GOOO0557 SBAO0722 SBRE0815 SBCW1049 OPR/AFR RMK/TCAS SIMBRIEF /V/",
"route": "GISPA OLBEK SUPUX UZ924 RIPAL UM603 ALT UN851 TOSGA/N0477F350 UN851 VJF UL82 IBALU UN857 DEREV/N0480F360 UN857 ORABI/N0477F380 UN857 PUGUN/N0471F400 UN857 MOLSU UTBOM2A",
"revision_id": 3
},
"logon_time": "2021-04-08T09:16:24.7404465Z",
"last_updated": "2021-04-08T21:53:24.4895677Z"
},
},
"controllers": {
"UTSD_CTR": {
"cid": 1466444,
"name": "Akhmadjon Saidov",
"callsign": "UTSD_CTR",
"frequency": "134.800",
"facility": 6,
"rating": 5,
"server": "GERMANY-1",
"visual_range": 300,
"text_atis": [
"Samarkand control",
"PDC and CPDLC available in test mode - logon is \"UTSD\""
],
"last_updated": "2021-04-08T21:53:19.1338253Z",
"logon_time": "2021-04-08T07:01:48.2502973Z"
},
},
"atis": {
"KBDL_ATIS": {
"cid": 1441734,
"name": "Jeff Marcotte",
"callsign": "KBDL_ATIS",
"frequency": "118.150",
"facility": 4,
"rating": 3,
"server": "CANADA",
"visual_range": 50,
"atis_code": "S",
"text_atis": [
"BRADLEY INTERNATIONAL AIRPORT ATIS INFORMATION S. 2051Z. 04005KT",
"10SM SCT070 SCT250 23/04 A3003 (THREE ZERO ZERO THREE). RWYS 6",
"IN USE. EXPECT VIS APP. RUNWAY 15/33 CLSD. NOTAMS... READ BACK",
"ALL HOLD SHORT INSTRUCTIONS AND ASSIGNED ALTITUDES.. ...ADVS YOU",
"HAVE INFO S."
],
"last_updated": "2021-04-08T21:53:23.0722393Z",
"logon_time": "2021-04-08T17:37:38.9184126Z"
},
},
"servers": {
"CANADA": {
"ident": "CANADA",
"hostname_or_ip": "165.22.239.218",
"location": "Toronto, Canada",
"name": "CANADA",
"clients_connection_allowed": 1
},
},
"prefiles": {
"TUI251A": {
"cid": 1561281,
"name": "Noel Petermayer",
"callsign": "TUI251A",
"flight_plan": {
"flight_rules": "I",
"aircraft": "B738/M-SDE2E3FGHIRWXY/LB1",
"aircraft_faa": "B738/L",
"aircraft_short": "B738",
"departure": "EDDP",
"arrival": "EDDF",
"alternate": "EDDL",
"cruise_tas": "402",
"altitude": "24000",
"deptime": "1925",
"enroute_time": "0045",
"fuel_time": "0207",
"remarks": "PBN/A1B1C1D1S1S2 DOF/210408 REG/N806SB EET/EDGG0013 OPR/TUI PER/C RMK/TCAS SIMBRIEF/ SHARED COCKPIT WITH TUI251 /V/",
"route": "ORTAG4N ORTAG T177 ODIPI T157 KERAX KERAX1A",
"revision_id": 0
},
"last_updated": "2021-04-08T19:15:06.3973462Z"
},
},
"facilities": {
"0": {
"id": 0,
"short": "OBS",
"long": "Observer"
},
},
"ratings": {
"0": {
"id": 0,
"short": "SUS",
"long": "Suspended"
},
},
"pilot_ratings": {
"0": {
"id": 0,
"short_name": "NEW",
"long_name": "Basic Member"
},
}
}
To consume space, only one object in the each section is provided as example, as the whole feed in a prime-time could be up to 1MB in a size.