Getting Oracle Radio WebSocket Message History
Send a GET_MESSAGE_HISTORY message to get recent text messages and transmission records for a Radio channel.
Permissions and Prerequisites
The following permissions and prerequisites apply to this operation.
| Requirement | Value |
|---|---|
| Authentication | Complete the supported authentication path for the client before sending this operation. See authentication. |
| Radio permission | GET_MESSAGE_HISTORY doesn't define an operation-specific Radio permission. Don't substitute another permission handle. |
| Channel access | Request history only for a channel that the authenticated user is authorized to access. A successful response for one channel doesn't authorize access to any other channel. |
| Session state | The WebSocket connection must be open. |
Request
Send the GET_MESSAGE_HISTORY message as a JSON text message. Messages are returned in chronological order.
| Name | Data type | Required | Default | Constraints | Description |
|---|---|---|---|---|---|
type | string | Yes | None | Must be GET_MESSAGE_HISTORY. | Identifies the message-history operation. |
channel | string | No | default | Channel name. | Channel for which to return history. |
limit | integer | No | None specified | Maximum 1000. | Maximum number of messages to return. |
{
"type": "GET_MESSAGE_HISTORY",
"channel": "operations",
"limit": 50
}
Responses
The following table lists the messages the client can receive and explains their purpose.
| Message type | Kind | Description |
|---|---|---|
MESSAGE_HISTORY | Direct response | Returns text and voice communication records for the channel in chronological order. |
ERROR | Error | Indicates an authorization, validation, or processing failure. |
MESSAGE_HISTORY Response
The following table describes the response properties, their data types, and whether they are required.
| Name | Data type | Required | Description |
|---|---|---|---|
type | string | Yes | Response type. The value is MESSAGE_HISTORY. |
channel | string | Yes | Channel for which history was returned. |
messages | array of objects | Yes | Text and voice communication records. |
messages[].event_id | string | Yes | Event identifier. |
messages[].event_type | string | Yes | Event type: text or voice. |
messages[].channel | string | Yes | Channel name. |
messages[].sender_user_id | string | No | Radio user identifier of the sender. |
messages[].sender_username | string | No | Sender username. |
messages[].sender_display_name | string | No | Sender display name. |
messages[].message_type | string | No | Text-message type when the record represents a text message. |
messages[].content | string | No | Text content. |
messages[].transcript | string | No | Voice transcript when available. |
messages[].content_or_transcript | string | No | Display-ready text content or transcript. |
messages[].created_at | string | No | Creation date and time in ISO 8601 format. |
messages[].transmission_start | string | No | Voice-transmission start date and time in ISO 8601 format. |
messages[].transmission_end | string | No | Voice-transmission end date and time in ISO 8601 format. |
messages[].is_critical | boolean | No | Whether the text message is critical. |
messages[].metadata | object | No | Additional event metadata. |
messages[].format | string | No | Audio format for a voice record. |
messages[].duration_ms | integer | No | Voice duration in milliseconds. |
count | integer | Yes | Number of records returned. |
total | integer | No | Total number of matching records. |
hasMore | boolean | No | Whether more matching records are available. |
timestamp | string | No | Server date and time in ISO 8601 format. |
{
"type": "MESSAGE_HISTORY",
"channel": "operations",
"messages": [
{
"event_id": "evt-12345",
"event_type": "text",
"channel": "operations",
"sender_user_id": "u-12345",
"sender_username": "dispatcher1",
"sender_display_name": "Dispatcher One",
"message_type": "normal",
"content": "All units stand by",
"content_or_transcript": "All units stand by",
"created_at": "2026-09-02T14:00:00Z",
"is_critical": false,
"metadata": {}
}
],
"count": 1,
"total": 1,
"hasMore": false,
"timestamp": "2026-09-02T14:30:00Z"
}