OpenVibe.Chat API

Generated at from openvibe-contracts v0.114.0 and openvibe-sdk v0.35.1.

Server https://openvibe.chat. 22 routes performing 12 capabilities. OpenAPI 3.1 document.

GET /internal/chat/dm/block-state

Page OpenVibe.Chat's stored messages of one channel, stream, person, anonymous id or name, or read one by id, with a cursor on the message id and the latest id: for OpenVibe.Live's AI context, clip an

Capabilities
chat.messages.read
Visibility
internal
Response
application/json chat.messages-page@1
Errors
errors.problem@1 (application/problem+json)
Description<p><strong>chat.messages.read</strong> (internal): Page OpenVibe.Chat&#39;s stored messages of one channel, stream, person, anonymous id or name, or read one by id, with a cursor on the message id and the latest id: for OpenVibe.Live&#39;s AI context, clip and viewer jobs and its moderator search and history (plan T3, J4b). Loopback only, Chat service token (Live&#39;s principal today); never granted to an app or delegated to an agent.</p>

POST /internal/chat/events

Push a transient frame to chat sockets through OpenVibe.Chat: news cards, donation and goal cards, alerts and channel sounds, media queue state, redemptions, vibe-coding events, voice channel lists, s

Capabilities
chat.event.publish
Visibility
first-party
Request body
application/json chat.event-request@1
Response
application/json chat.ingress-ack@1
Errors
errors.problem@1 (application/problem+json)
Description<p><strong>chat.event.publish</strong> (first-party): Push a transient frame to chat sockets through OpenVibe.Chat: news cards, donation and goal cards, alerts and channel sounds, media queue state, redemptions, vibe-coding events, voice channel lists, system and restart notices, and call invites to one person. Nothing is stored; Chat validates the frame and its target (a stream, a channel, an owner&#39;s streams, global chat, everyone or one person) and broadcasts it once per idempotency key. Loopback only, first-party service token (Live&#39;s principal today); never granted to an app or delegated to an agent.</p>

GET /internal/chat/first-chat

Count a channel's or a stream's chat messages per time bucket, with the latest message id: the chat timeline behind OpenVibe.Live's AI moments, chat spikes and activity reads (plan T3, J4b), and the c

Capabilities
chat.analysis.read
Visibility
internal
Response
application/json chat.timeline-result@1
Errors
errors.problem@1 (application/problem+json)
Description<p><strong>chat.analysis.read</strong> (internal): Count a channel&#39;s or a stream&#39;s chat messages per time bucket, with the latest message id: the chat timeline behind OpenVibe.Live&#39;s AI moments, chat spikes and activity reads (plan T3, J4b), and the channel welcome check (GET /internal/chat/first-chat: whether an identity has chatted in the channel before). Loopback only, Chat service token (Live&#39;s principal today); never granted to an app or delegated to an agent.</p>

POST /internal/chat/invalidate

Tell OpenVibe.Chat that something it caches changed elsewhere: a person (optionally with their new public fields, pushed to their sockets), a channel's settings, a channel's IP approvals, or bans.

Capabilities
chat.cache.invalidate
Visibility
first-party
Request body
application/json chat.invalidate-request@1
Response
application/json chat.ingress-ack@1
Errors
errors.problem@1 (application/problem+json)
Description<p><strong>chat.cache.invalidate</strong> (first-party): Tell OpenVibe.Chat that something it caches changed elsewhere: a person (optionally with their new public fields, pushed to their sockets), a channel&#39;s settings, a channel&#39;s IP approvals, or bans. A cache hint only; Chat reloads the entry. Loopback only, first-party service token (Live&#39;s principal today); never granted to an app or delegated to an agent.</p>

GET /internal/chat/messages

Page OpenVibe.Chat's stored messages of one channel, stream, person, anonymous id or name, or read one by id, with a cursor on the message id and the latest id: for OpenVibe.Live's AI context, clip an

Capabilities
chat.messages.read
Visibility
internal
Response
application/json chat.messages-page@1
Errors
errors.problem@1 (application/problem+json)
Description<p><strong>chat.messages.read</strong> (internal): Page OpenVibe.Chat&#39;s stored messages of one channel, stream, person, anonymous id or name, or read one by id, with a cursor on the message id and the latest id: for OpenVibe.Live&#39;s AI context, clip and viewer jobs and its moderator search and history (plan T3, J4b). Loopback only, Chat service token (Live&#39;s principal today); never granted to an app or delegated to an agent.</p>

POST /internal/chat/messages

Send a chat message to a room the actor is a member of (browsers over the chat socket; first-party services over Chat's service API).

Capabilities
chat.message.send
Visibility
first-party
Request body
application/json chat.send-request@1
Response
application/json chat.send-result@1
Errors
errors.problem@1 (application/problem+json)
Description<p><strong>chat.message.send</strong> (first-party): Send a chat message to a room the actor is a member of (browsers over the chat socket; first-party services over Chat&#39;s service API).</p>

POST /internal/chat/moderation

Change the chat rows OpenVibe.Chat owns and act on its sockets for a moderator: delete one message, a person's, an anonymous id's or a relay name's messages, or a time range (Chat broadcasts the delet

Capabilities
chat.moderation.write
Visibility
first-party
Request body
application/json chat.moderation-request@1
Response
application/json chat.moderation-result@1
Errors
errors.problem@1 (application/problem+json)
Description<p><strong>chat.moderation.write</strong> (first-party): Change the chat rows OpenVibe.Chat owns and act on its sockets for a moderator: delete one message, a person&#39;s, an anonymous id&#39;s or a relay name&#39;s messages, or a time range (Chat broadcasts the deletes), review messages held for IP approval, hide, unhide or record relay identities, set or clear TTS voice overrides, disconnect a person or an address, and log moderation actions. One typed action per request, applied once per idempotency key. Loopback only, first-party service token (Live&#39;s principal today); never granted to an app or delegated to an agent.</p>

GET /internal/chat/moderation/pending-ip

Read OpenVibe.Chat's moderation queues for OpenVibe.Live's moderator pages: a channel's messages held for IP approval, the relay names hidden or banned on a channel (or one by id), and one identity's

Capabilities
chat.moderation.queue.read
Visibility
internal
Response
application/json chat.moderation-queue-result@1
Errors
errors.problem@1 (application/problem+json)
Description<p><strong>chat.moderation.queue.read</strong> (internal): Read OpenVibe.Chat&#39;s moderation queues for OpenVibe.Live&#39;s moderator pages: a channel&#39;s messages held for IP approval, the relay names hidden or banned on a channel (or one by id), and one identity&#39;s TTS voice override (plan T3, J4b). Internal: rows carry IP addresses. chat.moderation.read stays the channel settings and moderators read. Loopback only, Chat service token (Live&#39;s principal today); never granted to an app or delegated to an agent.</p>

GET /internal/chat/moderation/relay-users

Read OpenVibe.Chat's moderation queues for OpenVibe.Live's moderator pages: a channel's messages held for IP approval, the relay names hidden or banned on a channel (or one by id), and one identity's

Capabilities
chat.moderation.queue.read
Visibility
internal
Response
application/json chat.moderation-queue-result@1
Errors
errors.problem@1 (application/problem+json)
Description<p><strong>chat.moderation.queue.read</strong> (internal): Read OpenVibe.Chat&#39;s moderation queues for OpenVibe.Live&#39;s moderator pages: a channel&#39;s messages held for IP approval, the relay names hidden or banned on a channel (or one by id), and one identity&#39;s TTS voice override (plan T3, J4b). Internal: rows carry IP addresses. chat.moderation.read stays the channel settings and moderators read. Loopback only, Chat service token (Live&#39;s principal today); never granted to an app or delegated to an agent.</p>

GET /internal/chat/moderation/relay-users/{id}

Read OpenVibe.Chat's moderation queues for OpenVibe.Live's moderator pages: a channel's messages held for IP approval, the relay names hidden or banned on a channel (or one by id), and one identity's

Capabilities
chat.moderation.queue.read
Visibility
internal
Parameters
  • id (path, required)
Response
application/json chat.moderation-queue-result@1
Errors
errors.problem@1 (application/problem+json)
Description<p><strong>chat.moderation.queue.read</strong> (internal): Read OpenVibe.Chat&#39;s moderation queues for OpenVibe.Live&#39;s moderator pages: a channel&#39;s messages held for IP approval, the relay names hidden or banned on a channel (or one by id), and one identity&#39;s TTS voice override (plan T3, J4b). Internal: rows carry IP addresses. chat.moderation.read stays the channel settings and moderators read. Loopback only, Chat service token (Live&#39;s principal today); never granted to an app or delegated to an agent.</p>

GET /internal/chat/moderation/tts-override

Read OpenVibe.Chat's moderation queues for OpenVibe.Live's moderator pages: a channel's messages held for IP approval, the relay names hidden or banned on a channel (or one by id), and one identity's

Capabilities
chat.moderation.queue.read
Visibility
internal
Response
application/json chat.moderation-queue-result@1
Errors
errors.problem@1 (application/problem+json)
Description<p><strong>chat.moderation.queue.read</strong> (internal): Read OpenVibe.Chat&#39;s moderation queues for OpenVibe.Live&#39;s moderator pages: a channel&#39;s messages held for IP approval, the relay names hidden or banned on a channel (or one by id), and one identity&#39;s TTS voice override (plan T3, J4b). Internal: rows carry IP addresses. chat.moderation.read stays the channel settings and moderators read. Loopback only, Chat service token (Live&#39;s principal today); never granted to an app or delegated to an agent.</p>

GET /internal/chat/sounds

Count a channel's custom sounds, or list the sounds not yet uploaded to OpenVibe.Media, from OpenVibe.Chat's channel_sounds: for OpenVibe.Live's channel readiness and its Media asset sync (plan T3, J4

Capabilities
chat.sounds.read
Visibility
internal
Response
application/json chat.sounds-result@1
Errors
errors.problem@1 (application/problem+json)
Description<p><strong>chat.sounds.read</strong> (internal): Count a channel&#39;s custom sounds, or list the sounds not yet uploaded to OpenVibe.Media, from OpenVibe.Chat&#39;s channel_sounds: for OpenVibe.Live&#39;s channel readiness and its Media asset sync (plan T3, J4b). Loopback only, Chat service token (Live&#39;s principal today); never granted to an app or delegated to an agent.</p>

POST /internal/chat/sounds/asset

Write a channel sound's OpenVibe.Media asset (URL and asset id) back onto OpenVibe.Chat's channel_sounds row after OpenVibe.Live's asset sync uploaded the file (plan T3, J4b).

Capabilities
chat.sounds.write
Visibility
internal
Request body
application/json chat.sound-asset-request@1
Response
application/json chat.ingress-ack@1
Errors
errors.problem@1 (application/problem+json)
Description<p><strong>chat.sounds.write</strong> (internal): Write a channel sound&#39;s OpenVibe.Media asset (URL and asset id) back onto OpenVibe.Chat&#39;s channel_sounds row after OpenVibe.Live&#39;s asset sync uploaded the file (plan T3, J4b). Loopback only, Chat service token (Live&#39;s principal today); never granted to an app or delegated to an agent.</p>

GET /internal/chat/sounds/by-command

Count a channel's custom sounds, or list the sounds not yet uploaded to OpenVibe.Media, from OpenVibe.Chat's channel_sounds: for OpenVibe.Live's channel readiness and its Media asset sync (plan T3, J4

Capabilities
chat.sounds.read
Visibility
internal
Response
application/json chat.sounds-result@1
Errors
errors.problem@1 (application/problem+json)
Description<p><strong>chat.sounds.read</strong> (internal): Count a channel&#39;s custom sounds, or list the sounds not yet uploaded to OpenVibe.Media, from OpenVibe.Chat&#39;s channel_sounds: for OpenVibe.Live&#39;s channel readiness and its Media asset sync (plan T3, J4b). Loopback only, Chat service token (Live&#39;s principal today); never granted to an app or delegated to an agent.</p>

POST /internal/chat/stats

Count OpenVibe.Chat's stored messages: all of chat, one person's, one stream's (messages, chatters, soundboard plays) or the top chatters of a stream, a channel or all chat, in an optional time window

Capabilities
chat.stats.read
Visibility
internal
Request body
application/json chat.stats-request@1
Response
application/json chat.stats-result@1
Errors
errors.problem@1 (application/problem+json)
Description<p><strong>chat.stats.read</strong> (internal): Count OpenVibe.Chat&#39;s stored messages: all of chat, one person&#39;s, one stream&#39;s (messages, chatters, soundboard plays) or the top chatters of a stream, a channel or all chat, in an optional time window — the stats OpenVibe.Live shows (home, SEO, admin, star of the day, VOD and recap cards, stream analytics, AI slogans) without reading its own copy of Chat&#39;s tables (plan T3, J4b). Loopback only, Chat service token (Live&#39;s principal today); never granted to an app or delegated to an agent.</p>

GET /internal/chat/tickets/{ticket_id}

Create or continue one conversation per (ticket id, calling service) and post a message into it, or read that service's own conversation, paged: with author_kind person, agent or staff and the author'

Capabilities
chat.ticket.write
Visibility
first-party
Parameters
  • ticket_id (path, required)
  • service (query, required) — The Contracts manifest id of the calling service (e.g. `help`, `ai`), the service token's principal. Together with `ticket_id` it keys the conversation, so two services on one ticket get two conversations.
  • message (query, required)
Input
chat.ticket-conversation@1
Response
application/json chat.ticket-conversation@1
Errors
errors.problem@1 (application/problem+json)
Description<p><strong>chat.ticket.write</strong> (first-party): Create or continue one conversation per (ticket id, calling service) and post a message into it, or read that service&#39;s own conversation, paged: with author_kind person, agent or staff and the author&#39;s subject, so a service (Help&#39;s agent worker, staff tooling) can answer a ticket without the person send route POST /api/chat/send, which needs a person&#39;s session. Loopback only, first-party service token; never granted to an app or delegated to an agent.</p>

POST /internal/chat/tickets/{ticket_id}/messages

Create or continue one conversation per (ticket id, calling service) and post a message into it, or read that service's own conversation, paged: with author_kind person, agent or staff and the author'

Capabilities
chat.ticket.write
Visibility
first-party
Parameters
  • ticket_id (path, required)
Request body
application/json chat.ticket-conversation@1
Response
application/json chat.ticket-conversation@1
Errors
errors.problem@1 (application/problem+json)
Description<p><strong>chat.ticket.write</strong> (first-party): Create or continue one conversation per (ticket id, calling service) and post a message into it, or read that service&#39;s own conversation, paged: with author_kind person, agent or staff and the author&#39;s subject, so a service (Help&#39;s agent worker, staff tooling) can answer a ticket without the person send route POST /api/chat/send, which needs a person&#39;s session. Loopback only, first-party service token; never granted to an app or delegated to an agent.</p>

GET /internal/chat/timeline

Count a channel's or a stream's chat messages per time bucket, with the latest message id: the chat timeline behind OpenVibe.Live's AI moments, chat spikes and activity reads (plan T3, J4b), and the c

Capabilities
chat.analysis.read
Visibility
internal
Response
application/json chat.timeline-result@1
Errors
errors.problem@1 (application/problem+json)
Description<p><strong>chat.analysis.read</strong> (internal): Count a channel&#39;s or a stream&#39;s chat messages per time bucket, with the latest message id: the chat timeline behind OpenVibe.Live&#39;s AI moments, chat spikes and activity reads (plan T3, J4b), and the channel welcome check (GET /internal/chat/first-chat: whether an identity has chatted in the channel before). Loopback only, Chat service token (Live&#39;s principal today); never granted to an app or delegated to an agent.</p>

POST /internal/live/calls

Send a chat message to a room the actor is a member of (browsers over the chat socket; first-party services over Chat's service API).

Capabilities
chat.message.send
Visibility
first-party
Request body
application/json chat.send-request@1
Response
application/json chat.send-result@1
Errors
errors.problem@1 (application/problem+json)
Description<p><strong>chat.message.send</strong> (first-party): Send a chat message to a room the actor is a member of (browsers over the chat socket; first-party services over Chat&#39;s service API).</p>

GET /internal/moderation/channels/{channelId}

Read one channel's moderation settings and moderator ids, the channels a person moderates, and a channel's custom emote count: how OpenVibe.Live reads what it needs from the six chat tables OpenVibe.C

Capabilities
chat.moderation.read
Visibility
internal
Parameters
  • channelId (path, required)
Response
application/json chat.channel-moderation-result@1
Errors
errors.problem@1 (application/problem+json)
Description<p><strong>chat.moderation.read</strong> (internal): Read one channel&#39;s moderation settings and moderator ids, the channels a person moderates, and a channel&#39;s custom emote count: how OpenVibe.Live reads what it needs from the six chat tables OpenVibe.Chat owns (plan T3). Loopback only, service token.</p>

GET /internal/moderation/channels/{channelId}/emote-count

Read one channel's moderation settings and moderator ids, the channels a person moderates, and a channel's custom emote count: how OpenVibe.Live reads what it needs from the six chat tables OpenVibe.C

Capabilities
chat.moderation.read
Visibility
internal
Parameters
  • channelId (path, required)
Response
application/json chat.channel-moderation-result@1
Errors
errors.problem@1 (application/problem+json)
Description<p><strong>chat.moderation.read</strong> (internal): Read one channel&#39;s moderation settings and moderator ids, the channels a person moderates, and a channel&#39;s custom emote count: how OpenVibe.Live reads what it needs from the six chat tables OpenVibe.Chat owns (plan T3). Loopback only, service token.</p>

GET /internal/moderation/users/{userId}/channels

Read one channel's moderation settings and moderator ids, the channels a person moderates, and a channel's custom emote count: how OpenVibe.Live reads what it needs from the six chat tables OpenVibe.C

Capabilities
chat.moderation.read
Visibility
internal
Parameters
  • userId (path, required)
Response
application/json chat.channel-moderation-result@1
Errors
errors.problem@1 (application/problem+json)
Description<p><strong>chat.moderation.read</strong> (internal): Read one channel&#39;s moderation settings and moderator ids, the channels a person moderates, and a channel&#39;s custom emote count: how OpenVibe.Live reads what it needs from the six chat tables OpenVibe.Chat owns (plan T3). Loopback only, service token.</p>

Other bindings