Cyberwave exposes its capabilities through three distinct API surfaces, each serving a specific purpose in the robotics stack.
1. REST API (Control Plane)
Purpose: Configuration, Management, and Non-Realtime Operations.
- Technology: JSON over HTTP (powered by
django-ninja). - Reference: See the official API overview for how REST vs MQTT is intended to be used.
- Docs: Live OpenAPI docs are available at
/api/v1/docs/on your instance, and the schema at/api/v1/openapi.json.
REST domains that exist in the codebase today
- Identity & org structure:
/users(workspaces, orgs, plans, profile, workspace members) - Assets & uploads:
/assets,/attachments(including large upload flows) - Projects & environments:
/projects,/environments - Digital twins:
/twins(twin creation + state/joint updates + URDF/twin URDF endpoints) - Edges:
/edges(edge registration / management) - Workflows:
/workflows(workflow nodes, connections, executions) - Data capture:
/episodes,/datasets(generation requests + metadata) - ML catalog & training:
/mlmodels,/mltrainings - Controller policies:
/controller-policies - Invitations:
/invitations
2. MQTT API (Data Plane)
Purpose: High-Frequency Telemetry and Asynchronous Command & Control.
- Technology: Pub/Sub messaging (MQTT 5.0).
- Structure: Topics are hierarchically organized by tenant and asset (e.g.,
/{tenant_id}/{asset_id}/telemetry). - Usage: Used by the SDKs to push state updates (up to 100Hz) and receive mission directives.
3. WebRTC API (Video Plane)
Purpose: Ultra-low latency video and audio streaming.
- Technology: Peer-to-Peer (P2P) or TURN-relayed UDP streams.
- Usage: The API handles the Signaling phase (SDP exchange) to establish a direct pipe between the robot's camera and the user's browser.
All endpoints are secured via API Tokens (for robots/scripts) or OAuth2 (for users).