curl --request POST \
--url https://connie.ai/api/inbox/start-chat \
--header 'Content-Type: application/json' \
--header 'Cookie: <api-key>' \
--data '
{
"accountId": "<string>",
"recipientId": "<string>",
"message": "<string>",
"subject": "<string>",
"attachmentOnly": true,
"idempotencyKey": "<string>"
}
'import requests
url = "https://connie.ai/api/inbox/start-chat"
payload = {
"accountId": "<string>",
"recipientId": "<string>",
"message": "<string>",
"subject": "<string>",
"attachmentOnly": True,
"idempotencyKey": "<string>"
}
headers = {
"Cookie": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Cookie: '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
accountId: '<string>',
recipientId: '<string>',
message: '<string>',
subject: '<string>',
attachmentOnly: true,
idempotencyKey: '<string>'
})
};
fetch('https://connie.ai/api/inbox/start-chat', 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://connie.ai/api/inbox/start-chat",
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([
'accountId' => '<string>',
'recipientId' => '<string>',
'message' => '<string>',
'subject' => '<string>',
'attachmentOnly' => true,
'idempotencyKey' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"Cookie: <api-key>"
],
]);
$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://connie.ai/api/inbox/start-chat"
payload := strings.NewReader("{\n \"accountId\": \"<string>\",\n \"recipientId\": \"<string>\",\n \"message\": \"<string>\",\n \"subject\": \"<string>\",\n \"attachmentOnly\": true,\n \"idempotencyKey\": \"<string>\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Cookie", "<api-key>")
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://connie.ai/api/inbox/start-chat")
.header("Cookie", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"accountId\": \"<string>\",\n \"recipientId\": \"<string>\",\n \"message\": \"<string>\",\n \"subject\": \"<string>\",\n \"attachmentOnly\": true,\n \"idempotencyKey\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://connie.ai/api/inbox/start-chat")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Cookie"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"accountId\": \"<string>\",\n \"recipientId\": \"<string>\",\n \"message\": \"<string>\",\n \"subject\": \"<string>\",\n \"attachmentOnly\": true,\n \"idempotencyKey\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"success": true,
"chatId": "<string>",
"conversationId": "<string>",
"isExistingConversation": true,
"contactName": "<string>"
}{
"error": "<string>",
"code": "<string>"
}{
"error": "<string>",
"code": "<string>"
}{
"error": "<string>",
"code": "<string>"
}{
"error": "<string>",
"code": "<string>"
}{
"error": "<string>",
"code": "<string>"
}Start a chat
Sends a first message to a WhatsApp number or LinkedIn profile. If a conversation with that person already exists, the message goes there and isExistingConversation is true. WhatsApp accounts still on their first sync return 403 with a Retry-After header.
curl --request POST \
--url https://connie.ai/api/inbox/start-chat \
--header 'Content-Type: application/json' \
--header 'Cookie: <api-key>' \
--data '
{
"accountId": "<string>",
"recipientId": "<string>",
"message": "<string>",
"subject": "<string>",
"attachmentOnly": true,
"idempotencyKey": "<string>"
}
'import requests
url = "https://connie.ai/api/inbox/start-chat"
payload = {
"accountId": "<string>",
"recipientId": "<string>",
"message": "<string>",
"subject": "<string>",
"attachmentOnly": True,
"idempotencyKey": "<string>"
}
headers = {
"Cookie": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Cookie: '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
accountId: '<string>',
recipientId: '<string>',
message: '<string>',
subject: '<string>',
attachmentOnly: true,
idempotencyKey: '<string>'
})
};
fetch('https://connie.ai/api/inbox/start-chat', 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://connie.ai/api/inbox/start-chat",
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([
'accountId' => '<string>',
'recipientId' => '<string>',
'message' => '<string>',
'subject' => '<string>',
'attachmentOnly' => true,
'idempotencyKey' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"Cookie: <api-key>"
],
]);
$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://connie.ai/api/inbox/start-chat"
payload := strings.NewReader("{\n \"accountId\": \"<string>\",\n \"recipientId\": \"<string>\",\n \"message\": \"<string>\",\n \"subject\": \"<string>\",\n \"attachmentOnly\": true,\n \"idempotencyKey\": \"<string>\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Cookie", "<api-key>")
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://connie.ai/api/inbox/start-chat")
.header("Cookie", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"accountId\": \"<string>\",\n \"recipientId\": \"<string>\",\n \"message\": \"<string>\",\n \"subject\": \"<string>\",\n \"attachmentOnly\": true,\n \"idempotencyKey\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://connie.ai/api/inbox/start-chat")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Cookie"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"accountId\": \"<string>\",\n \"recipientId\": \"<string>\",\n \"message\": \"<string>\",\n \"subject\": \"<string>\",\n \"attachmentOnly\": true,\n \"idempotencyKey\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"success": true,
"chatId": "<string>",
"conversationId": "<string>",
"isExistingConversation": true,
"contactName": "<string>"
}{
"error": "<string>",
"code": "<string>"
}{
"error": "<string>",
"code": "<string>"
}{
"error": "<string>",
"code": "<string>"
}{
"error": "<string>",
"code": "<string>"
}{
"error": "<string>",
"code": "<string>"
}Authorizations
The full Cookie header copied from a signed-in connie.ai browser request. See the Authentication page.
Query Parameters
Your workspace ID. Also accepted as workspace_id, the x-workspace-id header, or workspaceId in a JSON body. If you leave it out, the request silently runs against the first workspace you joined.
Body
The WhatsApp or LinkedIn account to send from.
whatsapp, linkedin Phone number for WhatsApp, profile identifier or URL for LinkedIn.
Required unless attachmentOnly is true.
LinkedIn InMail subject.
classic, sales_navigator, recruiter You will send attachments next and have no text.