REST + WebSocket API for the Stellar Link platform (v1). Refer to ADR 0003 for the contract and versioning policy.
- Base URL
http://192.168.2.1:8080- API version
- 0.1.0
- Endpoints
- 80
- Specification
- OpenAPI 3.0.3 (JSON)
System#
Health, version, capabilities
| Method | Endpoint | Operation |
|---|---|---|
| GET | /api/v1/health | Health |
| GET | /api/v1/metrics | Metrics |
| GET | /api/v1/system/capabilities | Capabilities |
| GET | /api/v1/system/clocks | Clocks |
| GET | /api/v1/system/status | Status |
| GET | /api/v1/version | Version |
Profiles#
Radio profile discovery and apply
| Method | Endpoint | Operation |
|---|---|---|
| GET | /api/v1/profiles | List |
| GET | /api/v1/profiles/active | Active |
| POST | /api/v1/profiles/validate | Validate |
| GET | /api/v1/profiles/{name} | Get one |
| PUT | /api/v1/profiles/{name} | Register |
| POST | /api/v1/profiles/{name}/apply | Apply |
| GET | /api/v1/profiles/{name}/revisions | List revisions |
Scenarios#
Scenario CRUD and runs
| Method | Endpoint | Operation |
|---|---|---|
| GET | /api/v1/scenario-runs | List runs |
| GET | /api/v1/scenario-runs/{run_id} | Get run |
| GET | /api/v1/scenario-runs/{run_id}/events | Get run events |
| GET | /api/v1/scenarios | List |
| GET | /api/v1/scenarios/active | Active |
| POST | /api/v1/scenarios/active/cancel | Cancel active |
| POST | /api/v1/scenarios/validate | Validate |
| GET | /api/v1/scenarios/{name} | Get one |
| POST | /api/v1/scenarios/{name}/run | Run |
Radio#
Radio runtime (RX/TX FSM) — planned L6
| Method | Endpoint | Operation |
|---|---|---|
| POST | /api/v1/radio/frequency | Set frequency |
| POST | /api/v1/radio/gain | Set gain |
| POST | /api/v1/radio/loopback | Enable loopback |
| POST | /api/v1/radio/reset | Reset |
| POST | /api/v1/radio/rf/calibrate | RF calibrate |
| POST | /api/v1/radio/rf/kill | RF kill |
| POST | /api/v1/radio/rf/mode/air | RF mode air |
| POST | /api/v1/radio/rx{chan}/arm | RX arm |
| POST | /api/v1/radio/rx{chan}/disarm | RX disarm |
| GET | /api/v1/radio/status | Status |
| POST | /api/v1/radio/tx{chan}/start | TX start |
| POST | /api/v1/radio/tx{chan}/stop | TX stop |
Events#
Runtime events — planned L3
Jobs#
Long-running jobs — L3
Monitor#
RSSI, power, FFT — planned L7
| Method | Endpoint | Operation |
|---|---|---|
| GET | /api/v1/monitor/fft | FFT |
| GET | /api/v1/monitor/power | Power |
| GET | /api/v1/monitor/rssi | RSSI |
Frames#
Decoded frames — planned L7
IQ#
IQ captures and streams — planned L7
| Method | Endpoint | Operation |
|---|---|---|
| GET | /api/v1/iq/captures | List |
| POST | /api/v1/iq/captures | Start |
| GET | /api/v1/iq/captures/{id} | Get one |
| DELETE | /api/v1/iq/captures/{id} | Delete one |
| GET | /api/v1/iq/captures/{id}/download | Download |
| GET | /api/v1/iq/streams | IQ streams |
PL#
PL debug (registers, sequencer) — planned L7
| Method | Endpoint | Operation |
|---|---|---|
| GET | /api/v1/pl/aux | Aux |
| GET | /api/v1/pl/interrupts | Interrupts |
| POST | /api/v1/pl/interrupts/ack | Ack interrupts |
| GET | /api/v1/pl/profile-sequencer | Profile sequencer |
| GET | /api/v1/pl/registers/{addr} | Read register |
| GET | /api/v1/pl/status | Status |
Logs#
Structured log query — planned L7
| Method | Endpoint | Operation |
|---|---|---|
| GET | /api/v1/logs | List |
Reports#
Scenario reports (satlink.report/v1)
Campaigns#
| Method | Endpoint | Operation |
|---|---|---|
| GET | /api/v1/campaign-runs | List runs |
| GET | /api/v1/campaign-runs/{id} | Get run |
| POST | /api/v1/campaign-runs/{id}/pause | Pause |
| POST | /api/v1/campaign-runs/{id}/resume | Resume |
| POST | /api/v1/campaign-runs/{id}/steps/{step}/rerun | Rerun step |
| GET | /api/v1/campaigns | List |
| GET | /api/v1/campaigns/active | Active |
| GET | /api/v1/campaigns/{name} | Get one |
| POST | /api/v1/campaigns/{name}/run | Run |
Chain#
| Method | Endpoint | Operation |
|---|---|---|
| GET | /api/v1/chain | Status |
| POST | /api/v1/chain/condition | Condition |
| POST | /api/v1/chain/recover | Recover |