This guide shows how to create a Walk through DroneDeploy’s public API by providing a video file(s) and some additional metadata. This assumes you’ve already followed the getting started guide and have an API key, a project ID (folder_id), and a level ID (group_id).
1. Create a “Plan”
Plan objects in dronedeploy act like containers for flight / walks and are needed 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": "Walkthrough Test",
"folder_id": "657a26a8499e93d9d3cad46c",
"group_ids": ["657a26a5969e93d9234ca34a"],
"record_type": "walkthrough_plan",
"geometry": [
{
"lat": 37.79863442080421,
"lng": -122.48166665413724
},
{
"lat": 37.79903150160716,
"lng": -122.47561239556711
},
{
"lat": 37.79396383401936,
"lng": -122.47477484991511
},
{
"lat": 37.794635130856896,
"lng": -122.48265974398176
}
],
"workflow": {
"job_type": "walkthrough",
"walkthrough": {
"capture_parameters": {
"known_locations": [
{
"lat": 37.79419180839349,
"lng": -122.48045715015901,
"timestamp": "00:00:00"
},
{
"lat": 37.80325489453073,
"lng": -122.4761911848438,
"timestamp": "00:30:00"
}
]
}
}
}
}
Request body fields
NOTE: We guess you are likely going to have knowledge of the drawing’s start and end points. Those would be the known locations.
| Key | Example value | Description |
| folder_id | 657a26a8499e93d9d3cad46c | ID of the Project where the Walkthrough will be uploaded |
| group_ids | [“657a26a5969e93d9234ca34a”] | ID of the Level where the Walkthrough will be uploaded (optional). If none is given, the Walkthrough will be on the exterior. |
| geometry |
37.79863442080421, -122.48166665413724 37.79903150160716, -122.47561239556711 37.79396383401936, -122.47477484991511 37.79463513085689, -122.48265974398176 |
Bounding box of the drawing as 4 coordinates (top left, top right, bottom right, bottom left) These can be in drawing CRS e.g. meters |
| known_locations[0] | 37.798710055407426, -122.47872327941738 |
Start location of Walkthrough (vs geometry) |
| known_locations[0].timestamp | 00:00:00 | Timestamp in the video file corresponding to the start location |
| known_locations[1] | 37.7949565947883, -122.48097268773988 |
End location of Walkthrough (vs geometry) |
| known_locations[1].timestamp | 00:30:00 | Timestamp in the video file corresponding to the end location (HH:MM:SS) |
For more information on the Plans API see docs here.
2. Create an “Image Transfer”
The Image Transfer object is the way API clients can indicate 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 ".insv" and ".mp4" files for Walkthroughs. If providing multiple .insv files, zip them into one archive and specify the location of the zip in the location parameter of the request body. If a zip archive is supplied, the archive will be unzipped before processing.
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
{
"transport": {
"type": "https"
},
"inputs": [
{
"location": "https://YOUR_DOMAIN/YOUR_ZIP_FILE.zip",
"type": "walkthrough_source_video"
}
],
"plan_id": "6622b808ad6b365d62563544"
}
Request body fields
| Key | Example value | Description |
| plan_id | 6622b808ad6b365d62563544 | ID of the Plan created by the first API call |
| inputs[0].location | https://YOUR_DOMAIN/YOUR_ZIP_FILE.zip | a URL pointing to the video file (mp4) or zip of insv files to use for the Walkthrough |