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/jsonchat.messages-page@1- Errors
- errors.problem@1 (application/problem+json)
Description
<p><strong>chat.messages.read</strong> (internal): 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 and viewer jobs and its moderator search and history (plan T3, J4b). Loopback only, Chat service token (Live'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/jsonchat.event-request@1- Response
application/jsonchat.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's streams, global chat, everyone or one person) and broadcasts it once per idempotency key. Loopback only, first-party service token (Live'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/jsonchat.timeline-result@1- Errors
- errors.problem@1 (application/problem+json)
Description
<p><strong>chat.analysis.read</strong> (internal): 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 channel welcome check (GET /internal/chat/first-chat: whether an identity has chatted in the channel before). Loopback only, Chat service token (Live'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/jsonchat.invalidate-request@1- Response
application/jsonchat.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's settings, a channel's IP approvals, or bans. A cache hint only; Chat reloads the entry. Loopback only, first-party service token (Live'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/jsonchat.messages-page@1- Errors
- errors.problem@1 (application/problem+json)
Description
<p><strong>chat.messages.read</strong> (internal): 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 and viewer jobs and its moderator search and history (plan T3, J4b). Loopback only, Chat service token (Live'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/jsonchat.send-request@1- Response
application/jsonchat.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'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/jsonchat.moderation-request@1- Response
application/jsonchat.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's, an anonymous id's or a relay name'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'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/jsonchat.moderation-queue-result@1- Errors
- errors.problem@1 (application/problem+json)
Description
<p><strong>chat.moderation.queue.read</strong> (internal): 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 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'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/jsonchat.moderation-queue-result@1- Errors
- errors.problem@1 (application/problem+json)
Description
<p><strong>chat.moderation.queue.read</strong> (internal): 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 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'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/jsonchat.moderation-queue-result@1- Errors
- errors.problem@1 (application/problem+json)
Description
<p><strong>chat.moderation.queue.read</strong> (internal): 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 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'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/jsonchat.moderation-queue-result@1- Errors
- errors.problem@1 (application/problem+json)
Description
<p><strong>chat.moderation.queue.read</strong> (internal): 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 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'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/jsonchat.sounds-result@1- Errors
- errors.problem@1 (application/problem+json)
Description
<p><strong>chat.sounds.read</strong> (internal): 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, J4b). Loopback only, Chat service token (Live'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/jsonchat.sound-asset-request@1- Response
application/jsonchat.ingress-ack@1- Errors
- errors.problem@1 (application/problem+json)
Description
<p><strong>chat.sounds.write</strong> (internal): 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). Loopback only, Chat service token (Live'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/jsonchat.sounds-result@1- Errors
- errors.problem@1 (application/problem+json)
Description
<p><strong>chat.sounds.read</strong> (internal): 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, J4b). Loopback only, Chat service token (Live'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/jsonchat.stats-request@1- Response
application/jsonchat.stats-result@1- Errors
- errors.problem@1 (application/problem+json)
Description
<p><strong>chat.stats.read</strong> (internal): 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 — 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's tables (plan T3, J4b). Loopback only, Chat service token (Live'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/jsonchat.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's own conversation, paged: with author_kind person, agent or staff and the author's subject, so a service (Help's agent worker, staff tooling) can answer a ticket without the person send route POST /api/chat/send, which needs a person'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/jsonchat.ticket-conversation@1- Response
application/jsonchat.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's own conversation, paged: with author_kind person, agent or staff and the author's subject, so a service (Help's agent worker, staff tooling) can answer a ticket without the person send route POST /api/chat/send, which needs a person'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/jsonchat.timeline-result@1- Errors
- errors.problem@1 (application/problem+json)
Description
<p><strong>chat.analysis.read</strong> (internal): 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 channel welcome check (GET /internal/chat/first-chat: whether an identity has chatted in the channel before). Loopback only, Chat service token (Live'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/jsonchat.send-request@1- Response
application/jsonchat.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'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/jsonchat.channel-moderation-result@1- Errors
- errors.problem@1 (application/problem+json)
Description
<p><strong>chat.moderation.read</strong> (internal): 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.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/jsonchat.channel-moderation-result@1- Errors
- errors.problem@1 (application/problem+json)
Description
<p><strong>chat.moderation.read</strong> (internal): 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.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/jsonchat.channel-moderation-result@1- Errors
- errors.problem@1 (application/problem+json)
Description
<p><strong>chat.moderation.read</strong> (internal): 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.Chat owns (plan T3). Loopback only, service token.</p>Other bindings
- chat.message.send:
WS /ws/chat {type:"chat"}