Build on the agent.
REST endpoints for integration, WebSocket for real-time MAVLink, and a Python SDK for rapid development. Everything you need to build drone-powered applications.
REST API
Eight endpoints. Full control.
The REST API runs on port 8080 by default. All responses are JSON. Authentication via X-API-Key header.
/api/status/api/telemetry/api/config/api/config/api/logs/api/services/api/params/api/commandsExamples
Quick start.
Get Telemetry (curl)
curl -s http://192.168.1.100:8080/api/telemetry \
-H "X-API-Key: your-key" | jq
{
"armed": true,
"mode": "GUIDED",
"battery": { "voltage": 22.4, "pct": 78 },
"gps": {
"lat": 28.5445,
"lon": 77.1855,
"alt": 50.2,
"fix": 3,
"satellites": 14
},
"attitude": {
"roll": 0.02,
"pitch": -0.01,
"yaw": 182.5
}
}Python SDK
from ados import ADOSDrone
import asyncio
async def main():
drone = ADOSDrone("192.168.1.100")
await drone.connect()
# Read telemetry
telem = await drone.get_telemetry()
print(f"Battery: {telem.battery.pct}%")
print(f"GPS: {telem.gps.lat}, {telem.gps.lon}")
# Send command
await drone.takeoff(altitude=10)
await drone.goto(28.5450, 77.1860, 50)
await drone.rtl()
asyncio.run(main())WebSocket
Raw MAVLink relay.
The WebSocket relay on port 8765 forwards raw MAVLink binary between the flight controller and any number of consumers. Wire-compatible with the SITL bridge.
- ✓Bidirectional: read telemetry and send commands
- ✓Raw binary MAVLink v2 frames (no JSON wrapping)
- ✓Multi-consumer: multiple clients connect simultaneously
- ✓Wire-compatible with ArduPilot SITL WebSocket bridge
- ✓Sub-5ms latency on local network
Multi-Consumer Routing
Flight Controller (UART/USB)
|
MAVLink Proxy
/ | \
/ | \
WS TCP UDP
:8765 :5760 :14550/:14551
| | |
GCS SITL Legacy
Web Bridge ToolsPython SDK
ados-sdk
The Python SDK wraps the REST API and WebSocket relay into a clean async interface. Same capabilities, better ergonomics.
ADOSDroneSingle drone connection, telemetry, commands, parameters
ADOSSwarmMulti-drone orchestration, grid assignment, formation flight
ADOSMissionMission file loading, upload, execution, monitoring
ADOSVideoVideo stream access, snapshot capture, recording control
ADOSSensorsSensor data access (GPS, IMU, barometer, rangefinder)
ADOSConfigAgent and FC configuration read/write with validation
Security
API key authentication.
Every request requires an API key in the X-API-Key header. Keys have permission levels that control what operations are allowed.
readTelemetry, status, config, logs, params. No state changes.commandSend flight commands (takeoff, land, goto). Requires read.missionUpload and execute mission files. Requires command.configModify agent and FC configuration. Requires read.adminFull access including OTA updates, service restart, key management.Read the full API docs.
Complete endpoint reference, WebSocket protocol, and SDK documentation on GitHub.
View on GitHub