In order to use the ATLAS API, each app must have it's own API Key. These API Keys are made on a per VA basis. These means that an API Key generated for Airline ABC won't work for Airline XYZ.
To create an API Key, a pilot with the MANAGE_VA_API permission is required. The pilot needs to go to Administration/API, then click Create new API Key. At this time, there is no way to restrict the access of an API Key.
After pressing the button they will then be greeted by a message containing the api key.
Once an API Key has been generated, your app will need to use it.
ATLAS expects the API Key to be in the authentication header of the request. The authentication should be a bearer token.
const request = require('request');
const options = {
method: 'GET',
url: 'https://atlas.va-center.com/api/external/members/all',
headers: {Authorization: 'Bearer APIDOCUMENTATIONTEST'}
};
request(options, function (error, response, body) {
if (error) throw new Error(error);
console.log(body);
});
This authentication is standard across all API requests.
ATLAS allows your app to get a list of current members of a VA. This information includes things like their rank, callsign, join date, and more.
ATLAS allows your app to get information for specific members of a VA. This information includes things like their rank, callsign, join date, and more.
ATLAS allows your app to get a list of current PIREPs of a VA.
ATLAS allows your app to get information for a specific PIREP.
ATLAS allows your app to get a list of current events for a VA.
ATLAS allows your app to get a list of current routes for a VA.
ATLAS allows your app to get information for a specific route.
ATLAS allows your app to get a list of current ranks for a VA.
ATLAS allows your app to get information about the VA. This information includes things like the most used aircraft, total hours, best pilot and more.
{
errorCode: 200,
errorMessage: null,
customMessage: null,
data: {
newPIREPs: 0, //int of approved pireps in the last 60 days
totalPIREPs: 0, //int of all approved pireps
topCraft: {}, // aircraft | null
newPassengers: 0, // int of the amount of pax carrier in last 60 days
totalPilots: 0, // int of all pilots
newPilots: 0, // int of pilots who joined in the last 60 days,
newFT: 0 // Flight time of the last 60 days in minutes
}
}
ATLAS allows your app to get information about the VA. This information includes the ROTW.
{
errorCode: 200,
errorMessage: null,
customMessage: null,
data: [] // array of routeDay
}
{
id: 1 // int,
vaID: 1 // id of the VA,
route: {} // the route obj,
day: 1 // int (0-6 for each day of week starting sunday)
}
{
"id": 5,
"userID": "abc123_@/ab",
"virtualAirlineID": "abc-123",
"virtualAirline": {},
"role": "PILOT",
"permissions": 0,
"manualRank": false,
"rankID": 4
"rank": {},
"callsign": "VACV001",
"flightTime": 60,
"pireps": [],
"leavesOfAbsence": [],
"joinDate": "2021-06-01T00:00:00.000Z",
}
{
"id": 2,
"name": "Cadet",
"manual": false,
"minHours": 0,
"holders": [],
"vaID": "abc-123",
"va": {}
}
{
"id": 6,
"depICAO": "YMML",
"arrICAO": "YSSY",
"pilotID": 5,
"pilot": {},
"aircraftID": 10,
"aircraft": {},
"operator": "VACenter Virtual",
"flightNumber": "VACV000",
"flightTime": 60,
"state": "PENDING",
"comments": "Test the API",
"fuel": 123,
"reportDate": "2021-06-01T00:00:00.000Z",
"flightDate": "2021-06-01T00:00:00.000Z",
"multiplierID": 8,
"multiplier": {},
"flightType": "PASSENGER",
"flightLoad": 120,
"routeID": 9,
"route": {},
"vaID": "abc-123",
"va": {},
"pirepImage": "abc123"
}
{
"id": "abc-123",
"name": "VACenter Virtual",
"code": "VACV",
"subscriptionTier": 3,
"subscriptionToCancel": false,
"subscriptionActive": true,
"hasBanner": true,
"hasPIREPImages": true,
"liveMap": "https://ifvarb.org/livemap",
"inactivityThreshold": 30
}
{
"id": 9,
"pilotID": 5,
"vaID": "abc-123",
"startDate": "2023-05-15T00:00:00.000Z",
"endDate": "2023-05-22T00:00:00.000Z",
"reason": "test",
"state": "APPROVED"
}
{
"id": 12,
"vaID": "ce31303b-9d07-4df3-80ea-977b1ed4d5e0",
"liveryID": "85cc6e33-5e99-4bfe-8c80-a55cb5e70b3d",
"minimumHours": 0,
"livery": {
"liveryID": "85cc6e33-5e99-4bfe-8c80-a55cb5e70b3d",
"liveryName": "Finnair",
"aircraftID": "6af2c9f8-abd8-4872-a9bc-4e79fd84fe77",
"aircraftName": "Airbus A330-300"
}
}
{
"liveryID": "85cc6e33-5e99-4bfe-8c80-a55cb5e70b3d",
"liveryName": "Finnair",
"aircraftID": "6af2c9f8-abd8-4872-a9bc-4e79fd84fe77",
"aircraftName": "Airbus A330-300"
}
{
"id": 1,
"routeNumber": "VACV0001",
"vaID": "121330c0-91b0-42a7-878c-884dfede4e61",
"depICAO": "YMML",
"arrICAO": "YSSY",
"routeType": "PASSENGER",
"notes": "123",
"estFlightTime": 62,
"minimumHours": 0,
"active": true,
"shareable": true,
"servicedBy": []
}
{
"id": 1,
"vaID": "121330c0-91b0-42a7-878c-884dfede4e61",
"multiplierCode": "abc123",
"multiplierValue": 1.5,
"valid": true
}
{
"id": 1,
"vaID": "121330c0-91b0-42a7-878c-884dfede4e61",
"title": "Hello Developers!",
"description": "Devs rule!",
"startDate": "2023-06-27T02:11:00.000Z",
"endDate": "2023-06-28T02:12:00.000Z",
"server": "EXPERT",
"depICAO": "YMML",
"arrICAO": "YSSY"
}