Skip to main content
This page is a stub. A human will curate and expand it before publishing.
Two endpoints for reading a robot’s current state over plain HTTPS, without subscribing to MQTT or opening a video stream. Both are polling endpoints: you ask, you get the latest value.

Where is it now?

Returns the robot’s current GNSS position, in both WGS-84 and your environment’s local frame:
Requires the twin to be GPS-positioned. A GNSS fix typically arrives at 1–2 Hz, so polling faster returns the same fix with a larger ageSeconds. A 404 means the position is genuinely unknown — no recent fix has arrived. It deliberately does not fall back to the position the twin was placed at in the editor: that placement is not georeferenced, so returning it would be a confident wrong answer about where a real robot is. takeoffAltitudeOffsetM is the height above the point the aircraft took off from, present only once a take-off has been observed. battery and state are omitted when the robot has not reported them, rather than being reported as zero.
GET /api/v1/twins/{uuid}/telemetry is a different thing: it queries historical recorded telemetry and requires a time range. Use live-position for the current value.

Give me a picture, now

Returns image/jpeg. Without pull, this endpoint serves whatever frame is already cached and 404s if there is none. With pull=true, it asks the robot to take a photo and waits briefly for the answer, so you get a frame even when nothing is streaming. The X-Frame-Pulled response header tells you whether the frame was freshly captured (true) or served from cache (false). Frame rate is set by how often you ask, capped at roughly 5 frames per second — a faster poll returns the cached frame rather than putting another capture request on the robot. Requires a driver that supports on-demand photo capture; a 504 means no frame could be produced — the robot was asked and did not answer, its driver does not support on-demand capture, or it has no camera. When you pass sensor_id, you only ever get a frame from that camera. If a photo arrives from a different one — possible on a multi-camera robot when two requests overlap — it is cached under its own camera and this request answers 504 rather than handing you the wrong picture.