Skip to main content

HTTP API

HeliOS exposes an HTTP API under the /v1 prefix.

  • Base prefix: /v1
  • OpenAPI: GET /openapi.json (or GET /v1/openapi.json)

Endpoint Index

EngineStreams

MethodPathDescriptionResponses
GET/v1/streamsList active streams200
POST/v1/streamsStream started200, 422
GET/v1/streams/{id}Stream info200, 404
DELETE/v1/streams/{id}Stream stopped204
POST/v1/streams/{id}/calibration/applyUpdated stream manifest200
GET/v1/streams/{id}/calibration/boardCalibration board PNG200
GET/v1/streams/{id}/calibration/board.pdfCalibration board PDF200
POST/v1/streams/{id}/calibration/saveUpdated stream manifest200
GET/v1/streams/{id}/controlsCurrent controls200
POST/v1/streams/{id}/controls/{control_id}Control updated204
POST/v1/streams/{id}/cropCrop applied200, 400, 404, 502
GET/v1/streams/{id}/formatLatest encoded payload format info200
GET/v1/streams/{id}/frameLatest JPEG frame200
GET/v1/streams/{id}/metricsStream metrics200
POST/v1/streams/{id}/pipeline/graphPipeline graph updated204
POST/v1/streams/{id}/pipeline/layoutPipeline layout updated204
POST/v1/streams/{id}/pipeline/outputPipeline output updated204
GET/v1/streams/{id}/pipeline/outputsPipeline graph host outputs200
GET/v1/streams/{id}/pipeline/outputs/{port}/sampleLatest JSON sample captured from the port200
GET/v1/streams/{id}/pipeline/smokeRuntime pipeline health snapshot200
PUT/v1/streams/{id}/posePose updated204
DELETE/v1/streams/{id}/posePose cleared204
GET/v1/streams/{id}/previewLive stream preview (MJPEG multipart or length-prefixed encoded)200
POST/v1/streams/{id}/recording/startRecording started201, 400, 502
POST/v1/streams/{id}/recording/stopRecording stopped204, 502
POST/v1/streams/{id}/snapshotSnapshot stored201, 400, 404, 502, 503
GET/v1/streams/backendsAvailable capture backends/devices200
POST/v1/streams/bench/formatsBenchmark results200
GET/v1/streams/capabilitiesStream validation constraints and defaults200
GET/v1/streams/codecsAvailable codecs (encoders + decoders)200
POST/v1/streams/validateValidated + canonicalized stream manifest200, 422

Device

MethodPathDescriptionResponses
GET/v1/device/bootloaderBootloader firmware status200
POST/v1/device/bootloader/updateBootloader firmware update staged200
GET/v1/device/camera-layoutCamera + rig layout snapshot200
PUT/v1/device/cameras/{camera_uid}/posePose updated204
DELETE/v1/device/cameras/{camera_uid}/posePose cleared204
GET/v1/device/consoleConsole placeholder200
GET/v1/device/hostnameDevice hostname200, 502
POST/v1/device/hostnameHostname updated204, 400, 502
GET/v1/device/i2cI2C inventory200, 400, 503
GET/v1/device/ideIDE connection information200
GET/v1/device/ide/projectsIDE plugin projects200
POST/v1/device/ide/projectsCreated IDE plugin project200
GET/v1/device/imuIMU status200, 400, 503
PATCH/v1/device/imuUpdated IMU status200, 400, 503
GET/v1/device/ipaIPA tuning files and current CCM200
POST/v1/device/ipa/ccmCCM written; restart engine to reload204
GET/v1/device/ipa/ccm/chartColorChecker Classic 24 PNG200
GET/v1/device/ipa/ccm/chart.pdfColorChecker Classic 24 PDF200
POST/v1/device/ipa/ccm/solveSolve CCM from a chart image200
GET/v1/device/ipa/downloadDownload IPA JSON200
POST/v1/device/lightingLighting command applied204, 400, 502, 503
GET/v1/device/lighting/animationsSaved lighting animations200
POST/v1/device/lighting/animationsLighting animation saved204, 400
DELETE/v1/device/lighting/animations/{name}Lighting animation deleted204
GET/v1/device/lighting/configLighting configuration200
POST/v1/device/lighting/configLighting configuration updated204, 400
POST/v1/device/lighting/config/resetLighting configuration reset200
GET/v1/device/lighting/stateCurrent lighting runtime state200, 502, 503
GET/v1/device/lighting/templatesList built-in lighting templates200
GET/v1/device/lighting/templates/{id}Lighting template document200, 404
GET/v1/device/logsLogs placeholder200
GET/v1/device/logs/downloadLog download200
GET/v1/device/logs/sourcesAvailable log sources200
GET/v1/device/metricsDevice metrics200
GET/v1/device/networkNetwork config200, 502
POST/v1/device/networkNetwork config updated204, 400
GET/v1/device/nt4NT4 settings200
POST/v1/device/nt4NT4 settings updated204, 400
GET/v1/device/osOS release info200, 404
GET/v1/device/powerPower status200, 400, 503
GET/v1/device/resource-guardResource guard status200
POST/v1/device/resource-guard/restore/{stream_id}Resource guard stream restore action200
POST/v1/device/restartRestart queued200, 502
PATCH/v1/device/robot-dimensionsUpdated camera layout snapshot200
GET/v1/device/teamTeam number200
POST/v1/device/teamTeam updated204, 400
GET/v1/device/usb-powerUSB power settings200
POST/v1/device/usb-powerUSB power settings updated204, 400, 502, 503
GET/v1/healthBackend is reachable200

Peripherals

MethodPathDescriptionResponses
GET/v1/peripheralsPeripherals and cameras200, 502
GET/v1/peripherals/camerasDiscovered cameras200, 502
GET/v1/peripherals/fanFan status200, 503
GET/v1/peripherals/i2cI2C inventory200, 400, 503
GET/v1/peripherals/ledsLighting presence200
GET/v1/peripherals/usbUSB peripherals200

Media

MethodPathDescriptionResponses
GET/v1/mediaList stored media assets200, 500
POST/v1/mediaMedia uploaded201, 400, 500
GET/v1/media/{name}Media content200, 404
DELETE/v1/media/{name}Media deleted204, 404
POST/v1/media/{name}/image/editsImage updated200, 400
GET/v1/media/{name}/imuIMU sidecar stream200, 404
POST/v1/media/{name}/imuIMU sidecar attached200, 400
DELETE/v1/media/{name}/imuIMU sidecar detached200, 404
GET/v1/media/{name}/labelLabel file contents200, 404
POST/v1/media/{name}/labelLabel attached200, 400
PATCH/v1/media/{name}/metadataMetadata updated200, 400

Pipelines

MethodPathDescriptionResponses
GET/v1/pipelines/graphsList stored graphs200, 500
POST/v1/pipelines/graphsGraph stored201, 400, 500
GET/v1/pipelines/graphs/{id}Graph document200, 404
PUT/v1/pipelines/graphs/{id}Graph updated200, 400, 404, 500
DELETE/v1/pipelines/graphs/{id}Graph deleted204, 404, 500
GET/v1/pipelines/registryDaedalus node registry200
GET/v1/pipelines/templatesList template graphs200
GET/v1/pipelines/templates/{id}Template graph document200, 404
POST/v1/pipelines/validatePlanner diagnostics200, 400, 502

Localization

MethodPathDescriptionResponses
GET/v1/localization/capabilitiesLocalization validation constraints and defaults200
GET/v1/localization/configLocalization config200
PUT/v1/localization/configUpdated localization config200, 422
GET/v1/localization/external/{id}/outputs/{output_key}Latest output sample200, 400, 404
GET/v1/localization/external/sourcesExternal localization sources200
PUT/v1/localization/external/sources/{id}Upserted external source200
DELETE/v1/localization/external/sources/{id}External source removed204
POST/v1/localization/external/sources/{id}/sampleUpdated sample200
GET/v1/localization/mapsAvailable field maps200
GET/v1/localization/maps/{id}Field map document200, 404
POST/v1/localization/maps/uploadMap uploaded201, 400, 413, 422
GET/v1/localization/peers/{id}/outputs/{output_key}Latest output sample200, 400, 404, 502
GET/v1/localization/profiles/exportExported localization profiles envelope200
POST/v1/localization/profiles/importImported localization config200, 400, 422
GET/v1/localization/solveLocalization solve outputs200
GET/v1/localization/sourcesAvailable localization pipeline outputs200
GET/v1/localization/streams/{id}/outputs/{output_key}Latest output sample200, 404, 502
POST/v1/localization/validateValidated + canonicalized localization config200, 422

Peers

MethodPathDescriptionResponses
GET/v1/peersKnown peers200
POST/v1/peersPeer registered201, 400
DELETE/v1/peers/{id}Peer removed200, 404
POST/v1/peers/discoverDiscovery scheduled200
POST/v1/peers/integrations/photonvision/streamsDiscovered streams200, 400
POST/v1/peers/probeProbe result200, 400

NT4

MethodPathDescriptionResponses
POST/v1/nt4/topicsDiscovered topics200, 400, 502
POST/v1/nt4/valueTopic value200, 400, 404, 502

OTA

MethodPathDescriptionResponses
POST/v1/ota/applyApply scheduled200, 400, 503
POST/v1/ota/cancelUpdate canceled200, 400, 503
POST/v1/ota/stageStaging removed410
GET/v1/ota/stateCurrent updater state200, 503
POST/v1/ota/uploadImage uploaded201, 400, 500

Console

MethodPathDescriptionResponses
GET/v1/console/sessionsList console sessions200, 500
POST/v1/console/sessionsCreated session200, 500
DELETE/v1/console/sessions/{session_id}Session deleted204, 404

Plugins

MethodPathDescriptionResponses
GET/v1/pluginsList plugins200
GET/v1/plugins/{name}Download plugin200, 404
DELETE/v1/plugins/{name}Plugin removed204, 404
POST/v1/plugins/{name}/disablePlugin disabled200, 404
POST/v1/plugins/{name}/enablePlugin enabled200, 404
GET/v1/plugins/disabled/{name}Download disabled plugin200, 404
POST/v1/plugins/installPlugin installed200, 400, 500
POST/v1/plugins/uploadPlugin uploaded201, 400, 500
GET/v1/plugins/uploads/{name}Download uploaded plugin200, 404

Errors

MethodPathDescriptionResponses
GET/v1/errorsError history200
DELETE/v1/errorsCleared error history204
GET/v1/errors/exportError history export200

Calibration

MethodPathDescriptionResponses
POST/v1/calibration/solveSolved camera intrinsics200, 400, 404, 500, 502, 504