cloud_controls path and DRC role path.flight / payload_{index}) of the target drone; otherwise, errors of type 228430 / 228431 will be returned.topologies/cmds (device O&M / general commands) and drc/api (DRC real-time control / control authority / duplex channel). Do not mix them.tid; the real result is obtained through the command progress query interface or WebSocket push. Do not assume synchronous completion.| Path Form | Applicable Scenario |
|---|---|
/projects/{uuid}/topologies/cmds/control (Project Dimension) | Project operator collaborative operation (apply / approve / reject / release) |
/projects/{uuid}/drc/roles (DRC Role) | Directly occupy "cloud control role" |
/drc/api/v1/projects/{uuid}/cloud_controls | Directly occupy / release cloud control authority, at control_keys granularity |
/organizations/{uuid}/manage-devices/cmds/control (Organization O&M) | O&M administrator's control authority operation on organization devices |
Batch Query Drone Cloud Control Authority Status (GET /openapi/v2.0/drc/api/v1/projects/{uuid}/cloud_controls), batch query by SN list (up to 50 SNs per call).Get (Occupy) Cloud Control Authority (POST /openapi/v2.0/drc/api/v1/projects/{uuid}/cloud_controls). The request body uses drone_sn (drone SN) + control_keys (list of control authority keys); the key pattern is flight or payload_{payload index} (e.g. payload_53-0-0, the index format is consistent with the device thing model camera field). No remote controller approval required.Release Cloud Control Authority (DELETE /openapi/v2.0/drc/api/v1/projects/{uuid}/cloud_controls).Apply for Cloud Control Authorization (Initiate to Remote Controller) (POST /openapi/v2.0/drc/api/v1/projects/{uuid}/cloud_control_auth): Immediately returns bid; the result is pushed via device-side asynchronous callback.Device Control Authority Operation (POST /openapi/v2.0/manage/api/v1/projects/{uuid}/topologies/cmds/control): 6 actions (apply / preempt queue / cancel / approve / reject / release).Query Project Device Control Authority Status (GET /openapi/v2.0/manage/api/v1/projects/{proj_uuid}/topologies/cmds/control/status).Query List of Project Users Recently Operating the Device (GET /openapi/v2.0/manage/api/v1/projects/{proj_uuid}/topologies/cmds/operation-users) — Dashboard / collaborative view to query active operators of multiple devices.POST /openapi/v2.0/manage/api/v1/organizations/{uuid}/manage-devices/cmds/control + GET /openapi/v2.0/manage/api/v1/organizations/{uuid}/manage-devices/cmds/control/status.Get (Occupy) Cloud Control Role (POST /openapi/v2.0/manage/api/v1/projects/{uuid}/drc/roles) — Used to occupy flight_control / payload_control roles. After successful occupation, all relevant users immediately receive WebSocket real-time change notifications.Dispatch Flight Control Command (POST /openapi/v2.0/manage/api/v1/projects/{uuid}/flight-commands); pass device_sn (required), device_cmd_method (required, command name), device_cmd_data (optional, command parameter object) in the body. The specific device_cmd_method name and device_cmd_data structure of the command are determined by the drone model thing model, subject to the drone SDK documentation; the server pass-through does not perform enum verification.Query Project Device Command Execution Progress (GET /openapi/v2.0/manage/api/v1/projects/{proj_uuid}/topologies/cmds). The organization-dimension batch progress query interface (GET /openapi/v2.0/manage/api/v1/organizations/{uuid}/manage-devices/cmds) is currently classified under the "Device Management" module in spec; see Device Management Tutorial for details.Get Flight Task Device Recommendation Result (POST /openapi/v2.0/task/api/v1/workspaces/{workspace_id}/flight-tasks/device-recommendation), reverse-derive available "dock + drone" combinations by business scenario (8 strategy categories including fly-to point / regular wayline takeoff / frog-jump wayline / dual-drone relay / base station recommendation / emergency response, etc.) + start / end positions.Fly to Target Point (One-click Takeoff) (POST /openapi/v2.0/task/api/v1/workspaces/{workspace_id}/flight-tasks/drone-take-off). Common fields in the request body: device_sn, target_latitude, target_longitude, target_height, takeoff_mode, security_takeoff_height, max_speed, out_of_control_action, rth_altitude, media_folder_name, etc. (specific fields subject to the spec interface definition); returns flight_id / fly_to_id.Initiate Fly to Multiple Target Points Task (POST /openapi/v2.0/task/api/v1/workspaces/{workspace_id}/flight-tasks/fly-to-points) — Aimed at multi-point trajectory planning for drones that have already taken off; request body fields: device_sn, start_point, points, max_speed.Update Ongoing Fly to Target Point Task (PUT /openapi/v2.0/task/api/v1/workspaces/{workspace_id}/flight-tasks/fly-to-points) — The drone continues to fly according to the new sequence when switching to the next waypoint; no need to stop and re-dispatch.End Fly to Target Point Task (DELETE /openapi/v2.0/task/api/v1/workspaces/{workspace_id}/flight-tasks/fly-to-points) — The drone stops going to the remaining waypoints; the device side handles the follow-up according to the out-of-control action set when dispatching the "one-click takeoff" task.Enter POI Orbit Mode (POST /openapi/v2.0/task/api/v1/workspaces/{workspace_id}/flight-tasks/poi-enter); request body required device_sn + poi_center_point.{latitude, longitude, height}; optional payload_index (bind gimbal payload), speed (orbit speed), circle_radius (orbit radius).Update POI Orbit Speed (PUT /openapi/v2.0/task/api/v1/workspaces/{workspace_id}/flight-tasks/poi-speed).Query POI Task Status (GET /openapi/v2.0/task/api/v1/workspaces/{workspace_id}/flight-tasks/poi-task) — Used for client panel refresh or disconnection reconnection recovery.Exit POI Orbit Mode (DELETE /openapi/v2.0/task/api/v1/workspaces/{workspace_id}/flight-tasks/poi-exit).Calculate Best Relay Position for Relay Mission (POST /openapi/v2.0/task/api/v1/workspaces/{workspace_id}/flight-tasks/relay-missions/positions) — Calculate "relay point" coordinates and relay operation radius based on operating drone dock position + relay drone current position + RTK calibration status.Create Relay Mission (Dual-drone Rotation) (POST /openapi/v2.0/task/api/v1/workspaces/{workspace_id}/flight-tasks/relay-missions). Request body required fields (per spec): main_drone_sn, secondary_drone_sn, mission_position, end_at, out_of_control_action, main_rth_altitude, secondary_rth_altitude, early_departure_time, flight_id, uniformly orchestrated by the dispatch center according to field configuration.Trigger Active Takeoff of Relay Drone (POST /flight-tasks/relay-missions/{relay_mission_id}/active-takeoff) — By default, the relay drone is automatically taken off by the dispatch center according to early_departure_time (advance departure time) and the main operating drone battery; this interface provides manual trigger capability.Edit Relay Mission Configuration (PUT /flight-tasks/relay-missions/{relay_mission_id}) — Can modify deadline / out-of-control action / respective return altitude / speed, etc., without rebuilding the mission.Update Relay Mission Running Status (Pause / Resume / Cancel) (PUT /flight-tasks/relay-missions/{relay_mission_id}/status). paused can only be paused when running; will send commands to stop fly-to point flight for main and secondary drones that are flying and not in return / landing.Actively Switch Execution Drone of Relay Mission (PUT /flight-tasks/relay-missions/{relay_mission_id}/switch) — Before calling, the relay drone must have flown to the relay point and be in position; switching will recalculate the relay point and register a new mission with the dispatch center.Create In-flight Dispatch Wayline Task (POST /openapi/v2.0/drc/api/v2/projects/{project_id}/flight-tasks/in-flight-way-line-task); no need to have the drone return and take off again first.Control Wayline Task (Pause / Continue / Cancel) (PUT /openapi/v2.0/drc/api/v2/projects/{uuid}/flight-wayline-tasks/commands).| Interface | Purpose |
|---|---|
POST /openapi/v2.0/manage/api/v1/projects/{uuid}/payload-commands | Dispatch payload control commands (gimbal pitch / photo / video / zoom, etc.) |
POST /openapi/v2.0/manage/api/v1/projects/{uuid}/psdk/commands | Dispatch PSDK commands (pass-through channel) |
device_sn + device_cmd_method (command name) + device_cmd_data (command parameter object, determined by the device / PSDK thing model); the server does not perform enum verification, serving as a pass-through channel overall.Before calling, the corresponding payload control authority of the drone ( payload_{payload index}) must be held; otherwise, it will be rejected by the server (error code228431)."Lens switching / camera switching" during live streaming does not go through this set of interfaces: Live streaming-related lens switching interfaces (such as change-lens/change-camera) are located in the "Live Streaming" module; see Live Streaming Tutorial for details.
Open Drone Bidirectional Voice Channel (POST /openapi/v2.0/drc/api/v2/projects/{uuid}/voice-channels/{sn}). The server will select and initialize the RTC service provider (Agora / Volcano Engine / Twilio, etc.); the response's data.voice_channel.{provider, config} carries the RTC access parameters (provider determines the SDK used by the front-end, config contains specific parameters such as room ID / Token / UID).Open DRC Real-time Control Channel (POST /openapi/v2.0/drc/api/v2/projects/{project_id}/rt-channels/{sn}). The response simultaneously returns data.rt_channel and data.data_channel, which are equivalent configurations; choose either based on client implementation needs.Get Megaphone Audio Upload STS Credentials (GET /openapi/v2.0/speaker/api/v1/workspaces/{workspace_id}/sts).Create Megaphone Resource (POST /openapi/v2.0/speaker/api/v1/workspaces/{workspace_id}/resources) to register. file_type=audio submits object_key; file_type=tts submits text, asynchronously synthesized + transcoded by the server.create_scene=record): First create a placeholder with visible=false; after recording is complete, set visible to true via Edit Megaphone Resource (PUT /openapi/v2.0/speaker/api/v1/workspaces/{workspace_id}/resources/{id}).Query Megaphone Resource List (GET /openapi/v2.0/speaker/api/v1/workspaces/{workspace_id}/resources) — Only returns resources with visible=true and not soft-deleted; audio comes with a signed object_url for direct preview / download, in descending order by created_at.Delete Megaphone Resource (DELETE /openapi/v2.0/speaker/api/v1/workspaces/{workspace_id}/resources/{id}) — Soft delete; object storage files are asynchronously cleaned up by the background.Query Takeoff and Landing Coordination Area (TCA) Real-time Status (GET /openapi/v2.0/task/api/v1/workspaces/{workspace_id}/groups/tcas) is used for priority avoidance of multi-drone same-site takeoff and landing — a TCA is composed of several docks in the same area; when any dock in the area takes off or lands, the entire TCA enters the occupied state, avoiding conflicts caused by other docks taking off / landing simultaneously. This interface can be queried before creating an immediate task to confirm whether the airspace is available.Semantically consistent with the V0.9 On-Premises "FlyTo API Call Guide", paths have been adapted to V2.0.
For details on flight task detail query and media file list, see Flight Tasks TutorialandMedia Tutorial.