Create agent
Create a new AI agent for the authenticated organization
Create a new AI agent for the authenticated organization
POST https://api.weav.com/v1/agents
Requires a token with the external-api:write ability.
Body
namestringrequiredMaximum length: 255.
descriptionstring | nullavatar_urlstring | nullFormat: url.
max_messages_per_sessioninteger | nullMinimum: 1.
Maximum: 1000.
tonestring | nullMaximum length: 255.
response_lengthstring | nullMaximum length: 255.
is_activeboolean | nullRequest
cURL
curl --request POST \
--url 'https://api.weav.com/v1/agents' \
--header "Authorization: Bearer ${WEAV_API_TOKEN}" \
--header 'Content-Type: application/json' \
--data '{
"name": "Agent",
"description": "Helps customers with support queries",
"avatar_url": "https://example.com/avatar.png",
"max_messages_per_session": 50,
"tone": "professional",
"response_length": "standard",
"is_active": true
}'
JavaScript
const body = {
"name": "Agent",
"description": "Helps customers with support queries",
"avatar_url": "https://example.com/avatar.png",
"max_messages_per_session": 50,
"tone": "professional",
"response_length": "standard",
"is_active": true
};
const response = await fetch("https://api.weav.com/v1/agents", {
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 = {"name": "Agent", "description": "Helps customers with support queries", "avatar_url": "https://example.com/avatar.png", "max_messages_per_session": 50, "tone": "professional", "response_length": "standard", "is_active": True}
response = requests.post("https://api.weav.com/v1/agents", headers=headers, json=body)
print(response.json())
PHP
use GuzzleHttp\Client;
$client = new Client();
$response = $client->request('POST', 'https://api.weav.com/v1/agents', [
'headers' => ['Authorization' => 'Bearer '.getenv('WEAV_API_TOKEN')],
'json' => array (
'name' => 'Agent',
'description' => 'Helps customers with support queries',
'avatar_url' => 'https://example.com/avatar.png',
'max_messages_per_session' => 50,
'tone' => 'professional',
'response_length' => 'standard',
'is_active' => true,
),
]);
echo $response->getBody();
Response
201 Created
{
"id": "123e4567-e89b-12d3-a456-426614174000",
"name": "Agent",
"slug": "agent",
"description": "Helps customers with support queries",
"avatar_url": "https://example.com/avatar.png",
"max_messages_per_session": 50,
"tone": "professional",
"response_length": "standard",
"is_active": true,
"is_copilot": false,
"created_at": "2026-01-01T00:00:00Z",
"updated_at": "2026-01-01T00:00:00Z"
}
400Bad Request401Unauthorized
Response fields
idstringFormat: uuid.
namestringslugstringdescriptionstring | nullavatar_urlstring | nullFormat: url.
max_messages_per_sessioninteger | nulltonestring | nullresponse_lengthstring | nullis_activebooleanis_copilotbooleancreated_atstring | nullFormat: date-time.
updated_atstring | nullFormat: date-time.
