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.

POST/api/chat/projects/{projectId}/chats/{chatId}/messages

Authentication

Requires JWT
Note
Include your JWT in the Authorization: Bearer YOUR_TOKEN header (user-facing apps, RBAC). View authentication guide →

Path Parameters

NameTypeRequiredDescription
projectIdstringYesProject ID.
chatIdstringYesChat 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).

json
{
  "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.

Use the auth endpoints to obtain a JWT.

No Request Yet

Send a request to see the full inspector

Responses

201Message sent
json
{
  "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"
  }
}
400Bad request or validation error.
401Authentication required or invalid token.

Errors

CodeMeaning
400Bad request or validation error.
401Authentication required or invalid token.
Edit this page on GitHub