Introduction

Welcome to the Skydio Cloud API documentation!

Skydio Cloud allows you to manage your Skydio vehicles using Fleet Manager and Media Sync (additional license required) to provide automatic media and flight data uploads. Skydio Cloud is designed to be accessed using a web browser or through REST-based integrations with API endpoints.

Read on and use the navigation on the left to learn more! By creating or using API credentials, you agree to our API & ICD Terms of Service.

API Conventions

The Skydio Cloud API is an HTTP-based REST API with request and response bodies encoded in JSON format.
All responses from the Skydio API will contain JSON with the following fields:

FieldTypeDescription
dataJSON objectRequested data, schema varies per endpoint
metaJSON objectContains metadata about the request, including a timestamp
skydio_error_codeintSkydio specific error code, to share if contacting Skydio Support. Will be 0 for all successful requests.
status_codeintThe HTTP status code of the response included in the response body.

Sample Response

{
  "data": {
    "flight": {
      "battery_serial": "string",
      "flight_id": "string",
      "has_telemetry": true,
      "landing": "2022-05-03T03:10:52.503+00:00",
      "takeoff": "2022-05-03T03:10:52.503+00:00",
      "user_email": "string",
      "vehicle_serial": "string"
    }
  },
  "meta": {    
    "time": 1672350190.916143
  },
  "skydio_error_code": 0,
  "status_code": 200
}

Error Codes

The Skydio API returns the following HTTP errors:

Status CodeDescription
400 - Bad RequestThe request or arguments are malformed.
401 - UnauthorizedThe request was unable to be authenticated and authorized. Check that your API token is correct and is included in the request.
403 - ForbiddenYou do not have permission to make this request.
404 - Not FoundThe requested resource was not found.
409 - ConflictThe operation could not be performed.
429 - Too Many RequestsToo many requests have been made. Please use the Retry-After header to determine the suggested amount of seconds to wait before retrying this request. Limits are in place to protect the Skydio API from spikes in traffic.
500 - Server ErrorAn unexpected error occurred. Please try again or contact Skydio Support if the error persists.

Other Conventions

  • Most resources have a unique identifier specified in a top-level uuid field. You can specify the UUID with or without dashes when making requests to the Skydio Cloud API

  • All timestamp fields (like flight takeoff time) will be specified as ISO 8601 strings. This includes the date, time, and timezone of the field, if applicable. (2022-03-07T03:10:52.503+00:00). All Skydio API timestamps are in Coordinated Universal Time (UTC). The following ISO 8601 formats are currently supported by the API:

    • YYYY-MM-DDThh:mm:ss<Timezone Suffix>
      The time zone suffix can be expressed by a literal value Z, which designates the time as UTC time; or an offset expressed in hours and minutes hh:mm ahead or before UTC. The value of the offset must fall between -23:59 and +23:59. As an example, 2022-03-07T03:10:52-05:00 corresponds to March 07, 2022, 3:10:52 am, US Eastern Standard Time. Conversely, 2022-03-07T03:10:52Z corresponds to March 07, 2022, 3:10:52 am, but in Coordinated Universal Time (UTC), which is 5 hours ahead.
    • YYYY-MM-DDThh:mm:ss
      If you choose to exclude the Timezone Suffix, it will default to UTC time.
    • YYYY-MM-DDThh:mm:ss[.f{1,6}]
      If the time value includes seconds, you have the option to include up to six digits representing fractional seconds. For instance, 2022-08-18T08:30:07.233227. You can optionally append a Timezone Suffix at the end of the string, if desired.
  • An Idempotency key can be optionally specified in the request headers for some endpoints. This allows a request to be retried for the same vehicle without duplicating the operation. See specific endpoint documentation to determine if it supports idempotent requests.

Documentation and Code Samples

Within the documentation of each endpoint, there are often code samples written in python using our Sample Python Client. It handles basic authentication and url-encoding using the Python requests library.

📘

API Example Repo

We’ve created a GitHub repository with sample code for various workflows using the Skydio Cloud API and Webhook API. Use it to test API calls, understand responses, and see how the different workflows operate in practice.

Disclaimer

Applications developed from Skydio APIs must follow and enable end-users to follow all applicable laws and rules, including but not limited to civil aviation rules and regulations, such as the FAA or your country's regulatory agency rules. Skydio disclaims all liability resulting from applications developed from its APIs that do not conform to applicable rules. To the maximum extent permitted by law, Skydio provides its APIs as-is. Skydio does not provide warranties of any kind, either express or implied, including but not limited to merchantability and fitness for a particular purpose.