REST/HTTP API
Limelight OS features a REST/HTTP server running at (ipaddress):5807
LimelightLib Python is an open-source library that utilizes the Limelight HTTP/REST API.
Note: e.g. http://(limelight-ip-address):5807/results
General
| Method | Route | Description |
|---|
| GET | /results | Returns full JSON dump of current targeting results. |
| GET | /status | Returns JSON status object with temperature, fps, device name, pipeline index, cpu usage, ram usage. |
| GET | /hwreport | Returns JSON array of full hardware reports with FOV, principal offset, calibration info, etc. |
Pipeline Management
| Method | Route | Description |
|---|
| GET | /pipeline-default | Get default pipeline (JSON) |
| GET | /pipeline-atindex | Get pipeline[n] from the camera (JSON). Loads pipeline from disk. Include an 'index' url parameter in the request. |
| POST | /pipeline-switch | Switch to a different pipeline. Include an 'index' url parameter in the request. |
| POST | /reload-pipeline | Force the camera to reload the current pipeline and all pipeline resources |
| POST | /update-pipeline | Accepts JSON with one or more settings updates. Set url parameter "flush" to 1 to save these settings to disk. |
| POST | /upload-pipeline | Upload a pipeline. Send JSON data in the request body. Optionally include an 'index' parameter. Overwrites pipeline on disk |
Camera Management
| Method | Route | Description |
|---|
| POST | /update-imumode | Set IMU Mode. Request body: JSON integer. |
| POST | /update-throttle | Set number of frames to skip between processed frames for thermal management. Request body: JSON integer. |
| POST | /update-imuassistalpha | Set IMU Assist Mode complementary filter alpha (default 0.001). Request body: JSON double. |
Resource Management
| Method | Route | Description |
|---|
| POST | /upload-fieldmap | Upload a field map. Send JSON data in the request body. Optionally include an 'index' parameter. |
| POST | /upload-python | Upload Python code. Send the code as plain text in the request body. Optionally include an 'index' parameter. |
| POST | /upload-nn | Upload a neural network model. Query params: type ("detector" or "classifier"), format ("tflite" or "hef", default "tflite", detectors only), index (optional, 0-9). Request body: binary model file. Detectors support TFLite (.tflite) and Hailo (.hef) formats. Classifiers support TFLite only. |
| POST | /upload-nnlabels | Upload neural network labels. Query params: type ("detector" or "classifier"), index (optional, 0-9). Request body: plain text file with one label per line. |
| GET | /getsnapscriptnames | Returns JSON array of available SnapScript Python script names. |
Python and Robot Orientation
| Method | Route | Description |
|---|
| POST | /update-pythoninputs | Update Python inputs for SnapScript pipelines. Send JSON data (array) in the request body. |
| POST | /update-robotorientation | Update robot orientation. Send JSON data (array) in the request body. EG "[45,0,0,0,0,0]. Use of this method disables NetworkTables-based orientation updates until restart/reboot |
Calibration
| Method | Route | Description |
|---|
| GET | /cal-default | Returns JSON of default calibration result. |
| GET | /cal-file | Returns JSON of custom calibration result (file system). |
| GET | /cal-eeprom | Returns JSON of custom calibration result (eeprom). |
| GET | /cal-latest | Returns JSON of latest custom calibration result. This result is not used unless it is saved to the file system or the eeprom. |
| GET | /cal-pointcloud | Downloads the calibration point cloud as a PLY file (binary). |
| GET | /cal-stats | Returns JSON with calibration statistics including reprojection errors and point counts. |
| POST | /cal-file | Update the filesystem calibration result. Request body: JSON calibration data. |
| DELETE | /cal-latest | Delete latest calibration result. |
| DELETE | /cal-eeprom | Delete eeprom calibration result. |
| DELETE | /cal-file | Delete filesystem calibration result. |
Snapshots
| Method | Route | Description |
|---|
| POST | /capture-snapshot | Capture a snapshot. Include a 'snapname' url parameter to name the snapshot. |
| POST | /upload-snapshot | Upload a named snapshot image. Query param: snapname. Request body: image file (JPEG/PNG binary). |
| GET | /snapshotmanifest | Returns JSON array of snapshot file names. |
| DELETE | /delete-snapshots | Deletes all snapshots. |
| DELETE | /delete-snapshot | Delete a specific snapshot. Include a 'snapname' parameter in the request. |
Rewind Video Recording
Limelight continuously records frames into a rewind buffer. When flushed, recordings are saved as:
.avi - MJPEG video file
_manifest.jsonl - Frame-by-frame JSON results (one JSON object per line, matching each video frame)
_bootlog.txt.gz - Gzipped system journal logs from the current boot session (for debugging)
| Method | Route | Description |
|---|
| GET | /videolist | Returns JSON array of recorded videos. Each entry has name (string) and size (number, combined bytes of video + manifest). Sorted oldest to newest by creation order. |
| GET | /recording-list | Returns JSON with detailed recording info. Each entry has video, manifest, bootlog (or null), and size fields. Sorted by filename. |
| GET | /recording/filename | Downloads a recording file by name. Supports .avi, _manifest.jsonl, and _bootlog.txt.gz files. Returns binary file data with appropriate Content-Type. |
| POST | /recording-flush | Saves the rewind buffer to disk. Query parameter: duration (1-500 seconds, default 10). Returns JSON with success and message fields. |
| DELETE | /delete-video | Deletes a specific recording and its associated manifest. Query parameter: name (the video filename). |
| DELETE | /delete-videos | Deletes all recorded videos and manifests. |