Skip to content

DJI Cloud API — overview

ARGUS integrates with DJI Dock 1 / 2 / 3 via the official DJI Cloud API. After pairing, a dock’s aircraft behaves like any other drone in the operation: appears in the fleet tile, shows up in TACLINK + DOCKS streams, can be flown manually via DRC, carries geofence enforcement, uploads media, and receives firmware pushes.

Architecture

Four services cooperate:

  • argus-dji — our Node.js MQTT bridge. Connects to an EMQX MQTT broker, handles every DJI MQTT topic (thing/product/{sn}/osd, /state, /events, /requests, /services, /services_reply), translates between DJI’s Thing-Model messages and ARGUS’s internal representations, writes state to Firestore, and publishes telemetry + video as TACLINK participants.
  • argus-api — our Node.js REST surface. The webapp calls argus-api; argus-api writes command docs to Firestore; argus-dji listens for commands and publishes MQTT.
  • Firestore — authoritative state store for dji_docks/{sn}, dji_aircraft/{sn}, dji_flight_tasks/{id}, dji_media/{id}, and dji_commands/{id}.
  • EMQX — the MQTT broker docks connect to. Hosted by ARGUS.

Feature pages

FeaturePage
Pair a dock to your orgPairing
Dock status + controls in-consoleDock tile
Auto-provisioned video ingressAuto-stream
WPML-KMZ mission dispatchFlight tasks
Manual real-time controlDRC
Long-range multi-dock chainMulti-dock relay
Polygon sync → aircraft-level enforcementGeofence / no-fly
DJI FlySafe unlock licencesFlySafe
Firmware binary upload + pushFirmware
Pull diagnostic logsRemote logs
Photos / videos / PPK-RTKMedia
On-aircraft AI detectionsAI detections

Required org config

Before you can pair your first dock, an org admin needs:

  • DJI App ID / App Key / App License — obtained from DJI Developer Center after your org registers a Cloud-API app.
  • EMQX endpoint + credentials — by default ARGUS provisions a shared EMQX. Orgs with compliance requirements can provision a dedicated broker.
  • Spare licence seat in your org’s DJI-dock quota.

All three live under Admin → Organisation → Integrations → DJI.

Supported dock models

  • Dock 1 — tested end-to-end. Limited by the DJI Cloud API’s Dock-1 surface (no DRC, fewer telemetry fields).
  • Dock 2 — full support including DRC + auto-stream.
  • Dock 3 — full support + Dock-3-specific features (night vision, spotlight, speaker, on-aircraft AI detection).

End-to-end lifecycle

  1. Admin pairs a dock (QR-code flow).
  2. Dock connects to EMQX, sends topology via update_topo.
  3. argus-dji receives, writes dji_docks/{sn} + dji_aircraft/{sn}.
  4. Operator assigns dock to mission → dji_docks/{sn}.missionId set.
  5. Auto-stream autopilot provisions WHIP ingress, publishes live_start_push to the dock.
  6. Dock pushes H.264 into the TACLINK room.
  7. Operator flies via DRC or dispatches a WPML mission.
  8. Dock uploads media during / after flight.
  9. Mission ends → auto-stream tears down, ingress deleted.