---
title: "Begin tracking a booked flight"
method: POST
path: "/flights/start"
tags: ["Flights"]
---

# Begin tracking a booked flight

`POST /flights/start`

Prefiles a PIREP for the chosen bid and returns a `tracking_id` (the new PIREP's UUID) that subsequent `/flights/update` and `/flights/complete` calls reference.

If `bid_id` is omitted, the phpVMS reference implementation falls back to the pilot's most recent bid — this exists for older client builds that send an empty body. New integrations should always send `bid_id`.

Aircraft selection priority on the server:
1. SimBrief-attached aircraft (if the pilot has a SimBrief OFP for this flight)
2. The bid's `aircraft_id` (if the bid was made against a specific airframe)
3. The first available aircraft from the flight's subfleets

If none can be resolved, the server returns 500 with `"No aircraft attached to bid"`.

## Request body

- StartFlightRequest
  - `bid_id` integer — Bid to start flying. Omit to fall back to the pilot's most recent bid (legacy behaviour).

## Response `200`

PIREP prefiled. Use `tracking_id` on subsequent flight calls.

- StartFlightResponse
  - `tracking_id` string, uuid, required — PIREP UUID. Send this back as `uuid` or `tracking_id` on `/flights/update`, `/flights/complete`, and `/flights/cancel`.

## Other responses

- `401` — Missing or invalid Bearer token.
- `500` — Unhandled server error. The `error` field carries the message; check server logs for the trace.

---

[API](https://skmtc.net/skyvexsoftware/apis/stratos-core-api.md) · [All operations](https://skmtc.net/skyvexsoftware/apis/stratos-core-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/skyvexsoftware/stratos-core-api/versions/0b7ba98ff0aa/schema)
