All docsStellar LinkRF bench · by Stellar Systems v0.1.0

API Reference

IQ

IQ captures and streams — planned L7

GET/api/v1/iq/captures

List#

Responses

200OKapplication/json

array of IqCaptureDRO

idrequired

string · uuid

created_atrequired

string · date-time

samplesrequired

integer · int64

≥ 0

sample_rate_hzrequired

integer · int64

≥ 0

center_frequency_hzrequired

integer · int64

≥ 0

pathrequired

string

size_bytesrequired

integer · int64

≥ 0

statusrequired

string

tagsrequired

array of string

annotationsrequired

array of IqAnnotationDTO

IqAnnotationDTO · 3 fields
offset_samplesrequired

integer · int64

≥ 0

labelrequired

string

note

string · nullable

profile_ref

string · nullable

syntheticrequired

boolean

TRUE when the samples were MANUFACTURED rather than captured. Without it a fabricated capture is indistinguishable from a measurement: it carries the true centre frequency and the active profile, and opens in any viewer showing a clean carrier.

Request

curl "http://192.168.2.1:8080/api/v1/iq/captures"

Response

[
  {
    "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
    "created_at": "2026-09-29T08:30:00Z",
    "samples": 0,
    "sample_rate_hz": 0,
    "center_frequency_hz": 0,
    "path": "string",
    "size_bytes": 0,
    "status": "string",
    "tags": [
      "string"
    ],
    "annotations": [
      {
        "offset_samples": 0,
        "label": "string",
        "note": "string"
      }
    ],
    "profile_ref": "string",
    "synthetic": true
  }
]
POST/api/v1/iq/captures

Start#

Request body application/jsonrequired

samplesrequired

integer · int64

≥ 0

sample_rate_hz

integer · int64 · nullable

≥ 0

center_frequency_hz

integer · int64 · nullable

≥ 0

tags

array of string

annotations

array of IqAnnotationDTO

IqAnnotationDTO · 3 fields
offset_samplesrequired

integer · int64

≥ 0

labelrequired

string

note

string · nullable

profile_ref

string · nullable

Responses

201Createdapplication/json
idrequired

string · uuid

created_atrequired

string · date-time

samplesrequired

integer · int64

≥ 0

sample_rate_hzrequired

integer · int64

≥ 0

center_frequency_hzrequired

integer · int64

≥ 0

pathrequired

string

size_bytesrequired

integer · int64

≥ 0

statusrequired

string

tagsrequired

array of string

annotationsrequired

array of IqAnnotationDTO

IqAnnotationDTO · 3 fields
offset_samplesrequired

integer · int64

≥ 0

labelrequired

string

note

string · nullable

profile_ref

string · nullable

syntheticrequired

boolean

TRUE when the samples were MANUFACTURED rather than captured. Without it a fabricated capture is indistinguishable from a measurement: it carries the true centre frequency and the active profile, and opens in any viewer showing a clean carrier.

Request

curl -X POST "http://192.168.2.1:8080/api/v1/iq/captures" \
  -H "Content-Type: application/json" \
  -d '{
  "samples": 0,
  "sample_rate_hz": 0,
  "center_frequency_hz": 0,
  "tags": [
    "string"
  ],
  "annotations": [
    {
      "offset_samples": 0,
      "label": "string",
      "note": "string"
    }
  ],
  "profile_ref": "string"
}'

Response

{
  "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
  "created_at": "2026-09-29T08:30:00Z",
  "samples": 0,
  "sample_rate_hz": 0,
  "center_frequency_hz": 0,
  "path": "string",
  "size_bytes": 0,
  "status": "string",
  "tags": [
    "string"
  ],
  "annotations": [
    {
      "offset_samples": 0,
      "label": "string",
      "note": "string"
    }
  ],
  "profile_ref": "string",
  "synthetic": true
}
GET/api/v1/iq/captures/{id}

Get one#

Path parameters

idrequired

string · uuid

Capture id

Responses

200OKapplication/json
idrequired

string · uuid

created_atrequired

string · date-time

samplesrequired

integer · int64

≥ 0

sample_rate_hzrequired

integer · int64

≥ 0

center_frequency_hzrequired

integer · int64

≥ 0

pathrequired

string

size_bytesrequired

integer · int64

≥ 0

statusrequired

string

tagsrequired

array of string

annotationsrequired

array of IqAnnotationDTO

IqAnnotationDTO · 3 fields
offset_samplesrequired

integer · int64

≥ 0

labelrequired

string

note

string · nullable

profile_ref

string · nullable

syntheticrequired

boolean

TRUE when the samples were MANUFACTURED rather than captured. Without it a fabricated capture is indistinguishable from a measurement: it carries the true centre frequency and the active profile, and opens in any viewer showing a clean carrier.

404not foundapplication/json

ApiErrorDRO

Request

curl "http://192.168.2.1:8080/api/v1/iq/captures/3fa85f64-5717-4562-b3fc-2c963f66afa6"

Response

{
  "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
  "created_at": "2026-09-29T08:30:00Z",
  "samples": 0,
  "sample_rate_hz": 0,
  "center_frequency_hz": 0,
  "path": "string",
  "size_bytes": 0,
  "status": "string",
  "tags": [
    "string"
  ],
  "annotations": [
    {
      "offset_samples": 0,
      "label": "string",
      "note": "string"
    }
  ],
  "profile_ref": "string",
  "synthetic": true
}
DELETE/api/v1/iq/captures/{id}

Delete one#

Path parameters

idrequired

string · uuid

Capture id

Responses

204Deleted
404not foundapplication/json

ApiErrorDRO

Request

curl -X DELETE "http://192.168.2.1:8080/api/v1/iq/captures/3fa85f64-5717-4562-b3fc-2c963f66afa6"

Response

{}
GET/api/v1/iq/captures/{id}/download

Download#

Path parameters

idrequired

string · uuid

Capture id

Responses

200Raw IQ bytes (little-endian i16 I+Q pairs)

Request

curl "http://192.168.2.1:8080/api/v1/iq/captures/3fa85f64-5717-4562-b3fc-2c963f66afa6/download" \
  -o response.bin
GET/api/v1/iq/streams

IQ streams#

Responses

501WS live streams ship with L7bapplication/json

ApiErrorDRO

Request

curl "http://192.168.2.1:8080/api/v1/iq/streams"

Response

{}

↑↓ to moveEnter to open