Webhook Request Format

Flight State

This request will be sent when an online vehicle starts flying (FLIGHT_START) and when the vehicle lands (FLIGHT_END). If the vehicle loses connection during flight, it's possible that the FLIGHT_END request won't be received immediately. If the vehicle does not regain connection within one hour of the flight takeoff time, a FLIGHT_END message will be sent automatically.

Request Schema

event_type = "skydio.cloud.event.flight_state"

FieldTypeDescription
typeFLIGHT_START, FLIGHT_ENDWhether this signifies the start or the end of a flight
timeISO-formatted stringTime the flight started or ended
flight_idstringUnique identifier of the flight
vehicle_serialstringUnique identifier of the vehicle

Example Payload

{
  "id": "479b4057-bf9c-46e5-9ab8-258ac37f6362",
  "event_type": "skydio.cloud.event.flight_state",
  "event_time": "2022-12-28T18:13:43.583939+00:00",
  "data": {
    "resource": {
      "type": "FLIGHT_START",
      "time": "2022-12-28T18:13:43.583901+00:00",
      "flight_id": "0A9F36D0122642D4BB8A519B00F61D5B",
      "vehicle_serial": "Skydio-1234"
      }
   }
}

Waypoint Progress

This request will be sent every time a vehicle progresses through a waypoint, and completes all of its associated actions, while executing a mission.

Request Schema

event_type = "skydio.cloud.event.waypoint_progress"

FieldTypeDescription
timeISO-formatted stringTime the waypoint was passed
mission_template_uuidUUID4-formatted stringUnique identifier of the mission template
vehicle_serialstringUnique identifier of the vehicle
waypoint_indexintegerIndex of waypoint passed
waypoint_uuidUUID4-formatted stringUnique identifier of the waypoint passed

Example Payload

{
  "id": "279c15e4-6cfd-4664-8a49-3154741cd4d8",
  "event_type": "skydio.cloud.event.waypoint_progress",
  "event_time": "2023-03-14T23:44:44.741150+00:00",
  "data": {
    "resource": {
      "time": "2023-03-14T23:44:44.348098+00:00",
      "mission_template_uuid": "94e09795-3b02-457f-8e16-d50f9b94ec54",
      "vehicle_serial": "Skydio-27JZ",
      "waypoint_index": 2,
      "waypoint_uuid": "7d2b43fe-e383-4c74-b94f-8c2aacb1b08a"
    }
  }
}

Human Detected

Sent from an online vehicle when a human was detected by the front-facing camera. If this occurs while the vehicle is not connected to the internet, no request will be sent.

Request Schema

event_type = "skydio.cloud.event.device_alert"

FieldTypeDescription
alert_typeHUMAN_DETECTEDA human was detected
alert_timeISO-formatted stringTime of detection
devicestringContains device type and unique identifier
mission.mission_run_uuidstringContains the uuid of the mission run if the alert was triggered during a mission run

Example Payload

{
  "id": "479b4057-bf9c-46e5-9ab8-258ac37f6362",
  "event_type": "skydio.cloud.event.device_alert",
  "event_time": "2022-01-06T22:13:27.000+00:00",
	"data": {
		"resource": {
			"alert_type": "HUMAN_DETECTED",
			"alert_time": "2022-01-06T22:13:27.000+00:00",
			"device": {
				"type": "VEHICLE",
				"id": "Skydio2-1234"
			},
      "mission": {
      	"mission_run_uuid": "acb6bdbb-349f-4637-b4e5-c8ff00e5098a"
    	}
		}
	}
}

Mission Incomplete

Sent from an online vehicle when a mission fails to complete all of its actions. If this occurs while the vehicle is not connected to the internet, no request will be sent.

Request Schema

event_type = "skydio.cloud.event.device_alert"

FieldTypeDescription
alert_typeMISSION_INCOMPLETEMission has not completed
alert_timeISO-formatted stringTime mission ended
devicestringContains device type and unique identifier
mission_resultstringReason for which the mission failed to complete
mission.mission_run_uuidstringContains the uuid of the mission run if the alert was triggered during a mission run

Example Payload

{
  "id": "479b4057-bf9c-46e5-9ab8-258ac37f6362",
  "event_type": "skydio.cloud.event.device_alert",
  "event_time": "2022-01-06T22:13:27.000+00:00",
	"data": {
		"resource": {
			"alert_type": "MISSION_INCOMPLETE",
			"alert_time": "2022-01-06T22:13:27.000+00:00",
			"device": {
				"type": "VEHICLE",
				"id": "Skydio2-1234"
			},
      "mission": {
      	"mission_run_uuid": "acb6bdbb-349f-4637-b4e5-c8ff00e5098a"
    	},
			"mission_result": "FAILED_WAYPOINT_ACTION"
		}
	}
}

Scheduled Mission Failed Takeoff

Sent from an online vehicle when it fails to takeoff for a scheduled mission. If this occurs while the vehicle is not connected to the internet, no request will be sent.

Request Schema

event_type = "skydio.cloud.event.device_alert"

FieldTypeDescription
alert_typeSCHEDULED_MISSION_FAILED_TAKEOFFScheduled mission failed to takeoff
alert_timeISO-formatted stringTime of failure
devicestringContains device type and unique identifier
mission.mission_run_uuidstringContains the uuid of the mission run if the alert was triggered during a mission run

Example Payload

{
  "id": "479b4057-bf9c-46e5-9ab8-258ac37f6362",
  "event_type": "skydio.cloud.event.device_alert",
  "event_time": "2022-01-06T22:13:27.000+00:00",
	"data": {
		"resource": {
			"alert_type": "SCHEDULED_MISSION_FAILED_TAKEOFF",
			"alert_time": "2022-01-06T22:13:27.000+00:00",
			"device": {
				"type": "VEHICLE",
				"id": "Skydio2-1234"
			},
      "mission": {
      	"mission_run_uuid": "acb6bdbb-349f-4637-b4e5-c8ff00e5098a"
    	}
		}
	}
}

Dock Error

Sent from an online vehicle when an error occurs during returning to or landing at dock. If this occurs while the vehicle is not connected to the internet, no request will be sent.

Request Schema

event_type = "skydio.cloud.event.device_alert"

FieldTypeDescription
alert_typeDOCK_ERRORError occured
alert_timeISO-formatted stringTime of failure
devicestringContains device type and unique identifier
dock_error_typestringReason for which the Dock error occured
mission.mission_run_uuidstringContains the uuid of the mission run if the alert was triggered during a mission run

Example Payload

{
  "id": "479b4057-bf9c-46e5-9ab8-258ac37f6362",
  "event_type": "skydio.cloud.event.device_alert",
  "event_time": "2022-01-06T22:13:27.000+00:00",
	"data": {
		"resource": {
			"alert_type": "DOCK_ERROR",
			"alert_time": "2022-01-06T22:13:27.000+00:00",
			"device": {
				"type": "VEHICLE",
				"id": "Skydio2-1234"
			},
      "mission": {
      	"mission_run_uuid": "acb6bdbb-349f-4637-b4e5-c8ff00e5098a"
    	},
			"dock_error_type": "LANDED_OUTSIDE_DOCK"
		}
	}
}

Online Status

This request will be sent when a device (vehicle or dock) connects or disconnects from the internet.

A device is considered offline when it disconnects from the internet for a period of at least 15 seconds. If a device disconnects for less than 15 seconds, no requests will be sent.

Request Schema

event_type = "skydio.cloud.event.online_status"

FieldTypeDescription
timeISO-formatted stringTime of online status change
devicestringContains device type and unique identifier
is_onlinebooleanWhether the device is now online (true) or offline (false)

Example Payload

{
  "id": "479b4057-bf9c-46e5-9ab8-258ac37f6362",
  "event_type": "skydio.cloud.event.online_status",
  "event_time": "2022-01-06T22:13:27.000+00:00",
	"data": {
		"resource": {
			"time": "2022-01-06T22:13:27.000+00:00",
			"device": {
				"type": "VEHICLE",
				"id": "Skydio2-1234"
			},
			"is_online": true
		}
	}
}

Media File Available

This request will be sent when a media file is uploaded to Skydio Cloud.

Request Schema

event_type = "skydio.cloud.event.media_file_available"

FieldTypeDescription
timeISO-formatted stringTime of online status change
flight_idstringUUID for the flight
file_kindstringType of file uploaded. One of [vehicleImage, vehicleImageDng, vehicleIrImage, vehicleRadiometricImage, vehicleVideoPreview, vehicleVideoRaw, videoTelemetryCsv]
file_uuidstringUUID for the media file
filenamestringFile name for the media file

Example Payload

{
  "data": {
    "resource": {
      "file_kind": "vehicleImage",
      "file_uuid": "f4b45fed-823c-4f9a-bf4c-81d8db461a1b",
      "filename": "s1000566.jpg",
      "flight_id": "74B2BA89F7A14A4CB32F4EA3A3E0673E"
    }
  },
  "event_time": "2023-08-17T18:30:23.937262+00:00",
  "event_type": "skydio.cloud.event.media_file_available",
  "id": "4c8734a4-a678-45a4-8583-cd61c8a8cd82"
}

Media Available for Scan

This request will be sent when all media for a scan is uploaded to Skydio Cloud.

Request Schema

event_type = "skydio.cloud.event.media_available_for_scan"

FieldTypeDescription
scan_idstringUUID for the Scan
scan_namestringPilot-provided name for the Scan
scan_timeISO-formatted stringTime of scan
scan_modestringType of scan (example: "Map Capture")
photo_countintNumber of media files uploaded

Example Payload

{
  "data": {
    "resource": {
      "scan_id": "f2186229-410b-4120-a464-20cd3b49267a",
      "scan_name": "Container",
      "scan_mode":"Map Capture",
      "scan_time": "2023-08-17T16:54:45.869551+00:00",
      "photo_count": "246"
    }
  },
  "event_time": "2023-08-17T18:30:23.937262+00:00",
  "event_type": "skydio.cloud.event.media_available_for_scan",
  "id": "4c8734a4-a678-45a4-8583-cd61c8a8cd82"
}

Flight Telemetry Available

This request will be sent when a vehicle finishes uploading the telemetry log for a flight to Skydio Cloud and telemetry information is available via the API.

Request Schema

event_type = "skydio.cloud.event.telemetry_available"

FieldTypeDescription
file_uuidstringUUID for the telemetry file
flight_idstringID for the flight
vehicle_serialstringContains the serial for the vehicle

Example Payload

{
  "data": {
    "resource": {
      "file_uuid": "f4b45fed-823c-4f9a-bf4c-81d8db461a1b",
      "flight_id": "74B2BA89F7A14A4CB32F4EA3A3E0673E",
      "vehicle_serial": "Skydio2-1234"
    }
  },
  "event_time": "2023-08-17T18:30:23.937262+00:00",
  "event_type": "skydio.cloud.event.telemetry_available",
  "id": "4c8734a4-a678-45a4-8583-cd61c8a8cd82"
}

Live Stream Status

This request will be sent when a device begins or ends live streaming.

A device begins live streaming when:

  • A pilot hits the "Start Live Stream" button on the device's controller or the Skydio Enterprise App
  • A Skydio Cloud user hits the "Start Live Stream" button for a vehicle
  • A docked vehicle begins a flight

A device stops live streaming when:

  • A pilot hits the "End Live Stream" button
  • A Skydio Cloud User hits the "End Live Stream" button
  • A docked vehicle ends a flight
  • A vehicle loses connection to its controller
  • A vehicle or its controller is powered off

Request Schema

event_type = "skydio.cloud.event.live_stream_status_changed"

FieldTypeDescription
live_stream_statusstringContains LIVE_STREAM_START or LIVE_STREAM_END
rtsp_urlstringContains the URL for accessing a vehicle's stream via RTSPS (only available if RTSP LIve Streaming is available for the organization)
stream_typestringContains color or thermal
vehicle_serialstringContains the serial for the vehicle

Example Payload

{
  "data": {
    "resource": {
      "live_stream_status": "LIVE_STREAM_START",
      "rtsp_url":"rtsps://stream.skydio.com/Skydio2-1234/color",
      "stream_type": "color",
      "vehicle_serial": "Skydio2-1234"
    }
  },
  "event_time": "2023-08-17T18:30:23.937262+00:00",
  "event_type": "skydio.cloud.event.live_stream_status_changed",
  "id": "4c8734a4-a678-45a4-8583-cd61c8a8cd82"
}