SDR Cockpit API (0.1.0)

Download OpenAPI specification:

Software Defined Radio Web Application API

tasks

List Tasks

List all tasks

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Create Task

Create a new task

Request Body schema: application/json
required
Any of
name
required
string (Name)
frequency
required
number (Frequency)
sampleRate
required
number (Samplerate)
bandwidth
required
number (Bandwidth)
fftSize
required
integer (Fftsize)

Responses

Request samples

Content type
application/json
Example
{
  • "name": "string",
  • "frequency": 0,
  • "sampleRate": 0,
  • "bandwidth": 0,
  • "fftSize": 0
}

Response samples

Content type
application/json
{
  • "id": "string",
  • "name": "string",
  • "type": "rx",
  • "frequency": 0,
  • "sampleRate": 0,
  • "bandwidth": 0,
  • "fftSize": 0,
  • "owner": "self",
  • "ownerName": "string",
  • "status": "live",
  • "uptime": 0,
  • "recording": {
    },
  • "playback": {
    },
  • "createdAt": 0,
  • "fps": 0,
  • "visualizationMode": "fft-only"
}

Get Task

Get a single task by ID

path Parameters
task_id
required
string (Task Id)

Responses

Response samples

Content type
application/json
{
  • "id": "string",
  • "name": "string",
  • "type": "rx",
  • "frequency": 0,
  • "sampleRate": 0,
  • "bandwidth": 0,
  • "fftSize": 0,
  • "owner": "self",
  • "ownerName": "string",
  • "status": "live",
  • "uptime": 0,
  • "recording": {
    },
  • "playback": {
    },
  • "createdAt": 0,
  • "fps": 0,
  • "visualizationMode": "fft-only"
}

Update Task

Update a task

path Parameters
task_id
required
string (Task Id)
Request Body schema: application/json
required
Name (string) or Name (null) (Name)
TaskStatus (string) or null
Frequency (number) or Frequency (null) (Frequency)

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "status": "live",
  • "frequency": 0
}

Response samples

Content type
application/json
{
  • "id": "string",
  • "name": "string",
  • "type": "rx",
  • "frequency": 0,
  • "sampleRate": 0,
  • "bandwidth": 0,
  • "fftSize": 0,
  • "owner": "self",
  • "ownerName": "string",
  • "status": "live",
  • "uptime": 0,
  • "recording": {
    },
  • "playback": {
    },
  • "createdAt": 0,
  • "fps": 0,
  • "visualizationMode": "fft-only"
}

Delete Task

Delete a task

path Parameters
task_id
required
string (Task Id)

Responses

Response samples

Content type
application/json
null

Pause Task

Pause a task

path Parameters
task_id
required
string (Task Id)

Responses

Response samples

Content type
application/json
{
  • "id": "string",
  • "name": "string",
  • "type": "rx",
  • "frequency": 0,
  • "sampleRate": 0,
  • "bandwidth": 0,
  • "fftSize": 0,
  • "owner": "self",
  • "ownerName": "string",
  • "status": "live",
  • "uptime": 0,
  • "recording": {
    },
  • "playback": {
    },
  • "createdAt": 0,
  • "fps": 0,
  • "visualizationMode": "fft-only"
}

Resume Task

Resume a paused task

path Parameters
task_id
required
string (Task Id)

Responses

Response samples

Content type
application/json
{
  • "id": "string",
  • "name": "string",
  • "type": "rx",
  • "frequency": 0,
  • "sampleRate": 0,
  • "bandwidth": 0,
  • "fftSize": 0,
  • "owner": "self",
  • "ownerName": "string",
  • "status": "live",
  • "uptime": 0,
  • "recording": {
    },
  • "playback": {
    },
  • "createdAt": 0,
  • "fps": 0,
  • "visualizationMode": "fft-only"
}

Start Recording

Start recording on an RX task

path Parameters
task_id
required
string (Task Id)

Responses

Response samples

Content type
application/json
{
  • "id": "string",
  • "name": "string",
  • "type": "rx",
  • "frequency": 0,
  • "sampleRate": 0,
  • "bandwidth": 0,
  • "fftSize": 0,
  • "owner": "self",
  • "ownerName": "string",
  • "status": "live",
  • "uptime": 0,
  • "recording": {
    },
  • "playback": {
    },
  • "createdAt": 0,
  • "fps": 0,
  • "visualizationMode": "fft-only"
}

Stop Recording

Stop recording on a task

path Parameters
task_id
required
string (Task Id)

Responses

Response samples

Content type
application/json
{
  • "id": "string",
  • "name": "string",
  • "type": "rx",
  • "frequency": 0,
  • "sampleRate": 0,
  • "bandwidth": 0,
  • "fftSize": 0,
  • "owner": "self",
  • "ownerName": "string",
  • "status": "live",
  • "uptime": 0,
  • "recording": {
    },
  • "playback": {
    },
  • "createdAt": 0,
  • "fps": 0,
  • "visualizationMode": "fft-only"
}

sources

List Sources

List all available data sources

Responses

Response samples

Content type
application/json
[
  • {
    }
]

health

Get Bit Results

Get latest BIT test results with function and hardware trees

Responses

Response samples

Content type
application/json
{
  • "timestamp": 0,
  • "overallStatus": "ok",
  • "summary": {
    },
  • "tests": [
    ],
  • "functionTree": {
    },
  • "hardwareTree": {
    }
}

Get Bit Alerts

Get recent BIT alerts with optional filtering

query Parameters
since
integer (Since)

Unix timestamp in ms (default 4 hours ago)

limit
integer (Limit)
Default: 50

Responses

Response samples

Content type
application/json
{
  • "alerts": [
    ],
  • "totalCount": 0
}

Get Bit Metrics

Get health metrics over a time window

query Parameters
window_minutes
integer (Window Minutes)
Default: 240

Time window in minutes (default 4 hours)

Responses

Response samples

Content type
application/json
{
  • "windowMinutes": 0,
  • "snapshotCount": 0,
  • "operationalPercent": 0,
  • "degradedMinutes": 0,
  • "nonOpMinutes": 0,
  • "failureCount": 0,
  • "topFailingTests": [
    ]
}

Get Bit Test History

Get status history for a specific test

query Parameters
test_id
required
string (Test Id)
since
integer (Since)

Unix timestamp in ms

until
integer (Until)

Unix timestamp in ms

Responses

Response samples

Content type
application/json
{
  • "testId": "string",
  • "testName": "string",
  • "points": [
    ]
}

system-update

Acquire Lock

Acquire exclusive lock for system update

Responses

Response samples

Content type
application/json
{
  • "lockId": "string",
  • "expiresAt": 0
}

Get Lock Status

Get current lock status

Responses

Response samples

Content type
application/json
{
  • "isLocked": true,
  • "lockedBy": "string",
  • "lockedSince": 0,
  • "expiresAt": 0
}

Release Lock

Release the system update lock

query Parameters
Client Id (string) or Client Id (null) (Client Id)

Responses

Response samples

Content type
application/json
null

Upload Package

Upload system update package with streaming

Request Body schema: multipart/form-data
required
file
required
string <binary> (File)

Responses

Response samples

Content type
application/json
null

Get Upload Status

Get upload and validation status

path Parameters
upload_id
required
string (Upload Id)

Responses

Response samples

Content type
application/json
{
  • "uploadId": "string",
  • "status": "idle",
  • "bytesReceived": 0,
  • "totalBytes": 0,
  • "percentComplete": 0,
  • "validationResults": { },
  • "error": "string"
}

Start Installation

Start installation process

Request Body schema: application/json
required
upload_id
required
string (Upload Id)

Responses

Request samples

Content type
application/json
{
  • "upload_id": "string"
}

Response samples

Content type
application/json
{
  • "installId": "string"
}

Get Install Status

Get installation progress

path Parameters
install_id
required
string (Install Id)

Responses

Response samples

Content type
application/json
{
  • "installId": "string",
  • "status": "idle",
  • "percentComplete": 0,
  • "timeRemainingSeconds": 0,
  • "currentStep": "string",
  • "error": "string"
}

Get Active Connections

Debug endpoint to see active WebSocket connections

Responses

Response samples

Content type
application/json
null

Root

Root API endpoint

Responses

Response samples

Content type
application/json
null

Healthcheck

Health check endpoint

Responses

Response samples

Content type
application/json
null