# FlightHub 2 OpenAPI V2.0 (On-Premises) ## Docs - Call_Guide [Authentication Tutorial](https://41b04hdzmc.apifox.cn/9022450m0.md): - Call_Guide [Response Result](https://41b04hdzmc.apifox.cn/9022446m0.md): - Call_Guide [Request Structure](https://41b04hdzmc.apifox.cn/9022447m0.md): - Call_Guide [Error Codes](https://41b04hdzmc.apifox.cn/9022448m0.md): - Call_Guide [Public Parameters](https://41b04hdzmc.apifox.cn/9022449m0.md): - Common [Common Foundation Tutorial](https://41b04hdzmc.apifox.cn/9022451m0.md): - Organization & Project [Organization and Project Tutorial](https://41b04hdzmc.apifox.cn/9022452m0.md): - Device Management [Device Management Tutorial](https://41b04hdzmc.apifox.cn/9022453m0.md): - Real-time Control [Real-Time Control Tutorial](https://41b04hdzmc.apifox.cn/9022455m0.md): - Flight Task [Flight Tasks Tutorial](https://41b04hdzmc.apifox.cn/9022458m0.md): - Wayline [Waylines Tutorial](https://41b04hdzmc.apifox.cn/9022459m0.md): - Map [Map Tutorial](https://41b04hdzmc.apifox.cn/9022460m0.md): - Livestream [Live Streaming Tutorial](https://41b04hdzmc.apifox.cn/9022462m0.md): - Media [Media Tutorial](https://41b04hdzmc.apifox.cn/9022463m0.md): - Model [Models Tutorial](https://41b04hdzmc.apifox.cn/9022464m0.md): - Model > Model Reconstruction [Geographic Systems](https://41b04hdzmc.apifox.cn/9022465m0.md): - Recycle Bin [Recycle Bin Tutorial](https://41b04hdzmc.apifox.cn/9022470m0.md): - Advanced Capabilities [Advanced Capabilities Tutorial](https://41b04hdzmc.apifox.cn/9022472m0.md): - Open Modeling [Reconstruction Algorithm Description](https://41b04hdzmc.apifox.cn/9022466m0.md): - Open Modeling [Error_Codes.md](https://41b04hdzmc.apifox.cn/9022467m0.md): - Open Modeling [Feature Introduction](https://41b04hdzmc.apifox.cn/9022468m0.md): - Open Modeling [Update Date: 2026-05-07](https://41b04hdzmc.apifox.cn/9022469m0.md): ## API Docs - Common > System Health & Access [DRC Service Health Check](https://41b04hdzmc.apifox.cn/473847905e0.md): Real-time control service liveness probe. Used by O&M platform, load balancers, and monitoring/alert chains to determine whether service can still provide external capabilities. **Does not return any business data** — uses only whether response is `code=0` to determine service readiness. This API is recommended for infrastructure layer calls only; business should not depend directly. - Common > Access and Authorization > STS Credentials [Get Business-Module Customized STS Credentials](https://41b04hdzmc.apifox.cn/473847906e0.md): Business modules self-apply for temporary credentials for "Client Direct Upload to Object Storage". Caller declares which business module it belongs to (`usage`), whether it is temporary data (`temp`), and optional sub-path (`path`); platform returns a set of short-term valid OSS / S3 credentials + Object Key Prefix that must be followed. After obtaining credentials, client directly uploads using object storage SDK; platform does not relay file stream. - Common > Access and Authorization > STS Credentials [Get Project-Level File Direct Upload STS Credentials](https://41b04hdzmc.apifox.cn/473847907e0.md): Generic credential request API for "File Direct Upload" within project workspace. Frontend / Pilot side calls this API before uploading flight original files, media materials, etc. to obtain STS temporary credentials + a mandatory path prefix, then directly PUTs file using object storage SDK. **This API is not bound to specific business module** (different from `custom-sts` which must declare usage), suitable for generic upload scenarios. **Path Prefix Rules**: Defaults to `{Organization UUID}/{Project UUID}/{Platform-Generated Random String}`. Same direct upload shards can reuse same prefix multiple times; different upload tasks are isolated by different random strings. **Special Usage**: - Common > Access and Authorization > STS Credentials [Get Flight Record Upload STS Credentials](https://41b04hdzmc.apifox.cn/473847908e0.md): Flight record file upload-specific temporary credential query API. **When a flight ends and original data needs to be uploaded to cloud (flight control records, black box logs, etc.), call this API to obtain STS temporary credentials limited to "this project-this sortie" directory prefix.** Difference from `workspaces/{id}/sts`: this API's prefix **must** include project UUID + flight task ID (with hyphens stripped string); cannot be customized; suitable for archiving needs of "one directory per flight, multiple shards within directory". - Common > Security [Decrypt Device Serial Number (SN) in Flight Record](https://41b04hdzmc.apifox.cn/473847909e0.md): Batch restore encrypted Device Serial Numbers (SNs) to plaintext SNs. Device SNs in flight task records are stored encrypted; callers need this API to convert encrypted SNs to readable plaintext SNs for subsequent device queries or user display. - Organization & Project > Project Management > Project Configuration [Get Project Auto Recording Configuration](https://41b04hdzmc.apifox.cn/473847910e0.md): Query current project's auto-recording rules (which tasks / events trigger auto-recording, recording duration, auto-cleanup time, etc.). - Organization & Project > Project Management > Project Configuration [Configure Project Auto Recording Rules](https://41b04hdzmc.apifox.cn/473847911e0.md): Update Project Auto Recording Configuration Rules. - Organization & Project > Project Management > Project Basic Info [Create Project](https://41b04hdzmc.apifox.cn/473847912e0.md): Create project under specified organization; can simultaneously initialize project users, project devices, project quick join, project coordinate system, bay rotation, weather flight block, media sharing, and other configurations - Organization & Project > Project Management > Project Basic Info [Update Project Info](https://41b04hdzmc.apifox.cn/473847913e0.md): Update project metadata (rename / description / workspace center point / project share configuration / weather flight block configuration, etc.). - Organization & Project > Project Management > Project Basic Info [Get Project Details](https://41b04hdzmc.apifox.cn/473847914e0.md): Query details of specified project. Returns project_fast_join.code when current user has project edit permission (Super Admin/Group Admin); otherwise this field is empty. is_project_updatable indicates whether current user can edit. - Organization & Project > Project Management > Project Basic Info [Delete Project](https://41b04hdzmc.apifox.cn/473847915e0.md): Delete specified project with cascading cleanup: all members/device topology/AuthGroup/share links/notifications within the project; and removes the project from auto-subscription lists of users in the organization. Response data is the last snapshot of the deleted project (GetProjectRsp). - Organization & Project > Project Management > Quick Join [Query Quick Join Project Info](https://41b04hdzmc.apifox.cn/473847916e0.md): Query project basic info by project ID and quick join code; used for preview confirmation before joining. If associated aircraft SN is also passed, additionally returns the aircraft's recommended project call sign. - Organization & Project > Project Management > Quick Join [Join Project via Quick Join Code](https://41b04hdzmc.apifox.cn/473847917e0.md): Use project quick join code to add current user to specified project. If user is not in project's organization, automatically joins organization as temporary member. Optionally associate an aircraft to project at the same time. - Organization & Project > Organization Management [Query Organization Project List](https://41b04hdzmc.apifox.cn/473847918e0.md): Paginated query of project list in organization; returns {list: [...]} without pagination when usage=simple; otherwise returns {list, pagination} by page/page_size pagination. - Organization & Project > Organization Management [Update Current User's Subscription Settings](https://41b04hdzmc.apifox.cn/473847919e0.md): Current user updates a subscription type setting within specified organization (subscription switch / subscribed project scope / whether to auto-subscribe newly joined projects / receive channels). **Business Constraints**: - Organization & Project > Organization Management [Get Organization Details](https://41b04hdzmc.apifox.cn/473847920e0.md): Query organization details (name / description / logo / unit system / geofence configuration / MFA enabled status / current user experience improvement version, etc.). When current user role is Temporary Member/Regular Member, organization_device_bind_code field is set to null (binding code not visible). - Organization & Project > Organization Management [Update Organization Info](https://41b04hdzmc.apifox.cn/473847921e0.md): Update Organization Name / Logo / Industry / Description / Unit System / Geofence Configuration, etc. - Organization & Project > Members & Permissions Management > Roles & Permissions [Get Project Permission Tree Definition](https://41b04hdzmc.apifox.cn/473847922e0.md): Get Initialized Project Permission Tree for Current Organization - Organization & Project > Members & Permissions Management > Roles & Permissions [Query Project Role List Within Organization](https://41b04hdzmc.apifox.cn/473847923e0.md): Paginated query of all project roles under current organization (including preset roles). - Organization & Project > Members & Permissions Management > Roles & Permissions [Batch Create Project-Level Custom Roles](https://41b04hdzmc.apifox.cn/473847924e0.md): Batch create roles under specified organization; currently only type=project is supported - Organization & Project > Members & Permissions Management > Roles & Permissions [Query Role-Permission Mapping (Role ID → Permission List)](https://41b04hdzmc.apifox.cn/473847925e0.md): Query permission mapping of specified role (or all roles of current organization), and return complete initialized permission tree. - Organization & Project > Members & Permissions Management > Roles & Permissions [Delete Organization Custom Role](https://41b04hdzmc.apifox.cn/473847926e0.md): Delete specified project-level custom role by role_id; before deletion, validates that role belongs to organization and is not used by any user. - Organization & Project > Members & Permissions Management > Roles & Permissions [Update Custom Role](https://41b04hdzmc.apifox.cn/473847927e0.md): Update specified role's permission list / name. Preset role permissions cannot be modified. - Organization & Project > Members & Permissions Management > Organization Members [Batch Remove Organization Members](https://41b04hdzmc.apifox.cn/473847928e0.md): Batch remove specified users from organization (matched by user_id / account). Simultaneously cleans up user's member identity and subscriptions in all projects within the organization. Failed items returned with error code + failed user list. - Organization & Project > Members & Permissions Management > Organization Members [Query Organization Member List](https://41b04hdzmc.apifox.cn/473847929e0.md): Paginated query of organization members; supports filtering by user_role / source_type, and other conditions; if project_uuid is specified, requires caller to have edit permission in that project. - Organization & Project > Members & Permissions Management > Organization Members [Batch Add Organization Members](https://41b04hdzmc.apifox.cn/473847930e0.md): Organization administrator batch-adds members (accounts must be registered in user center). **Protection Mechanisms**: - Organization & Project > Members & Permissions Management > Organization Members [Batch Update Organization Member Info](https://41b04hdzmc.apifox.cn/473847931e0.md): Batch update organization members' roles / enabled status, etc. - Organization & Project > Members & Permissions Management > Organization Members [Query Current User's Identity and Configuration in Organization](https://41b04hdzmc.apifox.cn/473847932e0.md): Get current token user's member info in specified organization + organization-level subscription/unit/EU C6/MFA/canary configurations - Organization & Project > Members & Permissions Management > Organization Members [Update Current User's Organization Call Sign](https://41b04hdzmc.apifox.cn/473847933e0.md): Update current logged-in user's call sign (nickname) in specified organization. Call sign must be unique within organization. - Organization & Project > Members & Permissions Management > Organization Members [Current User Exits Organization](https://41b04hdzmc.apifox.cn/473847934e0.md): Current user performs operation on their organization (e.g. leave organization). - Organization & Project > Members & Permissions Management > Project Members [Get Project Team Members (Online)](https://41b04hdzmc.apifox.cn/473847935e0.md): Query current online member list of project; pulls all web/app logged-in users via cloudbus.WebsocketGetUserEnterProjectAndPlatforms; filters and categorizes by platform for assembly (Web users added directly; RC users deduplicated combined with device topology). - Organization & Project > Members & Permissions Management > Project Members [Get Project User List](https://41b04hdzmc.apifox.cn/473847936e0.md): Query full user list of project. Supports filtering by role (prj_user_role) and sorting by nickname. - Organization & Project > Members & Permissions Management > Project Members [Update Current User's Project Call Sign](https://41b04hdzmc.apifox.cn/473847937e0.md): Update current logged-in user's call sign (nickname) in specified project, and return user's full role info in project. - Device Management > Device Configuration > Device Shadow [Update Organization Device Shadow Configuration](https://41b04hdzmc.apifox.cn/473847938e0.md): Dispatch "Desired State" configuration to devices bound in organization; common uses include remote modification of device-level attributes like night flight light switch, track mode parameters, bay air conditioning temperature, supplementary light brightness, whether to enable landing assistance, etc. After dispatch, device responds at its discretion and syncs actual state to cloud. Semantics: This API's semantics is "Accept Configuration Change Dispatch Request" — dispatch is treated as acceptance success; actual effect determined by device response. `state` array can contain multiple `{desired: {...}}` groups; server **executes serially in array order** (devices do not support concurrent commands; cloud concurrency mostly fails); if previous desired fails, interrupts subsequent; **not an atomic transaction**. Authentication: caller must have organization-level access permission for devices in organization; for some sensitive attributes (e.g. bay forced cover open, etc.), must also currently hold control authority for the device (returns non-zero `code` without control authority; frontend guides user to preempt control authority first). This is the key difference from "Update Project Device Shadow Configuration" API (project level has no control authority check, but triggers flight record notification). Parameter Values: full attribute key list and value range for each attribute per corresponding model SDK documentation; this API is only the configuration dispatch channel; parameter value validity is validated by device side per model thing model. - Device Management > Device Configuration > Device Shadow [Update Project Device Shadow Configuration](https://41b04hdzmc.apifox.cn/473847939e0.md): Like the "Update Organization Device Shadow Config" interface, this is also a device shadow config push, but the scope is the project (devices joined into the project). Common use cases are the same as the "Update Organization Device Shadow Config" interface — night navigation lights, follow-me mode, dock air conditioning, fill light brightness, etc. Differences between the two interfaces: - Device Management > Device Configuration > Device Shadow [Query Organization Device Thing Model Attribute Current Values](https://41b04hdzmc.apifox.cn/473847940e0.md): Query current runtime value of a thing model attribute of specified device (e.g. battery percentage, work mode, etc.). Attribute name determined by model thing model definition; return value type varies by attribute. - Device Management > Device Configuration > Generic Configuration Command [Dispatch Custom Command to Organization Device (Generic cmds Channel)](https://41b04hdzmc.apifox.cn/473847941e0.md): Send configuration commands to organization devices (operations that change device state, such as set/switch/toggle/format/reboot/calibrate). The {method} path parameter determines the command type; the device_cmd_data field structure varies with the {method} value. After successful dispatch, the command batch ID (bid) is returned, and progress and results can be polled via GET /manage-devices/cmds/{method} (the "Query Organization Device Command Execution Progress" interface). > Query commands (get_dock_network_conf / check_dock_network_link / query_wlm_dongle_apn_info / device_check, etc.) have been split into independent endpoints; see each query interface in the same directory. Configuration {method} quick value reference: - Device Management > Device Configuration > Generic Configuration Command [Query Organization Device Command Execution Progress](https://41b04hdzmc.apifox.cn/473847942e0.md): Progress query API for generic cmds channel. Can simultaneously query multiple devices' command execution status, progress percentage, device-reported error codes, extension data, etc. under specified {method}; used for client polling to display device command execution (Cover Opening, Uploading Logs, Network Speed Testing, etc.). This API is paired with POST /manage-devices/cmds/{method} ("Dispatch Custom Command to Organization Device (Generic cmds Channel) [Query-Type Developed as API, Configuration-Type Retained]" API — Dispatch Command): caller polls via this API after obtaining bid until status becomes ok / failed / timeout / canceled. services is dynamic key map: key is method name (consistent with method in path, e.g. set_ntp_conf / cover_open); value is the method's progress details; structure is uniform across all methods. When identifiers is omitted, uses method in path as single-value filter condition; explicit identifiers in query has higher priority. - Device Management > Device Configuration > Generic Configuration Command [Batch Query Organization Device Command Execution Progress](https://41b04hdzmc.apifox.cn/473847943e0.md): Batch query recent command execution progress of multiple devices in current organization by device SN list. Commonly used in O&M scenarios for tracking command execution status, progress percentage, and terminal state. - Device Management > Device Configuration > Generic Configuration Command [Dispatch Command to Devices in Project](https://41b04hdzmc.apifox.cn/473847944e0.md): Send operation commands to devices within the project through the project-dimension command channel. `device_cmd_method` determines the command type, and the `device_cmd_data` field structure varies with the method value. After successful dispatch, the command batch ID (`bid`) is returned for subsequent polling of progress and results. **Differences from the organization-level command channel ("Send Custom Commands to Organization Devices (Universal cmds Channel) [Develop Query-type as Interface, Retain Config-type]" interface)**: - Device Management > Device Configuration > HMS Event [Get Organization Device HMS Event List](https://41b04hdzmc.apifox.cn/473847945e0.md): Paginated retrieval of HMS (Health Management System) events generated by a group of devices (bays + aircraft) within specified time period on "Organization-Level Device Health/Alert Panel"; supports filtering by alert level, module, text fuzzy search; supports pagination and sorting. Commonly used by O&M personnel to filter Caution+Warning level events within last N hours on console, locate latest alerts by time descending order, or review single device's alert timeline by SN. Authentication: caller must have view permission for devices in organization; API performs authentication based on device topology — if input SN is not directly bound to organization, backtracks to query its gateway device (e.g. bay); allows return when gateway is bound to organization (suitable for "bay joined organization; aircraft temporarily logged in via bay" scenarios). Parameter Defaults: `level` if omitted is equivalent to `level=[1,2]` (Caution+Warning); `sort_type` defaults to `DESC` if omitted; `sort_column` defaults to `device_data_update_time` (latest events first) if omitted. - Device Management > Device Configuration > HMS Event [Update Organization Device HMS Read Time](https://41b04hdzmc.apifox.cn/473847946e0.md): Called when user clicks "Mark All as Read" on "Organization Device Health Panel"; marks all HMS events of specified device as read (read time set to current moment). When frontend subsequently pulls HMS list ("Get Organization Device HMS Event List" / "Batch Get Project Device HMS Events" APIs), can use this timestamp as separator to distinguish new from historical events. After successful call, server distributes latest read time to other online terminals in organization (and corresponding projects) via real-time push channel, keeping read status consistent during multi-user collaboration. Authentication: caller must have view permission for target devices in organization; API first validates whether device is bound to organization; devices not directly bound go through "Unbound Device in Organization" fallback validation path (i.e. validates via its gateway device); behavior differs from "Update Project Device HMS Read Time" API (project level only accepts directly bound devices). - Device Management > Device Configuration > HMS Event [Update Project Device HMS Read Time](https://41b04hdzmc.apifox.cn/473847947e0.md): Called when user clicks "Mark as Read" on "Project Device Topology"; updates specified device's HMS event read time to current time. Other online terminals in the same project and organization receive this read time update via real-time push channel; frontend can synchronously refresh red dot status, avoiding read-status misalignment during multi-user collaboration. Authentication: caller must be project member, and target device must be **directly bound to project** (no topology lookup). This is the key difference from "Update Organization Device HMS Read Time" API (organization level allows topology lookup to validate gateway device); calling project-level API without directly bound device returns non-zero `code` (business code `DRCErrCodeDeviceNotInProject`). Effect: after successful call, server distributes the latest read_time via real-time channel to other online terminals at both project and organization levels. - Device Management > Device Configuration > HMS Event [Batch Get Project Device HMS Events](https://41b04hdzmc.apifox.cn/473847948e0.md): On "Project Device Topology/Team Page", retrieve HMS events of a group of devices in project within last 24 hours in one call, along with each device's "Read Timestamp". Frontend uses this API to add alert badges to device list in project — devices with most recent events `device_data_update_time > read_time` are treated as new events requiring red dot reminders. Difference from "Get Organization Device HMS Event List" API: scope is project (not organization); does not paginate; query window is server-fixed to last 24 hours; level is fixed to [1,2] (Caution+Warning); does not support time window, level, module, and other filters; returns grouped by device (each SN has one group of events + one read_time). These non-configurable constraints align with "Project Page Badge" business positioning — only displays near-term events users need to attention. Authentication: caller must be project member; API validates each SN in project; **single SN not in project is silently removed from response** (does not raise overall error; caller should verify response contains SN against input SN). - Device Management > Device Configuration > Network Management [Query Device Current NTP Server Configuration](https://41b04hdzmc.apifox.cn/473847949e0.md): Query specified dock device's currently effective NTP clock synchronization server configuration (IP/Port or Domain) and sync status code; used to troubleshoot device time inaccuracy, abnormal report timestamps, and other issues. - Device Management > Device Configuration > Network Management [Start Device Network Speed Detection Task](https://41b04hdzmc.apifox.cn/473847950e0.md): Start a network speed detection task for specified dock device; detects device-to-speed-test-node uplink/downlink bandwidth and latency. After successful task dispatch, returns batch ID; actual speed test data can be obtained via "Query Network Speed Test Result" API ("Query Device Network Speed Test Task Result" API) using this. Note: this API's command type is fixed by route to dock_speed_task; client **does not need and should not pass device_cmd_method in request body**; client may optionally pass in device_cmd_data to specify speed test nodes, and other parameters; uses default configuration if omitted. - Device Management > Device Configuration > Network Management [Query Device Network Speed Test Task Result](https://41b04hdzmc.apifox.cn/473847951e0.md): Query latest execution progress and results (bandwidth, latency, etc.) of previously started network speed test tasks by device SN. Multiple devices can be queried simultaneously. Results returned via generic cmds progress structure; services is dynamic key map (key fixed to dock_speed_task); value is the speed test task's progress details; ext carries speed test result specific fields; common fields: upload_speed (Uplink Mbps) / download_speed (Downlink Mbps) / latency (Latency ms). - Device Management > Device Configuration > Network Management [Query Bay Network Configuration](https://41b04hdzmc.apifox.cn/473847952e0.md): Query specified bay device's current network configuration (NIC mode, IP, DNS, proxy, etc.). Dispatches query command via cmds channel; device replies with current configuration. This API shares the same physical channel with the "Dispatch Custom Command to Organization Device (Generic cmds Channel) [Query-Type Developed as API, Configuration-Type Retained]" API (Generic cmds Channel); {method} path segment is fixed to get_dock_network_conf. - Device Management > Device Configuration > Network Management [Detect Bay Network Connection](https://41b04hdzmc.apifox.cn/473847953e0.md): Dispatch network connectivity detection command to bay device; detects network reachability of specified link types (DNS, NTP, cloud platform, etc.); returns diagnostic results for each link. This API shares the same physical channel with the "Dispatch Custom Command to Organization Device (Generic cmds Channel) [Query-Type Developed as API, Configuration-Type Retained]" API (Generic cmds Channel); {method} path segment is fixed to check_dock_network_link. - Device Management > Device Configuration > Network Management [Query 4G Module APN Configuration](https://41b04hdzmc.apifox.cn/473847954e0.md): Query APN network access point configuration of specified 4G module on aircraft or bay (includes Public Network/Private Network). Must specify module owner device and serial number. This API shares the same physical channel with the "Dispatch Custom Command to Organization Device (Generic cmds Channel) [Query-Type Developed as API, Configuration-Type Retained]" API (Generic cmds Channel); {method} path segment is fixed to query_wlm_dongle_apn_info. - Device Management > Device Configuration > RTK Configuration [Query Device's RTK Network Account Info](https://41b04hdzmc.apifox.cn/473847955e0.md): Query RTK network account (CORS Account) info saved for specified device under specified organization; used for client to display currently configured network RTK service parameters. This account is written upon successful execution of "Custom Network RTK Calibration" API. If device has never configured RTK account, all fields return zero values (strings empty, numbers 0). - Device Management > Device Configuration > RTK Configuration [Custom Network RTK Calibration](https://41b04hdzmc.apifox.cn/473847956e0.md): Initiate custom network RTK calibration flow for specified dock device, using CORS account parameters provided by caller to replace default network RTK configuration, thereby improving RTK positioning precision. After successful calibration dispatch, account parameters are synchronously written to configuration table (subsequently queryable via "Query Device's RTK Network Account Info" API), and calibration command is dispatched to device. Prerequisites: - Device Management > Device Configuration > Pairing Management [Query Device Pairing Info](https://41b04hdzmc.apifox.cn/473847957e0.md): Query pairing relationships of specified device under current organization (aircraft-side / remote controller-side pairing status); used for client to display whether currently paired and pairing peer info. - Device Management > Device Configuration > Pairing Management [Dispatch Device Pairing Command](https://41b04hdzmc.apifox.cn/473847958e0.md): Dispatch pairing command to specified device in organization to establish pairing (or unpair) between aircraft and remote controller. pair_type determines target peer type; pair_enable determines whether to enable/disable pairing. After successful dispatch, returns batch ID; execution result can be queried via "Query Organization Device Command Execution Progress" API. - Device Management > Device Configuration > Pairing Management [Query Relay Scan Result](https://41b04hdzmc.apifox.cn/473847959e0.md): Get list of connectable aircraft/bays scanned by relay device; used for device discovery before relay pairing. This API shares the same physical channel with the "Dispatch Custom Command to Organization Device (Generic cmds Channel) [Query-Type Developed as API, Configuration-Type Retained]" API (Generic cmds Channel); {method} path segment is fixed to relay_scan_result. - Device Management > Device Configuration > Pairing Management [Query Relay Non-Paired Connection Result](https://41b04hdzmc.apifox.cn/473847960e0.md): Get relay device's temporary connection status and result in non-pairing mode. This API shares the same physical channel with the "Dispatch Custom Command to Organization Device (Generic cmds Channel) [Query-Type Developed as API, Configuration-Type Retained]" API (Generic cmds Channel); {method} path segment is fixed to relay_non_pair_attach_result. - Device Management > Device Configuration > Pairing Management [Query Pairing Request Result](https://41b04hdzmc.apifox.cn/473847961e0.md): Query relay device's pairing request processing result; confirms whether pairing succeeded. This API shares the same physical channel with the "Dispatch Custom Command to Organization Device (Generic cmds Channel) [Query-Type Developed as API, Configuration-Type Retained]" API (Generic cmds Channel); {method} path segment is fixed to query_request_pair_result. - Device Management > Device Configuration > SIM Card Management [Query Device SIM Card Subscription and Data Info](https://41b04hdzmc.apifox.cn/473847962e0.md): Query SIM card subscription, online status, used data, signal strength, and other info corresponding to specified ICCID via operator API; used for client to display 4G module card status. Most response fields are passthrough from operator API; field naming aligns with operator protocol (camelCase onlineStatus / operatorStr / expireTime, etc.). Note: sn in path is only used for route construction; actual query key is query parameter iccid; ICCID must be obtained from device thing model by client before passing. - Device Management > Device Configuration > Project Device Configuration [Modify Project Device Configuration Parameters](https://41b04hdzmc.apifox.cn/473847963e0.md): **Important: Only one field can be set per call** — only one of the four groups (common_config / flight_safe_config / payload_config / live_config) can be passed in request body; only one field can be set within the group; caller uses one-change-per-call strategy with multiple calls. Dock-type devices allow all four groups; RM510 Remote Controller-type devices only allow payload_config (others ignored). Linkage Constraints: - Device Management > Device Configuration > Project Device Configuration [Get Project Device Configuration](https://41b04hdzmc.apifox.cn/473847964e0.md): Return device's saved configuration items under specified project by device model (Dock-Type / RM510 Remote Controller-Type), including flight safety configuration (return altitude, lost-control behavior, takeoff altitude, etc.), payload configuration (high temperature alert, payload lock), generic device configuration (passthrough, key/value defined by device thing model), livestream configuration (weak network mode), takeoff/landing area status, etc. Return field set varies by device model: - Device Management > Device List Management > Project Device List [Modify Organization Device's Current Workspace Project](https://41b04hdzmc.apifox.cn/473847965e0.md): Switch a direct-connect device (dock/communication device/base station) to specified project for work. This API is a composite API: - Device Management > Device List Management > Project Device List [Get Project Device List](https://41b04hdzmc.apifox.cn/473847966e0.md): Query all joined devices and their basic info under specified project, including device model, project call sign, organization call sign. **This API does not paginate; always returns all devices in project**; response `pagination` field is fixed to `page=1`; `page_size` equals `total`. Can use `usage=web_project_devices` to filter out remote controllers, payloads, batteries, and communication devices, retaining only aircraft and dock-type devices. - Device Management > Device List Management > Project Device List [Get Single Device Details Within Project](https://41b04hdzmc.apifox.cn/473847967e0.md): Get single device's details in project by project UUID + device SN: includes project call sign, model object, whether is organization device, organization call sign (if joined organization). Common call scenario is right-side drawer of device details page. **Field Naming Note**: this API's field is `device_sn`, same concept as `sn` in "Get Project Device List" API. **Call Conditions**: caller must have device view permission in the project. - Device Management > Device List Management > Project Device List [Modify Device Project Call Sign in Project](https://41b04hdzmc.apifox.cn/473847968e0.md): Modify a device's call sign from project perspective (Project Call Sign). **Business Constraint**: if device has not joined organization, call sign cannot be empty (prevents unrecognizability on project side); if device has joined organization, this field can be empty. **Call Conditions**: caller must have device management permission within the project. - Device Management > Device List Management > Project Device List [Get Project Historical Topology Device List](https://41b04hdzmc.apifox.cn/473847969e0.md): Returns device list that has "historically had tasks" in the project but is not currently in topology (used for plan library). Server first retrieves project's current devices, then retrieves historical devices from plan library, performs diff, and categorizes by device type (Aircraft/Dock/Communication/Remote Controller) into different structures for display. **Response Fixed Characteristics** (shares schema with current topology list in "Get Project Device Thing Model" API): under historical API, all devices' `device_online_status` is fixed to `false`; `is_device_pending_offline` is fixed to `false`; `device_state` is not returned (always null). - Device Management > Device List Management > Project Device List [Get Project Device Thing Model](https://41b04hdzmc.apifox.cn/473847970e0.md): Returns complete topology structure and real-time thing model status of currently online and offline-pending devices in project. ### Topology Structure Each topology record is grouped by device role: - Device Management > Device List Management > Organization Device List [Query Organization Device Simplified List](https://41b04hdzmc.apifox.cn/473847971e0.md): Paginated query of simplified list of all devices in organization; each record contains only 4 core info items: device SN, device call sign, device type, model enum object. Suitable for dropdown lists in scenarios like "Project Edit" where devices need to be picked from organization device pool; fewer fields, lighter response. New business is recommended to use "Query Organization Device O&M List" API. - Device Management > Device List Management > Organization Device List [Batch Modify Organization Device Call Sign](https://41b04hdzmc.apifox.cn/473847972e0.md): Modify multiple organization devices' "Device Organization Call Sign" (i.e. display name of device from organization perspective) at once. Request body provides `device_sn + device_callsign` item by item; server processes each one by one; failed devices return their respective SNs and error codes in `error_infos` array; partial success/failure scenarios commonly occur when "call sign is already occupied by another device". **Call Conditions**: caller must be organization administrator/super administrator. - Device Management > Device List Management > Organization Device List [Modify Single Organization Device Call Sign](https://41b04hdzmc.apifox.cn/473847973e0.md): Modify a device's call sign from organization perspective. Compared to "Batch Modify Organization Device Call Sign" batch version API, this API targets single device and locates SN via path parameter. **Call Conditions**: Caller must be organization administrator/super administrator. - Device Management > Device List Management > Organization Device List [Batch Remove Organization Devices](https://41b04hdzmc.apifox.cn/473847974e0.md): Remove (unbind) a group of devices from organization. When target devices are types like dock or communication device, server synchronously handles associated child devices in topology (aircraft, sub-devices, etc.) to avoid conflicts on rebind. Response returns failed-to-process SN list via `data.devices`; if all succeed, `data.devices` is null or empty array. **Call Conditions**: caller must be organization administrator/super administrator. - Device Management > Device List Management > Organization Device List [Query Organization Device O&M List](https://41b04hdzmc.apifox.cn/473847975e0.md): Paginated query of device O&M details in organization by device type (Required, e.g. Aircraft/Dock/Communication Device/Battery, etc.); supports filtering by model primary key, online status, firmware upgrade status, workspace project, join time range, SN slice, and other multi-dimensional conditions; returns rich device O&M info (online status, firmware version, work status, associated devices, dock offline location, etc.). Frontend's "Device O&M Management" main table uses this API. - Device Management > Device List Management > Organization Device List [Query Model Primary Key List for a Device Category in Organization](https://41b04hdzmc.apifox.cn/473847976e0.md): When filtering by "model" in filter scenarios (e.g. selecting "Matrice 30"), frontend obtains the list of all model primary keys that have appeared under the organization and device type via this API to render dropdown items. For example, selecting "Aircraft (drone)" only lists aircraft models already in the organization. **Call Conditions**: caller must be organization member. - Device Management > Device List Management > Organization Device List [Query Organization Device Online Working Quota](https://41b04hdzmc.apifox.cn/473847977e0.md): Query current organization's "device online working" quota limit and used quantity. Frontend uses this API in scenarios like switching device working project, binding dock, etc. to determine whether quota will be exceeded, giving early blocking or warning. **Call Conditions**: caller must be organization member. **Description**: This API only reads path parameter `uuid`; no request body, no query parameters. - Real-time Control > Flight Control Commands > Real-time Command [Query Project Device Command Execution Progress](https://41b04hdzmc.apifox.cn/473847978e0.md): Batch query recent command execution progress of multiple devices in project by device SN list. Capability same as organization-level query, but authentication scope limited to within project — caller is project member; queried devices must belong to current project. - Real-time Control > Flight Control Commands > Real-time Command [Dispatch Flight Control Command](https://41b04hdzmc.apifox.cn/473847979e0.md): Dispatch a flight control command to specified aircraft in project. Specific method name and parameter structure of command determined by aircraft model thing model (passthrough channel); server does not constrain command content, only validates device ownership and control authority before dispatching to device. - Real-time Control > Flight Control Commands > Airborne Task [Create Airborne-Dispatched Wayline Task](https://41b04hdzmc.apifox.cn/473847980e0.md): When aircraft is already airborne executing a task, temporarily dispatch a new wayline for continued flight (no need to return home first); commonly used for dynamic task adjustment, patrol path switching, emergency redispatch, and other scenarios. After dispatch, server persists task and immediately pushes wayline command to aircraft. - Real-time Control > Flight Control Commands > Airborne Task [Control Wayline Task (Pause / Resume / Cancel)](https://41b04hdzmc.apifox.cn/473847981e0.md): Dispatch real-time control command to executing wayline task; makes aircraft hover in current position, resume from paused position, or cancel task and return home. Commonly used in scenarios like pilot temporary intervention, sudden situation avoidance, early task termination. - Real-time Control > Flight Control Commands > Point-to-Fly [Get Flight Task Device Recommendation Result](https://41b04hdzmc.apifox.cn/473847982e0.md): By business scenario (Point-to-Fly / Normal Wayline Takeoff / Leapfrog Wayline / Dual-Aircraft Relay / Base Station Recommendation / Emergency Response, and other 8 strategies) + start/end positions, reverse-derives available "dock + aircraft" combinations within project and provides reachability/distance scoring; for selecting execution devices when creating immediate or wayline tasks. **Caller**: Logged-in project member. **Returns**: device recommendation list sorted by reachability/distance; returns empty array (not treated as error) when no available devices in project. - Real-time Control > Flight Control Commands > Point-to-Fly [Fly to Target Point (One-Click Takeoff)](https://41b04hdzmc.apifox.cn/473847983e0.md): Make aircraft directly take off from specified dock / takeoff device, and optionally immediately fly to target point ("Takeoff + Point" in one go). Commonly used for clicking target point on map → one-click dispatch aircraft to perform viewing / shooting. **Prerequisite**: Caller must first obtain target aircraft's flight control authority. **Returns**: Created command task identifier `flight_id` and takeoff-embedded fly-to subtask `fly_to_id`. - Real-time Control > Flight Control Commands > Point-to-Fly [Initiate Fly-to-Multiple-Targets Task](https://41b04hdzmc.apifox.cn/473847984e0.md): Make aircraft (already airborne) fly through specified group of waypoints in order. Difference from single-point fly-to in "One-Click Takeoff": this API targets multi-point flight planning for already-launched aircraft. Can dynamically adjust remaining waypoints via `PUT /fly-to-points` during flight, or actively end via `DELETE /fly-to-points`. **Prerequisite**: Caller must hold target aircraft's flight control authority. - Real-time Control > Flight Control Commands > Point-to-Fly [Update In-Progress Fly-to-Target Task](https://41b04hdzmc.apifox.cn/473847985e0.md): Dynamically modify waypoint sequence of executing fly-to task (e.g. add/remove / adjust intermediate points / change speed). Aircraft continues flight per new sequence when switching to next waypoint; no need to stop and resend. **Concurrency Constraint**: same `fly_to_id` cannot be updated concurrently; server uses lock based on `fly_to_id` to prevent concurrent overwrite. **Prerequisite**: Caller must hold target aircraft's flight control authority (consistent with initiator). - Real-time Control > Flight Control Commands > Point-to-Fly [End Fly-to-Target Task](https://41b04hdzmc.apifox.cn/473847986e0.md): Actively end the currently executing fly-to task. Aircraft stops going to remaining waypoints; processes subsequent state per previous `out_of_control_action` setting (Hover / Return Home / Continue). - Real-time Control > Flight Control Commands > Smart Orbit [Enter POI Orbit Mode](https://41b04hdzmc.apifox.cn/473847987e0.md): Operator selects a target point (lat/lng + altitude); after dispatch, aircraft enters POI (Point of Interest) mode and orbits the point at specified radius at constant speed; commonly used for 360-degree orbit photography of inspection targets, aerial surveillance evidence collection. Server persists a POI task record and immediately dispatches a speed sync command after task dispatch; if any step fails, the task is set to terminated state. - Real-time Control > Flight Control Commands > Smart Orbit [Exit POI Orbit Mode](https://41b04hdzmc.apifox.cn/473847988e0.md): Exit POI orbit state for the aircraft currently executing POI orbit; returns to regular hover / standby state. Before exiting, server validates flight control authority and queries current POI task; if target aircraft is not currently in POI orbit, returns error directly. - Real-time Control > Flight Control Commands > Smart Orbit [Update POI Orbit Speed](https://41b04hdzmc.apifox.cn/473847989e0.md): Dynamically adjust flight speed of executing POI orbit task; aircraft responds immediately; server synchronously updates speed record in database. If target aircraft participates in multi-aircraft collaboration (one-to-many) tasks, asynchronously syncs same speed to associated devices. Even if aircraft is not currently in POI orbit state, service still dispatches command and updates DB, but aircraft may reject. - Real-time Control > Flight Control Commands > Smart Orbit [Query POI Task Status](https://41b04hdzmc.apifox.cn/473847990e0.md): Query current POI orbit task status of specified dock/aircraft (center point / radius / speed / payload index). Commonly used by clients to refresh POI panel, or restore UI state after disconnect-reconnect. When target aircraft is not currently in POI orbit (or has never initiated POI task), `data` field is null. - Real-time Control > Flight Control Commands > Relay Task [Create Relay Task (Dual-Aircraft Rotation)](https://41b04hdzmc.apifox.cn/473847991e0.md): Create Relay Task (Dual-Aircraft Rotation): specify primary and backup aircraft to alternately execute the same flight task at a certain task point (when A is exhausted, switches to B; when B is exhausted, switches back to A); uniformly orchestrated by scheduling center. **Typical Call Prerequisites**: - Real-time Control > Flight Control Commands > Relay Task [Calculate Best Relay Position for Relay Task](https://41b04hdzmc.apifox.cn/473847992e0.md): Call this API before creating a relay task: server queries operating aircraft's dock location + relay aircraft's current location (takes dock location when relay aircraft is in bay; takes aircraft real-time position when airborne) + device RTK calibration status, **and computes the "relay point" coordinates and relay operation radius that the relay aircraft will fly to**. Then call `POST /flight-tasks/relay-missions` to create the task. Relay Operation Radius = smaller radius when primary aircraft RTK is calibrated; larger radius when not calibrated (specific values determined by deployment environment configuration). - Real-time Control > Flight Control Commands > Relay Task [Edit Relay Task Configuration](https://41b04hdzmc.apifox.cn/473847993e0.md): Modify adjustable parameters of executing/paused relay task (end time / lost-control action / primary and backup aircraft return altitudes / relay aircraft early departure time / point-to-fly mode / speed, etc.) without rebuilding the task. - Real-time Control > Flight Control Commands > Relay Task [Trigger Relay Aircraft Active Takeoff](https://41b04hdzmc.apifox.cn/473847994e0.md): During relay task execution, under normal conditions, the relay aircraft is automatically launched by the scheduling center based on `early_departure_time` and primary aircraft battery. This API provides "Active Takeoff" capability — when relay aircraft is still in pending-scheduling state (`relay_status=0` Pending Scheduling), caller manually triggers relay aircraft takeoff to relay point and wait. **Call Prerequisites (must simultaneously satisfy)**: - Real-time Control > Flight Control Commands > Relay Task [Update Relay Task Running Status (Pause / Resume / Cancel)](https://41b04hdzmc.apifox.cn/473847995e0.md): Control relay task running transitions: Pause / Resume / Cancel. Three actions correspond to different precondition state requirements and side effects: - Real-time Control > Flight Control Commands > Relay Task [Actively Switch Relay Task Executing Aircraft](https://41b04hdzmc.apifox.cn/473847996e0.md): During relay task execution, actively trigger primary/backup aircraft switch (bypasses battery threshold auto-switch logic). Before calling, relay aircraft must have flown to relay point and be in position. Switch swaps current primary/backup aircraft roles (original primary becomes new relay; original relay becomes new primary), recalculates relay point, and registers new scheduled task to scheduling center. Request body must provide post-switch primary aircraft SN and relay aircraft SN — must be two aircraft already in the task formation; this API does not support introducing new devices. - Real-time Control > Control Permission Management > Device Control Permission [Device Control Authority Operation (Organization Device O&M)](https://41b04hdzmc.apifox.cn/473847997e0.md): In organization device O&M scenarios, multi-user collaborative operations on device control authority: Apply for Control, Enter Preemption Queue, Cancel Application, Approve/Reject Transfer, Active Release; 6 actions total. Backend dispatches to corresponding business flows by control_operation_method; involves control authority state machine updates and async message notifications. Suitable for organization administrators to perform control authority troubleshooting, transfer, and recovery on organization devices (docks / aircraft). - Real-time Control > Control Permission Management > Device Control Permission [Query Device Control Authority Status (Organization Device O&M)](https://41b04hdzmc.apifox.cn/473847998e0.md): Query current organization device's control authority occupation and waiting queue status. Returns info such as who currently holds control authority, whether preemptable by current user; works with "Device Control Authority Operation" API to form complete "Request-Approve-Release" workflow. - Real-time Control > Control Permission Management > Device Control Permission [Acquire (Occupy) Cloud Control Role](https://41b04hdzmc.apifox.cn/473847999e0.md): Current user requests and occupies a cloud control role (e.g. flight_control / payload_control) for specified dock / aircraft. After successful occupation, the role becomes held by "Cloud Control"; all related users immediately receive WebSocket real-time change notification. - Real-time Control > Control Permission Management > Device Control Permission [Query Project Device Control Authority Status](https://41b04hdzmc.apifox.cn/473848000e0.md): Query control authority occupation and waiting queue status of devices under project. Functionality same as organization-level query API; difference is authentication domain is project, and holder call sign returns project nickname preferentially. Works with "Project Device Control Authority Operation" API to form complete "Request-Approve-Release" workflow. - Real-time Control > Control Permission Management > Device Control Permission [Query User List in Project Recently Operating Device](https://41b04hdzmc.apifox.cn/473848001e0.md): Batch query which users in project are currently operating multiple devices (via recent active records on device command link side); returns "In-Project User List" for each device (user_id + call sign in project). Commonly used to view online collaboration status, dashboard display. - Real-time Control > Control Permission Management > Device Control Permission [Device Control Authority Operation](https://41b04hdzmc.apifox.cn/473848002e0.md): Project-level Multi-user Collaborative Operations on Device Control Authority — Apply, Preempt Queue, Cancel, Approve/Reject Transfer, Active Release; 6 actions total. Backend dispatches to corresponding business flows by control_operation_method; involves control authority state machine updates and async message notifications. Compared to organization-level API, this API's authentication domain is project, and holder call sign returns project nickname preferentially. - Real-time Control > Control Permission Management > Cloud Control Permission [Request Cloud Control Authorization (Initiated to Remote Controller)](https://41b04hdzmc.apifox.cn/473848003e0.md): Cloud user initiates cloud control authorization request to remote controller side; remote controller holder approves/rejects on device. This API immediately returns authorization request's business trace ID (bid); authorization result is asynchronously pushed by device callback, not synchronously returned in this API. Different from "Directly Occupy Cloud Control Authority" (POST /cloud_controls): this API uses "Request-Approve" flow; used in scenarios where remote controller is present (A/B Control holds authority) and requires human approval. - Real-time Control > Control Permission Management > Cloud Control Permission [Batch Query Aircraft Cloud Control Authority Status](https://41b04hdzmc.apifox.cn/473848004e0.md): Batch query current cloud control authority occupation of aircraft in project by SN list; understand who holds each aircraft's control authority, which type of control (flight control / payload control), currently occupied gateway, and authority version number. Up to 50 SNs per call. - Real-time Control > Control Permission Management > Cloud Control Permission [Acquire (Occupy) Cloud Control Permission](https://41b04hdzmc.apifox.cn/473848005e0.md): Current user directly occupies cloud control authority for specified aircraft (at control_keys granularity; can simultaneously occupy flight + multiple payload_{index}); no remote controller approval required. After successful occupation, all related users immediately receive WebSocket real-time change notification (reason=Acquire). Difference from "Apply for Cloud Control Authorization" (POST /cloud_control_auth): this API directly forces occupation; the latter uses remote-controller request-approve flow. - Real-time Control > Control Permission Management > Cloud Control Permission [Release Cloud Control Permission](https://41b04hdzmc.apifox.cn/473848006e0.md): 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). - Real-time Control > Payload Control > Camera Control [Dispatch Payload Control Command](https://41b04hdzmc.apifox.cn/473848007e0.md): Dispatch control commands to specified aircraft's payload (gimbal / camera / speaker, and other airborne payloads) in project, e.g. gimbal pitch / photo / video / lens switch / zoom, etc. Caller must hold the aircraft's payload control authority to execute commands. - Real-time Control > Payload Control > PSDK Device [Dispatch PSDK Command](https://41b04hdzmc.apifox.cn/473848008e0.md): Passthrough-dispatch commands to specified PSDK (Payload SDK) device in project; used to control PSDK business (e.g. speaker playback, third-party payload operations, etc.). `device_cmd_method` and `device_cmd_data` determined by specific PSDK device's thing model; server does not perform enum validation; serves as passthrough channel as a whole. `ext` field used for business tracking (speaker scenario playback parameters are written to server-side command log). Device must belong to current project. - Real-time Control > Payload Control > Speaker [Open Aircraft Two-Way Voice Channel](https://41b04hdzmc.apifox.cn/473848009e0.md): Open bidirectional voice channel for specified gateway SN (typical scenario: aircraft-mounted microphone capture + aircraft-mounted speaker playback; frontend connects via RTC). After server selects and initializes RTC provider (Agora / Volcano Engine / Twilio, etc.), dispatches channel access parameters (room number, Token, UID, etc.); frontend selects corresponding RTC SDK to connect by `provider` field. - Real-time Control > Payload Control > Speaker [Open DRC Real-time Control Channel](https://41b04hdzmc.apifox.cn/473848010e0.md): Open DRC real-time control channel for specified gateway SN (establishes RTC / WebSocket channel for real-time dispatch of flight control / payload control commands, device status reporting, etc.). After server selects and initializes RTC provider, dispatches channel access parameters. Response returns both `rt_channel` and `data_channel` equivalent configurations (for frontend version compatibility: old versions read `rt_channel`; new versions read `data_channel`; both have same content). - Real-time Control > Payload Control > Speaker [Query Speaker Resource List](https://41b04hdzmc.apifox.cn/473848011e0.md): Query speaker resource list (audio files + TTS texts) under current project. Returns only resources with `visible=true` and not deleted; can filter by resource type (`file_type`). In response, audio-type resources are accompanied by signed `object_url` for direct download/preview (generated using object storage SignURL in on-premises deployment; uses CDN in public cloud). Returned array ordered by `created_at` descending; soft-deleted resources (`deleted_at` non-empty) are not returned; `visible=false` pre-placeholder resources are not returned. - Real-time Control > Payload Control > Speaker [Create Speaker Resource](https://41b04hdzmc.apifox.cn/473848012e0.md): Create a speaker voice resource under current project. Supports two types: Audio File (`file_type=audio`, first call STS API to obtain upload credentials, upload audio to object storage, then call this API to submit `object_key`); TTS Text (`file_type=tts`, directly submit text; server asynchronously synthesizes audio and transcodes). Two-Phase Recording Scenario (`create_scene=record`): frontend records → first call this API with `visible=false` to create placeholder index → user confirms save, then call edit API to set `visible=true`; resource only appears in list. Import Scenario (`create_scene=import`): directly create with `visible=true`. - Real-time Control > Payload Control > Speaker [Delete Speaker Resource](https://41b04hdzmc.apifox.cn/473848013e0.md): Delete speaker resource (audio file or TTS index). Deletion is soft delete — record is marked `deleted_at` and disappears from user list; associated object storage files are asynchronously cleaned up in background (retention window depends on deployment policy). - Real-time Control > Payload Control > Speaker [Edit Speaker Resource](https://41b04hdzmc.apifox.cn/473848014e0.md): Edit speaker resource metadata. Two typical use scenarios: Save Recording (after recording upload completes, set `visible` to `true`; resource starts appearing in list); Rename / Modify Text (modify `name` field; TTS resources can also modify `content`). Note: This API requires `file_type` to match original value; type cannot be modified. - Real-time Control > Payload Control > Speaker [Get Speaker Audio Upload STS Credentials](https://41b04hdzmc.apifox.cn/473848015e0.md): Get STS temporary credentials for direct upload of speaker audio files to object storage (OSS / on-premises S3). Typical upload flow: client calls this API to obtain `credentials` + `object_key_prefix`; appends filename under `object_key_prefix` to form full `object_key`; uses STS credentials to directly upload audio file to object storage; calls speaker resource creation API to register resource (with `object_key`). - Real-time Control > Takeoff-Landing Coordination [Query TCA Real-time Status](https://41b04hdzmc.apifox.cn/473848016e0.md): Query real-time occupation status of multiple Takeoff-Landing Coordination Areas (TCA, Terminal Control Area) within current project. TCA is used for priority avoidance during multi-aircraft same-site takeoff/landing — a TCA consists of multiple docks in the same area; when any dock in the zone takes off/lands, the entire TCA enters occupied state, avoiding conflicts from other docks taking off/landing simultaneously. - Flight Task > Task Query [Get Current Active Wayline Task (DRC Real-time Control)](https://41b04hdzmc.apifox.cn/473848017e0.md): Query currently active airborne wayline task for specified drone SN within specified project (for real-time flight status display). - Flight Task > Task Query [Get Current Active Wayline Task (Task Management)](https://41b04hdzmc.apifox.cn/473848018e0.md): Query currently active airborne wayline task for specified drone SN within current project (for real-time flight status display). - Flight Task > Task Query [Batch Query Flight Task Details by UUID](https://41b04hdzmc.apifox.cn/473848019e0.md): Given a set of flight task UUIDs, returns full details of each task in one call (status, time, associated wayline, media upload progress, etc.). Suitable for frontend task dashboard batch status refresh, cross-system status sync, and other scenarios. - Flight Task > Task Query [Query Flight Task Time Conflict List](https://41b04hdzmc.apifox.cn/473848020e0.md): Called before creating recurring / scheduled tasks: based on passed-in task time rules (task_type / repeat_type / begin_at / end_at, etc.), reverse-queries the list of existing tasks under the same device SN that would have time conflicts, facilitating frontend user prompts. - Flight Task > Task Query [Get Flight Task Details (V2, includes execution details)](https://41b04hdzmc.apifox.cn/473848021e0.md): Get V2 version details of specified task, including execution track details / flight sortie list / media capture summary, etc. not available in V1. - Flight Task > Task Query [Query Dock Recent / Current Task](https://41b04hdzmc.apifox.cn/473848022e0.md): Dock List / Recent Task: batch query each dock's current/recent task based on passed-in dock SN list (preferentially returns Executing + Paused; otherwise returns the most recent Failed/Terminated). Cache hits return directly; cache misses query persistent layer and backfill cache; simultaneously attaches "Read" status. - Flight Task > Task Query [Get Task Flight Track (V2)](https://41b04hdzmc.apifox.cn/473848023e0.md): Get actual flight track of completed flight tasks (waypoint lat/lng + altitude + timestamp sequence sorted by time); used for map track playback. - Flight Task > Flight Record > Export and Download [Flight Record File Download](https://41b04hdzmc.apifox.cn/473848024e0.md): Exchange an object storage object_key for a temporary signed URL; allows client to directly download the flight record or PSDK resource. Frontend calls this API to obtain downloadable signed URL after getting object_key from export task result. - Flight Task > Flight Record > Export and Download [Query Flight Task Export History](https://41b04hdzmc.apifox.cn/473848025e0.md): Query export task list under current project (includes status: In Progress / Completed / Failed / Cancelled); users can see their submitted export tasks and download links in the export center. - Flight Task > Flight Record > Export and Download [Export Flight Task Records (Generates Async ZIP Task)](https://41b04hdzmc.apifox.cn/473848026e0.md): Export specified flight task records by file type (default Excel format). Export is async task: this API creates an export task and returns task_id; client polls `GET /flight-tasks/export` to view progress. After completion, download ZIP from object_key field. In exported Excel detail report, when metrics includes position_info, three additional altitude columns are output: - Flight Task > Flight Record > Export and Download [Cancel / Delete Export Task](https://41b04hdzmc.apifox.cn/473848027e0.md): Cancel in-progress export task (when status=running) or delete completed/failed export records (when status=finished/failed). - Flight Task > Flight Record > Operation Log [Query Flight Task Operation Log (V2)](https://41b04hdzmc.apifox.cn/473848028e0.md): Query operation log of specified task (who did what at what time: create / edit / suspend / cancel, etc.); used for audit traceability. - Flight Task > Task Management [Create Flight Task](https://41b04hdzmc.apifox.cn/473848029e0.md): Create a flight plan. task_type determines semantics: 1=Immediate Task / 2=Recurring Task / 3=Single Scheduled Task / 5=Continuous Task. This is the most core task creation entry. **Prerequisites (as needed)** - Flight Task > Task Management [Create Flight Task (Advanced Version, Returns Subtasks)](https://41b04hdzmc.apifox.cn/473848030e0.md): V2 version of creating flight plan; difference from base version: response body **returns subtask info** (recurring/continuous tasks expand into multiple subtasks); facilitates OpenAPI callers to obtain full parent-child task structure in one call. Business rules same as base version `POST /flight-tasks`. - Flight Task > Task Management [Check Whether Flight Task Meets Dispatch Conditions](https://41b04hdzmc.apifox.cn/473848031e0.md): Pre-task creation validation: whether combination of specified device SN + wayline UUID can successfully dispatch task (device capability match, dock available, wayline valid, etc.). Returns warning list but does not block creation. - Flight Task > Task Management [Mark Task as Read](https://41b04hdzmc.apifox.cn/473848032e0.md): Mark specified task as "Read" — typically used to clear the "Recent Abnormal Tasks" red dot indicator (called after user views task result). Server writes task UUID to persistent layer and refreshes cache hash; subsequent `recent` API returns `read_status=true` for this task. - Flight Task > Task Management [Check Flight Task Block Items](https://41b04hdzmc.apifox.cn/473848033e0.md): Before user clicks "Create Task" button, calls this API for "clearance pre-check"; returns weather flight block results of current + landing docks + GPS wayline flight block results in mobile deployment mode, avoiding being blocked by business layer after submission. **Business Constraint**: This API only accepts `task_type=1` (Immediate Task); other values are rejected with 400. - Flight Task > Task Management [Resumable Immediate Task](https://41b04hdzmc.apifox.cn/473848034e0.md): After original task is abnormally interrupted (e.g. low battery, device disconnection), user quickly creates a new immediate task one-click based on original task's breakpoint info via this API, continuing flight from breakpoint. Based on original task record, copies key fields like name / wayline / RTH / resume mode / breakpoint JSON / wayline duration to new task, and forces `task_type=Immediate`, `is_break_point_resume=true`. - Flight Task > Task Management [Delete Flight Task](https://41b04hdzmc.apifox.cn/473848035e0.md): Delete flight task by specified UUID. Only tasks in Not Executed / Completed / Terminated states can be deleted; deletion of executing tasks is rejected. - Flight Task > Task Management [Edit Flight Task](https://41b04hdzmc.apifox.cn/473848036e0.md): Edit flight plan: overwrite-update task rule fields (time, repeat, device, wayline, lost-control action, VLM configuration, etc.). **Scope**: Only pending (not yet dispatched to device) scheduled tasks, recurring subtasks, and continuous subtasks can be edited. Immediate tasks, test flight tasks, and breakpoint resume tasks cannot be edited. - Flight Task > Task Management [Get Flight Task Details](https://41b04hdzmc.apifox.cn/473848037e0.md): Get full details of a flight task by task_uuid (includes rules, device, wayline, status, subtasks, VLM configuration, breakpoint info, etc.). - Flight Task > Task Management [Dispatch Task Media Priority Upload Command](https://41b04hdzmc.apifox.cn/473848038e0.md): Dispatch "Media Priority Upload" command for specified flight task (uploads task-related media in advance). Note: task pause/resume/terminate/suspend, and other status changes should use PUT /flight-tasks/{task_uuid}/status API. - Flight Task > Task Management [Create Resume Flight Task (Retain Original Breakpoint)](https://41b04hdzmc.apifox.cn/473848039e0.md): Create a resume-flight copy task based on a completed task, continuing flight from original task's breakpoint info. Difference from resume-immediate: this API "copies scheduled task" and can retain original task_type; resume-immediate forces conversion to immediate task. - Flight Task > Task Management [Update Flight Task Suspend Status (Suspend / Resume / Cancel)](https://41b04hdzmc.apifox.cn/473848040e0.md): Suspend task (temporarily not dispatched to device) / Resume / Cancel. Suspended tasks are retained on server but not automatically scheduled. - Flight Task > Task Management [Query Flight Task List](https://41b04hdzmc.apifox.cn/473848041e0.md): Multi-dimensional filtered query of flight task list under current project (V2). Supports filtering by task name, device SN, time range, task type, status, etc.; paginated return. - Flight Task > AI Flight Alert [Query Flight Sortie List with AI Alerts by Device SN](https://41b04hdzmc.apifox.cn/473848042e0.md): Given an aircraft SN, query the list of flight sorties that have historically generated AI alerts for the aircraft (each returns a flight_id and corresponding alert count). Commonly used to first select an aircraft, then browse its alert flight history. - Flight Task > AI Flight Alert [Query Historical AI Alert Records](https://41b04hdzmc.apifox.cn/473848043e0.md): Query historical AI algorithm-triggered alert record list under current project (filterable by time range / device / algorithm). - Wayline > Download and Upload [Pack Resources to KMZ (Precise Recapture Flow)](https://41b04hdzmc.apifox.cn/473848044e0.md): "Precise Recapture" Flow: merge-package snapshot images (res/ directory) captured during previous flight with lightweight KMZ into "task copy wayline" for next execution to recapture at the same viewpoint. Server reads lightweight KMZ + res (images/audio) referenced by original wayline from OSS, merges into complete KMZ within OSS, then saves to wayline library. - Wayline > Download and Upload [Query Wayline Async Import Status](https://41b04hdzmc.apifox.cn/473848045e0.md): Wayline import triggered by `POST /import-callback` is an async flow (KMZ parsing, validation, saving metadata takes some time). Clients poll via this API to check whether import is completed or failed. - Wayline > Download and Upload [Wayline Save KMZ Upload Completion Callback](https://41b04hdzmc.apifox.cn/473848046e0.md): When client saves wayline in wayline editor, first directly uploads generated KMZ to OSS, then calls this API to register wayline metadata (name, owning folder, template type, payload configuration, etc.), completing the save. - Wayline > Download and Upload [Wayline KMZ File Import Callback](https://41b04hdzmc.apifox.cn/473848047e0.md): After client directly uploads wayline KMZ file to OSS, calls this API to notify server to register import status. Server parses KMZ metadata (waypoints, actions, payload requirements, etc.), writes to wayline library, and triggers subsequent flows like duplicate-name validation and template type identification. - Wayline > Download and Upload [Batch Download Waylines / Folders (ZIP Package)](https://41b04hdzmc.apifox.cn/473848048e0.md): Batch download multiple wayline files or folders (including child contents). Server packages all KMZ files into ZIP and returns OSS signed download URL. **Use Scenario**: User selects multiple waylines/folders in wayline library and clicks "Batch Download". - Wayline > Wayline List Management [Get Wayline KMZ Download URL and 302 Redirect](https://41b04hdzmc.apifox.cn/473848049e0.md): Mobile client / FlightHub 2 client gets a single wayline KMZ download URL; this API directly 302 redirects to OSS signed URL; client does not need a second redirect. **Related API**: `POST /waylines/batch-download` — Multiple file batch package download. - Wayline > Wayline List Management [Copy Wayline](https://41b04hdzmc.apifox.cn/473848050e0.md): Copy a new copy of specified wayline (including KMZ file, template configuration, payload settings). New wayline name defaults to "OriginalName (copy)"; can be overridden via `name` field; `parent_id` can be specified to place copy in another folder. - Wayline > Wayline List Management [Favorite Wayline / Media Resource](https://41b04hdzmc.apifox.cn/473848051e0.md): Add specified resource ID to current user's favorites list in this project; subsequently can be quickly found via list API's `favorited=true` filter parameter. Repeated favoriting of same resource is deduplicated. - Wayline > Wayline List Management [Unfavorite Wayline / Media Resource](https://41b04hdzmc.apifox.cn/473848052e0.md): Remove specified resource ID from current user's favorites list in this project. - Wayline > Wayline List Management [Stitch Multiple Waylines into One](https://41b04hdzmc.apifox.cn/473848053e0.md): Stitch multiple waylines in specified order into a new wayline (used to merge multiple short waylines into a long wayline for one-time execution). Server merges KMZ files on OSS and generates new wayline record. - Wayline > Wayline List Management [Wayline Library File List Query (V1)](https://41b04hdzmc.apifox.cn/473848054e0.md): Web-side Wayline Library Main List API: pagination + multi-dimensional filtering (by waypoint action type, file type, product model, payload model, template type, time range, etc.); ordered by update time descending. - Wayline > Wayline List Management [Delete Specified Wayline (default soft delete to recycle bin)](https://41b04hdzmc.apifox.cn/473848055e0.md): Delete wayline by specified UUID. Default soft delete to recycle bin (recoverable); pass query `destroy=true` to permanently hard-delete (irrecoverable). Locked wayline deletion is rejected. - Wayline > Wayline List Management [Update Wayline Metadata (Rename / Lock / Restore from Recycle Bin)](https://41b04hdzmc.apifox.cn/473848056e0.md): Update metadata of wayline by specified UUID. Differential update by passed-in fields: pass `name` to rename / `mod` to change lock status / `restore=true` to restore from recycle bin. - Wayline > Wayline List Management [Get Single Wayline Details](https://41b04hdzmc.apifox.cn/473848057e0.md): Get wayline details by wayline UUID, includes name, owning folder, KMZ file size, template type, payload configuration, AI wayline identifier, whether contains obstacles, start waypoint coordinates, etc. - Wayline > Wayline File CRUD [Create Wayline Folder](https://41b04hdzmc.apifox.cn/473848058e0.md): Create a folder in current project's wayline library (used to organize wayline hierarchy). Can specify parent folder UUID for nesting; placed in root if no parent provided. - Wayline > Wayline File CRUD [Batch Delete Waylines / Folders](https://41b04hdzmc.apifox.cn/473848059e0.md): Batch delete multiple waylines / folders. `ids` list can contain both wayline UUIDs and folder UUIDs simultaneously; server processes item by item. **Default Soft Delete** (resources enter recycle bin, recoverable); pass `destroy=true` for direct hard delete (irrecoverable). **Lock Protection**: When any selected folder contains locked waylines, or selected wayline itself is locked, overall deletion is rejected. - Wayline > Wayline File CRUD [Batch Move Waylines / Folders to Target Folder](https://41b04hdzmc.apifox.cn/473848060e0.md): Batch move multiple waylines / subfolders to target parent folder. Locked resources are rejected. - Wayline > Wayline File CRUD [Move Wayline / Folder to Specified Group](https://41b04hdzmc.apifox.cn/473848061e0.md): Move multiple waylines or wayline folders to target group (folder). Unlike `POST /waylines/move`, this API is for "wayline grouping" dimension rather than "folder tree" dimension. - Wayline > Wayline File CRUD [Batch Update Wayline / Folder Lock Status](https://41b04hdzmc.apifox.cn/473848062e0.md): Batch set multiple waylines or folders to "Locked" or "Unlocked". Locked waylines/folders cannot be moved, deleted, or renamed. - Map > Map Annotation > Annotation Layer Management [Move / Reorder Layers and Features](https://41b04hdzmc.apifox.cn/473848063e0.md): Move multiple layers/features to target parent layer and simultaneously adjust order. Moving features to root returns 211003; Default/Share cannot move to other directories (211002); VisualCone cannot move (211011). - Map > Map Annotation > Annotation Layer Management [Delete Single Annotation Layer (Folder)](https://41b04hdzmc.apifox.cn/473848064e0.md): Delete specified single layer; cascade-deletes all its sub-layers and features. Locked state is rejected (211403); Share/Default/VisualCone types cannot be deleted (211002). - Map > Map Annotation > Annotation Layer Management [Update Annotation Layer (Rename / Reorder)](https://41b04hdzmc.apifox.cn/473848065e0.md): Update layer name or reorder layers. When orders is non-empty, performs batch sort, ignoring name field. Share/Default/VisualCone types cannot be renamed (211002). - Map > Map Annotation > Annotation Layer Management [Distribute Annotation Layer to Device](https://41b04hdzmc.apifox.cn/473848066e0.md): Mark specified layer and all its sub-layers as distributed; devices will pull these layers for map display. - Map > Map Annotation > Annotation Layer Management [Lock / Unlock Annotation Layer](https://41b04hdzmc.apifox.cn/473848067e0.md): Lock specified layer and all its sub-layers; after locking, this layer and sub-layers cannot be deleted/batch-deleted/sub-feature operated; query and lock toggle are unrestricted. - Map > Map Annotation > Annotation Layer Management [Cancel Annotation Layer Distribution](https://41b04hdzmc.apifox.cn/473848068e0.md): Cancel distribution of specified layer and all its sub-layers; Share-type cannot be undistributed (must remain distributed; returns 211002). - Map > Map Annotation > Annotation Layer Management [Batch Delete Annotation Layers / Features](https://41b04hdzmc.apifox.cn/473848069e0.md): Delete multiple layers and/or features in one call; deleting layer cascade-deletes all its sub-layers and features. If any target layer is locked, rejected (211403); Share/Default/VisualCone types cannot be deleted (211002). - Map > Map Annotation > Annotation Layer Management [Create Annotation Layer (Folder)](https://41b04hdzmc.apifox.cn/473848070e0.md): Create a new annotation layer under specified project; optionally use pid to create sub-layer. If parent layer pointed to by pid is locked, returns business error code 211007. - Map > Map Annotation > Annotation Layer Management [Query Annotation Layer (Folder) List](https://41b04hdzmc.apifox.cn/473848071e0.md): Query all annotation layers (including sub-layers) and feature list under each layer in current project; supports filtering by layer type/distribution status. - Map > Map Annotation > Annotation Feature Management [Batch Modify Display Status of Features Under Layer](https://41b04hdzmc.apifox.cn/473848072e0.md): Uniformly change display status of all unlocked features under specified layer and its sub-layers to hide or show. - Map > Map Annotation > Annotation Feature Management [Clear All Annotation Features Under Specified Layer](https://41b04hdzmc.apifox.cn/473848073e0.md): Clear all features under specified layer (deletes features only, retains layer); rejected when locked. - Map > Map Annotation > Annotation Feature Management [Create Annotation Feature Under Specified Layer](https://41b04hdzmc.apifox.cn/473848074e0.md): Create an annotation feature under specified layer (point / line / polygon / circle / pin, etc.). - Map > Map Annotation > Annotation Feature Management [Batch Import Layers and Annotations (KML-Style JSON)](https://41b04hdzmc.apifox.cn/473848075e0.md): Batch create multiple layer folders and their annotation features in hierarchical structure. Request body is KML-style JSON (not KML XML file). - Map > Map Annotation > Annotation Feature Management [Export Features Under Layer Group (KML-Style JSON)](https://41b04hdzmc.apifox.cn/473848076e0.md): Export corresponding layers and their features by group_id list (KML-style JSON structure, includes layer + feature + style + coordinates). - Map > Map Annotation > Annotation Feature Management [Delete Single Annotation Feature](https://41b04hdzmc.apifox.cn/473848077e0.md): Delete specified feature; rejected when feature's layer is locked. - Map > Map Annotation > Annotation Feature Management [Update Annotation Feature (Rename / Modify Coordinates / Modify Style / Reorder)](https://41b04hdzmc.apifox.cn/473848078e0.md): Update partial fields of a single feature; all fields are optional; content is merged via JSON merge patch (merges with existing content rather than full replacement). - Map > Map Annotation > Custom Icon [Query Project Custom Point Icon Library](https://41b04hdzmc.apifox.cn/473848079e0.md): Returns list of all custom icons under current project (includes signed URL, can be directly used for map rendering). - Map > Map Annotation > Custom Icon [Register Custom Point Icon](https://41b04hdzmc.apifox.cn/473848080e0.md): Register an icon file already uploaded to OSS to the project; icon file must first be uploaded via OSS upload API to obtain object_key. - Map > Map Annotation > Custom Icon [Delete Custom Point Icon](https://41b04hdzmc.apifox.cn/473848081e0.md): Delete icon registration record by icon_id; only deletes database registration record, not actual file on OSS. - Map > Signal Heatmap [Query Organization-Level Signal Heatmap](https://41b04hdzmc.apifox.cn/473848082e0.md): Query device signal heatmap for all projects user has access to under current organization by device SN list. Request body same as project-level API. - Map > Signal Heatmap [Query Project-Level Signal Heatmap](https://41b04hdzmc.apifox.cn/473848083e0.md): Query signal strength heatmap of regions historically flown by aircraft under a project by device SN list (H3 index grid aggregation; returned by SDR / 4G link). device_sns up to 3000; exceeding is truncated by server with warning logged (no error). - Map > Airspace Safety > Custom Flight Area [Query Flight Area List Under Project](https://41b04hdzmc.apifox.cn/473848084e0.md): Query all custom flight areas under a project (Electronic Fence/No-Fly Zone/No-Landing Zone); supports filtering by name, type, status + pagination. - Map > Airspace Safety > Custom Flight Area [Create Flight Area](https://41b04hdzmc.apifox.cn/473848085e0.md): Create a custom flight area under project (by geometry: circle / polygon / polyline + restriction type). - Map > Airspace Safety > Custom Flight Area [Trigger Flight Area Configuration Sync to Device](https://41b04hdzmc.apifox.cn/473848086e0.md): Trigger dispatch of current project's flight area configuration to specified device list (devices will pull latest configuration). ⚠️ Note this API is application/json, not multipart/form-data file upload — `upload` refers to configuration upload to device, not client file upload. - Map > Airspace Safety > Custom Flight Area [Delete Flight Area](https://41b04hdzmc.apifox.cn/473848087e0.md): Delete Specified Flight Area. - Map > Airspace Safety > Custom Flight Area [Update Flight Area](https://41b04hdzmc.apifox.cn/473848088e0.md): Update partial attributes of flight area (name / status / type / geometry content); uses area_hash for optimistic lock conflict detection. - Map > Offline Map [Get Offline Map Terrain Model Download URL](https://41b04hdzmc.apifox.cn/473848089e0.md): Get OSS signed download URL of offline map terrain model file by Dock SN. If the dock has not configured offline map, data contains disable: true. - Map > Offline Map [Trigger Offline Map Package Sync to Bay](https://41b04hdzmc.apifox.cn/473848090e0.md): Trigger sync of configured offline map package to specified bay (Dock). Must first configure via configure offline map manifest API before triggering sync. - Map > Offline Map [Get Project Offline Map Details](https://41b04hdzmc.apifox.cn/473848091e0.md): Query current project's offline map details: included 2D / 3D model list, conversion progress percentage, status. If offline map is not configured, data contains disable: true. - Map > Offline Map [Configure Project Offline Map Manifest (Start New Update)](https://41b04hdzmc.apifox.cn/473848092e0.md): Configure project's offline map manifest (specify which 2D / 3D models to include) and start a new conversion flow. After configuration, server enters conversion queue: unknown → processing → success / failed; use GET offline-maps API to poll progress. At least one of model_2d_items and model_3d_items must be configured. - Map > Offline Map [Cancel Offline Map Model Update](https://41b04hdzmc.apifox.cn/473848093e0.md): Cancel ongoing offline map conversion flow; effective only for processing / pending states. Generated packages will not sync to devices; status changes to failed (reason: user_cancelled). - Livestream > Livestream Sharing & Forwarding > Bypass Streaming [Query Current Organization Bypass Transcoder List](https://41b04hdzmc.apifox.cn/473848094e0.md): Query all C2C bypass stream transcoders under current organization (identified by X-Organization-Key). - Livestream > Livestream Sharing & Forwarding > Bypass Streaming [Create / Enable / Disable / Update Stream Forwarder](https://41b04hdzmc.apifox.cn/473848095e0.md): This endpoint executes four operations based on the request body: - Livestream > Livestream Sharing & Forwarding > Bypass Streaming [Stop and Delete Specified Bypass Transcoder (C2C Livestream Bypass)](https://41b04hdzmc.apifox.cn/473848096e0.md): Stop specified transcoder (converter_id) and delete its configuration. - Livestream > Livestream Sharing & Forwarding > Livestream Sharing [Get Device Livestream Share Details](https://41b04hdzmc.apifox.cn/473848097e0.md): Query device livestream share details by device SN under current project; returns null if not found. - Livestream > Livestream Sharing & Forwarding > Livestream Sharing [Query All Livestream Share Links Under Project](https://41b04hdzmc.apifox.cn/473848098e0.md): Returns list of all livestream share links accessible by logged-in user under current project (only includes unexpired, uncancelled, and devices in active set of this project). - Livestream > Livestream Push > Project Level [Start Livestream (Project Level)](https://41b04hdzmc.apifox.cn/473848099e0.md): Project-level start of aircraft livestream push; selects push engine by provider (agora/rtmp/Volcano, etc.); returns pull stream URL and expiration timestamp. - Livestream > Livestream Push > Project Level [Update Viewer Tokens (Project Level)](https://41b04hdzmc.apifox.cn/473848100e0.md): Batch refresh stream engine access tokens for a group of Web viewers who have joined livestream room (prevents viewer disconnection). list must have at least 1 item. - Livestream > Livestream Push > Project Level [Switch Camera (Project Level)](https://41b04hdzmc.apifox.cn/473848101e0.md): Send switch-lens command to aircraft, corresponding to physical gimbal/camera lens switch. - Livestream > Livestream Push > Project Level [Switch Livestream Camera (Project Level)](https://41b04hdzmc.apifox.cn/473848102e0.md): Switch aircraft primary push stream camera (multi-camera models, e.g. H30 / M3D series). Refer to model camera capabilities for specific values. - Livestream > Livestream Push > Project Level [Report Viewer Join Livestream Room Status (Project Level)](https://41b04hdzmc.apifox.cn/473848103e0.md): Viewer reports join success/failure after joining livestream room; server updates room viewer count accordingly. - Livestream > Livestream Push > Project Level [Stop Livestream (Project Level)](https://41b04hdzmc.apifox.cn/473848104e0.md): Stop livestream push for specified device. - Livestream > Livestream Push > Project Level [Set Livestream Quality (Project Level, aircraft source-side push level)](https://41b04hdzmc.apifox.cn/473848105e0.md): Dynamically adjust video quality of streaming device without stopping/restarting stream. - Livestream > Livestream Push > Project Level [Query Device Livestream and Recording Status (Project Level)](https://41b04hdzmc.apifox.cn/473848106e0.md): Aggregated query of a device's current livestream push and recording task status; response includes user info such as created_by. - Livestream > Livestream Push > Organization Level [Stop Livestream (Organization Level)](https://41b04hdzmc.apifox.cn/473848107e0.md): Stop livestream push for specified device. - Livestream > Livestream Push > Organization Level [Set Livestream Quality (Organization Level, aircraft source-side push level)](https://41b04hdzmc.apifox.cn/473848108e0.md): Dynamically adjust video quality of streaming device without stopping/restarting stream. - Livestream > Livestream Push > Organization Level [Report Viewer Join Livestream Room Status (Organization Level)](https://41b04hdzmc.apifox.cn/473848109e0.md): Viewer reports join success/failure after joining livestream room; server updates room viewer count accordingly. - Livestream > Livestream Push > Organization Level [Start Livestream (Organization Level)](https://41b04hdzmc.apifox.cn/473848110e0.md): Organization-level start of aircraft livestream push; selects push engine by provider; returns pull stream URL and expiration timestamp. Functionality same as project-level start livestream API; difference is that resource identifier uses org_uuid. - Livestream > Livestream Push > Organization Level [Switch Camera (Organization Level, also controls aircraft source-side hardware)](https://41b04hdzmc.apifox.cn/473848111e0.md): Send switch-lens command to aircraft, corresponding to physical gimbal/camera lens switch. - Livestream > Livestream Push > Organization Level [Update Viewer Tokens (Organization Level)](https://41b04hdzmc.apifox.cn/473848112e0.md): Batch refresh stream engine access tokens for a group of Web viewers who have joined livestream room; list must have at least 1 item. - Livestream > Livestream Push > Organization Level [Switch Livestream Camera (Organization Level)](https://41b04hdzmc.apifox.cn/473848113e0.md): Switch aircraft primary push stream camera (multi-camera models). - Livestream > Recording Task Management [Start Cloud Recording (Project Level)](https://41b04hdzmc.apifox.cn/473848114e0.md): Start cloud recording of aircraft livestream; server automatically obtains storage STS from file-storage; **client does not need to pass store_config**. - Livestream > Recording Task Management [Stop Cloud Recording (Project Level)](https://41b04hdzmc.apifox.cn/473848115e0.md): Stop cloud recording for specified device; returns recording task BID for subsequent query. - Livestream > Recording Task Management [Query Device Recording Task List (Project Level)](https://41b04hdzmc.apifox.cn/473848116e0.md): Query all recording tasks registered for specified device in drc service. - Livestream > Recording Task Management [Start Intra-Project Livestream](https://41b04hdzmc.apifox.cn/473848117e0.md): Start intra-project livestream; new business should use the drc version API (Start Livestream). - Livestream > Recording Task Management [Query Device Recording Task List (Organization Level)](https://41b04hdzmc.apifox.cn/473848118e0.md): Query all recording tasks registered for specified device. - Livestream > Recording Task Management [Start Cloud Recording (Organization Level)](https://41b04hdzmc.apifox.cn/473848119e0.md): Start aircraft cloud recording; server automatically obtains storage STS from file-storage; **client does not need to pass store_config**. - Livestream > Recording Task Management [Stop Cloud Recording (Organization Level)](https://41b04hdzmc.apifox.cn/473848120e0.md): Stop cloud recording for specified device; returns recording task BID for subsequent query. - Livestream > Recording Task Management [Stop Intra-Project Livestream Recording](https://41b04hdzmc.apifox.cn/473848121e0.md): Stop cloud recording for specified device; response is passthrough result (includes recording task bid). New business should use drc version API (Stop Cloud Recording). - Media > Flight Task Association [Query Flight Task Media by flight_id](https://41b04hdzmc.apifox.cn/473848122e0.md): Query media resources (images or videos) captured by a flight task by flight_id; used to retrieve flight outputs after completion. - Media > Flight Task Association [Batch Query Flight Media by flight_ids](https://41b04hdzmc.apifox.cn/473848123e0.md): Query flight task media by multiple flight_ids in one call; returns 2D array structure (outer corresponds to flight_id, inner is media entries for that flight); avoids loop single-queries. - Media > File Statistics and Query [Get Media File Count (by Folder Granularity)](https://41b04hdzmc.apifox.cn/473848124e0.md): Count media files by parent folder + file type filter, for badge number display at folder hierarchy. - Media > File Statistics and Query [Get Total Media File Count (Project-Wide)](https://41b04hdzmc.apifox.cn/473848125e0.md): Filter and Count Current Project's Media by File Type (Project-Level, Not by Folder) - Media > File Statistics and Query [Get Media Resource Files (Images + Folders)](https://41b04hdzmc.apifox.cn/473848126e0.md): Unified resource list API for media library; service forces file_types=[image, dir]; returns only images and folders (no videos); suitable for advanced filtering (move scenarios, complex multi-filters). Distinguished from simplified GET /files. - Media > Media File CRUD [Batch Set Media Map Display Status](https://41b04hdzmc.apifox.cn/473848127e0.md): Batch set multiple media files to "Display on Map" or "Hide" (used for map overlay display of capture points). Supports precise handling by ID list or batch handling by select-all + filter conditions. - Media > Media File CRUD [Batch Delete Media Files - to Recycle Bin](https://41b04hdzmc.apifox.cn/473848128e0.md): Batch soft-delete media files / folders; deleted items enter recycle bin; supports batch handling by ID or select-all filter conditions. Returns 200 immediately after request is received; deletion executes asynchronously in background; client confirms results via list API. - Media > Media File CRUD [Create Media Folder](https://41b04hdzmc.apifox.cn/473848129e0.md): Create a folder (file_type=1) in media library to organize media hierarchy. > This API supports multiple operation modes: returns `{id}` when creating folder; returns paginated file array when querying file list. - Media > Media File CRUD [Get Media File List](https://41b04hdzmc.apifox.cn/473848130e0.md): Media library main list API; supports multi-dimensional filtering by file type combination, map display, folder hierarchy, keyword, device/payload model, time range, tag, task type, etc. - Media > Media File CRUD [Media File Cropping](https://41b04hdzmc.apifox.cn/473848131e0.md): Generate a new sub-image from specified media image by user-selected rectangle area, used for AI task sample annotation. - Media > Media File CRUD [Batch Move Media Files](https://41b04hdzmc.apifox.cn/473848132e0.md): Move multiple media files / folders to target parent folder; supports precise move by ID list or batch move by select-all + filter conditions. - Media > Media File CRUD [Delete Single Media File](https://41b04hdzmc.apifox.cn/473848133e0.md): Delete specified single media file. Soft delete to recycle bin by default; permanently delete via destroy=true. - Media > Media File CRUD [Get Media File Details](https://41b04hdzmc.apifox.cn/473848134e0.md): Get details by media file ID: basic attributes / EXIF / GPS / capture device / tags / share status / AI video processing status / panorama tiling status, etc. - Media > Media File CRUD [Update Media File Info](https://41b04hdzmc.apifox.cn/473848135e0.md): Update single media file metadata: rename / permission bit / tag / map display switch / restore from recycle bin, etc. - Media > Media File CRUD [Batch Hard Delete Media Files - Not to Recycle Bin](https://41b04hdzmc.apifox.cn/473848136e0.md): Batch permanently delete media files directly from storage (no recycle bin, irrecoverable). Returns 200 immediately after request is received; actual deletion executes asynchronously in background. - Media > Download and Upload [Quick Upload Media File](https://41b04hdzmc.apifox.cn/473848137e0.md): For files with same fingerprint already existing on OSS, skip actual upload and directly register record to media library (instant upload). - Media > Download and Upload [Import Media File](https://41b04hdzmc.apifox.cn/473848138e0.md): Import media files from external sources (e.g. datahub datasets / AI task workflow nodes) to current project's media library. - Media > Download and Upload [Check New File Fingerprint Existence Status](https://41b04hdzmc.apifox.cn/473848139e0.md): Batch deduplicate using tiny fingerprints before uploading new files; returns set of existing fingerprints on server; frontend computes diff to decide which files to upload. - Media > Download and Upload [Annotation Callback](https://41b04hdzmc.apifox.cn/473848140e0.md): After client uploads annotation layer (containing several annotation items) for image to OSS, calls this API to register to media library. - Media > Download and Upload [Media Upload Completion Callback](https://41b04hdzmc.apifox.cn/473848141e0.md): After client directly uploads media file to OSS, calls this API to register media metadata (EXIF / GPS / capture device / associated flight task, etc.) and complete ingestion. - Media > Download and Upload [Check ZIP Package Task Status](https://41b04hdzmc.apifox.cn/473848142e0.md): Query batch ZIP package task status; used to determine download method (single package vs chunked). - Media > Download and Upload [Package Media Files into ZIP](https://41b04hdzmc.apifox.cn/473848143e0.md): Package multiple media files / folders into ZIP and store to OSS for batch download. ZIP generation is async; progress can be queried via zip-check API. - Media > Download and Upload [Get Media File Download URL](https://41b04hdzmc.apifox.cn/473848144e0.md): Get OSS signed download URL of specified media file; server redirects directly to OSS via 302 (response does not return business JSON). Supports image zoom parameters (w/h/q) and AI video version switching. - Media > Tag Management [Add Tag to Media File](https://41b04hdzmc.apifox.cn/473848145e0.md): Add one or more tags to specified media file; tags can be used for subsequent filtering. - Media > Tag Management [Delete Media File Tag](https://41b04hdzmc.apifox.cn/473848146e0.md): Remove a tag from specified media file (form parameter tag_name, single value). - Media > Tag Management [Get Media File Tag List Under Project](https://41b04hdzmc.apifox.cn/473848147e0.md): Query all media file tags used in current project; for tag filter / auto-complete suggestions. - Model > Model Reconstruction [Get Flight Task Folder List V2](https://41b04hdzmc.apifox.cn/473847874e0.md): Query associated media folder list by wayline (wayline_uuid), includes expected file count / uploaded file count / upload completion status. - Model > Model Reconstruction [Get Real-time Mapping Task List](https://41b04hdzmc.apifox.cn/473847875e0.md): Query all real-time mapping (Realtime2D) task list of current project; supports filtering by status, name, UUID. Returns Job object list with metadata such as task status, progress, coverage area. - Model > Model Reconstruction [Initiate Real-time Mapping Task (Realtime2D)](https://41b04hdzmc.apifox.cn/473847876e0.md): Initiate a real-time mapping (Realtime2D) task (mapping during flight). Server returns OSS upload STS credentials for image source upload + started Job info + resource info. Note: Different from post-processing reconstruction ("Initiate Post-Processing Reconstruction Task (Post 2D / 3D)" API), this API goes through reconstruction svc; used for Realtime2D business layering. - Model > Model Reconstruction [Get Project Model Library Default Settings](https://41b04hdzmc.apifox.cn/473847877e0.md): Query project's default coordinate system (WKT Format); used for coordinate system parameters of model format conversion and post-processing reconstruction tasks. - Model > Model Reconstruction [Initiate Post-Processing Reconstruction Task (Post 2D / 3D)](https://41b04hdzmc.apifox.cn/473847878e0.md): Initiate post-processing reconstruction task (2D or 3D) based on uploaded media materials; can specify output format / quality level / ROI / ground control points / coordinate system. Business Constraint: concurrent reconstruction tasks on same model library file are not allowed. - Model > Model Reconstruction [Get Post-Reconstruction Default ROI](https://41b04hdzmc.apifox.cn/473847879e0.md): Calculate and return default ROI (convex hull of media coverage range) based on specified media folder list; used to specify processing range in post-reconstruction tasks. - Model > Model Reconstruction [Get Post-Reconstruction Quality Report Download Link](https://41b04hdzmc.apifox.cn/473847880e0.md): Get quality report download link of completed post-processing reconstruction task (includes reconstruction quality assessment, checkpoint/control point error, aerial triangulation precision). - Model > Model Reconstruction [Post-Reconstruction Task Retry](https://41b04hdzmc.apifox.cn/473847881e0.md): Retry failed post-reconstruction tasks; restart using original task's reconstruction parameters and configuration. Stopped tasks cannot be retried. - Model > Model Reconstruction [Stop Post-Reconstruction Task](https://41b04hdzmc.apifox.cn/473847882e0.md): Stop running post-reconstruction task; task status changes to stopped; generated intermediate results are retained. Cannot be retried after stopping. - Model > Model Reconstruction [Model Upload Completion Callback (called by client, not OSS signature verification)](https://41b04hdzmc.apifox.cn/473847883e0.md): After client directly uploads model file to OSS using STS credentials, calls this API to notify server to register and persist (includes parent directory, map display flag, file type, etc.). On-premises scenarios skip paid validation; public cloud goes through storage resource validation. - Model > Model Reconstruction [Query Wayline List Available for Model Reconstruction](https://41b04hdzmc.apifox.cn/473847884e0.md): Query wayline list available for model reconstruction in current project (includes name, template type, last flight time, GSD, etc.). - Model > Model Library > Model File Management [Batch Delete Model Files](https://41b04hdzmc.apifox.cn/473847885e0.md): Batch delete model files; locked files are rejected (returns PermissionDenied). Can specify ids for selective delete, or selected_parent_id + filter conditions for select-all delete. - Model > Model Library > Model File Management [Get Project Model File List](https://41b04hdzmc.apifox.cn/473847886e0.md): Query project model file list; supports search, pagination, filtering by file type/model status/share status. - Model > Model Library > Model File Management [Create Model Folder](https://41b04hdzmc.apifox.cn/473847887e0.md): Create model folder (folder only; file upload not supported). - Model > Model Library > Model File Management [Batch Toggle Model Map Display Status](https://41b04hdzmc.apifox.cn/473847888e0.md): Batch toggle multiple attributes of models on map: show/hide + distribute + display mode + altitude mode, etc. When show_on_map is null, permission check is skipped. ids and select_filter are mutually exclusive. - Model > Model Library > Model File Management [Lock / Unlock Model File](https://41b04hdzmc.apifox.cn/473847889e0.md): Lock specified model file to prevent deletion; locked files cannot be deleted. - Model > Model Library > Model File Management [Batch Move Model Files](https://41b04hdzmc.apifox.cn/473847890e0.md): Batch move model files to target parent folder. Can use ids for selective move, or selected_parent_id + filter conditions for select-all move. If ids is non-empty, selected_parent_id is ignored. - Model > Model Library > Model File Management [Intra-Org Model Sharing](https://41b04hdzmc.apifox.cn/473847891e0.md): Share Several Model Files Under Current Project with Other Projects in Organization - Model > Model Library > Model File Management [Get Total Model File Count](https://41b04hdzmc.apifox.cn/473847892e0.md): Count total model files under current filter conditions. Filter conditions share the same DTO as the project model file list API ("Get Project Model File List" API). - Model > Model Library > Model File Management [Delete Single Model File](https://41b04hdzmc.apifox.cn/473847893e0.md): Delete single model file; locked files return PermissionDenied. Supports two modes: recycle bin delete (default) and permanent delete. - Model > Model Library > Model File Management [Get Model File Details](https://41b04hdzmc.apifox.cn/473847894e0.md): Get complete model file details, including mapping metadata (coverage area / GSD / source image count), coordinate system, display attributes, etc. - Model > Model Library > Model File Management [Update Model Basic Info](https://41b04hdzmc.apifox.cn/473847895e0.md): Update model basic info (name / altitude mode / display mode / capture time); name cannot contain /. - Model > Model Library > Model File Management [Get Model File Download URL](https://41b04hdzmc.apifox.cn/473847896e0.md): Get OSS signed download URL of model file. type defaults to 1 (standard download link). - Model > Model Library > Model File Management [Initiate Model Format / Coordinate System Conversion Task](https://41b04hdzmc.apifox.cn/473847897e0.md): Convert a completed 3D / 2D model to specified coordinate system (WKT format). Target WKT must be a valid value returned by coordinate system list API ("Get Available Coordinate System (WKT) List for Project" API). - Model > Model Library > Model File Management [Get Available Coordinate System (WKT) List for Project](https://41b04hdzmc.apifox.cn/473847898e0.md): Returns list of all available coordinate systems (WKT string list) for current project; categorized into Projected and Geocentric. Each coordinate system contains name and wkt fields; can be used in Initiate Model Format/Coordinate System Conversion Task API. - Model > Model Library > Map Display [Batch Set Terrain Loading Status of Real-time Mapping Models](https://41b04hdzmc.apifox.cn/473847899e0.md): Batch set terrain loading status for multiple real-time mapping tasks; used for batch operations on the map display page. - Model > Model Library > Map Display [Adjust Display Order of Real-time Mapping Models (Drag-and-Drop Sort)](https://41b04hdzmc.apifox.cn/473847900e0.md): Adjusts the display order of a group of real-time mapping models on the map via drag-and-drop sorting. - Model > Model Library > Map Display [Update Mapping Task Metadata (Rename / Show-Hide / Distribute / Undistribute / Toggle Terrain)](https://41b04hdzmc.apifox.cn/473847901e0.md): Update metadata of a single real-time mapping task (name, show/hide, distribute/undistribute, terrain loading status). Only tasks in Completed (status=3) or Failed (status=4) state can be modified. - Model > Model Library > Map Display [Get Map Page Model Layer List](https://41b04hdzmc.apifox.cn/473847902e0.md): Query model layer list available for map display in current project (from post-processing reconstruction results). Supports filtering by status, distribution status, file type. - Model > Model Library > Map Display [Batch Toggle Map Model Layer Attributes](https://41b04hdzmc.apifox.cn/473847903e0.md): Batch toggle show/hide + terrain loading status of Post-processing reconstruction models on map page. At least one of show_on_map / elevation_load_status must have value. - Model > Model Library > Map Display [Adjust Map Model Layer Stacking Order](https://41b04hdzmc.apifox.cn/473847904e0.md): Adjust the layer stacking order of Post-Processing reconstruction models on the map page (drag-and-drop sort). - Recycle Bin [Hard Delete Single Media File](https://41b04hdzmc.apifox.cn/473848157e0.md): Permanently delete single media file or folder directly from storage (no recycle bin, irrecoverable). Protected directory types (livestream recording directory, 2D real-time mapping directory, organization data directory) cannot be deleted. - Recycle Bin [Restore File from Recycle Bin](https://41b04hdzmc.apifox.cn/473848158e0.md): Batch restore specified files or folders from recycle bin to original location; if original parent folder is also deleted, restored to project root. Returns 200 immediately after request is received; actual restoration executes asynchronously in background; client cannot determine final success/failure from response; must confirm results via list API. - Recycle Bin [Permanently Delete Recycle Bin Files](https://41b04hdzmc.apifox.cn/473848159e0.md): Batch permanently delete specified files or folders from recycle bin storage (irrecoverable). Returns 200 immediately after request is received; actual deletion executes asynchronously in background; client cannot determine final success/failure from response; must confirm results via list API. - Recycle Bin [Get Media Recycle Bin File List](https://41b04hdzmc.apifox.cn/473848160e0.md): Query file list in current project's media recycle bin; supports filtering by file name keyword, file type, paginated browsing, and browsing children within deleted folders. - Recycle Bin [Modify Media Recycle Bin Configuration](https://41b04hdzmc.apifox.cn/473848161e0.md): Update media recycle bin file retention days policy; files exceeding the days will be automatically and permanently cleaned up. - Recycle Bin [Get Media Recycle Bin Configuration](https://41b04hdzmc.apifox.cn/473848162e0.md): Read current project's media recycle bin auto-cleanup policy, i.e. maximum days files are retained in recycle bin. Returns default value 30 for unset projects. - Recycle Bin [Get Model Library Recycle Bin Disk Statistics](https://41b04hdzmc.apifox.cn/473848163e0.md): Count file usage by file type in current project's model library recycle bin; returns total, used space, remaining space, and per-type breakdown. - Recycle Bin [Get Media Recycle Bin Disk Statistics](https://41b04hdzmc.apifox.cn/473848164e0.md): Count file usage by file type in current project's media recycle bin; returns total, used space, remaining space, and per-type breakdown. - Advanced Capabilities > Change Detection > Media Change Detection [Initiate Media Spot-the-Difference Task](https://41b04hdzmc.apifox.cn/473848165e0.md): Initiate AI spot-the-difference detection task based on two photo groups (original + comparison); identifies changes between two aerial captures (e.g. addition or disappearance of persons / vehicles / vessels). - Advanced Capabilities > Change Detection > Media Change Detection [Query Media Spot-the-Difference Task List](https://41b04hdzmc.apifox.cn/473848166e0.md): Query media spot-the-difference task list under current project. - Advanced Capabilities > Change Detection > Media Change Detection [Delete Spot-the-Difference Task](https://41b04hdzmc.apifox.cn/473848167e0.md): Delete specified spot-the-difference task and all its diff result data. - Advanced Capabilities > Change Detection > Media Change Detection [Modify Spot-the-Difference Task Name and Other Attributes](https://41b04hdzmc.apifox.cn/473848168e0.md): Update spot-the-difference task metadata (e.g. rename). - Advanced Capabilities > Change Detection > Media Change Detection [Get Spot-the-Difference Task Details](https://41b04hdzmc.apifox.cn/473848169e0.md): Get specified spot-the-difference task details (includes diff area statistics, result group list, task status, etc.). - Advanced Capabilities > Change Detection > Media Change Detection [Evaluate Spot-the-Difference Task](https://41b04hdzmc.apifox.cn/473848170e0.md): User evaluates a completed AI spot-the-difference task (1-5 stars + keyword tags + text comments ≤ 500 chars); used by product for detection quality satisfaction collection and algorithm iteration. If only status is passed, indicates user voluntarily closed popup (not yet really evaluated); if `rating_star ≠ 0` is passed, represents completed evaluation; automatically sets status to 3 (Evaluation Completed, no more popup). - Advanced Capabilities > Change Detection > Media Change Detection [Batch Modify Spot-the-Difference Result Status](https://41b04hdzmc.apifox.cn/473848171e0.md): Batch modify result group attributes (e.g. batch mark as "manually reviewed" / "false positive excluded"). - Advanced Capabilities > Change Detection > Media Change Detection [Delete Change Area](https://41b04hdzmc.apifox.cn/473848172e0.md): Delete Specified Diff Area. - Advanced Capabilities > Change Detection > Media Change Detection [Add Change Area (Manual Annotation)](https://41b04hdzmc.apifox.cn/473848173e0.md): Manually add a diff area in the result group. - Advanced Capabilities > Change Detection > Media Change Detection [Update Change Area Attributes](https://41b04hdzmc.apifox.cn/473848174e0.md): Update specified diff area attributes (e.g. category / color / description / whether manually confirmed). - Advanced Capabilities > Change Detection > Media Change Detection [Get Media Upload STS Credentials](https://41b04hdzmc.apifox.cn/473848175e0.md): Get STS temporary credentials for direct media upload to OSS. After obtaining, client directly PUTs file to OSS, then calls upload-callback to register. - Advanced Capabilities > Change Detection > Media Change Detection [Media Spot-the-Difference Task Pre-check](https://41b04hdzmc.apifox.cn/473848176e0.md): Before creating spot-the-difference task, perform image matching pre-check on two photo sets (e.g. resolution / angle / overlap); returns whether suitable for comparison. - Advanced Capabilities > Change Detection > Media Change Detection [View Spot-the-Difference Detection Report](https://41b04hdzmc.apifox.cn/473848177e0.md): Get spot-the-difference task detection report (PDF / HTML format). - Advanced Capabilities > Change Detection > Media Change Detection [Get Photo Group AI Spot-the-Difference Result List](https://41b04hdzmc.apifox.cn/473848178e0.md): Query result group list of spot-the-difference task (grouped by photo pair; each group contains several diff areas). - Advanced Capabilities > Change Detection > Media Change Detection [Get Change Area Details in Result Group](https://41b04hdzmc.apifox.cn/473848179e0.md): Get details of all diff areas in specified result group (includes location / category / color / description). - Advanced Capabilities > Change Detection > Model Change Detection [Initiate Model Comparison Task (Spot-the-Difference)](https://41b04hdzmc.apifox.cn/473848180e0.md): Initiate a "spot-the-difference" AI detection task based on two 3D models (reference model + comparison model); identifies changes between two modelings (e.g. added / disappeared objects). Tasks execute asynchronously; results polled via list / detail APIs. - Advanced Capabilities > Change Detection > Model Change Detection [Query Model Comparison Task List](https://41b04hdzmc.apifox.cn/473848181e0.md): Query model comparison task list under current project; supports filtering by name / time range / associated wayline. - Advanced Capabilities > Change Detection > Model Change Detection [Modify Model Comparison Task Name and Other Attributes](https://41b04hdzmc.apifox.cn/473848182e0.md): Update metadata of specified model comparison task (e.g. rename). - Advanced Capabilities > Change Detection > Model Change Detection [Get Model Comparison Task Result Details](https://41b04hdzmc.apifox.cn/473848183e0.md): Get details of specified model comparison task result: task status / progress / diff area list / generated detection report status. - Advanced Capabilities > Change Detection > Model Change Detection [Delete Model Comparison Task](https://41b04hdzmc.apifox.cn/473848184e0.md): Delete specified model comparison task and its diff area result data. - Advanced Capabilities > Change Detection > Model Change Detection [Batch Update Model Comparison Diff](https://41b04hdzmc.apifox.cn/473848185e0.md): Batch modify attributes of multiple diff areas in comparison task (e.g. mark as "manually reviewed" / "false positive excluded" / modify description). - Advanced Capabilities > Change Detection > Model Change Detection [Delete Model Comparison Diff](https://41b04hdzmc.apifox.cn/473848186e0.md): Delete specified diff area in comparison task. - Advanced Capabilities > Change Detection > Model Change Detection [Add Model Comparison Diff (Manual Annotation)](https://41b04hdzmc.apifox.cn/473848187e0.md): Manually add a diff area in the comparison task (used to supplement changes not detected by AI). - Advanced Capabilities > Change Detection > Model Change Detection [Update Single Model Comparison Diff Details](https://41b04hdzmc.apifox.cn/473848188e0.md): Update attributes of specified diff area (e.g. description, range, manual flag). - Advanced Capabilities > Change Detection > Model Change Detection [Get Model Comparison Detection Report](https://41b04hdzmc.apifox.cn/473848189e0.md): Get comparison task's detection report (PDF format, multilingual versions). Returns OSS signed URL for download. - Advanced Capabilities > Change Detection > Model Change Detection [Query Candidate Models Suitable for Model Comparison](https://41b04hdzmc.apifox.cn/473848190e0.md): Recommend other models available for "spot-the-difference" comparison based on specified model (sorted by time proximity, coverage area proximity, source wayline consistency, etc.). - Advanced Capabilities > Change Detection > Model Change Detection [Evaluate Model Comparison Task](https://41b04hdzmc.apifox.cn/473848191e0.md): User evaluates a completed model AI spot-the-difference task (1-5 stars + keyword tags + text comments ≤ 500 chars); used by product for detection quality satisfaction collection and algorithm iteration. If only status is passed, indicates user voluntarily closed popup (not yet really evaluated); if `rating_star ≠ 0` is passed, represents completed evaluation; automatically sets status to 3 (Evaluation Completed, no more popup). Shares evaluation logic with media spot-the-difference API; associated via task_uuid (UUID is globally unique). - Open Modeling [Get In-Progress Reconstruction Model Details](https://41b04hdzmc.apifox.cn/473848148e0.md): Get details of model in reconstruction. **model status Enum** - Open Modeling [Get Resource Details](https://41b04hdzmc.apifox.cn/473848149e0.md): Get resource details for querying resource status and size. **resource status Enum** - Open Modeling [Delete Resource](https://41b04hdzmc.apifox.cn/473848150e0.md): Delete resources, used to delete uploaded resources and free storage space. - Open Modeling [Get Upload Credentials](https://41b04hdzmc.apifox.cn/473848151e0.md): Get upload credentials for uploading files to cloud storage. - Open Modeling [Start Reconstruction Task](https://41b04hdzmc.apifox.cn/473848152e0.md): 1. Start reconstruction task; used to start reconstruction tasks; can build multiple model types simultaneously, but at least one `parameter_` parameter must be passed. - Open Modeling [Upload Callback](https://41b04hdzmc.apifox.cn/473848153e0.md): Upload Callback; used after file upload to notify which file resources need to be copied. - Open Modeling [Stop Reconstruction Task](https://41b04hdzmc.apifox.cn/473848154e0.md): - Open Modeling [Get Model Details](https://41b04hdzmc.apifox.cn/473848155e0.md): Get model details for querying model status, size, and task progress. **model status Enum** - Open Modeling [Delete Model](https://41b04hdzmc.apifox.cn/473848156e0.md): Delete model; used to delete models and free storage space. If model is being processed for modeling, modeling will also be stopped synchronously. ## Schemas - Default Directory [StsCredentials](https://41b04hdzmc.apifox.cn/285234794d0.md): - Default Directory [PutWorkspacesWaylinesBatchDeleteResp](https://41b04hdzmc.apifox.cn/285234795d0.md): - Default Directory [PutWorkspacesWaylinesLockStatusResp](https://41b04hdzmc.apifox.cn/285234796d0.md): - Default Directory [C0160_GetFlightTaskAdvanced_Resp](https://41b04hdzmc.apifox.cn/285234797d0.md): - Default Directory [C0617_GetFlightTasks_Resp](https://41b04hdzmc.apifox.cn/285234798d0.md): - Default Directory [StsResult](https://41b04hdzmc.apifox.cn/285234799d0.md): - Default Directory [C0619_CreateBatchDownload_Resp](https://41b04hdzmc.apifox.cn/285234800d0.md): - Default Directory [GetWorkspacesFilesCompareFilesResp](https://41b04hdzmc.apifox.cn/285234801d0.md): - Default Directory [ProjectTeamGetDevicesRsp](https://41b04hdzmc.apifox.cn/285234802d0.md): - Default Directory [PostWorkspacesStsResp](https://41b04hdzmc.apifox.cn/285234803d0.md): - Default Directory [Resp](https://41b04hdzmc.apifox.cn/285234804d0.md): - Default Directory [ApiEnvelope](https://41b04hdzmc.apifox.cn/285234805d0.md): - Default Directory [ServiceError](https://41b04hdzmc.apifox.cn/285234806d0.md): - Default Directory [PagyInfo](https://41b04hdzmc.apifox.cn/285234807d0.md): - Default Directory [GetDiffMediaTaskIdGetReportResp](https://41b04hdzmc.apifox.cn/285234808d0.md): - Default Directory [GetWorkspacesByWorkspaceIdComparatorsByTaskUuidResultGroupsResp](https://41b04hdzmc.apifox.cn/285234809d0.md): - Default Directory [GetWorkspacesByWorkspaceIdComparatorsByTaskUuidResultGroupsByResultUuidResp](https://41b04hdzmc.apifox.cn/285234810d0.md): - Default Directory [PostWorkspacesComparatorsResultGroupsDiffDetailResp](https://41b04hdzmc.apifox.cn/285234811d0.md): - Default Directory [DeleteWorkspacesComparatorsResultGroupsDiffDetailResp](https://41b04hdzmc.apifox.cn/285234812d0.md): - Default Directory [GetDiffModelTaskIdGetResultResp](https://41b04hdzmc.apifox.cn/285234813d0.md): - Default Directory [PostWorkspacesComparatorsDiffDetailResp](https://41b04hdzmc.apifox.cn/285234814d0.md): - Default Directory [DeleteWorkspacesComparatorsDiffDetailResp](https://41b04hdzmc.apifox.cn/285234815d0.md): - Default Directory [GetDiffModelTaskIdGetReportResp](https://41b04hdzmc.apifox.cn/285234816d0.md): - Default Directory [GetWorkspacesComparatorsMatchImageResp](https://41b04hdzmc.apifox.cn/285234817d0.md): - Default Directory [ApiPagedEnvelope](https://41b04hdzmc.apifox.cn/285234818d0.md): - Default Directory [InitPermissionTreeNode](https://41b04hdzmc.apifox.cn/285234819d0.md): - Default Directory [PutWorkspacesWaylineMoveResp](https://41b04hdzmc.apifox.cn/285234820d0.md): - Default Directory [DeleteWorkspacesWaylinesByIdResp](https://41b04hdzmc.apifox.cn/285234821d0.md): - Default Directory [PostWorkspacesWaylinesConcatResp](https://41b04hdzmc.apifox.cn/285234822d0.md): - Default Directory [C0148_ExportRecords_Resp](https://41b04hdzmc.apifox.cn/285234823d0.md): - Default Directory [C0362_GetWaylineImportState_Resp](https://41b04hdzmc.apifox.cn/285234824d0.md): - Default Directory [ProjectTeamGetDevicesRspItem](https://41b04hdzmc.apifox.cn/285234825d0.md): - Default Directory [ProjectTeamGetDevicesRspItemBaseTopo](https://41b04hdzmc.apifox.cn/285234826d0.md): - Default Directory [DeviceModelEnum](https://41b04hdzmc.apifox.cn/285234827d0.md): - Default Directory [Position](https://41b04hdzmc.apifox.cn/285234828d0.md): - Default Directory [DeviceState_ea210dock](https://41b04hdzmc.apifox.cn/285234829d0.md): - Default Directory [DeviceState_ea220dock](https://41b04hdzmc.apifox.cn/285234830d0.md): - Default Directory [DeviceState_ea230dock](https://41b04hdzmc.apifox.cn/285234831d0.md): - Default Directory [DeviceState_ea210drone](https://41b04hdzmc.apifox.cn/285234832d0.md): - Default Directory [DeviceState_ea220drone](https://41b04hdzmc.apifox.cn/285234833d0.md): - Default Directory [DeviceState_ea230drone](https://41b04hdzmc.apifox.cn/285234834d0.md): - Default Directory [DeviceState_wm265](https://41b04hdzmc.apifox.cn/285234835d0.md): - Default Directory [DeviceState_wa345](https://41b04hdzmc.apifox.cn/285234836d0.md): - Default Directory [DeviceState_drone_other](https://41b04hdzmc.apifox.cn/285234837d0.md): - Default Directory [DeviceState_rc_other](https://41b04hdzmc.apifox.cn/285234838d0.md): - Default Directory [DeviceState_rc510](https://41b04hdzmc.apifox.cn/285234839d0.md): - Default Directory [DeviceState_rc701](https://41b04hdzmc.apifox.cn/285234840d0.md):