Skip to main content

HTTP API reference › Gala Launchpad › stream-chat

Gala Launchpad — stream-chat

11 operations in this group.

GET /live/{tokenName}/chat​

StreamChatController_getChatStatus

Get per-token chat status

Get per-token chat status

Parameters​

NameInRequiredTypeDescription
tokenNamepathrequiredstring

Responses​

200 — Enabled state, feature status, disable reason, and slow-mode interval.​

Content type: application/json

Schema: ApiSuccessEnvelopeMetadataDto & object

FieldTypeRequiredDescription
errorboolean enum: falseyesSuccessful response marker.
messagestringyesResponse message.
statusnumberyesHTTP status code.
dataChatStatusResponseDtoyes

400 — Invalid token name.​

Content type: application/json

Schema: ApiErrorEnvelope

FieldTypeRequiredDescription
errorboolean enum: trueyes
messageoneOf: string | array<string>yes
statusintegeryesHTTP status code.
messagestringyes
statusCodeintegeryesHTTP status code.

404 — Token not found.​

Content type: application/json

Schema: ApiErrorEnvelope

FieldTypeRequiredDescription
errorboolean enum: trueyes
messageoneOf: string | array<string>yes
statusintegeryesHTTP status code.
messagestringyes
statusCodeintegeryesHTTP status code.

500 — Chat status could not be retrieved.​

Content type: application/json

Schema: ApiErrorEnvelope

FieldTypeRequiredDescription
errorboolean enum: trueyes
messageoneOf: string | array<string>yes
statusintegeryesHTTP status code.
messagestringyes
statusCodeintegeryesHTTP status code.

default — Shared error envelope returned by the application exception filter.​

Content type: application/json

Schema: ApiErrorEnvelope

FieldTypeRequiredDescription
errorboolean enum: trueyes
messageoneOf: string | array<string>yes
statusintegeryesHTTP status code.
messagestringyes
statusCodeintegeryesHTTP status code.

Example response​

[]

POST /live/&#123;tokenName&#125;/chat​

StreamChatController_setChatStatus

Toggle per-token chat status (admin/overseer)

Toggle per-token chat status (admin/overseer)

Authentication: apiKeyAuth, bearer

Parameters​

NameInRequiredTypeDescription
tokenNamepathrequiredstring

Request body​

Required: yes

application/json​

Schema: SetChatStatusRequestDto

FieldTypeRequiredDescription
enabledbooleanyes

Responses​

200 — Chat status updated; the success envelope has no data field.​

Content type: application/json

Schema: ApiSuccessEnvelopeMetadataDto

FieldTypeRequiredDescription
errorboolean enum: falseyesSuccessful response marker.
messagestringyesResponse message.
statusnumberyesHTTP status code.

400 — Chat status could not be updated.​

Content type: application/json

Schema: ApiErrorEnvelope

FieldTypeRequiredDescription
errorboolean enum: trueyes
messageoneOf: string | array<string>yes
statusintegeryesHTTP status code.
messagestringyes
statusCodeintegeryesHTTP status code.

401 — Unauthorized​

Content type: application/json

Schema: ApiErrorEnvelope

FieldTypeRequiredDescription
errorboolean enum: trueyes
messageoneOf: string | array<string>yes
statusintegeryesHTTP status code.
messagestringyes
statusCodeintegeryesHTTP status code.

403 — Forbidden​

Content type: application/json

Schema: ApiErrorEnvelope

FieldTypeRequiredDescription
errorboolean enum: trueyes
messageoneOf: string | array<string>yes
statusintegeryesHTTP status code.
messagestringyes
statusCodeintegeryesHTTP status code.

404 — Token not found.​

Content type: application/json

Schema: ApiErrorEnvelope

FieldTypeRequiredDescription
errorboolean enum: trueyes
messageoneOf: string | array<string>yes
statusintegeryesHTTP status code.
messagestringyes
statusCodeintegeryesHTTP status code.

500 — Chat status could not be updated.​

Content type: application/json

Schema: ApiErrorEnvelope

FieldTypeRequiredDescription
errorboolean enum: trueyes
messageoneOf: string | array<string>yes
statusintegeryesHTTP status code.
messagestringyes
statusCodeintegeryesHTTP status code.

default — Shared error envelope returned by the application exception filter.​

Content type: application/json

Schema: ApiErrorEnvelope

FieldTypeRequiredDescription
errorboolean enum: trueyes
messageoneOf: string | array<string>yes
statusintegeryesHTTP status code.
messagestringyes
statusCodeintegeryesHTTP status code.

Example request​

[]

Example response​

[]

PATCH /live/&#123;tokenName&#125;/chat/slow-mode​

StreamChatController_setSlowMode

Set chat slow mode interval

Set chat slow mode interval

Authentication: apiKeyAuth, bearer

Parameters​

NameInRequiredTypeDescription
tokenNamepathrequiredstring

Request body​

Required: yes

application/json​

Schema: SetSlowModeRequestDto

FieldTypeRequiredDescription
slowModeSecondsnumberyes

Responses​

200 — Slow mode updated; the success envelope has no data field.​

Content type: application/json

Schema: ApiSuccessEnvelopeMetadataDto

FieldTypeRequiredDescription
errorboolean enum: falseyesSuccessful response marker.
messagestringyesResponse message.
statusnumberyesHTTP status code.

400 — Invalid slowModeSeconds value​

Content type: application/json

Schema: ApiErrorEnvelope

FieldTypeRequiredDescription
errorboolean enum: trueyes
messageoneOf: string | array<string>yes
statusintegeryesHTTP status code.
messagestringyes
statusCodeintegeryesHTTP status code.

401 — Unauthorized​

Content type: application/json

Schema: ApiErrorEnvelope

FieldTypeRequiredDescription
errorboolean enum: trueyes
messageoneOf: string | array<string>yes
statusintegeryesHTTP status code.
messagestringyes
statusCodeintegeryesHTTP status code.

403 — Forbidden - requires MANAGE_COMMUNITY permission​

Content type: application/json

Schema: ApiErrorEnvelope

FieldTypeRequiredDescription
errorboolean enum: trueyes
messageoneOf: string | array<string>yes
statusintegeryesHTTP status code.
messagestringyes
statusCodeintegeryesHTTP status code.

404 — Token not found.​

Content type: application/json

Schema: ApiErrorEnvelope

FieldTypeRequiredDescription
errorboolean enum: trueyes
messageoneOf: string | array<string>yes
statusintegeryesHTTP status code.
messagestringyes
statusCodeintegeryesHTTP status code.

500 — Slow mode could not be updated.​

Content type: application/json

Schema: ApiErrorEnvelope

FieldTypeRequiredDescription
errorboolean enum: trueyes
messageoneOf: string | array<string>yes
statusintegeryesHTTP status code.
messagestringyes
statusCodeintegeryesHTTP status code.

default — Shared error envelope returned by the application exception filter.​

Content type: application/json

Schema: ApiErrorEnvelope

FieldTypeRequiredDescription
errorboolean enum: trueyes
messageoneOf: string | array<string>yes
statusintegeryesHTTP status code.
messagestringyes
statusCodeintegeryesHTTP status code.

Example request​

[]

Example response​

[]

GET /v1/messages​

StreamChatController_getChatMessages

Query unified messages (chat and comments)

Query messages with flexible filtering by token, user address, and optional type filter

Responses​

200 — Messages retrieved successfully - returns paginated array of message objects​

Content type: application/json

Schema: MessageListSuccessEnvelopeDto

FieldTypeRequiredDescription
dataMessageListDataResponseDtoyes
errorboolean enum: falseyes
messagestringyes
statusnumberyes

400 — Bad request - either tokenName or userAddress must be provided, skip/limit parameters invalid, invalid sort field, or invalid type filter​

Content type: application/json

Schema: ApiErrorEnvelope

FieldTypeRequiredDescription
errorboolean enum: trueyes
messageoneOf: string | array<string>yes
statusintegeryesHTTP status code.
messagestringyes
statusCodeintegeryesHTTP status code.

500 — Internal server error - database query failed​

Content type: application/json

Schema: ApiErrorEnvelope

FieldTypeRequiredDescription
errorboolean enum: trueyes
messageoneOf: string | array<string>yes
statusintegeryesHTTP status code.
messagestringyes
statusCodeintegeryesHTTP status code.

default — Shared error envelope for query validation and database failures.​

Content type: application/json

Schema: ApiErrorEnvelope

FieldTypeRequiredDescription
errorboolean enum: trueyes
messageoneOf: string | array<string>yes
statusintegeryesHTTP status code.
messagestringyes
statusCodeintegeryesHTTP status code.

Example response​

[]

POST /v1/messages​

StreamChatController_createUnifiedMessage

Create unified message (chat or comment)

Send a new message via public v1 endpoint (supports both chat and comments)

Authentication: apiKeyAuth, bearer

Request body​

Required: yes

application/json​

Schema: SendUnifiedMessageDto

FieldTypeRequiredDescription
contentstringyes
tokenNamestringyes
typestring enum: COMMENT, CHAT_MESSAGEno

Responses​

200 — Message created successfully - returns message object with ID, timestamp, and user info​

Content type: application/json

Schema: MessageMutationSuccessEnvelopeDto

FieldTypeRequiredDescription
dataoneOf: ChatMessageResponseDto | MessageResponseDtoyes
errorboolean enum: falseyes
messagestringyes
statusnumberyes

400 — Bad request - tokenName missing, content missing/empty/exceeds max length, invalid message type, or other validation error​

Content type: application/json

Schema: ApiErrorEnvelope

FieldTypeRequiredDescription
errorboolean enum: trueyes
messageoneOf: string | array<string>yes
statusintegeryesHTTP status code.
messagestringyes
statusCodeintegeryesHTTP status code.

401 — Unauthorized - missing or invalid JWT token​

Content type: application/json

Schema: ApiErrorEnvelope

FieldTypeRequiredDescription
errorboolean enum: trueyes
messageoneOf: string | array<string>yes
statusintegeryesHTTP status code.
messagestringyes
statusCodeintegeryesHTTP status code.

403 — Forbidden - user profile incomplete, user is banned, or messaging disabled​

Content type: application/json

Schema: ApiErrorEnvelope

FieldTypeRequiredDescription
errorboolean enum: trueyes
messageoneOf: string | array<string>yes
statusintegeryesHTTP status code.
messagestringyes
statusCodeintegeryesHTTP status code.

404 — Token not found - tokenName does not match any existing pool​

Content type: application/json

Schema: ApiErrorEnvelope

FieldTypeRequiredDescription
errorboolean enum: trueyes
messageoneOf: string | array<string>yes
statusintegeryesHTTP status code.
messagestringyes
statusCodeintegeryesHTTP status code.

500 — Internal server error - failed to save message to database or broadcast via WebSocket​

Content type: application/json

Schema: ApiErrorEnvelope

FieldTypeRequiredDescription
errorboolean enum: trueyes
messageoneOf: string | array<string>yes
statusintegeryesHTTP status code.
messagestringyes
statusCodeintegeryesHTTP status code.

default — Shared error envelope for authentication, validation, and message service failures.​

Content type: application/json

Schema: ApiErrorEnvelope

FieldTypeRequiredDescription
errorboolean enum: trueyes
messageoneOf: string | array<string>yes
statusintegeryesHTTP status code.
messagestringyes
statusCodeintegeryesHTTP status code.

Example request​

[]

Example response​

[]

PUT /v1/messages/&#123;id&#125;​

StreamChatController_updateMessage

Update unified message (chat or comment)

Update a message (message author only)

Authentication: apiKeyAuth, bearer

Parameters​

NameInRequiredTypeDescription
idpathrequiredstringMessage identifier returned by the message API.

Request body​

Required: yes

application/json​

Schema: UpdateUnifiedMessageDto

FieldTypeRequiredDescription
contentstringyes

Responses​

200 — Message updated successfully - returns updated message object​

Content type: application/json

Schema: MessageMutationSuccessEnvelopeDto

FieldTypeRequiredDescription
dataoneOf: ChatMessageResponseDto | MessageResponseDtoyes
errorboolean enum: falseyes
messagestringyes
statusnumberyes

400 — Bad request - content is missing, empty, or exceeds max length (500 for chat, 2000 for comment)​

Content type: application/json

Schema: ApiErrorEnvelope

FieldTypeRequiredDescription
errorboolean enum: trueyes
messageoneOf: string | array<string>yes
statusintegeryesHTTP status code.
messagestringyes
statusCodeintegeryesHTTP status code.

401 — Unauthorized - missing or invalid JWT token​

Content type: application/json

Schema: ApiErrorEnvelope

FieldTypeRequiredDescription
errorboolean enum: trueyes
messageoneOf: string | array<string>yes
statusintegeryesHTTP status code.
messagestringyes
statusCodeintegeryesHTTP status code.

403 — Forbidden - user is not the message author or user is banned​

Content type: application/json

Schema: ApiErrorEnvelope

FieldTypeRequiredDescription
errorboolean enum: trueyes
messageoneOf: string | array<string>yes
statusintegeryesHTTP status code.
messagestringyes
statusCodeintegeryesHTTP status code.

404 — Message not found - id parameter does not match any existing message​

Content type: application/json

Schema: ApiErrorEnvelope

FieldTypeRequiredDescription
errorboolean enum: trueyes
messageoneOf: string | array<string>yes
statusintegeryesHTTP status code.
messagestringyes
statusCodeintegeryesHTTP status code.

500 — Internal server error - failed to update message in database or broadcast via WebSocket​

Content type: application/json

Schema: ApiErrorEnvelope

FieldTypeRequiredDescription
errorboolean enum: trueyes
messageoneOf: string | array<string>yes
statusintegeryesHTTP status code.
messagestringyes
statusCodeintegeryesHTTP status code.

default — Shared error envelope for authentication, validation, and message update failures.​

Content type: application/json

Schema: ApiErrorEnvelope

FieldTypeRequiredDescription
errorboolean enum: trueyes
messageoneOf: string | array<string>yes
statusintegeryesHTTP status code.
messagestringyes
statusCodeintegeryesHTTP status code.

Example request​

[]

Example response​

[]

DELETE /v1/messages/&#123;id&#125;​

StreamChatController_deleteMessage

Delete unified message (chat or comment)

Delete a message (message author, pool owner, or moderator)

Authentication: apiKeyAuth, bearer

Parameters​

NameInRequiredTypeDescription
idpathrequiredstringMessage identifier returned by the message API.

Responses​

200 — Message deleted successfully - message marked deleted and viewers notified via WebSocket​

Content type: application/json

Schema: MessageDeleteSuccessEnvelopeDto

FieldTypeRequiredDescription
dataDeletedMessageDataResponseDtono
errorboolean enum: falseyes
messagestringyes
statusnumberyes

401 — Unauthorized - missing or invalid JWT token or API key​

Content type: application/json

Schema: ApiErrorEnvelope

FieldTypeRequiredDescription
errorboolean enum: trueyes
messageoneOf: string | array<string>yes
statusintegeryesHTTP status code.
messagestringyes
statusCodeintegeryesHTTP status code.

403 — Forbidden - user is not message author or moderator with MANAGE_CHAT permission, or user is banned​

Content type: application/json

Schema: ApiErrorEnvelope

FieldTypeRequiredDescription
errorboolean enum: trueyes
messageoneOf: string | array<string>yes
statusintegeryesHTTP status code.
messagestringyes
statusCodeintegeryesHTTP status code.

404 — Message not found - id parameter does not match any existing message​

Content type: application/json

Schema: ApiErrorEnvelope

FieldTypeRequiredDescription
errorboolean enum: trueyes
messageoneOf: string | array<string>yes
statusintegeryesHTTP status code.
messagestringyes
statusCodeintegeryesHTTP status code.

500 — Internal server error - failed to delete message from database or broadcast via WebSocket​

Content type: application/json

Schema: ApiErrorEnvelope

FieldTypeRequiredDescription
errorboolean enum: trueyes
messageoneOf: string | array<string>yes
statusintegeryesHTTP status code.
messagestringyes
statusCodeintegeryesHTTP status code.

default — Shared error envelope for authentication, authorization, and message deletion failures.​

Content type: application/json

Schema: ApiErrorEnvelope

FieldTypeRequiredDescription
errorboolean enum: trueyes
messageoneOf: string | array<string>yes
statusintegeryesHTTP status code.
messagestringyes
statusCodeintegeryesHTTP status code.

Example response​

[]

POST /v1/messages/&#123;messageId&#125;/pin​

StreamChatController_pinMessage

Pin message

Pin a message to the top (requires MANAGE_STREAM_SETTINGS permission)

Authentication: apiKeyAuth, bearer

Parameters​

NameInRequiredTypeDescription
messageIdpathrequiredstringMessage identifier returned by the message API.

Responses​

200 — Message pinned successfully - previous pinned message automatically unpinned​

Content type: application/json

Schema: PinMessageSuccessEnvelopeDto

FieldTypeRequiredDescription
dataPinnedMessageResponseDtoyes
errorboolean enum: falseyes
messagestringyes
statusnumberyes

401 — Unauthorized - missing or invalid JWT token​

Content type: application/json

Schema: ApiErrorEnvelope

FieldTypeRequiredDescription
errorboolean enum: trueyes
messageoneOf: string | array<string>yes
statusintegeryesHTTP status code.
messagestringyes
statusCodeintegeryesHTTP status code.

403 — Forbidden - user lacks MANAGE_STREAM_SETTINGS permission​

Content type: application/json

Schema: ApiErrorEnvelope

FieldTypeRequiredDescription
errorboolean enum: trueyes
messageoneOf: string | array<string>yes
statusintegeryesHTTP status code.
messagestringyes
statusCodeintegeryesHTTP status code.

404 — Message not found - messageId does not exist​

Content type: application/json

Schema: ApiErrorEnvelope

FieldTypeRequiredDescription
errorboolean enum: trueyes
messageoneOf: string | array<string>yes
statusintegeryesHTTP status code.
messagestringyes
statusCodeintegeryesHTTP status code.

500 — Internal server error - failed to pin message in database or broadcast via WebSocket​

Content type: application/json

Schema: ApiErrorEnvelope

FieldTypeRequiredDescription
errorboolean enum: trueyes
messageoneOf: string | array<string>yes
statusintegeryesHTTP status code.
messagestringyes
statusCodeintegeryesHTTP status code.

default — Shared error envelope for authentication, authorization, and pinning failures.​

Content type: application/json

Schema: ApiErrorEnvelope

FieldTypeRequiredDescription
errorboolean enum: trueyes
messageoneOf: string | array<string>yes
statusintegeryesHTTP status code.
messagestringyes
statusCodeintegeryesHTTP status code.

Example response​

[]

DELETE /v1/messages/&#123;messageId&#125;/pin​

StreamChatController_unpinMessage

Unpin message

Unpin a message (requires MANAGE_STREAM_SETTINGS permission)

Authentication: apiKeyAuth, bearer

Parameters​

NameInRequiredTypeDescription
messageIdpathrequiredstringMessage identifier returned by the message API.

Responses​

200 — Message unpinned successfully.​

Content type: application/json

Schema: UnpinMessageSuccessEnvelopeDto

FieldTypeRequiredDescription
dataUnpinnedMessageDataResponseDtoyes
errorboolean enum: falseyes
messagestringyes
statusnumberyes

401 — Unauthorized - missing or invalid JWT token​

Content type: application/json

Schema: ApiErrorEnvelope

FieldTypeRequiredDescription
errorboolean enum: trueyes
messageoneOf: string | array<string>yes
statusintegeryesHTTP status code.
messagestringyes
statusCodeintegeryesHTTP status code.

403 — Forbidden - user lacks MANAGE_STREAM_SETTINGS permission​

Content type: application/json

Schema: ApiErrorEnvelope

FieldTypeRequiredDescription
errorboolean enum: trueyes
messageoneOf: string | array<string>yes
statusintegeryesHTTP status code.
messagestringyes
statusCodeintegeryesHTTP status code.

404 — Message not found - messageId does not exist​

Content type: application/json

Schema: ApiErrorEnvelope

FieldTypeRequiredDescription
errorboolean enum: trueyes
messageoneOf: string | array<string>yes
statusintegeryesHTTP status code.
messagestringyes
statusCodeintegeryesHTTP status code.

500 — Internal server error - failed to unpin message in database or broadcast via WebSocket​

Content type: application/json

Schema: ApiErrorEnvelope

FieldTypeRequiredDescription
errorboolean enum: trueyes
messageoneOf: string | array<string>yes
statusintegeryesHTTP status code.
messagestringyes
statusCodeintegeryesHTTP status code.

default — Shared error envelope for authentication, authorization, and unpinning failures.​

Content type: application/json

Schema: ApiErrorEnvelope

FieldTypeRequiredDescription
errorboolean enum: trueyes
messageoneOf: string | array<string>yes
statusintegeryesHTTP status code.
messagestringyes
statusCodeintegeryesHTTP status code.

Example response​

[]

GET /v1/messages/pinned​

StreamChatController_getPinnedMessage

Get pinned message

Get the currently pinned message for a token (requires tokenName query parameter)

Parameters​

NameInRequiredTypeDescription
tokenNamequeryrequiredstringToken to look up the pinned message for.

Responses​

200 — Pinned message retrieved successfully - returns message object if pinned, or null if none​

Content type: application/json

Schema: PinnedMessageSuccessEnvelopeDto

FieldTypeRequiredDescription
dataobject nullableyes
errorboolean enum: falseyes
messagestringyes
statusnumberyes

400 — Bad request - tokenName query parameter is missing​

Content type: application/json

Schema: ApiErrorEnvelope

FieldTypeRequiredDescription
errorboolean enum: trueyes
messageoneOf: string | array<string>yes
statusintegeryesHTTP status code.
messagestringyes
statusCodeintegeryesHTTP status code.

404 — Token not found - tokenName does not match any existing pool​

Content type: application/json

Schema: ApiErrorEnvelope

FieldTypeRequiredDescription
errorboolean enum: trueyes
messageoneOf: string | array<string>yes
statusintegeryesHTTP status code.
messagestringyes
statusCodeintegeryesHTTP status code.

500 — Internal server error - database query failed​

Content type: application/json

Schema: ApiErrorEnvelope

FieldTypeRequiredDescription
errorboolean enum: trueyes
messageoneOf: string | array<string>yes
statusintegeryesHTTP status code.
messagestringyes
statusCodeintegeryesHTTP status code.

default — Shared error envelope for token lookup and pinned message failures.​

Content type: application/json

Schema: ApiErrorEnvelope

FieldTypeRequiredDescription
errorboolean enum: trueyes
messageoneOf: string | array<string>yes
statusintegeryesHTTP status code.
messagestringyes
statusCodeintegeryesHTTP status code.

Example response​

[]

GET /v1/messages/stats​

StreamChatController_getMessageStats

Get message statistics

Get aggregate message statistics for dashboard display

Authentication: apiKeyAuth, bearer

Responses​

200 — Message statistics in the shared success envelope.​

Content type: application/json

Schema: MessageStatsSuccessEnvelopeDto

FieldTypeRequiredDescription
dataMessageStatsResponseDtoyes
errorboolean enum: falseyes
messagestringyes
statusnumberyes

default — Shared error envelope for dashboard authentication and query failures.​

Content type: application/json

Schema: ApiErrorEnvelope

FieldTypeRequiredDescription
errorboolean enum: trueyes
messageoneOf: string | array<string>yes
statusintegeryesHTTP status code.
messagestringyes
statusCodeintegeryesHTTP status code.

Example response​

[]

Previous group: bundle · Next group: oembed