Create conversation
curl --request POST \
--url https://api.weav.com/v1/conversations \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"customer_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"subject": "<string>",
"assignee_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}
'import requests
url = "https://api.weav.com/v1/conversations"
payload = {
"customer_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"subject": "<string>",
"assignee_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
customer_id: '3c90c3cc-0d44-4b50-8888-8dd25736052a',
subject: '<string>',
assignee_id: '3c90c3cc-0d44-4b50-8888-8dd25736052a'
})
};
fetch('https://api.weav.com/v1/conversations', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.weav.com/v1/conversations",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'customer_id' => '3c90c3cc-0d44-4b50-8888-8dd25736052a',
'subject' => '<string>',
'assignee_id' => '3c90c3cc-0d44-4b50-8888-8dd25736052a'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.weav.com/v1/conversations"
payload := strings.NewReader("{\n \"customer_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"subject\": \"<string>\",\n \"assignee_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.weav.com/v1/conversations")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"customer_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"subject\": \"<string>\",\n \"assignee_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.weav.com/v1/conversations")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"customer_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"subject\": \"<string>\",\n \"assignee_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n}"
response = http.request(request)
puts response.read_body{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"channel": "email",
"customer_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"subject": "<string>",
"status": "open",
"priority": "low",
"assignee_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"assignee_type": "user",
"closed_at": "2023-11-07T05:31:56Z",
"first_response_at": "2023-11-07T05:31:56Z",
"last_message_at": "2023-11-07T05:31:56Z",
"is_spam": true,
"spam_score": 123,
"created_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z"
}{
"error": "Error message",
"code": "UNAUTHENTICATED",
"errors": {}
}{
"error": "Error message",
"code": "UNAUTHENTICATED",
"errors": {}
}{
"message": "The given data was invalid.",
"errors": {}
}Conversations
Create conversation
Assignment rules:
- Assignees must belong to the same workspace as the API key.
- Chat conversations can be assigned to users, unassigned, or only the conversation’s original chat agent.
- Email conversations can be assigned to users, unassigned, or only the workspace’s active email agent.
POST
/
conversations
Create conversation
curl --request POST \
--url https://api.weav.com/v1/conversations \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"customer_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"subject": "<string>",
"assignee_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}
'import requests
url = "https://api.weav.com/v1/conversations"
payload = {
"customer_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"subject": "<string>",
"assignee_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
customer_id: '3c90c3cc-0d44-4b50-8888-8dd25736052a',
subject: '<string>',
assignee_id: '3c90c3cc-0d44-4b50-8888-8dd25736052a'
})
};
fetch('https://api.weav.com/v1/conversations', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.weav.com/v1/conversations",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'customer_id' => '3c90c3cc-0d44-4b50-8888-8dd25736052a',
'subject' => '<string>',
'assignee_id' => '3c90c3cc-0d44-4b50-8888-8dd25736052a'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.weav.com/v1/conversations"
payload := strings.NewReader("{\n \"customer_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"subject\": \"<string>\",\n \"assignee_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.weav.com/v1/conversations")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"customer_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"subject\": \"<string>\",\n \"assignee_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.weav.com/v1/conversations")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"customer_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"subject\": \"<string>\",\n \"assignee_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n}"
response = http.request(request)
puts response.read_body{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"channel": "email",
"customer_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"subject": "<string>",
"status": "open",
"priority": "low",
"assignee_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"assignee_type": "user",
"closed_at": "2023-11-07T05:31:56Z",
"first_response_at": "2023-11-07T05:31:56Z",
"last_message_at": "2023-11-07T05:31:56Z",
"is_spam": true,
"spam_score": 123,
"created_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z"
}{
"error": "Error message",
"code": "UNAUTHENTICATED",
"errors": {}
}{
"error": "Error message",
"code": "UNAUTHENTICATED",
"errors": {}
}{
"message": "The given data was invalid.",
"errors": {}
}Authorizations
Workspace API token.
Include abilities external-api:read and/or external-api:write.
Body
application/json
Available options:
email, chat Maximum string length:
500Available options:
open, closed Available options:
low, normal, high, urgent User or agent UUID to assign. Set null to unassign. Must belong to the same workspace. For chat, agent assignment is limited to the conversation's original chat agent. For email, agent assignment is limited to the workspace active email agent.
Available options:
user, agent Response
Conversation created
Available options:
email, chat Available options:
open, closed Available options:
low, normal, high, urgent User or agent UUID to assign. Must belong to the same workspace. For chat, agent assignment is limited to the conversation's original chat agent. For email, agent assignment is limited to the workspace active email agent.
Available options:
user, agent 
