---
title: "Prepare Mission Request"
method: POST
path: "/api/v1/mission-requests/{request_id}/prepare"
tags: ["mission requests"]
---

# Prepare Mission Request

`POST /api/v1/mission-requests/{request_id}/prepare`

## Request

- Base URL: `https://api.brumby.com` (the document declares no server; this is the origin it was published from)
- URL: `https://api.brumby.com/api/v1/mission-requests/{request_id}/prepare`
- Auth: HTTP bearer

## Path parameters

- `request_id` string, uuid, required

## Request body

- MissionRequestPrepare: Persist the exact mission an operator reviewed before launch.
  - `record_id` string, uuid, nullable

## Response `200`

Successful Response

- MissionRequestResponse
  - `execution_type` 'deployment' | 'hitl' | 'sitl'
  - `simulation` object, nullable
  - `request_id` string, uuid, required
  - `purpose` 'commercial' | 'testing'
  - `execution_profile` string, nullable
  - `origin` string, nullable
  - `readiness` string, nullable
  - `schema_version` string, nullable
  - `farm_id` string, required
  - `device_id` string, nullable, required
  - `mission_id` string, required
  - `mission_plan_id` string, uuid, nullable
  - `mission_plan_revision` integer, nullable
  - `config_sha256` string, required
  - `state` string, required
  - `requested_for` string, date-time, nullable, required
  - `requested_at` string, date-time, required
  - `requested_by` string, required
  - `action_id` string, uuid, nullable, required
  - `decided_at` string, date-time, nullable, required
  - `decided_by` string, nullable, required
  - `decision_note` string, nullable, required
  - `config_check` MissionConfigCheck, required: What the dock would find missing or invalid in the config as asked.
    - `ok` boolean, required
    - `missing` string[], required
    - `invalid` string[], required
  - `preparation_config_check` MissionConfigCheck, required: What the dock would find missing or invalid in the config as asked.
    - `ok` boolean, required
    - `missing` string[], required
    - `invalid` string[], required
  - `flight_record_id` string, uuid, nullable, required
  - `stage_failed` boolean, required
  - `preflight_overrides` LaunchOverrideRecord[], nullable
    - `check` string, required
    - `reason` string, required
    - `by` string, required
    - `at` string, date-time, required
  - `dock_position` DockPositionView: Where the launching dock says it is, and what is wrong with that. `services/dock_position`. `position` is `{latitude, longitude}` as the dock reported it whatever its provenance or age, so a pilot can be shown what an override would stamp. A dock that has reported none has `overridable` false and no reason unlocks it: the aircraft refuses a mission with no `base_stations[0]`, so there would be nothing to fly.
    - `position` object, nullable, required
    - `simulated` boolean, required
    - `stale` boolean, required
    - `age_s` number, nullable, required
    - `overridable` boolean, required
    - `source` string, nullable
    - `line` string, nullable
  - `dock_aircraft` DockAircraftCheckView: Whether the aircraft's own fix agrees with the dock position LAUNCH would stamp. `services/dock_aircraft_position`, computed on read without any pilot override. `state` is `ok`, `mismatch`, `no_aircraft_position` (refuses: no fresh 3D aircraft fix), or `not_checked` (no dock position to compare, or a simulated aircraft that is not publishing one). `detail` is the pilot's sentence when it refuses.
    - `state` 'ok' | 'mismatch' | 'no_aircraft_position' | 'not_checked', required
    - `distance_m` number, nullable, required
    - `max_distance_m` number, required
    - `detail` string, nullable, required
    - `overridable` boolean, required
  - `preparation` MissionPreparation, required
    - `state` 'needs_preparation' | 'awaiting_signoff' | 'ready' | 'invalidated' | 'active' | 'complete', required
    - `reason` string, nullable
    - `record_id` string, uuid, nullable
    - `prepared_at` string, date-time, nullable
    - `prepared_by` string, nullable
  - `rig_manifest` object, nullable

## Other responses

- `422`: Validation Error

---

[API](https://skmtc.dev/brumby/apis/brumby-platform-api.md) - [All operations](https://skmtc.dev/brumby/apis/brumby-platform-api/llms.txt) - [OpenAPI document](https://skmtc.dev/brumby/apis/brumby-platform-api/revisions/fe185e20813e?raw)
