Protocol Documentation

Table of Contents

Top

ui.proto

AddAttachmentInput

Field

Type

Label

Description

content_type

string

The content type of the file

extension

string

The format of the file (e.g. mp4, jpg, etc.)

size

int64

The size of the file in bytes

annotation_id

ObjectID

The id of the annotation to attach the file to

AddAttachmentOutput

Field

Type

Label

Description

url

string

The url to upload the file to using a PUT request

key

string

The key of the file

AddFlightPlanData

Input data to create a new flightplan

Field

Type

Label

Description

name

string

The name of the flightplan

data

bytes

The data of the flightplan (i.e. a json string)

AddUserToOrganizationData

Input data to add a user to an organization

Field

Type

Label

Description

organization_id

ObjectID

The id of the organization

email

string

The email of the user to add

read_only

bool

Weather the user should have read only access

Analysis

Output data for an analysis

Field

Type

Label

Description

id

ObjectID

The id of the analysis

media_id

ObjectID

The id of the media to analyze

type

Analysis.Type

The type of the analysis

state

Analysis.State

The state of the analysis

media_list

ObjectID

repeated

The list of media to analyze

date

int64

The creation date of the analysis

field_id

ObjectID

The id of field to analyze (if any)

AnalysisList

Output data for a list of analysis

Field

Type

Label

Description

analysis

Analysis

repeated

The list of analysis

AnalysisPresignedUrl

Output data for a presigned url

Field

Type

Label

Description

orthophoto

string

Deprecated. The url for the orthophoto

orthophoto_png

string

The url for the orthophoto png

grvi

string

Deprecated. The url for the GRVI

grvi_png

string

Deprecated. The url for the GRVI png

grvi_d

string

Deprecated. The url for the GRVI discrete

grvi_d_png

string

Deprecated. The url for the GRVI discrete png

shapefiles

string

repeated

Deprecated. The urls for the shapefiles

indexes_map

AnalysisPresignedUrl.IndexesMapEntry

repeated

The data related to the computed indexes

orthophoto_multi_size

MultiSizeMediaPresignedUrl

The url for the orthophoto multi size

orthophoto_ms_multi_size

MultiSizeMediaPresignedUrl

The url for the orthophoto ms multi size

AnalysisPresignedUrl.IndexesMapEntry

Field

Type

Label

Description

key

string

value

IndexData

AppControl

Input data for an application to send a message to a drone

Field

Type

Label

Description

drone_id

ObjectID

The drone id to control

app_id

ObjectID

The application id to send the message to

timestamp

int64

(optional) The timestamp of the message

Application

Output data for an application

Field

Type

Label

Description

id

string

The id of the application

name

string

The name of the application

default

bool

Weather the application is the default application

ApplicationList

Output data for a list of applications

Field

Type

Label

Description

applications

Application

repeated

The list of applications

Artifact

Output data for an artifact

Field

Type

Label

Description

name

string

The name of the artifact

url

string

The url of the artifact

ArtifactList

Output data for a list of artifacts

Field

Type

Label

Description

artifact

Artifact

repeated

The list of artifacts

Certificate

Output data for a TLS certificate

Field

Type

Label

Description

key

bytes

The key of the certificate

crt

bytes

The certificate

pfx

bytes

The certificate chain

CustomerPortal

Defines a customer portal url

Field

Type

Label

Description

url

string

The customer portal url

Download

Output data to download a file

Field

Type

Label

Description

name

string

The name of the file

url

string

The url to download the file from

DownloadFlightPlanRequest

Input data to download a flightplan

Field

Type

Label

Description

id

ObjectID

The id of the flightplan

valid_at_timestamp

string

(optional) Weather the flightplan is valid at a specific timestamp

DownloadItem

Output data to download a file

Field

Type

Label

Description

url

string

The url where to download the file from

DownloadableFile

Output data for a downloadable file

Field

Type

Label

Description

id

ObjectID

The id of the file

name

string

The name of the file

version

string

The version of the file

created_at

int64

The creation date of the file

DownloadableFileList

Output data for a list of downloadable files

Field

Type

Label

Description

files

DownloadableFile

repeated

The list of downloadable files

Drone

Output data for a drone

Field

Type

Label

Description

id

string

The id of the drone

name

string

The name of the drone

flight_plan

string

(optional) The id of the flightplan currently linked to the drone

DroneDetails

Output data for drone details

Field

Type

Label

Description

battery

TimeserieValue

repeated

The battery timeserie value

latitude

TimeserieValue

repeated

The latitude timeserie value

longitude

TimeserieValue

repeated

The longitude timeserie value

gps_level

string

(optional) The gps level value

state

string

(optional) The drone status value

DroneFrame

Output data for a drone frame

Field

Type

Label

Description

data

bytes

The frame data

DroneList

Output data for a list of drones

Field

Type

Label

Description

drones

Drone

repeated

The list of drones

DroneStatus

Output data for the drone status

Field

Type

Label

Description

metrics

common.Metrics

The drone metrics

download_progress

float

(optional) Weather the drone is currently downloading a media

flight_progress

DroneStatus.FlightProgress

(optional) The current flight progress

upload_progress

DroneStatus.UploadProgress

(optional) The current upload progress

DroneStatus.FlightProgress

Field

Type

Label

Description

current_command

uint32

The current command index

total_commands

uint32

The total number of commands

DroneStatus.UploadProgress

Field

Type

Label

Description

current_media

uint32

The current media index

total_media

uint32

The total number of media

Error

Output data for an error

Field

Type

Label

Description

id

ObjectID

The error id

timestamp

int64

The error timestamp

error

common.Error

The error object

logs

common.Log

repeated

The logs associated with the error (the last 10 minutes)

metrics

common.Metrics

repeated

The metrics associated with the error (the last 10 seconds)

ErrorList

Output data for a list of errors

Field

Type

Label

Description

errors

Error

repeated

The list of errors

Field

Field

Field

Type

Label

Description

id

string

The id of the field

name

string

The name of the field

date

int64

The creation date of the field

boundary

LatLng

repeated

The boundary of the field

FieldList

List of fields

Field

Type

Label

Description

fields

Field

repeated

The list of fields

FlightDetails

Output data for flight details

Field

Type

Label

Description

id

string

The id of the flight

drone

string

The id of the drone

flightplan

string

(optional) The id of the flightplan (if any)

metrics

FlightDetails.Metric

repeated

The list of metrics

FlightDetails.Metric

The metrics object

Field

Type

Label

Description

date

string

The timestamp of the metric

metric

common.Metrics

The metrics values

FlightList

Output data for a list of flights

Field

Type

Label

Description

flights

FlightList.Item

repeated

The list of flights

FlightList.Item

A flight item

Field

Type

Label

Description

id

string

The id of the flight

drone

string

The id of the drone

flightplan

string

(optional) The id of the flightplan (if any)

date

string

The date of the flight

FlightPlan

Output data for a flightplan

Field

Type

Label

Description

id

string

The id of the flightplan

name

string

The name of the flightplan

FlightPlanList

Output data for a list of flightplans

Field

Type

Label

Description

flight_plan

FlightPlan

repeated

The list of flightplans

FlightPlanRaw

Output data for a raw flightplan (i.e. a json string)

Field

Type

Label

Description

data

bytes

The raw flightplan data

GetLiveStreamRequest

Input data to get a live stream

Field

Type

Label

Description

drone_id

ObjectID

The id of the drone to get the live stream from

camera_settings

common.CameraSettings

The camera settings to use

GetUserPermissionInOrganizationData

Input data for retrieving a user’s permission in an organization

Field

Type

Label

Description

organization_id

ObjectID

The user id

IndexData

Data related to an index computation

Field

Type

Label

Description

png

string

The image of the index

tiff

string

Deprecated. The index matrix

shapefiles

string

repeated

The list of shapefiles

shapefile_png

string

The image of the shapefile

tiff_multi_size

MultiSizeMediaPresignedUrl

The index matrix multi size

LatLng

LatLng point (latitude, longitude)

Field

Type

Label

Description

latitude

double

The latitude

longitude

double

The longitude

LiveStream

Output data for a live stream

Field

Type

Label

Description

url

string

The url of the live stream

LogList

Output data for a list of logs

Field

Type

Label

Description

logs

common.Log

repeated

The list of logs

Media

Output data for a media item

Field

Type

Label

Description

id

string

The id of the media item

name

string

The name of the media item

size

int64

The size of the media item in bytes

date

int64

The creation date of the media item

extension

string

The format of the media item (e.g. mp4, jpg, etc.)

MediaList

Output data for a list of media

Field

Type

Label

Description

media

Media

repeated

The list of media

MultiSizeMediaPresignedUrl

Output data for a multi size media presigned url

Field

Type

Label

Description

full_size

string

The url for the full size media

medium_size

string

The url for the medium size media

small_size

string

The url for the small size media

thumbnail

string

The url for the thumbnail size media

Notification

Output data for a notification

Field

Type

Label

Description

id

string

The id of the notification

type

string

The type of the notification

data

string

The notification content

timestamp

int64

The timestamp of the notification

important

bool

Weather the notification is important

error_code

common.Error.Code

The notification error code

drone_id

string

The id of the drone generating the notification

NotificationList

Output data for a list of notifications

Field

Type

Label

Description

notification

Notification

repeated

The list of notifications

ObjectID

Generic object id

Field

Type

Label

Description

id

string

The id of the object

Organization

Output data for an organization

Field

Type

Label

Description

id

string

The id of the organization

name

string

The name of the organization

is_owner

bool

Weather the user is the owner of the organization

owner

string

The email of the owner of the organization

members

Organization.Member

repeated

The list of members of the organization

Organization.Member

A member of an organization

Field

Type

Label

Description

username

string

The email of the member

read_only

bool

Weather the member has read only access

OrganizationList

Output data for a list of organizations

Field

Type

Label

Description

organizations

Organization

repeated

The list of organizations

RemoveUserFromOrganizationData

Input data to remove a user from an organization

Field

Type

Label

Description

organization_id

ObjectID

The id of the organization

email

string

The email of the user to remove

RunAnalysisInput

Input data to run an analysis

Field

Type

Label

Description

id

ObjectID

The id of the analysis to run

grvi

RunAnalysisInput.GRVIOptions

Deprecated. The GRVI options

field_id

ObjectID

The id of field to analyze (if any)

index_options

RunAnalysisInput.IndexOptions

The index options

RunAnalysisInput.GRVIOptions

The GRVI index options

Field

Type

Label

Description

zones

uint32

Deprecated. The number of zones to generate

algorithm

RunAnalysisInput.BucketAlgorithm

Deprecated. The algorithm to use to generate the zones

thresholds

float

repeated

Deprecated. The thresholds to use to generate the zones (optional)

RunAnalysisInput.IndexOptions

The index options

Field

Type

Label

Description

zones

uint32

The number of zones to generate

algorithm

RunAnalysisInput.BucketAlgorithm

The algorithm to use to generate the zones

thresholds

float

repeated

The thresholds to use to generate the zones (optional) If set the length of the array must be equal to the number of zones - 1

index_name

string

The name of the index to generate

product_amount

float

repeated

The quantity of the product to set for each zone (optional) If set the length of the array must be equal to the number of zones

RunAnalysisOutput

Output data for an analysis run

SendCommandsData

Input data to send commands to a drone

Field

Type

Label

Description

drone_id

ObjectID

The id of the drone to send the commands to

commands

common.Command

repeated

The list of commands to send

SendCommandsResponse

Output data for a list of commands

Field

Type

Label

Description

success

bool

Weather the commands were sent successfully

message

string

The output message or the error message (if any)

SettingValue

Input data to update a user’s settings

Field

Type

Label

Description

key

SettingValue.Key

The key of the setting to update

bool_value

bool

The value for a boolean setting

string_value

string

The value for a string setting

int_value

int64

The value for a int64 setting

float_value

float

The value for a float setting

Settings

Defines a user’s settings

Field

Type

Label

Description

auto_start_recording

bool

Automatically start recording when a drone takes off (and stop when it lands)

auto_start_live_stream

bool

Automatically start live streaming when a drone takes off (and stop when it lands)

auto_start_live_stream_flight_plan

bool

Automatically start live streaming when a flight plan is started (and stop when it ends)

take_off_altitude

float

The take off altitude

take_off_altitude_flight_plan

float

The default take off altitude when a flight plan is started

camera_resolution

int64

The default camera resolution

stream_resolution

int64

The default stream resolution

StartLiveStreamRequest

Input data to start a live stream

Field

Type

Label

Description

drone_id

ObjectID

The id of the drone to start the live stream from

camera_settings

common.CameraSettings

The camera settings to use

StartLiveStreamResponse

Output data for a live stream

Field

Type

Label

Description

url

string

The url of the live stream

error

string

The error message (if any)

StopLiveStreamRequest

Input data to stop a live stream

Field

Type

Label

Description

drone_id

ObjectID

The id of the drone to stop the live stream from

camera_settings

common.CameraSettings

The camera settings to use

TimeserieValue

Output data to contain values during time

Field

Type

Label

Description

timestamp

string

The timestamp of the value

value

double

The value

UpdateFlightPlanData

Input data to update a flightplan

Field

Type

Label

Description

id

ObjectID

The id of the flightplan to update

data

bytes

The data of the flightplan (i.e. a json string)

Upload

Output data to upload a file

Field

Type

Label

Description

url

string

The url to upload the file to using a PUT request

id

string

The id of the file

UploadRequest

Input data to upload a file

Field

Type

Label

Description

content_type

string

The content type of the file

extension

string

The format of the file (e.g. mp4, jpg, etc.)

size

int64

The size of the file in bytes

drone_id

ObjectID

The id of the drone that made the file (optional)

flight_identifier

string

The identifier of the flight that made the file (optional)

UserEmail

Data containing a user email and username pair

Field

Type

Label

Description

username

string

The username of the user

email

string

The email of the user

UserPermissionInOrganization

Defines a user’s permission in an organization

Field

Type

Label

Description

permission

UserPermissionInOrganization.Permission

The user’s permission

UserSubscription

Defines user subscription states

Field

Type

Label

Description

stripe_subscription_id

string

The stripe subscription id

state

UserSubscription.State

The subscription state

UserUsername

Output data containing a user username

Field

Type

Label

Description

username

string

The username of the user

Analysis.State

Name

Number

Description

ANALYSIS_STATE_NONE

0

Unknown analysis state

ANALYSIS_STATE_CREATED

1

Analysis created

ANALYSIS_STATE_ANALYZING

2

Analysis is currently running

ANALYSIS_STATE_COMPLETED

3

Analysis completed

ANALYSIS_STATE_FAILED

4

Analysis failed

Analysis.Type

Name

Number

Description

ANALYSIS_TYPE_UNKNOWN

0

Unknown analysis type

ANALYSIS_TYPE_ODM

1

ODM analysis type https://opendronemap.org/

ANALYSIS_TYPE_AGRICULTURE

2

Agriculture analysis type

RunAnalysisInput.BucketAlgorithm

Name

Number

Description

ALGORITHM_DISTRIBUTION

0

The distribution algorithm will divide zones basing on the distribution of the computed values

ALGORITHM_VALUES

1

The values algorithm will divide zones basing on predefined thresholds

ALGORITHM_MANUAL

2

The manual algorithm will divide zones basing on the provided thresholds

SettingValue.Key

Name

Number

Description

AUTO_START_RECORDING

0

Automatically start recording when a drone takes off (and stop when it lands)

AUTO_START_LIVE_STREAM

1

Automatically start live streaming when a drone takes off (and stop when it lands)

AUTO_START_LIVE_STREAM_FLIGHT_PLAN

2

Automatically start live streaming when a flight plan is started (and stop when it ends)

TAKE_OFF_ALTITUDE

3

The take off altitude

TAKE_OFF_ALTITUDE_FLIGHT_PLAN

4

The default take off altitude when a flight plan is started

CAMERA_RESOLUTION

5

The default camera resolution

STREAM_RESOLUTION

6

The default stream resolution

UserPermissionInOrganization.Permission

Name

Number

Description

PERMISSION_NONE

0

No permission

PERMISSION_READ

1

Read permission

PERMISSION_WRITE

2

Write permission

PERMISSION_OWNER

3

Owner permission

UserSubscription.State

Name

Number

Description

SUBSCRIPTION_STATE_NONE

0

No subscription

SUBSCRIPTION_STATE_ACTIVE

1

Active subscription

SUBSCRIPTION_STATE_INACTIVE

2

Inactive subscription

AnalysisService

Service to manage analysis (create, delete, etc)

Method Name

Request Type

Response Type

Description

ListAnalysis

.common.Empty

AnalysisList

Retrieve a list of all analysis

GetAnalysisPresignedUrl

ObjectID

AnalysisPresignedUrl

RunAnalysis

RunAnalysisInput

RunAnalysisOutput

ControllerService

Service to send realtime commands to drones

Method Name

Request Type

Response Type

Description

SendCommands

SendCommandsData

SendCommandsResponse

Send a list of commands to a drone

DroneService

Service to manage drones (create, delete, link, etc)

Method Name

Request Type

Response Type

Description

ListDrones

.common.Empty

DroneList

Retrieve a list of all drones

GetDrone

ObjectID

Drone

Retrieve a single drone by id

DeleteDrone

ObjectID

.common.Empty

Delete a drone by id

AddDrone

Drone

Drone

Create a new drone

LinkFlightPlanToDrone

Link

.common.Empty

Link a flightplan (what) to a drone (to)

Start

AppControl

.common.Empty

Start a flightplan on a drone

Stop

AppControl

.common.Empty

Stop a flightplan on a drone

ListApplications

.common.Empty

ApplicationList

List all the available applications

GetDroneDetails

ObjectID

DroneDetails

Retrieve drone details (battery, gps, etc)

DownloadCertificate

ObjectID

Certificate

Retrieve drone certificate (used for authentication)

ListFlights

ObjectID

FlightList

Retrieve drone flighs

ListFlightPlanFlightsWithDrone

ObjectID

FlightList

Retrieve a list of the drone’s flightplan related flights

GetStatus

ObjectID

DroneStatus

Retrieve the current drone status (idle, flying, etc)

StartLiveStream

StartLiveStreamRequest

StartLiveStreamResponse

Start a live stream on a drone

StopLiveStream

StopLiveStreamRequest

.common.Empty

Stop a live stream on a drone

GetLiveStream

GetLiveStreamRequest

LiveStream

Retrieve a live stream on a drone

GetFrame

GetLiveStreamRequest

DroneFrame

Retrieve the current live stream frame, if any

GetErrors

ObjectID

ErrorList

Retrieve a list of all errors for a drone

DeleteError

ObjectID

.common.Empty

Delete an error by id

SignalError

ObjectID

.common.Empty

Signal an error to developers

GetLogs

ObjectID

LogList

Retrieve a list of all logs for a drone

FieldService

Service to manage files (list, create, delete, etc)

Method Name

Request Type

Response Type

Description

ListFields

.common.Empty

FieldList

Retrieve a list of all fields

GetField

ObjectID

Field

Retrieve a single field by id

AddField

Field

Field

Create a new field

DeleteField

ObjectID

.common.Empty

Delete a field

FlightPlanService

Service to manage flightplans (create, delete, link, etc)

Method Name

Request Type

Response Type

Description

ListFlightPlans

.common.Empty

FlightPlanList

Retrieve a list of all flightplans

GetFlightPlan

ObjectID

FlightPlan

Retrieve a single flightplan by id

AddFlightPlan

AddFlightPlanData

FlightPlan

Create a new flightplan

UpdateFlightPlan

UpdateFlightPlanData

FlightPlan

Update a flightplan

DeleteFlightPlan

ObjectID

.common.Empty

Delete a flightplan

DownloadFlightPlan

DownloadFlightPlanRequest

FlightPlanRaw

Download a flightplan as a json file

ListFlights

ObjectID

FlightList

List all ths flights for a flightplan

GetFlightDetails

ObjectID

FlightDetails

Retrieve details for a flight

FlightService

Service to manage flights

Method Name

Request Type

Response Type

Description

ListFlights

.common.Empty

FlightList

Retrieve a list of the flights

ListMedia

ObjectID

MediaList

Retrieve a list of media for a flight

MediaService

Service to manage media (upload, download, analysis, etc)

Method Name

Request Type

Response Type

Description

ListMedia

.common.Empty

MediaList

Retrieve a list of all media

GetMedia

ObjectID

Media

Retrieve a single media by id

DeleteMedia

ObjectID

.common.Empty

Delete a media by id

DownloadMedia

ObjectID

Download

Download a media by id

UploadMedia

UploadRequest

Upload

Upload a media, it generates a new presigned url for the upload, the client must upload the file to the url by using HTTP PUT method

UploadMediaCompleted

ObjectID

.common.Empty

UploadMediaCompleted needs to be called by the client after the upload is completed

CreateAnalysis

Analysis

Analysis

Trigger the analysis of a media

GetAnalysis

ObjectID

Analysis

Retrieve an analysis by id

GetAnalysisForMedia

ObjectID

AnalysisList

Retrieve a list of all analysis for a media by id

GetArtifacts

ObjectID

ArtifactList

Retrieve all the artifacts for an analysis by id

AddAttachment

AddAttachmentInput

AddAttachmentOutput

Get an s3 presigned url for an artifact

GetAttachment

ObjectID

Download

Retrieve an attachment presignedURL by id

DeleteAttachment

ObjectID

.common.Empty

Delete an attachment by id

MiscService

Service to manage other misc endpoints

Method Name

Request Type

Response Type

Description

ListDownloadableFiles

.common.Empty

DownloadableFileList

Download

ObjectID

DownloadItem

Download a file

GetUserEmail

UserUsername

UserEmail

Get the email address for a user

PollNotifications

.common.Empty

NotificationList

Poll for new notifications

OrganizationService

Service to manage organizations

Method Name

Request Type

Response Type

Description

ListOrganizations

.common.Empty

OrganizationList

Retrieve a list of all organizations

GetOrganization

ObjectID

Organization

Retrieve a single organization by id

AddOrganization

Organization

Organization

Create a new organization

UpdateOrganization

Organization

Organization

Update an organization

DeleteOrganization

ObjectID

.common.Empty

Delete an organization

AddUserToOrganization

AddUserToOrganizationData

.common.Empty

Add a user to an existing organization

RemoveUserFromOrganization

RemoveUserFromOrganizationData

.common.Empty

Remove a user from an existing organization

UserService

Service to manage users

Method Name

Request Type

Response Type

Description

GetUserSubscription

ObjectID

UserSubscription

Get the current subscription for a user

GetCustomerPortal

ObjectID

CustomerPortal

Get the customer portal address for a user

GetUserPermissionInOrganization

GetUserPermissionInOrganizationData

UserPermissionInOrganization

Get user permissions in an organization

GetSettings

.common.Empty

Settings

Get the current user settings

UpdateSettings

SettingValue

Settings

Update the current user settings

DownloadCertificate

.common.Empty

Certificate

Retrieve the current user certificate (used for authentication)

Scalar Value Types

.proto Type

Notes

C++

Java

Python

Go

C#

PHP

Ruby

double

double

double

float

float64

double

float

Float

float

float

float

float

float32

float

float

Float

int32

Uses variable-length encoding. Inefficient for encoding negative numbers – if your field is likely to have negative values, use sint32 instead.

int32

int

int

int32

int

integer

Bignum or Fixnum (as required)

int64

Uses variable-length encoding. Inefficient for encoding negative numbers – if your field is likely to have negative values, use sint64 instead.

int64

long

int/long

int64

long

integer/string

Bignum

uint32

Uses variable-length encoding.

uint32

int

int/long

uint32

uint

integer

Bignum or Fixnum (as required)

uint64

Uses variable-length encoding.

uint64

long

int/long

uint64

ulong

integer/string

Bignum or Fixnum (as required)

sint32

Uses variable-length encoding. Signed int value. These more efficiently encode negative numbers than regular int32s.

int32

int

int

int32

int

integer

Bignum or Fixnum (as required)

sint64

Uses variable-length encoding. Signed int value. These more efficiently encode negative numbers than regular int64s.

int64

long

int/long

int64

long

integer/string

Bignum

fixed32

Always four bytes. More efficient than uint32 if values are often greater than 2^28.

uint32

int

int

uint32

uint

integer

Bignum or Fixnum (as required)

fixed64

Always eight bytes. More efficient than uint64 if values are often greater than 2^56.

uint64

long

int/long

uint64

ulong

integer/string

Bignum

sfixed32

Always four bytes.

int32

int

int

int32

int

integer

Bignum or Fixnum (as required)

sfixed64

Always eight bytes.

int64

long

int/long

int64

long

integer/string

Bignum

bool

bool

boolean

boolean

bool

bool

boolean

TrueClass/FalseClass

string

A string must always contain UTF-8 encoded or 7-bit ASCII text.

string

String

str/unicode

string

string

string

String (UTF-8)

bytes

May contain any arbitrary sequence of bytes.

string

ByteString

str

[]byte

ByteString

string

String (ASCII-8BIT)