Skip to main content

WebUI API Reference

All routes are registered with add_url_rule in EagleEyeInterface._register_routes() in src/webui/web_server.py. The server listens on http://0.0.0.0:5001.

Static / UI

MethodPathDescription
GET/Serves the compiled index.html
GET/js/main.jsServes the compiled frontend bundle
GET/style.cssServes the compiled CSS
GET/background.webpBackground image
GET/assets/<path:filename>Compiled static assets
GET/.well-known/appspecific/com.chrome.devtools.jsonSilences the Chrome DevTools probe
GET/frc2025r2.jsonFRC 2025 AprilTag field layout
GET/src/webui/assets/apriltags/<path:filename>AprilTag reference images
GET/draco/<path:filename>Draco decoder assets for 3D models
GET/get-robot-file/<path:filename>Serves a robot model file

Camera feeds and test videos

MethodPathDescription
GET/get-available-camerasAvailable camera names
GET/feed/<camera_name>MJPEG stream for the named camera
GET/test-videosList uploaded test videos
POST/test-videosUpload a test video
DELETE/test-videos/<filename>Delete a test video

Camera configuration and calibration

MethodPathDescription
GET/camera-config/camerasCameras that have configs
GET/camera-config/<camera_bus_id>Full config (intrinsics + extrinsics)
POST/camera-config/<camera_bus_id>/extrinsicsSave extrinsics
POST/camera-config/<camera_bus_id>/intrinsicsUpload intrinsics
DELETE/camera-config/<camera_bus_id>/intrinsicsDelete intrinsics
GET/camera-config/<camera_bus_id>/calibration/feedCalibration MJPEG feed
GET/camera-config/<camera_bus_id>/distortion/feedUndistorted preview feed
POST/camera-config/<camera_bus_id>/calibration/captureCapture one calibration frame
GET/camera-config/<camera_bus_id>/calibration/framesList captured frames
GET/camera-config/<camera_bus_id>/calibration/frames/<frame_index>Get one frame image
DELETE/camera-config/<camera_bus_id>/calibration/frames/<frame_index>Delete one frame
POST/camera-config/<camera_bus_id>/calibration/resetDiscard all captured frames
POST/camera-config/<camera_bus_id>/calibration/runRun calibration and write intrinsics

3D assets

MethodPathDescription
GET/get-available-robotsRobot models available for display
GET/robot-filesList robot model files
POST/robot-filesUpload a robot model file
POST/robot-files/<filename>/scaleSave a model's display scale
DELETE/robot-files/<filename>Delete a robot model file
GET/field-filesList field model files
POST/field-filesUpload a field model file
POST/field-files/<year>/<filename>/scaleSave a field model's scale
DELETE/field-files/<year>/<filename>Delete a field model file

Operations metadata

MethodPathDescription
GET/get-available-operationsAll operations (main + secondary) with config defs
GET/get-operation-config-data/<operation_name>/<is_secondary>Config def for one operation
POST/get-operation-config-data-batchConfig defs for several operations in one call
GET/get-operation-files/<operation_name>/<parameter_name>Files for a file-type parameter
POST/upload-operation-file/<operation_name>/<parameter_name>Upload a file for a parameter
DELETE/delete-operation-file/<operation_name>/<parameter_name>/<filename>Delete an uploaded file

There is no endpoint for creating or editing operation source code from the browser.

Devices and model library

MethodPathDescription
GET/device-registryStartup device inventory (cpu, cuda:N, mx3:N)
GET/model-libraryList managed models
POST/model-libraryCreate a model record
PATCH/model-library/<model_id>Update a model record
DELETE/model-library/<model_id>Delete a model record
POST/model-library/<model_id>/artifacts/<slot>Upload an artifact into a slot
DELETE/model-library/<model_id>/artifacts/<slot>Delete an artifact
GET/model-library/<model_id>/resolveResolve the artifact for a device ID
GET/model-library/mx3-compilationMX3 compilation status
POST/model-library/<model_id>/mx3-compilationStart an MX3 compilation job
DELETE/model-library/mx3-compilation/<job_id>Cancel a compilation job

Pipeline management

MethodPathDescription
GET/get-pipeline-namesPipeline names from pipeline_config.json
GET/get-pipeline-config/<pipeline_name>Operation list for one pipeline
POST/save-pipeline-config/<pipeline_name>Overwrite one pipeline's operation list
GET/pipeline-config/jsonEntire pipeline config as JSON
PUT/pipeline-config/jsonReplace the entire pipeline config
GET/pipeline-settings/<pipeline_name>Per-pipeline settings
PUT/pipeline-settings/<pipeline_name>Save per-pipeline settings
DELETE/delete-pipeline/<pipeline_name>Delete a pipeline
GET/get-pipeline-active/<pipeline_name>Whether the pipeline is running
GET/get-pipeline-thread-info/<pipeline_name>Thread and timestep info per operation UUID

Visualization

MethodPathDescription
POST/start-visualize/<pipeline_name>/<operation_uuid>Start visualizing one operation
POST/stop-visualize/<pipeline_name>Stop the pipeline's visualization
GET/visualize/<pipeline_name>Single JPEG frame
GET/visualize/stream/<pipeline_name>MJPEG stream at VISUALIZATION_STREAM_FPS (12)

Line profiling

MethodPathDescription
POST/line-profiling/start/<pipeline_name>/<operation_uuid>Start line profiling an operation
POST/line-profiling/stop/<pipeline_name>/<operation_uuid>Stop line profiling
GET/line-profiling/statusCurrent profiling state
GET/line-profiling/report/<pipeline_name>/<operation_uuid>Line-by-line report

Networking

MethodPathDescription
GET/wifi-networksVisible Wi-Fi networks
GET/wifi-networks/statusNetworkManager connection status
POST/wifi-networks/connectConnect to a network
POST/wifi-networks/disconnectDisconnect

Backend control

MethodPathDescription
POST/restart-backendRestart the EagleEye service
POST/reboot-systemReboot the host
POST/shutdownShut down the backend process
GET/get_restart_requiredReturns {"restart_required": bool}
POST/set_restart_requiredSet the restart-required flag
GET/system-update/statusUpdate state
GET/system-update/infoAvailable update information
POST/system-update/runStart a system update

Terminal

MethodPathDescription
GET/terminal/cwdCurrent working directory
POST/terminal/executeExecute a command and return its output

Settings

MethodPathDescription
GET/get-general-confReturns the general config (network_table_address, view_stream_downscale)
POST/save-general-confSave the general config

Logs and system monitoring

MethodPathDescription
GET/get-log-messagesRecent log messages
GET/download-log-fileDownload the full log file
GET/get-system-statusSame payload as the system_status SSE event

SSE stream

MethodPathDescription
GET/sse/streamServer-Sent Events stream (text/event-stream)

See SSE & Real-time for the full event list and payload shapes.