A valid request URL is required to generate request examples{
"db_id": 123,
"pilot_id": "QFA0001",
"first_name": "<string>",
"last_name": "<string>",
"email": "jsmith@example.com",
"rank": "First Officer",
"rank_image": "<string>",
"rank_level": 123,
"avatar": "<string>",
"token": "<string>"
}{
"success": false,
"error": "The username or password is incorrect"
}Credentials login
Exchange a pilot’s username (pilot ID or email) and password for an API key. Returns the full pilot session including the token field that the client uses on every subsequent request as a Bearer token.
A valid request URL is required to generate request examples{
"db_id": 123,
"pilot_id": "QFA0001",
"first_name": "<string>",
"last_name": "<string>",
"email": "jsmith@example.com",
"rank": "First Officer",
"rank_image": "<string>",
"rank_level": 123,
"avatar": "<string>",
"token": "<string>"
}{
"success": false,
"error": "The username or password is incorrect"
}Body
Response
Credentials accepted.
Internal database ID. Stable across pilot ID changes.
Display pilot ID (airline ICAO + zero-padded number per VA setting). Example: QFA0001.
"QFA0001"
Human-readable rank name.
"First Officer"
URL to the pilot's rank insignia image. The Stratos client renders this as a rank badge in the dashboard and pilot-centre plugins. Return null if the rank has no image. The phpVMS reference resolves this from the rank's image_url column (relative paths are wrapped in your phpVMS public URL automatically).
Numeric rank tier (0-based) — index into the rank ladder ordered ascending by required hours. Used by the Stratos client for any rank-gated UI behaviour. The phpVMS reference computes this as the count of ranks with fewer required hours than the pilot's current rank, matching phpVMS's own auto-promote ordering.
Absolute URL to the pilot's avatar image.
The pilot's API key. Send as Authorization: Bearer <token> on every authenticated request.
Was this page helpful?