REST API
The ScryLab REST API lets you send signal data into ScryLab over HTTP – from Python, MATLAB, Julia, or any other environment. It is designed for engineers who want to push data into ScryLab programmatically and interact with it in the GUI.
Base URL
http://localhost:5678Info
The API is only accessible from the local machine. No authentication is required.
The API starts automatically by default. You can disable it under Settings → General → Integrations.
Endpoints
| Method | Endpoint | Description |
|---|---|---|
GET | /api/status | Check if ScryLab is running |
POST | /api/signals/send | Send a signal (JSON, small data) |
POST | /api/signals/upload | Send a signal (binary .npz/.mat, large data) |
POST | /api/signals/upload_batch | Send multiple signals in one request |
POST | /api/plot | Add a signal to the active plot by name |
Python & MATLAB clients
If you use Python or MATLAB, the official scrylab (Python) and scrylab-matlab (MATLAB) clients handle all of this automatically – including transport selection and source management.
Sending signals
ScryLab supports three transport methods:
| Situation | Endpoint |
|---|---|
| Small signal (< 50k samples) | POST /api/signals/send (JSON) |
| Large signal | POST /api/signals/upload (binary .npz or .mat) |
| Many signals at once | POST /api/signals/upload_batch |
Every signal needs a target_source_id – the ID of the data source it should be added to. You can get one by creating a new source from the UI, or by calling POST /api/sources.
Source management
Two endpoints exist for looking up and creating data sources. They are used internally by the Python and MATLAB clients and do not usually need to be called directly:
| Method | Endpoint | Description |
|---|---|---|
GET | /api/sources | List all loaded data sources |
POST | /api/sources | Create a new empty data source |