DJI Requests Reply

This page describes how to submit a business reply for a specific DJI device request.

Endpoint

  • Submit reply: POST /api/v1/open/device-requests/{requestId}/reply

Reply Flow

  1. Fetch a request_id from the DJI Requests page first.
  2. Build reply_code / reply_message / payload from your business decision.
  3. Call the reply endpoint to submit it.
  4. The platform returns 202 when the reply has been accepted and the device-side flow has started.

Authentication

  • API ID + API Key + signature
  • Scope: open:device-request:create

Path Parameters

NameTypeRequiredDescription
requestIdstringyesUnique identifier of the device request being replied to

Query Parameters

None.

Request Body

Body:
FieldTypeRequiredDescription
reply_codestringyesReply code (e.g. APPROVED)
reply_messagestringnoReply message
payloadobjectnoExtended reply payload
Example:
{
  "reply_code": "APPROVED",
  "reply_message": "approved",
  "payload": {
    "config_result": "ok"
  }
}

Responses

  • 202 — Reply accepted and forwarded into the device-side flow.
  • 404requestId not found.
  • 5xx — Platform-internal failure.
202 response fields:
FieldTypeDescription
request_idstringUnique device-request identifier
reply_codestringPlatform reply code
reply_messagestringPlatform reply message
reply_sourcestringmanual (explicit human/business reply)
replied_atstring(date-time)Time the reply was persisted
202 example:
{
  "request_id": "2b0056c3-b4c8-4994-a286-047e130d38d7",
  "reply_code": "APPROVED",
  "reply_message": "approved",
  "reply_source": "manual",
  "replied_at": "2026-04-22T12:00:00Z"
}

Example

package main

import (
  "bytes"
  "net/http"
)

func main() {
  body := []byte(`{"reply_code":"APPROVED","reply_message":"approved","payload":{"config_result":"ok"}}`)
  req, _ := http.NewRequest(http.MethodPost, "https://dev.utmos.dev/api/v1/open/device-requests/2b0056c3-b4c8-4994-a286-047e130d38d7/reply", bytes.NewBuffer(body))
  req.Header.Set("Content-Type", "application/json")
  req.Header.Set("X-Api-Id", "YOUR_API_ID")
  req.Header.Set("X-Api-Timestamp", "YOUR_UNIX_SECONDS")
  req.Header.Set("X-Api-Signature", "YOUR_SIGNATURE")
  _, _ = http.DefaultClient.Do(req)
}

Next Steps

After replying, return to DJI Requests and query the same request_id to see the reply status and updated timestamp fields.