chat
Send message
Send a message (text, image, video, audio, file, location, contact) to a chat with optional replyTo and mentions. For end-to-end encryption, use type=text with e2ee.ciphertext (base64) instead of plaintext content; server stores ciphertext only.
/api/chat/projects/{projectId}/chats/{chatId}/messagesAuthentication
Authorization: Bearer YOUR_TOKEN header (user-facing apps, RBAC). View authentication guide →Path Parameters
| Name | Type | Required | Description |
|---|---|---|---|
projectId | string | Yes | Project ID. |
chatId | string | Yes | Chat ID. |
Request Body
Message type and content, or E2EE ciphertext for text messages. Plaintext requires content; E2EE requires type=text and e2ee.ciphertext (omit plaintext content).
{
"type": "audio",
"content": "circuit synthesize",
"e2ee": {
"version": 1,
"scheme": "mudbase-e2ee-v1",
"ciphertext": "101.43.167.167",
"nonce": "capacitor reboot",
"ephemeralPublicKey": "protocol transmit",
"senderKeyId": "SfkvCAWQlgw91XdF"
},
"replyTo": "program quantify",
"mentions": [
"microchip navigate"
]
}{
"type": "audio",
"content": "circuit synthesize",
"e2ee": {
"version": 1,
"scheme": "mudbase-e2ee-v1",
"ciphertext": "101.43.167.167",
"nonce": "capacitor reboot",
"ephemeralPublicKey": "protocol transmit",
"senderKeyId": "SfkvCAWQlgw91XdF"
},
"replyTo": "program quantify",
"mentions": [
"microchip navigate"
]
}SDK setup
Create a client and set credentials (JWT and/or API key) before calling the API. Match the authentication type shown above.
import { MudbaseClient } from "mudbase";
const client = new MudbaseClient();
client.setJWT("eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiJ1c3JfbW9yZ2FuX2RlIiwiZW1haWwiOiJtb3JnYW4uY2hlbkBub3J0aHdpbmQuZGV2IiwiZXhwIjoxODI1MTI5NjAwfQ.doc_preview_sig");import { MudbaseClient } from "mudbase";
const client = new MudbaseClient();
client.setJWT("eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiJ1c3JfbW9yZ2FuX2RlIiwiZW1haWwiOiJtb3JnYW4uY2hlbkBub3J0aHdpbmQuZGV2IiwiZXhwIjoxODI1MTI5NjAwfQ.doc_preview_sig");Example request
Call this endpoint using the client from SDK setup. Use View HTTP for a raw cURL example.
const result = await client.chat.sendMessage({
projectId: "proj_7Bel4REcsneA",
chatId: "tQ64WM7sQjlIbDzM",
type: "microchip bypass",
content: "bandwidth index",
e2ee: "interface quantify",
replyTo: "alarm override",
mentions: "capacitor navigate"
});const result = await client.chat.sendMessage({
projectId: "proj_7Bel4REcsneA",
chatId: "tQ64WM7sQjlIbDzM",
type: "microchip bypass",
content: "bandwidth index",
e2ee: "interface quantify",
replyTo: "alarm override",
mentions: "capacitor navigate"
});Try It Live
Test this endpoint with your own credentials. Your requests will be sent to the live API.
No Request Yet
Send a request to see the full inspector
Responses
{
"success": true,
"data": {
"_id": "65a1b2c3d4e5f6789012345g",
"content": "Hello everyone",
"sender": "65a1b2c3d4e5f6789012345",
"createdAt": "2024-01-15T10:00:00.000Z"
}
}{
"success": true,
"data": {
"_id": "65a1b2c3d4e5f6789012345g",
"content": "Hello everyone",
"sender": "65a1b2c3d4e5f6789012345",
"createdAt": "2024-01-15T10:00:00.000Z"
}
}Errors
| Code | Meaning |
|---|---|
400 | Bad request or validation error. |
401 | Authentication required or invalid token. |