Skip to content

API Reference

The RadioShaq API is a FastAPI application. All protected endpoints require a Bearer JWT from POST /auth/token (query params: subject, role, station_id).

Interactive docs: When the API is running, see http://localhost:8000/docs (Swagger UI) and http://localhost:8000/redoc.

Overview

Area Prefix Purpose
Health /health, /health/ready Liveness and readiness (DB, orchestrator)
Metrics /metrics Prometheus scrape (uptime, callsigns, optional GPU). See Monitoring.
Auth /auth/token, /auth/refresh, /auth/me Issue token, refresh, current user
Messages /messages/process, /messages/whitelist-request, /messages/from-audio, /messages/inject-and-store Orchestration and whitelist flow
Relay /messages/relay Band translation (e.g. 40m → 2m). Stores source + relayed transcripts; optional inject/TX when config enables. Recipients poll GET /transcripts?callsign=<callsign>&destination_only=true&band=<band> to retrieve relayed messages.
Callsigns /callsigns, /callsigns/register, /callsigns/register-from-audio, /callsigns/registered/{callsign} Registered callsigns and registration
Config /api/v1/config/llm, /api/v1/config/memory, /api/v1/config/overrides LLM, memory (Hindsight), and per-role overrides (GET/PATCH; keys redacted). See Configuration.
Audio /api/v1/config/audio, /api/v1/audio/devices, /api/v1/audio/pending, approve/reject Audio config and pending response queue
Transcripts /transcripts, /transcripts/{id}, /transcripts/{id}/play Search and play transcripts
Radio /radio/status, /radio/propagation, /radio/bands, /radio/send-tts Radio connected?, propagation, band list, send TTS
Inject /inject/message Demo: push message into RX injection queue
Internal /internal/bus/inbound MessageBus inbound (e.g. Lambda)

Generated API reference from the FastAPI OpenAPI spec (run python radioshaq/scripts/export_openapi.py from repo root before building to produce docs/api/openapi.json):

RadioShaq API 0.1.0

Strategic Autonomous Ham Radio and Knowledge Operations Dispatch System


health


GET /health

Health

??? note "Description" Liveness probe.

Response 200 OK

??? hint "Schema of the response body"

{
    "additionalProperties": {
        "type": "string"
    },
    "type": "object",
    "title": "Response Health Health Get"
}


GET /health/ready

Ready

??? note "Description" Readiness probe: DB (if configured), orchestrator, optional audio agent.

Response 200 OK

??? hint "Schema of the response body"

{
    "additionalProperties": true,
    "type": "object",
    "title": "Response Ready Health Ready Get"
}

metrics


GET /metrics

Metrics

??? note "Description" Prometheus scrape endpoint. Exposes radioshaq_uptime_seconds, radioshaq_callsigns_registered_total, and optional GPU gauges (when nvidia-smi is available). Install prometheus- client for full metrics.

Response 200 OK

"string"
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

??? hint "Schema of the response body"

{
    "type": "string"
}

auth


POST /auth/token

Create Token

??? note "Description" Create an access token (e.g. for field station).

Input parameters

Parameter In Type Default Nullable Description
role query string field No
station_id query None No
subject query string No

Response 200 OK

??? hint "Schema of the response body"

{
    "type": "object",
    "additionalProperties": {
        "type": "string"
    },
    "title": "Response Create Token Auth Token Post"
}

Response 422 Unprocessable Entity

{
    "detail": [
        {
            "loc": [
                null
            ],
            "msg": "string",
            "type": "string",
            "input": null,
            "ctx": {}
        }
    ]
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

??? hint "Schema of the response body"

{
    "properties": {
        "detail": {
            "items": {
                "$ref": "#/components/schemas/ValidationError"
            },
            "type": "array",
            "title": "Detail"
        }
    },
    "type": "object",
    "title": "HTTPValidationError"
}


POST /auth/refresh

Refresh Token

??? note "Description" Exchange refresh token for new access token.

Input parameters

Parameter In Type Default Nullable Description
refresh_token query string No

Response 200 OK

??? hint "Schema of the response body"

{
    "type": "object",
    "additionalProperties": {
        "type": "string"
    },
    "title": "Response Refresh Token Auth Refresh Post"
}

Response 422 Unprocessable Entity

{
    "detail": [
        {
            "loc": [
                null
            ],
            "msg": "string",
            "type": "string",
            "input": null,
            "ctx": {}
        }
    ]
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

??? hint "Schema of the response body"

{
    "properties": {
        "detail": {
            "items": {
                "$ref": "#/components/schemas/ValidationError"
            },
            "type": "array",
            "title": "Detail"
        }
    },
    "type": "object",
    "title": "HTTPValidationError"
}


GET /auth/me

Me

??? note "Description" Return current token claims (requires Bearer token).

Input parameters

Parameter In Type Default Nullable Description
HTTPBearer header string N/A No JWT Bearer token

Response 200 OK

??? hint "Schema of the response body"

{
    "additionalProperties": true,
    "type": "object",
    "title": "Response Me Auth Me Get"
}

radio


GET /radio/propagation

Propagation

??? note "Description" Get propagation prediction between two points.

Input parameters

Parameter In Type Default Nullable Description
HTTPBearer header string N/A No JWT Bearer token
lat_dest query number No Destination latitude
lat_origin query number No Origin latitude
lon_dest query number No Destination longitude
lon_origin query number No Origin longitude

Response 200 OK

??? hint "Schema of the response body"

{
    "type": "object",
    "additionalProperties": true,
    "title": "Response Propagation Radio Propagation Get"
}

Response 422 Unprocessable Entity

{
    "detail": [
        {
            "loc": [
                null
            ],
            "msg": "string",
            "type": "string",
            "input": null,
            "ctx": {}
        }
    ]
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

??? hint "Schema of the response body"

{
    "properties": {
        "detail": {
            "items": {
                "$ref": "#/components/schemas/ValidationError"
            },
            "type": "array",
            "title": "Detail"
        }
    },
    "type": "object",
    "title": "HTTPValidationError"
}


GET /radio/bands

Bands

??? note "Description" List supported bands (from band plan).

Input parameters

Parameter In Type Default Nullable Description
HTTPBearer header string N/A No JWT Bearer token

Response 200 OK

??? hint "Schema of the response body"

{
    "additionalProperties": {
        "items": {
            "type": "string"
        },
        "type": "array"
    },
    "type": "object",
    "title": "Response Bands Radio Bands Get"
}


GET /radio/status

Radio Status

??? note "Description" Report whether a radio (CAT rig) is connected. When connected, optionally include current frequency and mode from the rig.

Input parameters

Parameter In Type Default Nullable Description
HTTPBearer header string N/A No JWT Bearer token

Response 200 OK

??? hint "Schema of the response body"

{
    "additionalProperties": true,
    "type": "object",
    "title": "Response Radio Status Radio Status Get"
}


POST /radio/send-tts

Send Tts

??? note "Description" Send arbitrary text as TTS over the radio (audio out).

Input parameters

Parameter In Type Default Nullable Description
HTTPBearer header string N/A No JWT Bearer token

Request body

{
    "message": "string",
    "frequency_hz": null,
    "mode": null
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

??? hint "Schema of the request body"

{
    "properties": {
        "message": {
            "type": "string",
            "minLength": 1,
            "title": "Message"
        },
        "frequency_hz": {
            "anyOf": [
                {
                    "type": "number"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Frequency Hz"
        },
        "mode": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Mode"
        }
    },
    "type": "object",
    "required": [
        "message"
    ],
    "title": "SendTTSBody",
    "description": "Body for POST /radio/send-tts."
}

Response 200 OK

??? hint "Schema of the response body"

{
    "additionalProperties": true,
    "type": "object",
    "title": "Response Send Tts Radio Send Tts Post"
}

Response 422 Unprocessable Entity

{
    "detail": [
        {
            "loc": [
                null
            ],
            "msg": "string",
            "type": "string",
            "input": null,
            "ctx": {}
        }
    ]
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

??? hint "Schema of the response body"

{
    "properties": {
        "detail": {
            "items": {
                "$ref": "#/components/schemas/ValidationError"
            },
            "type": "array",
            "title": "Detail"
        }
    },
    "type": "object",
    "title": "HTTPValidationError"
}

memory


GET /memory/{callsign}/blocks

Get Blocks

??? note "Description" Get core memory blocks (user, identity, ideaspace, system_instructions) for a callsign.

Input parameters

Parameter In Type Default Nullable Description
HTTPBearer header string N/A No JWT Bearer token
callsign path string No

Response 200 OK

??? hint "Schema of the response body"

{
    "type": "object",
    "additionalProperties": true,
    "title": "Response Get Blocks Memory  Callsign  Blocks Get"
}

Response 422 Unprocessable Entity

{
    "detail": [
        {
            "loc": [
                null
            ],
            "msg": "string",
            "type": "string",
            "input": null,
            "ctx": {}
        }
    ]
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

??? hint "Schema of the response body"

{
    "properties": {
        "detail": {
            "items": {
                "$ref": "#/components/schemas/ValidationError"
            },
            "type": "array",
            "title": "Detail"
        }
    },
    "type": "object",
    "title": "HTTPValidationError"
}


PUT /memory/{callsign}/blocks/{block_type}

Update Block

??? note "Description" Replace a core block's content.

Input parameters

Parameter In Type Default Nullable Description
HTTPBearer header string N/A No JWT Bearer token
block_type path string No
callsign path string No

Request body

??? hint "Schema of the request body"

{
    "type": "object",
    "additionalProperties": true,
    "title": "Body"
}

Response 200 OK

??? hint "Schema of the response body"

{
    "type": "object",
    "additionalProperties": true,
    "title": "Response Update Block Memory  Callsign  Blocks  Block Type  Put"
}

Response 422 Unprocessable Entity

{
    "detail": [
        {
            "loc": [
                null
            ],
            "msg": "string",
            "type": "string",
            "input": null,
            "ctx": {}
        }
    ]
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

??? hint "Schema of the response body"

{
    "properties": {
        "detail": {
            "items": {
                "$ref": "#/components/schemas/ValidationError"
            },
            "type": "array",
            "title": "Detail"
        }
    },
    "type": "object",
    "title": "HTTPValidationError"
}


POST /memory/{callsign}/blocks/{block_type}/append

Append Block

??? note "Description" Append content to a core block.

Input parameters

Parameter In Type Default Nullable Description
HTTPBearer header string N/A No JWT Bearer token
block_type path string No
callsign path string No

Request body

??? hint "Schema of the request body"

{
    "type": "object",
    "additionalProperties": true,
    "title": "Body"
}

Response 200 OK

??? hint "Schema of the response body"

{
    "type": "object",
    "additionalProperties": true,
    "title": "Response Append Block Memory  Callsign  Blocks  Block Type  Append Post"
}

Response 422 Unprocessable Entity

{
    "detail": [
        {
            "loc": [
                null
            ],
            "msg": "string",
            "type": "string",
            "input": null,
            "ctx": {}
        }
    ]
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

??? hint "Schema of the response body"

{
    "properties": {
        "detail": {
            "items": {
                "$ref": "#/components/schemas/ValidationError"
            },
            "type": "array",
            "title": "Detail"
        }
    },
    "type": "object",
    "title": "HTTPValidationError"
}


GET /memory/{callsign}/summaries

Get Summaries

??? note "Description" Get daily summaries for a callsign (last days days).

Input parameters

Parameter In Type Default Nullable Description
HTTPBearer header string N/A No JWT Bearer token
callsign path string No
days query integer 7 No

Response 200 OK

[
    {}
]
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

??? hint "Schema of the response body"

{
    "type": "array",
    "items": {
        "type": "object",
        "additionalProperties": true
    },
    "title": "Response Get Summaries Memory  Callsign  Summaries Get"
}

Response 422 Unprocessable Entity

{
    "detail": [
        {
            "loc": [
                null
            ],
            "msg": "string",
            "type": "string",
            "input": null,
            "ctx": {}
        }
    ]
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

??? hint "Schema of the response body"

{
    "properties": {
        "detail": {
            "items": {
                "$ref": "#/components/schemas/ValidationError"
            },
            "type": "array",
            "title": "Detail"
        }
    },
    "type": "object",
    "title": "HTTPValidationError"
}

messages


POST /messages/process

Process Message

??? note "Description" Submit a message for REACT orchestration. Requires orchestrator to be set in app state (lifespan). Optional body fields: channel, chat_id, sender_id (InboundMessage shape for routing).

Input parameters

Parameter In Type Default Nullable Description
HTTPBearer header string N/A No JWT Bearer token

Request body

??? hint "Schema of the request body"

{
    "additionalProperties": true,
    "type": "object",
    "title": "Body"
}

Response 200 OK

??? hint "Schema of the response body"

{
    "additionalProperties": true,
    "type": "object",
    "title": "Response Process Message Messages Process Post"
}

Response 422 Unprocessable Entity

{
    "detail": [
        {
            "loc": [
                null
            ],
            "msg": "string",
            "type": "string",
            "input": null,
            "ctx": {}
        }
    ]
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

??? hint "Schema of the response body"

{
    "properties": {
        "detail": {
            "items": {
                "$ref": "#/components/schemas/ValidationError"
            },
            "type": "array",
            "title": "Detail"
        }
    },
    "type": "object",
    "title": "HTTPValidationError"
}


POST /messages/whitelist-request

Whitelist Request

??? note "Description" Whitelist entry point: request access to gated services (e.g. messaging between bands). Text or audio → orchestrator evaluates → response as text and optionally TTS. Accepts application/json: { "text" or "message", "callsign?", "send_audio_back?" } or multipart/form-data: file (audio), callsign, send_audio_back.

Approved/message can come from either the orchestrator final message (tool
path:
LLM used register_callsign tool and replied) or a completed whitelist agent
task
(agent path: ACTING ran the whitelist agent; result in completed_tasks).

Input parameters

Parameter In Type Default Nullable Description
HTTPBearer header string N/A No JWT Bearer token

Response 200 OK

??? hint "Schema of the response body"

{
    "additionalProperties": true,
    "type": "object",
    "title": "Response Whitelist Request Messages Whitelist Request Post"
}


POST /messages/from-audio

Message From Audio

??? note "Description" Upload audio; run ASR; whitelist check; store transcript. Optionally inject to RX queue.

Input parameters

Parameter In Type Default Nullable Description
HTTPBearer header string N/A No JWT Bearer token

Request body

{
    "file": "string",
    "source_callsign": "string",
    "destination_callsign": null,
    "band": null,
    "mode": "string",
    "frequency_hz": 10.12,
    "session_id": null,
    "inject": true
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

??? hint "Schema of the request body"

{
    "properties": {
        "file": {
            "type": "string",
            "contentMediaType": "application/octet-stream",
            "title": "File"
        },
        "source_callsign": {
            "type": "string",
            "title": "Source Callsign"
        },
        "destination_callsign": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Destination Callsign"
        },
        "band": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Band"
        },
        "mode": {
            "type": "string",
            "title": "Mode",
            "default": "PSK31"
        },
        "frequency_hz": {
            "type": "number",
            "title": "Frequency Hz",
            "default": 0.0
        },
        "session_id": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Session Id"
        },
        "inject": {
            "type": "boolean",
            "title": "Inject",
            "default": false
        }
    },
    "type": "object",
    "required": [
        "file",
        "source_callsign"
    ],
    "title": "Body_message_from_audio_messages_from_audio_post"
}

Response 200 OK

??? hint "Schema of the response body"

{
    "additionalProperties": true,
    "type": "object",
    "title": "Response Message From Audio Messages From Audio Post"
}

Response 422 Unprocessable Entity

{
    "detail": [
        {
            "loc": [
                null
            ],
            "msg": "string",
            "type": "string",
            "input": null,
            "ctx": {}
        }
    ]
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

??? hint "Schema of the response body"

{
    "properties": {
        "detail": {
            "items": {
                "$ref": "#/components/schemas/ValidationError"
            },
            "type": "array",
            "title": "Detail"
        }
    },
    "type": "object",
    "title": "HTTPValidationError"
}


POST /messages/inject-and-store

Inject And Store

??? note "Description" Inject message into RX queue and store to DB (whitelist enforced).

Input parameters

Parameter In Type Default Nullable Description
HTTPBearer header string N/A No JWT Bearer token

Request body

{
    "text": "string",
    "band": null,
    "frequency_hz": 10.12,
    "mode": "string",
    "source_callsign": null,
    "destination_callsign": null,
    "audio_path": null,
    "metadata": {}
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

??? hint "Schema of the request body"

{
    "properties": {
        "text": {
            "type": "string",
            "minLength": 1,
            "title": "Text"
        },
        "band": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Band"
        },
        "frequency_hz": {
            "type": "number",
            "title": "Frequency Hz",
            "default": 0.0
        },
        "mode": {
            "type": "string",
            "title": "Mode",
            "default": "PSK31"
        },
        "source_callsign": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Source Callsign"
        },
        "destination_callsign": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Destination Callsign"
        },
        "audio_path": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Audio Path"
        },
        "metadata": {
            "additionalProperties": true,
            "type": "object",
            "title": "Metadata"
        }
    },
    "type": "object",
    "required": [
        "text"
    ],
    "title": "InjectAndStoreBody",
    "description": "Body for POST /messages/inject-and-store."
}

Response 200 OK

??? hint "Schema of the response body"

{
    "additionalProperties": true,
    "type": "object",
    "title": "Response Inject And Store Messages Inject And Store Post"
}

Response 422 Unprocessable Entity

{
    "detail": [
        {
            "loc": [
                null
            ],
            "msg": "string",
            "type": "string",
            "input": null,
            "ctx": {}
        }
    ]
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

??? hint "Schema of the response body"

{
    "properties": {
        "detail": {
            "items": {
                "$ref": "#/components/schemas/ValidationError"
            },
            "type": "array",
            "title": "Detail"
        }
    },
    "type": "object",
    "title": "HTTPValidationError"
}


POST /messages/relay

Relay Message Between Bands

??? note "Description" Translate a message from one band to another and store both sides.

Scenario: User A emits on band A (e.g. 40m), message is received and stored;
then it is "relayed" to band B (e.g. 2m) for User B. Stores:
1. Original (or reference) transcript on source band
2. Relay transcript on target band with metadata linking to source

Body:
- message (str): Text to relay
- source_band (str): e.g. "40m"
- source_frequency_hz (float, optional): exact freq if known
- source_callsign (str): who sent on source band
- target_band (str): e.g. "2m"
- target_frequency_hz (float, optional): target freq; else use band default
- destination_callsign (str, optional): who receives on target band
- session_id (str, optional): default generated

Input parameters

Parameter In Type Default Nullable Description
HTTPBearer header string N/A No JWT Bearer token

Request body

{
    "message": "string",
    "source_band": "string",
    "target_band": "string",
    "source_frequency_hz": null,
    "target_frequency_hz": null,
    "source_callsign": "string",
    "destination_callsign": null,
    "session_id": null,
    "deliver_at": null,
    "source_audio_path": null,
    "target_audio_path": null
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

??? hint "Schema of the request body"

{
    "properties": {
        "message": {
            "type": "string",
            "minLength": 1,
            "title": "Message"
        },
        "source_band": {
            "type": "string",
            "title": "Source Band"
        },
        "target_band": {
            "type": "string",
            "title": "Target Band"
        },
        "source_frequency_hz": {
            "anyOf": [
                {
                    "type": "number"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Source Frequency Hz"
        },
        "target_frequency_hz": {
            "anyOf": [
                {
                    "type": "number"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Target Frequency Hz"
        },
        "source_callsign": {
            "type": "string",
            "title": "Source Callsign",
            "default": "UNKNOWN"
        },
        "destination_callsign": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Destination Callsign"
        },
        "session_id": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Session Id"
        },
        "deliver_at": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Deliver At",
            "description": "ISO datetime when message should be delivered on target band (optional)"
        },
        "source_audio_path": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Source Audio Path"
        },
        "target_audio_path": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Target Audio Path"
        }
    },
    "type": "object",
    "required": [
        "message",
        "source_band",
        "target_band"
    ],
    "title": "RelayBody",
    "description": "Body for POST /messages/relay (band translation)."
}

Response 200 OK

??? hint "Schema of the response body"

{
    "additionalProperties": true,
    "type": "object",
    "title": "Response Relay Message Between Bands Messages Relay Post"
}

Response 422 Unprocessable Entity

{
    "detail": [
        {
            "loc": [
                null
            ],
            "msg": "string",
            "type": "string",
            "input": null,
            "ctx": {}
        }
    ]
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

??? hint "Schema of the response body"

{
    "properties": {
        "detail": {
            "items": {
                "$ref": "#/components/schemas/ValidationError"
            },
            "type": "array",
            "title": "Detail"
        }
    },
    "type": "object",
    "title": "HTTPValidationError"
}

transcripts


GET /transcripts

Search Transcripts

??? note "Description" Search transcripts (received/relayed messages). Use for demo so User 2 can poll for messages on a band or for their callsign (e.g. after relay from 40m to 2m). For a callsign to poll their messages on a band: use callsign=&destination_only=true&band=. Omit band to get messages across all bands. When whitelist is configured, only transcripts whose source/destination is in the whitelist are returned.

Input parameters

Parameter In Type Default Nullable Description
HTTPBearer header string N/A No JWT Bearer token
band query None No Filter by band name (e.g. 40m, 2m); uses extra_data.band
callsign query None No Filter by source or destination callsign
destination_only query boolean False No If True and callsign set, return only transcripts where callsign is destination
frequency_max query None No Maximum frequency (Hz)
frequency_min query None No Minimum frequency (Hz)
limit query integer 100 No Max results
mode query None No Filter by mode (FM, PSK31, etc.)
since query None No Only transcripts after this time (ISO 8601)

Response 200 OK

??? hint "Schema of the response body"

{
    "type": "object",
    "additionalProperties": true,
    "title": "Response Search Transcripts Transcripts Get"
}

Response 422 Unprocessable Entity

{
    "detail": [
        {
            "loc": [
                null
            ],
            "msg": "string",
            "type": "string",
            "input": null,
            "ctx": {}
        }
    ]
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

??? hint "Schema of the response body"

{
    "properties": {
        "detail": {
            "items": {
                "$ref": "#/components/schemas/ValidationError"
            },
            "type": "array",
            "title": "Detail"
        }
    },
    "type": "object",
    "title": "HTTPValidationError"
}


GET /transcripts/{transcript_id}

Get Transcript

??? note "Description" Get a single transcript by id (for play or display).

Input parameters

Parameter In Type Default Nullable Description
HTTPBearer header string N/A No JWT Bearer token
transcript_id path integer No

Response 200 OK

??? hint "Schema of the response body"

{
    "type": "object",
    "additionalProperties": true,
    "title": "Response Get Transcript Transcripts  Transcript Id  Get"
}

Response 422 Unprocessable Entity

{
    "detail": [
        {
            "loc": [
                null
            ],
            "msg": "string",
            "type": "string",
            "input": null,
            "ctx": {}
        }
    ]
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

??? hint "Schema of the response body"

{
    "properties": {
        "detail": {
            "items": {
                "$ref": "#/components/schemas/ValidationError"
            },
            "type": "array",
            "title": "Detail"
        }
    },
    "type": "object",
    "title": "HTTPValidationError"
}


POST /transcripts/{transcript_id}/play

Play Transcript Over Radio

??? note "Description" Load transcript, generate TTS, and send over radio (audio out).

Input parameters

Parameter In Type Default Nullable Description
HTTPBearer header string N/A No JWT Bearer token
transcript_id path integer No

Response 200 OK

??? hint "Schema of the response body"

{
    "type": "object",
    "additionalProperties": true,
    "title": "Response Play Transcript Over Radio Transcripts  Transcript Id  Play Post"
}

Response 422 Unprocessable Entity

{
    "detail": [
        {
            "loc": [
                null
            ],
            "msg": "string",
            "type": "string",
            "input": null,
            "ctx": {}
        }
    ]
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

??? hint "Schema of the response body"

{
    "properties": {
        "detail": {
            "items": {
                "$ref": "#/components/schemas/ValidationError"
            },
            "type": "array",
            "title": "Detail"
        }
    },
    "type": "object",
    "title": "HTTPValidationError"
}

callsigns


GET /callsigns

List Registered

??? note "Description" List all registered callsigns (whitelist).

Input parameters

Parameter In Type Default Nullable Description
HTTPBearer header string N/A No JWT Bearer token

Response 200 OK

??? hint "Schema of the response body"

{
    "additionalProperties": true,
    "type": "object",
    "title": "Response List Registered Callsigns Get"
}


POST /callsigns/register

Register Callsign

??? note "Description" Register a callsign so it is automatically accepted for store/relay.

Input parameters

Parameter In Type Default Nullable Description
HTTPBearer header string N/A No JWT Bearer token

Request body

{
    "callsign": "string",
    "source": "string",
    "preferred_bands": null
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

??? hint "Schema of the request body"

{
    "properties": {
        "callsign": {
            "type": "string",
            "maxLength": 10,
            "minLength": 3,
            "title": "Callsign"
        },
        "source": {
            "type": "string",
            "title": "Source",
            "description": "api or audio",
            "default": "api"
        },
        "preferred_bands": {
            "anyOf": [
                {
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Preferred Bands",
            "description": "Preferred bands e.g. [40m, 2m]"
        }
    },
    "type": "object",
    "required": [
        "callsign"
    ],
    "title": "RegisterBody",
    "description": "Body for POST /callsigns/register."
}

Response 200 OK

??? hint "Schema of the response body"

{
    "additionalProperties": true,
    "type": "object",
    "title": "Response Register Callsign Callsigns Register Post"
}

Response 422 Unprocessable Entity

{
    "detail": [
        {
            "loc": [
                null
            ],
            "msg": "string",
            "type": "string",
            "input": null,
            "ctx": {}
        }
    ]
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

??? hint "Schema of the response body"

{
    "properties": {
        "detail": {
            "items": {
                "$ref": "#/components/schemas/ValidationError"
            },
            "type": "array",
            "title": "Detail"
        }
    },
    "type": "object",
    "title": "HTTPValidationError"
}


POST /callsigns/register-from-audio

Register From Audio

??? note "Description" Upload audio; run ASR and register the extracted or confirmed callsign.

Input parameters

Parameter In Type Default Nullable Description
HTTPBearer header string N/A No JWT Bearer token
callsign query None No

Request body

{
    "file": "string"
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

??? hint "Schema of the request body"

{
    "properties": {
        "file": {
            "type": "string",
            "contentMediaType": "application/octet-stream",
            "title": "File"
        }
    },
    "type": "object",
    "required": [
        "file"
    ],
    "title": "Body_register_from_audio_callsigns_register_from_audio_post"
}

Response 200 OK

??? hint "Schema of the response body"

{
    "type": "object",
    "additionalProperties": true,
    "title": "Response Register From Audio Callsigns Register From Audio Post"
}

Response 422 Unprocessable Entity

{
    "detail": [
        {
            "loc": [
                null
            ],
            "msg": "string",
            "type": "string",
            "input": null,
            "ctx": {}
        }
    ]
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

??? hint "Schema of the response body"

{
    "properties": {
        "detail": {
            "items": {
                "$ref": "#/components/schemas/ValidationError"
            },
            "type": "array",
            "title": "Detail"
        }
    },
    "type": "object",
    "title": "HTTPValidationError"
}


PATCH /callsigns/registered/{callsign}

Patch Callsign Bands

??? note "Description" Set preferred_bands for a registered callsign. Band names must be in BAND_PLANS (e.g. 40m, 2m).

Input parameters

Parameter In Type Default Nullable Description
HTTPBearer header string N/A No JWT Bearer token
callsign path string No

Request body

{
    "preferred_bands": [
        "string"
    ]
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

??? hint "Schema of the request body"

{
    "properties": {
        "preferred_bands": {
            "items": {
                "type": "string"
            },
            "type": "array",
            "minItems": 0,
            "title": "Preferred Bands",
            "description": "Preferred bands e.g. [40m, 2m]"
        }
    },
    "type": "object",
    "required": [
        "preferred_bands"
    ],
    "title": "PatchCallsignBandsBody",
    "description": "Body for PATCH /callsigns/registered/{callsign}."
}

Response 200 OK

??? hint "Schema of the response body"

{
    "type": "object",
    "additionalProperties": true,
    "title": "Response Patch Callsign Bands Callsigns Registered  Callsign  Patch"
}

Response 422 Unprocessable Entity

{
    "detail": [
        {
            "loc": [
                null
            ],
            "msg": "string",
            "type": "string",
            "input": null,
            "ctx": {}
        }
    ]
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

??? hint "Schema of the response body"

{
    "properties": {
        "detail": {
            "items": {
                "$ref": "#/components/schemas/ValidationError"
            },
            "type": "array",
            "title": "Detail"
        }
    },
    "type": "object",
    "title": "HTTPValidationError"
}


DELETE /callsigns/registered/{callsign}

Unregister Callsign

??? note "Description" Remove a callsign from the registry.

Input parameters

Parameter In Type Default Nullable Description
HTTPBearer header string N/A No JWT Bearer token
callsign path string No

Response 200 OK

??? hint "Schema of the response body"

{
    "type": "object",
    "additionalProperties": true,
    "title": "Response Unregister Callsign Callsigns Registered  Callsign  Delete"
}

Response 422 Unprocessable Entity

{
    "detail": [
        {
            "loc": [
                null
            ],
            "msg": "string",
            "type": "string",
            "input": null,
            "ctx": {}
        }
    ]
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

??? hint "Schema of the response body"

{
    "properties": {
        "detail": {
            "items": {
                "$ref": "#/components/schemas/ValidationError"
            },
            "type": "array",
            "title": "Detail"
        }
    },
    "type": "object",
    "title": "HTTPValidationError"
}

inject


POST /inject/message

Inject Message

??? note "Description" Inject a message into the RX path for demo/testing.

The message will be available to receivers (radio_rx / digital_modes)
when they poll the injection queue. Unless inject_skip_bus is True,
also publish to MessageBus so the orchestrator processes it.

Input parameters

Parameter In Type Default Nullable Description
HTTPBearer header string N/A No JWT Bearer token

Request body

{
    "text": "string",
    "band": null,
    "frequency_hz": 10.12,
    "mode": "string",
    "source_callsign": null,
    "destination_callsign": null,
    "audio_path": null,
    "metadata": {}
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

??? hint "Schema of the request body"

{
    "properties": {
        "text": {
            "type": "string",
            "minLength": 1,
            "title": "Text",
            "description": "Message text to inject as received"
        },
        "band": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Band",
            "description": "Band name (e.g. 40m, 2m)"
        },
        "frequency_hz": {
            "type": "number",
            "title": "Frequency Hz",
            "description": "Frequency in Hz",
            "default": 0.0
        },
        "mode": {
            "type": "string",
            "title": "Mode",
            "description": "Mode (PSK31, FT8, FM, etc.)",
            "default": "PSK31"
        },
        "source_callsign": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Source Callsign",
            "description": "Source callsign"
        },
        "destination_callsign": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Destination Callsign",
            "description": "Destination callsign"
        },
        "audio_path": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Audio Path",
            "description": "Optional path to audio file (stored with transcript)"
        },
        "metadata": {
            "additionalProperties": true,
            "type": "object",
            "title": "Metadata"
        }
    },
    "type": "object",
    "required": [
        "text"
    ],
    "title": "InjectMessageBody",
    "description": "Body for POST /inject/message (user injection for demo)."
}

Response 200 OK

??? hint "Schema of the response body"

{
    "additionalProperties": true,
    "type": "object",
    "title": "Response Inject Message Inject Message Post"
}

Response 422 Unprocessable Entity

{
    "detail": [
        {
            "loc": [
                null
            ],
            "msg": "string",
            "type": "string",
            "input": null,
            "ctx": {}
        }
    ]
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

??? hint "Schema of the response body"

{
    "properties": {
        "detail": {
            "items": {
                "$ref": "#/components/schemas/ValidationError"
            },
            "type": "array",
            "title": "Detail"
        }
    },
    "type": "object",
    "title": "HTTPValidationError"
}

receiver


POST /receiver/upload

Receiver Upload

??? note "Description" Accept upload from a remote receiver station.

Called by radioshaq.remote_receiver (SDR service) when HQ_URL points here.
Requires Bearer JWT. When receiver_upload_store is enabled, persists
transcript
with band (from frequency). When receiver_upload_inject is enabled, injects
into the RX path after store.

Input parameters

Parameter In Type Default Nullable Description
HTTPBearer header string N/A No JWT Bearer token

Request body

{
    "station_id": "string",
    "operator_id": "string",
    "timestamp": "string",
    "frequency_hz": 10.12,
    "signal_strength_db": 10.12,
    "decoded_text": null,
    "mode": "string"
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

??? hint "Schema of the request body"

{
    "properties": {
        "station_id": {
            "type": "string",
            "title": "Station Id",
            "description": "Receiver station ID"
        },
        "operator_id": {
            "type": "string",
            "title": "Operator Id",
            "description": "Operator/sub from JWT"
        },
        "timestamp": {
            "type": "string",
            "title": "Timestamp",
            "description": "ISO timestamp"
        },
        "frequency_hz": {
            "type": "number",
            "title": "Frequency Hz",
            "description": "Frequency in Hz"
        },
        "signal_strength_db": {
            "type": "number",
            "title": "Signal Strength Db",
            "description": "Signal strength dB"
        },
        "decoded_text": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Decoded Text",
            "description": "Decoded text if any"
        },
        "mode": {
            "type": "string",
            "title": "Mode",
            "description": "Mode (e.g. FM, FT8)",
            "default": ""
        }
    },
    "type": "object",
    "required": [
        "station_id",
        "operator_id",
        "timestamp",
        "frequency_hz",
        "signal_strength_db"
    ],
    "title": "ReceiverUploadBody",
    "description": "Payload from a remote receiver station (SDR samples/decoded data)."
}

Response 200 OK

??? hint "Schema of the response body"

{
    "additionalProperties": {
        "anyOf": [
            {
                "type": "string"
            },
            {
                "type": "integer"
            }
        ]
    },
    "type": "object",
    "title": "Response Receiver Upload Receiver Upload Post"
}

Response 422 Unprocessable Entity

{
    "detail": [
        {
            "loc": [
                null
            ],
            "msg": "string",
            "type": "string",
            "input": null,
            "ctx": {}
        }
    ]
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

??? hint "Schema of the response body"

{
    "properties": {
        "detail": {
            "items": {
                "$ref": "#/components/schemas/ValidationError"
            },
            "type": "array",
            "title": "Detail"
        }
    },
    "type": "object",
    "title": "HTTPValidationError"
}

internal


POST /internal/bus/inbound

Publish Inbound

??? note "Description" Accept an inbound message (e.g. from Lambda) and publish to MessageBus. Body: channel, sender_id, chat_id, content; optional media, metadata, session_key_override. Orchestrator consumer must be running elsewhere to process (e.g. run_inbound_consumer).

Request body

??? hint "Schema of the request body"

{
    "additionalProperties": true,
    "type": "object",
    "title": "Body"
}

Response 200 OK

??? hint "Schema of the response body"

{
    "additionalProperties": true,
    "type": "object",
    "title": "Response Publish Inbound Internal Bus Inbound Post"
}

Response 422 Unprocessable Entity

{
    "detail": [
        {
            "loc": [
                null
            ],
            "msg": "string",
            "type": "string",
            "input": null,
            "ctx": {}
        }
    ]
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

??? hint "Schema of the response body"

{
    "properties": {
        "detail": {
            "items": {
                "$ref": "#/components/schemas/ValidationError"
            },
            "type": "array",
            "title": "Detail"
        }
    },
    "type": "object",
    "title": "HTTPValidationError"
}

audio


GET /api/v1/config/audio

Get Audio Config

??? note "Description" Get current audio configuration (env/file + optional runtime overrides).

Input parameters

Parameter In Type Default Nullable Description
HTTPBearer header string N/A No JWT Bearer token

Response 200 OK

??? hint "Schema of the response body"

{
    "additionalProperties": true,
    "type": "object",
    "title": "Response Get Audio Config Api V1 Config Audio Get"
}


PATCH /api/v1/config/audio

Update Audio Config

??? note "Description" Update audio configuration (runtime overlay only; does not persist to file).

Input parameters

Parameter In Type Default Nullable Description
HTTPBearer header string N/A No JWT Bearer token

Request body

??? hint "Schema of the request body"

{
    "additionalProperties": true,
    "type": "object",
    "title": "Body"
}

Response 200 OK

??? hint "Schema of the response body"

{
    "additionalProperties": true,
    "type": "object",
    "title": "Response Update Audio Config Api V1 Config Audio Patch"
}

Response 422 Unprocessable Entity

{
    "detail": [
        {
            "loc": [
                null
            ],
            "msg": "string",
            "type": "string",
            "input": null,
            "ctx": {}
        }
    ]
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

??? hint "Schema of the response body"

{
    "properties": {
        "detail": {
            "items": {
                "$ref": "#/components/schemas/ValidationError"
            },
            "type": "array",
            "title": "Detail"
        }
    },
    "type": "object",
    "title": "HTTPValidationError"
}


POST /api/v1/config/audio/reset

Reset Audio Config

??? note "Description" Clear runtime audio config overrides.

Input parameters

Parameter In Type Default Nullable Description
HTTPBearer header string N/A No JWT Bearer token

Response 200 OK

??? hint "Schema of the response body"

{
    "additionalProperties": true,
    "type": "object",
    "title": "Response Reset Audio Config Api V1 Config Audio Reset Post"
}


GET /api/v1/audio/devices

List Audio Devices

??? note "Description" List available audio input/output devices (requires voice_rx).

Input parameters

Parameter In Type Default Nullable Description
HTTPBearer header string N/A No JWT Bearer token

Response 200 OK

??? hint "Schema of the response body"

{
    "additionalProperties": true,
    "type": "object",
    "title": "Response List Audio Devices Api V1 Audio Devices Get"
}


POST /api/v1/audio/devices/{device_id}/test

Test Audio Device

??? note "Description" Test an audio device by ID (placeholder).

Input parameters

Parameter In Type Default Nullable Description
HTTPBearer header string N/A No JWT Bearer token
device_id path integer No

Response 200 OK

??? hint "Schema of the response body"

{
    "type": "object",
    "additionalProperties": true,
    "title": "Response Test Audio Device Api V1 Audio Devices  Device Id  Test Post"
}

Response 422 Unprocessable Entity

{
    "detail": [
        {
            "loc": [
                null
            ],
            "msg": "string",
            "type": "string",
            "input": null,
            "ctx": {}
        }
    ]
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

??? hint "Schema of the response body"

{
    "properties": {
        "detail": {
            "items": {
                "$ref": "#/components/schemas/ValidationError"
            },
            "type": "array",
            "title": "Detail"
        }
    },
    "type": "object",
    "title": "HTTPValidationError"
}


GET /api/v1/audio/pending

List Pending Responses

??? note "Description" List pending responses awaiting human confirmation.

Input parameters

Parameter In Type Default Nullable Description
HTTPBearer header string N/A No JWT Bearer token

Response 200 OK

??? hint "Schema of the response body"

{
    "additionalProperties": true,
    "type": "object",
    "title": "Response List Pending Responses Api V1 Audio Pending Get"
}


POST /api/v1/audio/pending/{pending_id}/approve

Approve Pending Response

??? note "Description" Approve a pending response (send it over the radio).

Input parameters

Parameter In Type Default Nullable Description
HTTPBearer header string N/A No JWT Bearer token
pending_id path string No

Request body

??? hint "Schema of the request body"

{
    "type": "object",
    "additionalProperties": true,
    "default": {},
    "title": "Body"
}

Response 200 OK

??? hint "Schema of the response body"

{
    "type": "object",
    "additionalProperties": true,
    "title": "Response Approve Pending Response Api V1 Audio Pending  Pending Id  Approve Post"
}

Response 422 Unprocessable Entity

{
    "detail": [
        {
            "loc": [
                null
            ],
            "msg": "string",
            "type": "string",
            "input": null,
            "ctx": {}
        }
    ]
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

??? hint "Schema of the response body"

{
    "properties": {
        "detail": {
            "items": {
                "$ref": "#/components/schemas/ValidationError"
            },
            "type": "array",
            "title": "Detail"
        }
    },
    "type": "object",
    "title": "HTTPValidationError"
}


POST /api/v1/audio/pending/{pending_id}/reject

Reject Pending Response

??? note "Description" Reject a pending response.

Input parameters

Parameter In Type Default Nullable Description
HTTPBearer header string N/A No JWT Bearer token
pending_id path string No

Request body

??? hint "Schema of the request body"

{
    "type": "object",
    "additionalProperties": true,
    "default": {},
    "title": "Body"
}

Response 200 OK

??? hint "Schema of the response body"

{
    "type": "object",
    "additionalProperties": true,
    "title": "Response Reject Pending Response Api V1 Audio Pending  Pending Id  Reject Post"
}

Response 422 Unprocessable Entity

{
    "detail": [
        {
            "loc": [
                null
            ],
            "msg": "string",
            "type": "string",
            "input": null,
            "ctx": {}
        }
    ]
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

??? hint "Schema of the response body"

{
    "properties": {
        "detail": {
            "items": {
                "$ref": "#/components/schemas/ValidationError"
            },
            "type": "array",
            "title": "Detail"
        }
    },
    "type": "object",
    "title": "HTTPValidationError"
}

config


GET /api/v1/config/llm

Get Config Llm

??? note "Description" Get current LLM configuration (API keys redacted). Runtime overrides merged if set.

Input parameters

Parameter In Type Default Nullable Description
HTTPBearer header string N/A No JWT Bearer token

Response 200 OK

??? hint "Schema of the response body"

{
    "additionalProperties": true,
    "type": "object",
    "title": "Response Get Config Llm Api V1 Config Llm Get"
}


PATCH /api/v1/config/llm

Update Config Llm

??? note "Description" Update LLM configuration (runtime overlay only; does not persist to file). API keys in body are not stored.

Input parameters

Parameter In Type Default Nullable Description
HTTPBearer header string N/A No JWT Bearer token

Request body

??? hint "Schema of the request body"

{
    "additionalProperties": true,
    "type": "object",
    "title": "Body"
}

Response 200 OK

??? hint "Schema of the response body"

{
    "additionalProperties": true,
    "type": "object",
    "title": "Response Update Config Llm Api V1 Config Llm Patch"
}

Response 422 Unprocessable Entity

{
    "detail": [
        {
            "loc": [
                null
            ],
            "msg": "string",
            "type": "string",
            "input": null,
            "ctx": {}
        }
    ]
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

??? hint "Schema of the response body"

{
    "properties": {
        "detail": {
            "items": {
                "$ref": "#/components/schemas/ValidationError"
            },
            "type": "array",
            "title": "Detail"
        }
    },
    "type": "object",
    "title": "HTTPValidationError"
}


GET /api/v1/config/memory

Get Config Memory

??? note "Description" Get current memory/Hindsight configuration. Runtime overrides merged if set.

Input parameters

Parameter In Type Default Nullable Description
HTTPBearer header string N/A No JWT Bearer token

Response 200 OK

??? hint "Schema of the response body"

{
    "additionalProperties": true,
    "type": "object",
    "title": "Response Get Config Memory Api V1 Config Memory Get"
}


PATCH /api/v1/config/memory

Update Config Memory

??? note "Description" Update memory configuration (runtime overlay only; does not persist to file).

Input parameters

Parameter In Type Default Nullable Description
HTTPBearer header string N/A No JWT Bearer token

Request body

??? hint "Schema of the request body"

{
    "additionalProperties": true,
    "type": "object",
    "title": "Body"
}

Response 200 OK

??? hint "Schema of the response body"

{
    "additionalProperties": true,
    "type": "object",
    "title": "Response Update Config Memory Api V1 Config Memory Patch"
}

Response 422 Unprocessable Entity

{
    "detail": [
        {
            "loc": [
                null
            ],
            "msg": "string",
            "type": "string",
            "input": null,
            "ctx": {}
        }
    ]
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

??? hint "Schema of the response body"

{
    "properties": {
        "detail": {
            "items": {
                "$ref": "#/components/schemas/ValidationError"
            },
            "type": "array",
            "title": "Detail"
        }
    },
    "type": "object",
    "title": "HTTPValidationError"
}


GET /api/v1/config/overrides

Get Config Overrides

??? note "Description" Get per-role LLM and memory overrides. Keys: orchestrator, judge, whitelist, daily_summary, memory.

Input parameters

Parameter In Type Default Nullable Description
HTTPBearer header string N/A No JWT Bearer token

Response 200 OK

??? hint "Schema of the response body"

{
    "additionalProperties": true,
    "type": "object",
    "title": "Response Get Config Overrides Api V1 Config Overrides Get"
}


PATCH /api/v1/config/overrides

Update Config Overrides

??? note "Description" Update per-role overrides (runtime overlay only; does not persist to file).

Input parameters

Parameter In Type Default Nullable Description
HTTPBearer header string N/A No JWT Bearer token

Request body

??? hint "Schema of the request body"

{
    "additionalProperties": true,
    "type": "object",
    "title": "Body"
}

Response 200 OK

??? hint "Schema of the response body"

{
    "additionalProperties": true,
    "type": "object",
    "title": "Response Update Config Overrides Api V1 Config Overrides Patch"
}

Response 422 Unprocessable Entity

{
    "detail": [
        {
            "loc": [
                null
            ],
            "msg": "string",
            "type": "string",
            "input": null,
            "ctx": {}
        }
    ]
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

??? hint "Schema of the response body"

{
    "properties": {
        "detail": {
            "items": {
                "$ref": "#/components/schemas/ValidationError"
            },
            "type": "array",
            "title": "Detail"
        }
    },
    "type": "object",
    "title": "HTTPValidationError"
}


Schemas

Body_message_from_audio_messages_from_audio_post

Name Type
band
destination_callsign
file string
frequency_hz number
inject boolean
mode string
session_id
source_callsign string

Body_register_from_audio_callsigns_register_from_audio_post

Name Type
file string

HTTPValidationError

Name Type
detail Array<ValidationError>

InjectAndStoreBody

Name Type
audio_path
band
destination_callsign
frequency_hz number
metadata
mode string
source_callsign
text string

InjectMessageBody

Name Type
audio_path
band
destination_callsign
frequency_hz number
metadata
mode string
source_callsign
text string

PatchCallsignBandsBody

Name Type
preferred_bands Array<string>

ReceiverUploadBody

Name Type
decoded_text
frequency_hz number
mode string
operator_id string
signal_strength_db number
station_id string
timestamp string

RegisterBody

Name Type
callsign string
preferred_bands
source string

RelayBody

Name Type
deliver_at
destination_callsign
message string
session_id
source_audio_path
source_band string
source_callsign string
source_frequency_hz
target_audio_path
target_band string
target_frequency_hz

SendTTSBody

Name Type
frequency_hz
message string
mode

ValidationError

Name Type
ctx
input
loc Array<>
msg string
type string

Security schemes

Name Type Scheme Description
HTTPBearer http bearer