Base URL
Every endpoint in this reference is documented under/api/stratos: that’s what the phpVMS module uses and what we recommend for consistency. You’re free to mount the surface anywhere; the desktop client just uses whatever base URL is set in your Stratos airline configuration.
So a VA running the reference module ends up with something like https://crew.yourva.com/api/stratos, but https://api.yourva.com/stratos/v1 or https://crew.yourva.com/integrations/stratos works equally well.
Authentication
Most endpoints require a Bearer token: the pilot’s API key, obtained viaPOST /pilot/login or your OAuth flow.
GET / and POST /pilot/login.
Conventions
- JSON,
snake_casefield names. - Distances in nautical miles, weights in pounds, flight times in decimal hours (unless suffixed
_minutes). - Coordinates are decimal degrees (WGS84).
- CORS is wide-open; the client preflights every method.
The flight lifecycle
1
POST /flights/start
The pilot clicks Start Flight on a bid. The server prefiles a PIREP and returns a
tracking_id.2
POST /flights/update
Sent at the airline’s position report interval (15, 30 or 60 seconds, or a custom interval on Pro+, with Free fixed at 60 seconds; see Flight Tracking settings) while the flight is active. Each update writes a flight-path point and advances the PIREP status based on the reported phase.
3
POST /flights/complete
At gate arrival, the server files the PIREP, attaches log entries and comments, and submits it for VA approval.
POST /flights/cancel discards the in-progress PIREP at any point before completion. POST /flights/unbook is unrelated: it just removes a bid the pilot no longer wants to fly.
Minimum viable surface
To get a Stratos client booking and flying, you need:GET /: handshake.POST /pilot/login: issue the pilot an API key.GET /pilot/verify: token re-validation on app launch.GET /data/aircraftandGET /data/airports: reference data.GET /flights/bookings: the pilot’s current bids.POST /flights/start,/update,/complete: the flight lifecycle.
/pilot/statistics, /data/announcements, /flights/search, /flights/cancel, /flights/unbook) is needed for full feature parity but not for a basic round-trip.
Reference implementation
The canonical implementation is the phpVMS 7 module: MIT-licensed, ~1000 lines of Laravel controllers. When this reference and the module disagree, the module wins; please file an issue so we can fix the docs.phpVMS module
Drop-in reference implementation for phpVMS 7.
Install guide
Step-by-step install and configuration walkthrough.