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.

RequirementValue
AuthenticationComplete the supported authentication path for the client before sending this operation. See authentication.
Radio permissionGET_MESSAGE_HISTORY doesn't define an operation-specific Radio permission. Don't substitute another permission handle.
Channel accessRequest 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 stateThe WebSocket connection must be open.

Request

Send the GET_MESSAGE_HISTORY message as a JSON text message. Messages are returned in chronological order.

NameData typeRequiredDefaultConstraintsDescription
typestringYesNoneMust be GET_MESSAGE_HISTORY.Identifies the message-history operation.
channelstringNodefaultChannel name.Channel for which to return history.
limitintegerNoNone specifiedMaximum 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 typeKindDescription
MESSAGE_HISTORYDirect responseReturns text and voice communication records for the channel in chronological order.
ERRORErrorIndicates an authorization, validation, or processing failure.

MESSAGE_HISTORY Response

The following table describes the response properties, their data types, and whether they are required.

NameData typeRequiredDescription
typestringYesResponse type. The value is MESSAGE_HISTORY.
channelstringYesChannel for which history was returned.
messagesarray of objectsYesText and voice communication records.
messages[].event_idstringYesEvent identifier.
messages[].event_typestringYesEvent type: text or voice.
messages[].channelstringYesChannel name.
messages[].sender_user_idstringNoRadio user identifier of the sender.
messages[].sender_usernamestringNoSender username.
messages[].sender_display_namestringNoSender display name.
messages[].message_typestringNoText-message type when the record represents a text message.
messages[].contentstringNoText content.
messages[].transcriptstringNoVoice transcript when available.
messages[].content_or_transcriptstringNoDisplay-ready text content or transcript.
messages[].created_atstringNoCreation date and time in ISO 8601 format.
messages[].transmission_startstringNoVoice-transmission start date and time in ISO 8601 format.
messages[].transmission_endstringNoVoice-transmission end date and time in ISO 8601 format.
messages[].is_criticalbooleanNoWhether the text message is critical.
messages[].metadataobjectNoAdditional event metadata.
messages[].formatstringNoAudio format for a voice record.
messages[].duration_msintegerNoVoice duration in milliseconds.
countintegerYesNumber of records returned.
totalintegerNoTotal number of matching records.
hasMorebooleanNoWhether more matching records are available.
timestampstringNoServer 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"
}