Conversations API
Create a conversation
Create a conversation
POST
/
public
/
api
/
v1
/
inboxes
/
{inbox_identifier}
/
contacts
/
{contact_identifier}
/
conversations
Create a conversation
curl --request POST \
--url https://airys.chat/public/api/v1/inboxes/{inbox_identifier}/contacts/{contact_identifier}/conversations \
--header 'Content-Type: application/json' \
--data '
{
"custom_attributes": {}
}
'import requests
url = "https://airys.chat/public/api/v1/inboxes/{inbox_identifier}/contacts/{contact_identifier}/conversations"
payload = { "custom_attributes": {} }
headers = {"Content-Type": "application/json"}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({custom_attributes: {}})
};
fetch('https://airys.chat/public/api/v1/inboxes/{inbox_identifier}/contacts/{contact_identifier}/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://airys.chat/public/api/v1/inboxes/{inbox_identifier}/contacts/{contact_identifier}/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([
'custom_attributes' => [
]
]),
CURLOPT_HTTPHEADER => [
"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://airys.chat/public/api/v1/inboxes/{inbox_identifier}/contacts/{contact_identifier}/conversations"
payload := strings.NewReader("{\n \"custom_attributes\": {}\n}")
req, _ := http.NewRequest("POST", url, payload)
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://airys.chat/public/api/v1/inboxes/{inbox_identifier}/contacts/{contact_identifier}/conversations")
.header("Content-Type", "application/json")
.body("{\n \"custom_attributes\": {}\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://airys.chat/public/api/v1/inboxes/{inbox_identifier}/contacts/{contact_identifier}/conversations")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Content-Type"] = 'application/json'
request.body = "{\n \"custom_attributes\": {}\n}"
response = http.request(request)
puts response.read_body{
"id": 123,
"uuid": "<string>",
"inbox_id": 123,
"contact_last_seen_at": 123,
"agent_last_seen_at": 123,
"messages": [
{
"id": 123,
"content": "<string>",
"message_type": 123,
"content_type": "<string>",
"content_attributes": {},
"created_at": 123,
"conversation_id": 123,
"attachments": [
{
"id": 123,
"message_id": 123,
"account_id": 123,
"extension": "<string>",
"data_url": "<string>",
"thumb_url": "<string>",
"file_size": 123,
"width": 123,
"height": 123,
"coordinates_lat": 123,
"coordinates_long": 123,
"fallback_title": "<string>",
"meta": {},
"transcribed_text": "<string>"
}
],
"sender": {
"id": 123,
"name": "<string>",
"avatar_url": "<string>",
"thumbnail": "<string>",
"available_name": "<string>",
"availability_status": "<string>",
"email": "<string>",
"phone_number": "<string>",
"identifier": "<string>",
"blocked": true,
"additional_attributes": {},
"custom_attributes": {},
"description": "<string>",
"created_at": "<string>"
}
}
],
"contact": {
"id": 123,
"name": "<string>",
"email": "<string>",
"phone_number": "<string>",
"identifier": "<string>",
"blocked": true,
"additional_attributes": {},
"custom_attributes": {},
"contact_type": "<string>",
"country_code": "<string>",
"last_activity_at": "<string>",
"created_at": "<string>",
"updated_at": "<string>",
"last_name": "<string>",
"middle_name": "<string>",
"location": "<string>",
"account_id": 123,
"company_id": 123,
"label_list": [
"<string>"
]
}
}{
"description": "<string>",
"errors": [
{
"field": "<string>",
"message": "<string>",
"code": "<string>"
}
]
}Path Parameters
The identifier obtained from API inbox channel
The source id of contact obtained on contact create
Body
application/json
Custom attributes of the conversation
Example:
{}Response
Success
Id of the conversation
UUID of the conversation
The inbox id of the conversation
Timestamp of when the contact last seen the conversation (Unix timestamp)
The status of the conversation
Available options:
open, resolved, pending, snoozed Timestamp of when the agent last seen the conversation (Unix timestamp)
Messages in the conversation
Show child attributes
Show child attributes
Full serialized contact record returned when the public API renders a Contact model directly.
Show child attributes
Show child attributes
⌘I
Create a conversation
curl --request POST \
--url https://airys.chat/public/api/v1/inboxes/{inbox_identifier}/contacts/{contact_identifier}/conversations \
--header 'Content-Type: application/json' \
--data '
{
"custom_attributes": {}
}
'import requests
url = "https://airys.chat/public/api/v1/inboxes/{inbox_identifier}/contacts/{contact_identifier}/conversations"
payload = { "custom_attributes": {} }
headers = {"Content-Type": "application/json"}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({custom_attributes: {}})
};
fetch('https://airys.chat/public/api/v1/inboxes/{inbox_identifier}/contacts/{contact_identifier}/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://airys.chat/public/api/v1/inboxes/{inbox_identifier}/contacts/{contact_identifier}/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([
'custom_attributes' => [
]
]),
CURLOPT_HTTPHEADER => [
"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://airys.chat/public/api/v1/inboxes/{inbox_identifier}/contacts/{contact_identifier}/conversations"
payload := strings.NewReader("{\n \"custom_attributes\": {}\n}")
req, _ := http.NewRequest("POST", url, payload)
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://airys.chat/public/api/v1/inboxes/{inbox_identifier}/contacts/{contact_identifier}/conversations")
.header("Content-Type", "application/json")
.body("{\n \"custom_attributes\": {}\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://airys.chat/public/api/v1/inboxes/{inbox_identifier}/contacts/{contact_identifier}/conversations")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Content-Type"] = 'application/json'
request.body = "{\n \"custom_attributes\": {}\n}"
response = http.request(request)
puts response.read_body{
"id": 123,
"uuid": "<string>",
"inbox_id": 123,
"contact_last_seen_at": 123,
"agent_last_seen_at": 123,
"messages": [
{
"id": 123,
"content": "<string>",
"message_type": 123,
"content_type": "<string>",
"content_attributes": {},
"created_at": 123,
"conversation_id": 123,
"attachments": [
{
"id": 123,
"message_id": 123,
"account_id": 123,
"extension": "<string>",
"data_url": "<string>",
"thumb_url": "<string>",
"file_size": 123,
"width": 123,
"height": 123,
"coordinates_lat": 123,
"coordinates_long": 123,
"fallback_title": "<string>",
"meta": {},
"transcribed_text": "<string>"
}
],
"sender": {
"id": 123,
"name": "<string>",
"avatar_url": "<string>",
"thumbnail": "<string>",
"available_name": "<string>",
"availability_status": "<string>",
"email": "<string>",
"phone_number": "<string>",
"identifier": "<string>",
"blocked": true,
"additional_attributes": {},
"custom_attributes": {},
"description": "<string>",
"created_at": "<string>"
}
}
],
"contact": {
"id": 123,
"name": "<string>",
"email": "<string>",
"phone_number": "<string>",
"identifier": "<string>",
"blocked": true,
"additional_attributes": {},
"custom_attributes": {},
"contact_type": "<string>",
"country_code": "<string>",
"last_activity_at": "<string>",
"created_at": "<string>",
"updated_at": "<string>",
"last_name": "<string>",
"middle_name": "<string>",
"location": "<string>",
"account_id": 123,
"company_id": 123,
"label_list": [
"<string>"
]
}
}{
"description": "<string>",
"errors": [
{
"field": "<string>",
"message": "<string>",
"code": "<string>"
}
]
}