Public Operations API

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).

GET?resource=va

Airline profile

Your VA's public identity — name, callsign, ICAO/IATA codes, timezone, website, and social links.

GET?resource=pilots

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.

GET?resource=routes

Route network

The full schedule — flight numbers, city pairs, aircraft types, STDs, cruise altitude, block time, and distance.

GET?resource=fleet

Fleet

Fleet types with performance specs and scoring weights, plus every registered airframe with base airport and SELCAL.

GET?resource=airports

Airports

The airport directory — ICAO/IATA, coordinates, elevation, base and focus-airport flags with bonus values.

GET?resource=events

Events

Upcoming group flights and fly-ins with dates, times, routes, and registration settings.

GET?resource=tours

Tours

Published multi-leg tours with their ordered legs and completion bonus points.

GET?resource=live-flights

Live flights

Every aircraft currently in the air — position, altitude, ground speed, and phase of flight, updated in real time.

GET?resource=pireps

PIREPs

Flight reports with scores, grades, landing rates, fuel figures, network flown, and review status.

GET?resource=stats

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.

POST

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"
  }'
POST

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"
  }'
POST

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"
  }'
POST

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

401Missing or invalid API key
403Key revoked, or the record belongs to another airline
404Pilot or booking not found in your airline
400Validation failed — the error names the exact problem

Every response is JSON — errors come back as { "error": "..." } with a matching HTTP status.

ALTIVUS· Virtual airline operations, elevated.

© 2026 Altivus. Not affiliated with any real-world airline.