Create message
Note: API currently validates sender_type as customer|user. The API does not accept `metadata` or `is_ai_assisted` in requests.
Note: API currently validates sender_type as customer|user. The API does not accept metadata or is_ai_assisted in requests.
POST https://api.weav.com/v1/messages
Requires a token with the external-api:write ability.
Body
conversation_idstringrequiredFormat: uuid.
sender_typestringrequiredOne of: customer, user.
sender_idstring | nullFormat: uuid.
contentstringrequiredRequest
cURL
curl --request POST \
--url 'https://api.weav.com/v1/messages' \
--header "Authorization: Bearer ${WEAV_API_TOKEN}" \
--header 'Content-Type: application/json' \
--data '{
"conversation_id": "9b2f6c1e-3d4a-4f5b-8c7d-1e2f3a4b5c6d",
"sender_type": "customer",
"content": "string"
}'
JavaScript
const body = {
"conversation_id": "9b2f6c1e-3d4a-4f5b-8c7d-1e2f3a4b5c6d",
"sender_type": "customer",
"content": "string"
};
const response = await fetch("https://api.weav.com/v1/messages", {
method: "POST",
headers: {
Authorization: `Bearer ${process.env.WEAV_API_TOKEN}`,
'Content-Type': 'application/json'
},
body: JSON.stringify(body)
});
console.log(await response.json());
Python
import os
import requests
headers = {"Authorization": f"Bearer {os.environ['WEAV_API_TOKEN']}"}
body = {"conversation_id": "9b2f6c1e-3d4a-4f5b-8c7d-1e2f3a4b5c6d", "sender_type": "customer", "content": "string"}
response = requests.post("https://api.weav.com/v1/messages", headers=headers, json=body)
print(response.json())
PHP
use GuzzleHttp\Client;
$client = new Client();
$response = $client->request('POST', 'https://api.weav.com/v1/messages', [
'headers' => ['Authorization' => 'Bearer '.getenv('WEAV_API_TOKEN')],
'json' => array (
'conversation_id' => '9b2f6c1e-3d4a-4f5b-8c7d-1e2f3a4b5c6d',
'sender_type' => 'customer',
'content' => 'string',
),
]);
echo $response->getBody();
Response
201 Created
{
"id": "9b2f6c1e-3d4a-4f5b-8c7d-1e2f3a4b5c6d",
"conversation_id": "9b2f6c1e-3d4a-4f5b-8c7d-1e2f3a4b5c6d",
"sender_type": "customer",
"sender_id": "9b2f6c1e-3d4a-4f5b-8c7d-1e2f3a4b5c6d",
"customer_id": "9b2f6c1e-3d4a-4f5b-8c7d-1e2f3a4b5c6d",
"content": "string",
"sent_at": "2026-01-01T00:00:00Z",
"is_internal": false,
"from": [
"string"
],
"to": [
"string"
],
"cc": [
"string"
],
"bcc": [
"string"
],
"email_status": "string",
"email_error_message": "string",
"created_at": "2026-01-01T00:00:00Z"
}
400Bad Request401Unauthorized
Response fields
idstringFormat: uuid.
conversation_idstringFormat: uuid.
sender_typestringOne of: customer, user, agent, system.
sender_idstring | nullFormat: uuid.
customer_idstring | nullFormat: uuid.
contentstringsent_atstringFormat: date-time.
is_internalbooleanfromarray<string> | nulltoarray<string> | nullccarray<string> | nullbccarray<string> | nullemail_statusstring | nullemail_error_messagestring | nullcreated_atstring | nullFormat: date-time.
