---
title: "Release Cloud Control Permission"
method: DELETE
path: "/openapi/v2.0/drc/api/v1/projects/{uuid}/cloud_controls"
tags: ["Real-time Control/Control Permission Management/Cloud Control Permission", "Real-time Control/Control Management/Cloud Control Permission", "Real-time Control/Control Authority Management/Cloud Control Permission (V0.9 Compatibility)"]
---

# Release Cloud Control Permission

`DELETE /openapi/v2.0/drc/api/v1/projects/{uuid}/cloud_controls`

## Request

- Base URL: `https://41b04hdzmc.apifox.cn` (the document declares no server; this is the origin it was published from)
- URL: `https://41b04hdzmc.apifox.cn/openapi/v2.0/drc/api/v1/projects/{uuid}/cloud_controls`
- Auth: none required

Voluntarily release currently held specified aircraft cloud control authority; releases at control_keys granularity; can simultaneously release flight and multiple payload_{index}. After release, next waiter can take over; all related users receive WebSocket real-time change notification (reason=Release).

## Path parameters

- `uuid` string, required

## Headers

- `x-user-token` string, required
- `X-Request-Id` string, uuid
- `X-Project-Uuid` string, required

## Request body

- object
  - `drone_sn` string, required: Target Aircraft SN
  - `control_keys` string[], required: Control Key List to Release, at least 1 item; each item is flight or payload_{payload_index}

## Response `200`

Operation Successful

- object
  - `code` integer, required: Business Status Code: 0=Success; non-zero=Error Code (see message for meaning)
  - `message` string: Error Description Message (Omitted on Success)
  - `data` object: Cloud Control Permission Info
    - `drone_sn` string: Aircraft SN
    - `controls` object[]: Snapshot List of All Control Authorities on This Aircraft
      - `key` string: Control Key. flight = Flight Control; payload_{index} = Payload Control (e.g. payload_53-0-0)
      - `type` 'flight' | 'payload': Control Authority Type. flight = Flight Control Authority; payload = Payload Control Authority
      - `version` integer: Control Authority Version (increments with device timestamp; used for determining freshness). 0 when no one holds control
      - `gateway` object: Current Control Holder Gateway Info
        - `sn` string: Gateway Device SN. Empty string when no gateway
        - `id` '' | 'A' | 'B' | 'Drone': Gateway Role. Empty string = No Gateway; A = A Control; B = B Control; Drone = Networked Direct (aircraft itself is gateway)
        - `auth_control_keys` string[]: Remote Controller Scenario Only: list of control keys this gateway is proxy-authorizing. Empty array for non-remote-controller
        - `device_model_class` string: Gateway Device Category, e.g. dock (Dock), remote_controller (Remote Controller)
      - `user` object: Current Control Holder User Info
        - `call_sign` string: Controller Nickname. Empty string when no one holds control
        - `user_id` string: Controller User ID. Empty string when no one holds control
        - `type` string: Controller User Type. cloud = Cloud User; rc = Remote Controller User; empty string = No One Holds
      - `spec` object: Control Specification. Only contains is_locked when type=flight; only contains payload_index when type=payload
        - `is_locked` boolean, nullable: Whether to Lock Flight Control. Only appears when type=flight
        - `payload_index` string, nullable: Payload Index. Only appears when type=payload
        - `is_cloud_control_auth` boolean, nullable: Whether Cloud Control Authorization is Required (only for some early models; deprecated in later versions)

## Other responses

- `400`: Business Parameter Error — body contains code (non-zero)/message
- `500`: Internal Service Error

---

[API](https://skmtc.dev/dji/apis/flighthub-2-openapi-v2-0-on-premises.md) - [All operations](https://skmtc.dev/dji/apis/flighthub-2-openapi-v2-0-on-premises/llms.txt) - [OpenAPI document](https://skmtc.dev/dji/apis/flighthub-2-openapi-v2-0-on-premises/revisions/e4544b7809ea?raw)
