Send a message
Sends a message in one of your conversations, as you. The other party receives it exactly like a message written on CardNexus, with the usual notifications.
Send text only as JSON ({"text": "…"}), or send multipart/form-data with a text field and one files field per file. A message carries text, files, or both: up to 5000 characters and up to 10 files — pictures (image/*, except SVG) or PDF documents (application/pdf), each up to 10 MB. A file that cannot be read as a picture or a PDF document is rejected with BAD_REQUEST.
A conversation whose canSend is false returns CONFLICT. Send an Idempotency-Key header to retry safely: repeating a request with the same key returns the first response without sending the message twice.
This endpoint has its own rate-limit bucket (messages-send, 60 messages per hour), counted per account across all your keys and connected applications.
Requires the messaging:write scope.
Path Parameters
- Type: stringthread
Id min length:1max length:200requiredA stable, opaque conversation ID. Treat it as a token — don't parse it.
Body
- Type: stringtextmax length:5000
The message text, up to 5000 characters. Optional when you send files.
Responses
- application/json
- application/json
- application/json
- application/json
- application/json
- application/json
- application/json
- application/json
- application/json
- application/json
curl https://public-api.cardnexus.com/v1/threads/b3JkZXI6T1ItQVNOQkMtMTptYWlu/messages \
--request POST \
--header 'Content-Type: multipart/form-data' \
--header 'Authorization: Bearer YOUR_SECRET_TOKEN' \
--form 'text=' \
--form 'files='
{
"id": "e5f0a1b2c3d4e5f6a7b8c9d0",
"threadId": "b3JkZXI6T1ItQVNOQkMtMTptYWlu",
"sender": {
"username": "alphabay_cards",
"role": "buyer"
},
"text": "Could you ship the Charizard ex in a top loader?",
"attachments": [
{
"type": "image",
"url": "https://us-east.stream-io-cdn.com/1234567/images/front.jpg",
"name": "front.jpg",
"contentType": "image/jpeg",
"size": 482113
}
],
"sentAt": "2026-06-14T10:00:00.000Z"
}