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:
| Field | Type | Description |
|---|---|---|
| data | JSON object | Requested data, schema varies per endpoint |
| meta | JSON object | Contains metadata about the request, including a timestamp |
| skydio_error_code | int | Skydio specific error code, to share if contacting Skydio Support. Will be 0 for all successful requests. |
| status_code | int | The 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 Code | Description |
|---|---|
| 400 - Bad Request | The request or arguments are malformed. |
| 401 - Unauthorized | The request was unable to be authenticated and authorized. Check that your API token is correct and is included in the request. |
| 403 - Forbidden | You do not have permission to make this request. |
| 404 - Not Found | The requested resource was not found. |
| 409 - Conflict | The operation could not be performed. |
| 429 - Too Many Requests | Too 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 Error | An 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
uuidfield. 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 valueZ, which designates the time as UTC time; or an offset expressed in hours and minuteshh:mmahead or before UTC. The value of the offset must fall between-23:59and+23:59. As an example,2022-03-07T03:10:52-05:00corresponds to March 07, 2022, 3:10:52 am, US Eastern Standard Time. Conversely,2022-03-07T03:10:52Zcorresponds 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 RepoWe’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.
