Weav

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_idstringrequired

Format: uuid.

sender_typestringrequired

One of: customer, user.

sender_idstring | null

Format: uuid.

contentstringrequired

Request

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"
}
  • 400 Bad Request
  • 401 Unauthorized

Response fields

idstring

Format: uuid.

conversation_idstring

Format: uuid.

sender_typestring

One of: customer, user, agent, system.

sender_idstring | null

Format: uuid.

customer_idstring | null

Format: uuid.

contentstring
sent_atstring

Format: date-time.

is_internalboolean
fromarray<string> | null
toarray<string> | null
ccarray<string> | null
bccarray<string> | null
email_statusstring | null
email_error_messagestring | null
created_atstring | null

Format: date-time.