Command Payloads

This page lists the DJI cloud-to-device command_type values supported by 001 and their payload examples. Open Platform downlink commands all use POST /api/v1/open/downlink/commands; command_type maps to DJI services.method, and payload maps to DJI services.data.
payload must be a JSON object. No-argument commands use {} and must not omit the field.

Code Samples

The samples below show the request structure. Production clients must calculate the signature as documented in Authentication & Signing.
cURL
BODY='{"vendor":"dji","device_id":"drone-001","command_type":"camera_photo_take","payload":{"payload_index":"52-0-0"},"idempotency_key":"req-camera-photo-001","timeout_seconds":30}'
TIMESTAMP="$(date +%s)"
NONCE="$(uuidgen)"
SIGNATURE="YOUR_CALCULATED_SIGNATURE"

curl -X POST "https://dev.utmos.dev/api/v1/open/downlink/commands" \
  -H "Content-Type: application/json" \
  -H "X-Api-Id: YOUR_API_ID" \
  -H "X-Api-Timestamp: $TIMESTAMP" \
  -H "X-Api-Nonce: $NONCE" \
  -H "X-Api-Signature: $SIGNATURE" \
  -d "$BODY"
TypeScript
const body = {
  vendor: "dji",
  device_id: "drone-001",
  command_type: "camera_photo_take",
  payload: { payload_index: "52-0-0" },
  idempotency_key: "req-camera-photo-001",
  timeout_seconds: 30,
};

const timestamp = Math.floor(Date.now() / 1000).toString();
const nonce = crypto.randomUUID();
const signature = await signOpenPlatformRequest({
  method: "POST",
  path: "/api/v1/open/downlink/commands",
  timestamp,
  nonce,
  body: JSON.stringify(body),
  secret: "YOUR_API_SECRET",
});

const resp = await fetch("https://dev.utmos.dev/api/v1/open/downlink/commands", {
  method: "POST",
  headers: {
    "Content-Type": "application/json",
    "X-Api-Id": "YOUR_API_ID",
    "X-Api-Timestamp": timestamp,
    "X-Api-Nonce": nonce,
    "X-Api-Signature": signature,
  },
  body: JSON.stringify(body),
});

console.log(await resp.json());
Go
body := []byte(`{"vendor":"dji","device_id":"drone-001","command_type":"camera_photo_take","payload":{"payload_index":"52-0-0"},"idempotency_key":"req-camera-photo-001","timeout_seconds":30}`)
req, err := http.NewRequest(http.MethodPost, "https://dev.utmos.dev/api/v1/open/downlink/commands", bytes.NewReader(body))
if err != nil {
    return err
}

timestamp := strconv.FormatInt(time.Now().Unix(), 10)
nonce := uuid.NewString()
signature := signOpenPlatformRequest(http.MethodPost, "/api/v1/open/downlink/commands", timestamp, nonce, body, apiSecret)

req.Header.Set("Content-Type", "application/json")
req.Header.Set("X-Api-Id", apiID)
req.Header.Set("X-Api-Timestamp", timestamp)
req.Header.Set("X-Api-Nonce", nonce)
req.Header.Set("X-Api-Signature", signature)

resp, err := http.DefaultClient.Do(req)
if err != nil {
    return err
}
defer resp.Body.Close()

Full DJI Payload Catalog

air_conditioner_mode_switch

FieldTypeRequiredDescription
payload.actionintegeryesAir conditioner mode: 0=idle, 1=cooling, 2=heating, 3=dehumidify
{
  "action": 0
}

alarm_state_switch

FieldTypeRequiredDescription
payload.actionintegeryesAlarm state: 0=off, 1=on
{
  "action": 0
}

battery_maintenance_switch

FieldTypeRequiredDescription
payload.actionintegeryesBattery maintenance mode: 0=off, 1=on
{
  "action": 0
}

battery_store_mode_switch

FieldTypeRequiredDescription
payload.actionintegeryesBattery store mode: 1=plan, 2=standby
{
  "action": 0
}

charge_close

FieldTypeRequiredDescription
payloadobjectyesEmpty object {}
{}

charge_open

FieldTypeRequiredDescription
payloadobjectyesEmpty object {}
{}

cover_close

FieldTypeRequiredDescription
payloadobjectyesEmpty object {}
{}

cover_force_close

FieldTypeRequiredDescription
payloadobjectyesEmpty object {}
{}

cover_open

FieldTypeRequiredDescription
payloadobjectyesEmpty object {}
{}

debug_mode_close

FieldTypeRequiredDescription
payloadobjectyesEmpty object {}
{}

debug_mode_open

FieldTypeRequiredDescription
payloadobjectyesEmpty object {}
{}

device_format

FieldTypeRequiredDescription
payloadobjectyesEmpty object {}
{}

device_reboot

FieldTypeRequiredDescription
payloadobjectyesEmpty object {}
{}

drone_close

FieldTypeRequiredDescription
payloadobjectyesEmpty object {}
{}

drone_format

FieldTypeRequiredDescription
payloadobjectyesEmpty object {}
{}

drone_open

FieldTypeRequiredDescription
payloadobjectyesEmpty object {}
{}

putter_close

FieldTypeRequiredDescription
payloadobjectyesEmpty object {}
{}

putter_open

FieldTypeRequiredDescription
payloadobjectyesEmpty object {}
{}

sdr_workmode_switch

FieldTypeRequiredDescription
payload.link_workmodeintegeryesLink work mode: 0=SDR only, 1=4G enhanced
{
  "link_workmode": 0
}

supplement_light_close

FieldTypeRequiredDescription
payloadobjectyesEmpty object {}
{}

supplement_light_open

FieldTypeRequiredDescription
payloadobjectyesEmpty object {}
{}

camera_aim

FieldTypeRequiredDescription
payload.payload_indexstringyesCamera enumeration value
payload.camera_typestringyesCamera type: ir, wide, zoom
payload.lockedbooleanyesWhether aircraft head and gimbal relationship is locked
payload.xnumberyesTarget coordinate x (0-1)
payload.ynumberyesTarget coordinate y (0-1)
{
  "payload_index": "string",
  "camera_type": "string",
  "locked": true,
  "x": 0,
  "y": 0
}

camera_exposure_mode_set

FieldTypeRequiredDescription
payload.payload_indexstringyesCamera enumeration value
payload.camera_typestringyesCamera type: wide, zoom
payload.exposure_modeintegeryesExposure mode: 1=auto, 2=shutter_priority, 3=aperture_priority, 4=manual
{
  "payload_index": "string",
  "camera_type": "string",
  "exposure_mode": 0
}

camera_exposure_set

FieldTypeRequiredDescription
payload.payload_indexstringyesCamera enumeration value
payload.camera_typestringyesCamera type: wide, zoom
payload.exposure_valuestringyesExposure value: 1=-5.0EV, 2=-4.7EV, …, 16=0EV, …, 31=5.0EV, 255=FIXED
{
  "payload_index": "string",
  "camera_type": "string",
  "exposure_value": "string"
}

camera_focal_length_set

FieldTypeRequiredDescription
payload.payload_indexstringyesCamera enumeration value
payload.camera_typestringyesCamera type: ir, wide, zoom
payload.zoom_factornumberyesZoom factor (2-200 for visible light, 2-20 for IR)
{
  "payload_index": "string",
  "camera_type": "string",
  "zoom_factor": 0
}

camera_focus_mode_set

FieldTypeRequiredDescription
payload.payload_indexstringyesCamera enumeration value
payload.camera_typestringyesCamera type: wide, zoom (M30 series only supports zoom)
payload.focus_modeintegeryesFocus mode: 0=MF (manual), 1=AFS (auto single), 2=AFC (auto continuous)
{
  "payload_index": "string",
  "camera_type": "string",
  "focus_mode": 0
}

camera_focus_value_set

FieldTypeRequiredDescription
payload.payload_indexstringyesCamera enumeration value
payload.camera_typestringyesCamera type: wide, zoom (M30 series only supports zoom)
payload.focus_valueintegeryesFocus value (range from zoom_min_focus_value to zoom_max_focus_value in OSD)
{
  "payload_index": "string",
  "camera_type": "string",
  "focus_value": 0
}

camera_frame_zoom

FieldTypeRequiredDescription
payload.payload_indexstringyesCamera enumeration value
payload.camera_typestringyesCamera type: ir, wide, zoom
payload.lockedbooleanyesWhether aircraft head and gimbal relationship is locked
payload.xnumberyesTarget coordinate x (0-1)
payload.ynumberyesTarget coordinate y (0-1)
payload.widthnumberyesFrame width (0-1)
payload.heightnumberyesFrame height (0-1)
{
  "payload_index": "string",
  "camera_type": "string",
  "locked": true,
  "x": 0,
  "y": 0,
  "width": 0,
  "height": 0
}

camera_look_at

FieldTypeRequiredDescription
payload.payload_indexstringyesCamera enumeration value
payload.lockedbooleanyesWhether aircraft head and gimbal relationship is locked
payload.latitudenumberyesTarget point latitude (-90 to 90 degrees)
payload.longitudenumberyesTarget point longitude (-180 to 180 degrees)
payload.heightnumberyesTarget point height (meters, relative to takeoff point)
{
  "payload_index": "string",
  "locked": true,
  "latitude": 0,
  "longitude": 0,
  "height": 0
}

camera_mode_switch

FieldTypeRequiredDescription
payload.payload_indexstringyesCamera enumeration value
payload.camera_modeintegeryesCamera mode: 0=photo, 1=video
{
  "payload_index": "string",
  "camera_mode": 0
}

camera_photo_stop

FieldTypeRequiredDescription
payload.payload_indexstringyesCamera enumeration value
{
  "payload_index": "string"
}

camera_photo_take

FieldTypeRequiredDescription
payload.payload_indexstringyesCamera enumeration value
{
  "payload_index": "string"
}

camera_point_focus_action

FieldTypeRequiredDescription
payload.payload_indexstringyesCamera enumeration value
payload.camera_typestringyesCamera type: wide, zoom (M30 series only supports zoom)
payload.xnumberyesFocus point coordinate x (0-1)
payload.ynumberyesFocus point coordinate y (0-1)
{
  "payload_index": "string",
  "camera_type": "string",
  "x": 0,
  "y": 0
}

camera_recording_start

FieldTypeRequiredDescription
payload.payload_indexstringyesCamera enumeration value
{
  "payload_index": "string"
}

camera_recording_stop

FieldTypeRequiredDescription
payload.payload_indexstringyesCamera enumeration value
{
  "payload_index": "string"
}

camera_screen_drag

FieldTypeRequiredDescription
payload.payload_indexstringyesCamera enumeration value
payload.lockedbooleanyesWhether aircraft head and gimbal relationship is locked
payload.pitch_speednumberyesGimbal pitch speed (rad/s)
payload.yaw_speednumberyesGimbal yaw speed (rad/s, only effective when not locked)
{
  "payload_index": "string",
  "locked": true,
  "pitch_speed": 0,
  "yaw_speed": 0
}

camera_screen_split

FieldTypeRequiredDescription
payload.payload_indexstringyesCamera enumeration value
payload.enablebooleanyesWhether to enable split screen mode
{
  "payload_index": "string",
  "enable": true
}

gimbal_reset

FieldTypeRequiredDescription
payload.payload_indexstringyesPayload index (camera enumeration value)
payload.reset_modeintegeryesReset mode: 0=center, 1=down, 2=yaw center, 3=pitch down
{
  "payload_index": "string",
  "reset_mode": 0
}

drc_mode_enter

FieldTypeRequiredDescription
payload.mqtt_brokerobjectyesMQTT broker connection info
payload.osd_frequencyintegeryesOSD frequency (1-30 Hz)
payload.hsi_frequencyintegeryesHSI frequency (1-30 Hz)
{
  "mqtt_broker": {
    "address": "string",
    "client_id": "id-001",
    "username": "string",
    "password": "string",
    "expire_time": 0,
    "enable_tls": true
  },
  "osd_frequency": 0,
  "hsi_frequency": 0
}

drc_mode_exit

FieldTypeRequiredDescription
payloadobjectyesEmpty object {}
{}

drone_control

FieldTypeRequiredDescription
payload.seqintegeryesCommand sequence number
payload.xnumberyesForward/backward speed (-17 to 17 m/s)
payload.ynumberyesLeft/right speed (-17 to 17 m/s)
payload.hnumberyesUp/down speed (-4 to 5 m/s)
payload.wnumberyesAngular velocity (-90 to 90 degrees/s)
{
  "seq": 0,
  "x": 0,
  "y": 0,
  "h": 0,
  "w": 0
}

drone_emergency_stop

FieldTypeRequiredDescription
payloadobjectyesEmpty object {}
{}

flight_authority_grab

FieldTypeRequiredDescription
payloadobjectyesEmpty object {}
{}

fly_to_point

FieldTypeRequiredDescription
payload.fly_to_idstringyesFly to point ID
payload.max_speedintegeryesMaximum speed (0-15 m/s)
payload.pointsarrayyesTarget points (supports only 1 point)
{
  "fly_to_id": "id-001",
  "max_speed": 0,
  "points": [
    {
      "latitude": 0,
      "longitude": 0,
      "height": 0
    }
  ]
}

fly_to_point_stop

FieldTypeRequiredDescription
payloadobjectyesEmpty object {}
{}

fly_to_point_update

FieldTypeRequiredDescription
payload.max_speedintegeryesMaximum speed (1-15 m/s)
payload.pointsarrayyesUpdated target points (supports only 1 point)
{
  "max_speed": 0,
  "points": [
    {
      "latitude": 0,
      "longitude": 0,
      "height": 0
    }
  ]
}

heart_beat

FieldTypeRequiredDescription
payload.seqintegeryesCommand sequence number
payload.timestampintegeryesHeart beat timestamp (milliseconds)
{
  "seq": 0,
  "timestamp": 0
}

payload_authority_grab

FieldTypeRequiredDescription
payload.payload_indexstringyesPayload index (camera enumeration value)
{
  "payload_index": "string"
}

stick_control

FieldTypeRequiredDescription
payload.rollintegeryesMethod payload field
payload.pitchintegeryesMethod payload field
payload.throttleintegeryesMethod payload field
payload.yawintegeryesMethod payload field
{
  "roll": 0,
  "pitch": 0,
  "throttle": 0,
  "yaw": 0
}

takeoff_to_point

FieldTypeRequiredDescription
payload.target_latitudenumberyesTarget point latitude (-90 to 90)
payload.target_longitudenumberyesTarget point longitude (-180 to 180)
payload.target_heightnumberyesTarget point height (ellipsoidal height, WGS84)
payload.security_takeoff_heightnumberyesSafe takeoff height (relative to dock ALT)
payload.rth_modeintegeryesMethod payload field
payload.rth_altitudeintegeryesReturn home altitude (relative to dock ALT)
payload.rc_lost_actionintegeryesRC lost action (0=hover, 1=land, 2=RTH)
payload.exit_wayline_when_rc_lostintegeryes[Deprecated] Wayline lost action (0=continue, 1=exit)
payload.commander_mode_lost_actionintegeryesMethod payload field
payload.commander_flight_modeintegeryesMethod payload field
payload.commander_flight_heightnumberyesMethod payload field
payload.flight_idstringyesOne-key takeoff mission UUID
payload.max_speedintegernoMax speed (1-15 m/s, optional)
payload.flight_safety_advance_checkintegeryesMethod payload field
{
  "target_latitude": 0,
  "target_longitude": 0,
  "target_height": 0,
  "security_takeoff_height": 0,
  "rth_mode": 0,
  "rth_altitude": 0,
  "rc_lost_action": 0,
  "exit_wayline_when_rc_lost": 0,
  "commander_mode_lost_action": 0,
  "commander_flight_mode": 0,
  "commander_flight_height": 0,
  "flight_id": "id-001",
  "flight_safety_advance_check": 0,
  "max_speed": 0
}

flight_setup_abort

FieldTypeRequiredDescription
payloadobjectyesEmpty object {}
{}

flighttask_create

FieldTypeRequiredDescription
payload.flighttask_idstringyesMethod payload field
payload.execute_timeintegernoOptional execution time (timestamp)
payload.task_typestringyesTask type: immediate, timed, conditional
payload.wayline_typestringyesWayline type: wayline, mapping_2d, mapping_3d, mapping_strip
payload.wayline_filestringnoWayline file URL
payload.execute_timesintegernoNumber of execution times
payload.out_of_control_actionstringyesAction when out of control: continue, execute_go_home, hover
payload.rth_altitudenumbernoReturn to home altitude
payload.task_namestringnoTask name
payload.ready_conditionsobjectnoReady conditions (for conditional tasks)
payload.executable_conditionsobjectnoExecutable conditions
payload.simulate_missionobjectnoSimulation settings
payload.break_pointobjectnoBreakpoint information for resume
payload.rth_modeintegernoReturn to home mode (0=smart, 1=preset)
payload.exit_wayline_when_rc_lostintegernoExit wayline when RC lost (0=continue, 1=exit)
payload.wayline_precision_typeintegernoWayline precision type (0=GPS, 1=RTK)
payload.flight_safety_advance_checkbooleannoFlight safety advance check
{
  "flighttask_id": "id-001",
  "task_type": "string",
  "wayline_type": "string",
  "out_of_control_action": "string",
  "execute_time": 0,
  "wayline_file": "string",
  "execute_times": 0,
  "rth_altitude": 0,
  "task_name": "string",
  "ready_conditions": {
    "battery_capacity": 0,
    "begin_time": 0,
    "end_time": 0
  },
  "executable_conditions": {
    "storage_capacity": 0
  },
  "simulate_mission": {
    "is_enable": 0,
    "latitude": 0,
    "longitude": 0
  },
  "break_point": {
    "index": 0,
    "state": 0,
    "progress": 0,
    "wayline_id": 0,
    "break_reason": 0,
    "latitude": 0,
    "longitude": 0,
    "height": 0,
    "attitude_head": 0
  },
  "rth_mode": 0,
  "exit_wayline_when_rc_lost": 0,
  "wayline_precision_type": 0,
  "flight_safety_advance_check": true
}

flighttask_execute

FieldTypeRequiredDescription
payload.flight_idstringyesFlight task ID
payload.multi_dock_taskobjectnoMulti-dock task parameters (optional, for leapfrog missions)
{
  "flight_id": "id-001",
  "multi_dock_task": {
    "wireless_link_topo": {
      "secret_code": [
        0
      ],
      "center_node": {
        "sdr_id": 0,
        "sn": "string"
      },
      "leaf_nodes": [
        {
          "sdr_id": 0,
          "sn": "string",
          "control_source_index": 0
        }
      ]
    },
    "dock_infos": [
      {
        "dock_type": "string",
        "latitude": 0,
        "longitude": 0,
        "height": 0,
        "heading": 0,
        "home_position_is_valid": 0,
        "index": 0,
        "sn": "string",
        "rtcm_info": {
          "mount_point": "string",
          "port": "string",
          "host": "string",
          "rtcm_device_type": 0,
          "source_type": 0
        },
        "alternate_land_point": {
          "longitude": 0,
          "latitude": 0,
          "height": 0,
          "safe_land_height": 0,
          "is_configured": 0
        }
      }
    ]
  }
}

flighttask_pause

FieldTypeRequiredDescription
payloadobjectyesEmpty object {}
{}

flighttask_prepare

FieldTypeRequiredDescription
payload.break_pointobjectnoMethod payload field
payload.executable_conditionsobjectnoMethod payload field
payload.execute_timeintegeryesMethod payload field
payload.exit_wayline_when_rc_lostintegeryesMethod payload field
payload.fileobjectyesMethod payload field
payload.flight_idstringyesMethod payload field
payload.out_of_control_actionintegeryesMethod payload field
payload.ready_conditionsobjectnoMethod payload field
payload.rth_altitudeintegeryesMethod payload field
payload.simulate_missionobjectnoMethod payload field
payload.task_typeintegeryesMethod payload field
payload.rth_modeintegeryesMethod payload field
{
  "execute_time": 0,
  "exit_wayline_when_rc_lost": 0,
  "file": {
    "fingerprint": "string",
    "url": "https://example.com/path"
  },
  "flight_id": "id-001",
  "out_of_control_action": 0,
  "rth_altitude": 0,
  "task_type": 0,
  "rth_mode": 0,
  "break_point": {
    "index": 0,
    "state": 0,
    "progress": 0,
    "wayline_id": 0,
    "break_reason": 0,
    "latitude": 0,
    "longitude": 0,
    "height": 0,
    "attitude_head": 0
  },
  "executable_conditions": {
    "storage_capacity": 0
  },
  "ready_conditions": {
    "battery_capacity": 0,
    "begin_time": 0,
    "end_time": 0
  },
  "simulate_mission": {
    "is_enable": 0,
    "latitude": 0,
    "longitude": 0
  }
}

flighttask_recovery

FieldTypeRequiredDescription
payloadobjectyesEmpty object {}
{}

flighttask_undo

FieldTypeRequiredDescription
payload.flight_idsarrayyesFlight task ID
{
  "flight_ids": [
    "string"
  ]
}

return_home

FieldTypeRequiredDescription
payloadobjectyesEmpty object {}
{}

return_home_cancel

FieldTypeRequiredDescription
payloadobjectyesEmpty object {}
{}

live_lens_change

FieldTypeRequiredDescription
payload.video_typestringyesVideo type: ir=infrared, normal=default, wide=wide angle, zoom=zoom
{
  "video_type": "string"
}

live_set_quality

FieldTypeRequiredDescription
payload.video_idstringyesVideo stream ID (format: //)
payload.video_qualityintegeryesVideo quality: 0=adaptive, 1=smooth, 2=standard, 3=high, 4=super
{
  "video_id": "id-001",
  "video_quality": 0
}

live_start_push

FieldTypeRequiredDescription
payload.url_typeintegeryesURL type: 0=Agora, 1=RTMP, 3=GB28181, 4=WebRTC
payload.urlstringyesLive stream URL/parameters
payload.video_idstringyesVideo stream ID (format: //)
payload.video_qualityintegeryesVideo quality: 0=adaptive, 1=smooth, 2=standard, 3=high, 4=super
{
  "url_type": 0,
  "url": "https://example.com/path",
  "video_id": "id-001",
  "video_quality": 0
}

live_stop_push

FieldTypeRequiredDescription
payload.video_idstringyesVideo stream ID
{
  "video_id": "id-001"
}

custom_data_transmission_to_esdk

FieldTypeRequiredDescription
payload.dataobjectyesCustom data
{
  "data": {}
}

custom_data_transmission_to_psdk

FieldTypeRequiredDescription
payload.payload_indexstringyesPayload index
payload.dataobjectyesCustom data
{
  "payload_index": "string",
  "data": {}
}

psdk_input_box_text_set

FieldTypeRequiredDescription
payload.psdk_indexintegeryesPSDK payload device index (0-3)
payload.valuestringyesText content (max 128 bytes)
{
  "psdk_index": 0,
  "value": "string"
}

psdk_widget_value_set

FieldTypeRequiredDescription
payload.psdk_indexintegeryesPSDK payload device index (0-3)
payload.indexintegeryesWidget index
payload.valueintegeryesWidget value (defined by developer)
{
  "psdk_index": 0,
  "index": 0,
  "value": 0
}

speaker_audio_play_start

FieldTypeRequiredDescription
payload.psdk_indexintegeryesPSDK payload device index (min: 0)
payload.fileobjectyesAudio file information
{
  "psdk_index": 0,
  "file": {
    "name": "string",
    "url": "https://example.com/path",
    "md5": "string",
    "format": "string"
  }
}

speaker_play_mode_set

FieldTypeRequiredDescription
payload.psdk_indexintegeryesPSDK payload device index (0-3)
payload.play_modeintegeryesPlay mode: 0=single play, 1=loop (single track)
{
  "psdk_index": 0,
  "play_mode": 0
}

speaker_play_stop

FieldTypeRequiredDescription
payload.psdk_indexintegeryesPSDK payload device index (min: 0)
{
  "psdk_index": 0
}

speaker_play_volume_set

FieldTypeRequiredDescription
payload.psdk_indexintegeryesPSDK payload device index (0-3)
payload.indexintegeryesMethod payload field
payload.play_volumeintegeryesSpeaker volume (0-100)
{
  "psdk_index": 0,
  "index": 0,
  "play_volume": 0
}

speaker_replay

FieldTypeRequiredDescription
payload.psdk_indexintegeryesPSDK payload device index (min: 0)
{
  "psdk_index": 0
}

speaker_tts_play_start

FieldTypeRequiredDescription
payload.psdk_indexintegeryesPSDK payload device index (min: 0)
payload.ttsobjectyesTTS text information
{
  "psdk_index": 0,
  "tts": {
    "name": "string",
    "text": "string",
    "md5": "string"
  }
}

fileupload_list

FieldTypeRequiredDescription
payload.module_listarrayyesMethod payload field
{
  "module_list": [
    "string"
  ]
}

fileupload_start

FieldTypeRequiredDescription
payload.bucketstringyesMethod payload field
payload.regionstringyesMethod payload field
payload.credentialsobjectyesMethod payload field
payload.endpointstringyesMethod payload field
payload.providerstringyesMethod payload field
payload.paramsobjectyesMethod payload field
{
  "bucket": "string",
  "region": "string",
  "credentials": {
    "access_key_id": "id-001",
    "access_key_secret": "string",
    "expire": 0,
    "security_token": "string"
  },
  "endpoint": "string",
  "provider": "string",
  "params": {
    "files": [
      {
        "list": {},
        "module": "string",
        "object_key": "string"
      }
    ]
  }
}

fileupload_update

FieldTypeRequiredDescription
payload.statusstringyesMethod payload field
payload.module_listarrayyesMethod payload field
{
  "status": "string",
  "module_list": [
    "string"
  ]
}

upload_flighttask_media_prioritize

FieldTypeRequiredDescription
payload.flight_idstringyesFlight task ID
{
  "flight_id": "id-001"
}

flight_areas_get

FieldTypeRequiredDescription
payload.area_typestringnoArea type filter (optional)
{
  "area_type": "string"
}

flight_areas_update

FieldTypeRequiredDescription
payloadobjectyesEmpty object {}
{}

unlock_license_list

FieldTypeRequiredDescription
payload.device_model_domainintegeryesLicense location (0=aircraft, 3=dock)
{
  "device_model_domain": 0
}

unlock_license_switch

FieldTypeRequiredDescription
payload.license_idintegeryesLicense ID (unique identifier)
payload.enablebooleanyesEnable/disable unlock license
{
  "license_id": 0,
  "enable": true
}

unlock_license_update

FieldTypeRequiredDescription
payload.fileobjectnoOffline license file (optional, use Flysafe server if omitted)
{
  "file": {
    "url": "https://example.com/path",
    "fingerprint": "string"
  }
}

ota_create

FieldTypeRequiredDescription
payload.devicesarrayyesArray of devices to upgrade (max 2 devices)
{
  "devices": [
    {
      "sn": "string",
      "product_version": "string",
      "file_url": "https://example.com/path",
      "md5": "string",
      "file_size": 0,
      "file_name": "string",
      "firmware_upgrade_type": 0
    }
  ]
}