Build anything on top of your airline.
Every Altivus airline gets a full-operations REST API — custom dashboards, Discord tools, VA websites, or your own ACARS companion, reading and writing live data with the same rules the platform enforces.
Quickstart
1Generate a key in airline settings
Staff with terminal access can create and revoke keys under Settings → Public API. Keys are VA-scoped, stored hashed, and shown only once.
2Call the API with your key
curl "https://nori-sky-sync.base44.app/functions/va-api?resource=routes" \
-H "Authorization: Bearer $ALTIVUS_KEY"3Read the response
{
"routes": [
{
"flight_number": "NOI101",
"departure": "KJFK",
"arrival": "EGLL",
"aircraft_type": "A333",
"std": "18:30",
"distance_nm": 2990,
"duration_minutes": 402
}
]
}Authentication
VA-scoped keys
Each key is bound to one airline and can never touch another VA's data. Send it asAuthorization: Bearer <key>or an x-api-key header.
Safe by default
Keys are stored as SHA-256 hashes, shown once at creation, and can be revoked instantly. Pilot contact details and connection tokens are never returned by the API.
Read your airline's data
One endpoint, ten resources — pass ?resource= and an optional &limit= (up to 200).
Airline profile
Your VA's public identity — name, callsign, ICAO/IATA codes, timezone, website, and social links.
Pilot roster
Every pilot on the roster with pilot number, rank, team, status, flight time, and bonus points. Contact details and connection tokens are never exposed.
Route network
The full schedule — flight numbers, city pairs, aircraft types, STDs, cruise altitude, block time, and distance.
Fleet
Fleet types with performance specs and scoring weights, plus every registered airframe with base airport and SELCAL.
Airports
The airport directory — ICAO/IATA, coordinates, elevation, base and focus-airport flags with bonus values.
Events
Upcoming group flights and fly-ins with dates, times, routes, and registration settings.
Tours
Published multi-leg tours with their ordered legs and completion bonus points.
Live flights
Every aircraft currently in the air — position, altitude, ground speed, and phase of flight, updated in real time.
PIREPs
Flight reports with scores, grades, landing rates, fuel figures, network flown, and review status.
Airline stats
Aggregated totals — pilots, flight minutes, approved flights, average score, and average landing rate.
Write to your airline
POST a JSON body with an action field — every write runs the same validation, scoring, and Discord notifications as the app.
Create a booking
Books a scheduled flight on behalf of a pilot — same validation as the app (the flight must exist in your schedule), cancels their previous active booking, and fires your Discord booking notification.
curl -X POST https://nori-sky-sync.base44.app/functions/va-api \
-H "Authorization: Bearer $ALTIVUS_KEY" \
-H "Content-Type: application/json" \
-d '{
"action": "create_booking",
"pilot_id": "PILOT_ID",
"flight_number": "NOI101",
"departure": "KJFK",
"arrival": "EGLL",
"aircraft_type": "A333"
}'Cancel a booking
Cancels an active booking that belongs to one of your pilots.
curl -X POST https://nori-sky-sync.base44.app/functions/va-api \
-H "Authorization: Bearer $ALTIVUS_KEY" \
-H "Content-Type: application/json" \
-d '{
"action": "cancel_booking",
"booking_id": "BOOKING_ID"
}'File a PIREP
Files a flight report for a pilot. Scoring, grading, your auto-reject rules, and the Discord landing notification all run exactly as if the flight came from the ACARS client.
curl -X POST https://nori-sky-sync.base44.app/functions/va-api \
-H "Authorization: Bearer $ALTIVUS_KEY" \
-H "Content-Type: application/json" \
-d '{
"action": "file_pirep",
"pilot_id": "PILOT_ID",
"flight_number": "NOI101",
"departure": "KJFK",
"arrival": "EGLL",
"duration_minutes": 402,
"landing_rate": -187,
"route_adherence": 98,
"network": "vatsim"
}'Update a pilot
Updates a pilot's rank, team, status, flight time, or bonus points — for syncing external records into Altivus.
curl -X POST https://nori-sky-sync.base44.app/functions/va-api \
-H "Authorization: Bearer $ALTIVUS_KEY" \
-H "Content-Type: application/json" \
-d '{
"action": "update_pilot",
"pilot_id": "PILOT_ID",
"rank": "Senior First Officer",
"total_flight_minutes": 5230
}'Errors
Every response is JSON — errors come back as { "error": "..." } with a matching HTTP status.