Skip to main content
POST
Send a message into a lane on behalf of a participant. This is the headless path — apps using the drop-in component send through their participant token instead. Every message passes through the Supervisor’s pipeline before delivery: safety masking, then translation into each recipient’s language. Sending into a locked thread returns 409.

Path

string
required
Thread ID (th_…) or your reference.

Request

string
required
Sender — participant ID (prt_…) or their external_id. Use "system" for order-event notices (“Your order was picked up”), rendered as system chips, not chat bubbles.
string
required
customer_merchant, customer_courier, or merchant_courier. The sender’s role must belong to the lane.
string
Message text. Required unless attachments is present.
array
Files by URL: [{ "url": "https://…", "content_type": "image/jpeg" }].

Response

object
The created message, including translations keyed by language and the post-masking text.