Upload a pano/video/photo plans for processing using DroneDeploy's Public API

Have more questions? Submit a request

How to Upload Pano, Video, or Photo Plans using the Public API

This guide details the process for creating a Preprocessed Pano, Progress Video, or Progress Photo Plan using the DroneDeploy Public API.

To follow this guide, ensure you have completed the getting started guide and have the following prerequisites:

  • An API key

  • A Project ID (folder_id)

  • A Level ID (group_id) (Optional)

1. Create a Plan

A Plan object acts as a container for your flight or walk data and is required before an Image Transfer can be created.

Start by creating a Plan object using the Plans API.

The “folder ID” is the project ID that the customer can get from the project URL. e.g. “6296d9752b06e59b2ec8b511” from https://www.dronedeploy.com/app2/sites/6296d9752b06e59b2ec8b511/maps/653d62a11c65c82253ff0602

POST /v2/plans

curl -H "Content-Type: application/json" -X POST \
 "https://public-api.dronedeploy.com/v2/plans?api_key=YOUR_API_KEY" \
 -d @body.json 

Example Request

{
"name": "Preprocessed pano example",
"folder_id": "6296d9752b06e59b2ec8b511",
"record_type": "preprocessed_pano_plan",
       "location": {"lat": 35.288226, "lng": -44.758298},
"workflow": {
"job_type": "preprocessed_pano"
}
}

Or add an optional `group_ids` field if you want to upload to a particular level:

  {
"name": "Preprocessed pano example",
"folder_id": "6296d9752b06e59b2ec8b511",
"group_ids": ["657a26a5969e93d9234ca34a"],
"record_type": "preprocessed_pano_plan",
      "location": {"lat": 35.288226, "lng": -44.758298},
"workflow": {
"job_type": "preprocessed_pano"
}
}

Request body fields

Key Example value Description
folder_id 6296d9752b06e59b2ec8b511 ID of the Project where the plan will be uploaded
group_ids [“657a26a5969e93d9234ca34a”] ID of the Level where the plan will be uploaded (optional). If none is given, the plan will be on the exterior. 
record_type preprocessed_pano
progress_video_plan
progress_photos_plan
The value should be `preprocessed_pano_plan` for a pano plan, `progress_video_plan` for a video plan or ‘progress_photos_plan’ for a photo plan.
location {"lat": 35.288226, "lng": -44.758298} Latitude & longitude of the plan.
Pano and video media will be displayed in respective locations on a map.
Unless a photo plan image has correct EXIF latitude and longitude tags, images will be displayed in the centre of the plan. 
workflow.job_type preprocessed_pano
progress_video
2d
The value should be `preprocessed_pano` for a pano plan or `progress_video` for a video plan and `2d` for a photo plan.

For more information on the Plans API see docs here.

2. Create an Image Transfer

The Image Transfer object is how API clients specify which source imagery should be used for a given Plan. Once an Image Transfer object is created, the indicated URL is fetched, and the photogrammetry process begins.

We support JPG images for preprocessed panoramas and MP4 files for Progress videos.
File location should be a publicly accessible url, i.e. a Amazon S3 / Google GCS  pre-signed url.

For more information on the ImageTransfer API see docs here

POST: /v2/image_transfer

curl -H "Content-Type: application/json" -X POST \ 
  "https://public-api.dronedeploy.com/v2/image_transfer?api_key=YOUR_API_KEY" \ 
  -d @body.json
{
  "plan_id": "6622b808ad6b365d62563544",
  "transport": { "type": "https" },
  "inputs": [
    {
      "location": "https://storage.googleapis.com/...", 
      "type": "preprocessed_pano"
    }
  ]
}

Request body fields

Key Example value Description
plan_id 6622b808ad6b365d62563544 ID of the Plan created by the first API call
inputs[0].location https://storage.googleapis.com/… a URL pointing to a pano or a video file, depending on the plan type.
inputs[0].type preprocessed_pano
progress_video
progress_photo
The value should correspond to the type of the plan: `preprocessed_pano` for a pano plan,
`progress_video` for a video plan,
`progress_photo` for a progress photo plan.

v2.2

 

Articles in this section

Was this article helpful?
0 out of 0 found this helpful