Replace global pinned conversations
curl --request PUT \
--url https://{appId}.api-{region}.cometchat.io/v3/conversations/pinned \
--header 'Content-Type: application/json' \
--header 'apikey: <api-key>' \
--data '
{
"pinnedConversations": [
{
"guid": "supergroup"
},
{
"uid": "superhero2"
}
]
}
'import requests
url = "https://{appId}.api-{region}.cometchat.io/v3/conversations/pinned"
payload = { "pinnedConversations": [{ "guid": "supergroup" }, { "uid": "superhero2" }] }
headers = {
"apikey": "<api-key>",
"Content-Type": "application/json"
}
response = requests.put(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PUT',
headers: {apikey: '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({pinnedConversations: [{guid: 'supergroup'}, {uid: 'superhero2'}]})
};
fetch('https://{appId}.api-{region}.cometchat.io/v3/conversations/pinned', 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://{appId}.api-{region}.cometchat.io/v3/conversations/pinned",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PUT",
CURLOPT_POSTFIELDS => json_encode([
'pinnedConversations' => [
[
'guid' => 'supergroup'
],
[
'uid' => 'superhero2'
]
]
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"apikey: <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://{appId}.api-{region}.cometchat.io/v3/conversations/pinned"
payload := strings.NewReader("{\n \"pinnedConversations\": [\n {\n \"guid\": \"supergroup\"\n },\n {\n \"uid\": \"superhero2\"\n }\n ]\n}")
req, _ := http.NewRequest("PUT", url, payload)
req.Header.Add("apikey", "<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.put("https://{appId}.api-{region}.cometchat.io/v3/conversations/pinned")
.header("apikey", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"pinnedConversations\": [\n {\n \"guid\": \"supergroup\"\n },\n {\n \"uid\": \"superhero2\"\n }\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://{appId}.api-{region}.cometchat.io/v3/conversations/pinned")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Put.new(url)
request["apikey"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"pinnedConversations\": [\n {\n \"guid\": \"supergroup\"\n },\n {\n \"uid\": \"superhero2\"\n }\n ]\n}"
response = http.request(request)
puts response.read_body{
"data": [
{
"conversationId": "supergroup",
"conversationType": "group",
"pinnedBy": "app_system",
"pinnedAt": 1700210300
},
{
"conversationId": "superhero1_user_superhero2",
"conversationType": "user",
"pinnedBy": "app_system",
"pinnedAt": 1700210299
}
]
}{
"error": {
"code": "ERR_SYSTEM_PINNED_CONVERSATIONS_LIMIT_EXCEEDED",
"message": "The number of pinned conversations exceeds the allowed limit of 5."
}
}Conversations
Replace global pinned conversations
Replace the full CometChat global pinned conversation list with REST API - the conversations pinned at the top for every end user.
PUT
/
conversations
/
pinned
Replace global pinned conversations
curl --request PUT \
--url https://{appId}.api-{region}.cometchat.io/v3/conversations/pinned \
--header 'Content-Type: application/json' \
--header 'apikey: <api-key>' \
--data '
{
"pinnedConversations": [
{
"guid": "supergroup"
},
{
"uid": "superhero2"
}
]
}
'import requests
url = "https://{appId}.api-{region}.cometchat.io/v3/conversations/pinned"
payload = { "pinnedConversations": [{ "guid": "supergroup" }, { "uid": "superhero2" }] }
headers = {
"apikey": "<api-key>",
"Content-Type": "application/json"
}
response = requests.put(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PUT',
headers: {apikey: '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({pinnedConversations: [{guid: 'supergroup'}, {uid: 'superhero2'}]})
};
fetch('https://{appId}.api-{region}.cometchat.io/v3/conversations/pinned', 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://{appId}.api-{region}.cometchat.io/v3/conversations/pinned",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PUT",
CURLOPT_POSTFIELDS => json_encode([
'pinnedConversations' => [
[
'guid' => 'supergroup'
],
[
'uid' => 'superhero2'
]
]
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"apikey: <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://{appId}.api-{region}.cometchat.io/v3/conversations/pinned"
payload := strings.NewReader("{\n \"pinnedConversations\": [\n {\n \"guid\": \"supergroup\"\n },\n {\n \"uid\": \"superhero2\"\n }\n ]\n}")
req, _ := http.NewRequest("PUT", url, payload)
req.Header.Add("apikey", "<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.put("https://{appId}.api-{region}.cometchat.io/v3/conversations/pinned")
.header("apikey", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"pinnedConversations\": [\n {\n \"guid\": \"supergroup\"\n },\n {\n \"uid\": \"superhero2\"\n }\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://{appId}.api-{region}.cometchat.io/v3/conversations/pinned")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Put.new(url)
request["apikey"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"pinnedConversations\": [\n {\n \"guid\": \"supergroup\"\n },\n {\n \"uid\": \"superhero2\"\n }\n ]\n}"
response = http.request(request)
puts response.read_body{
"data": [
{
"conversationId": "supergroup",
"conversationType": "group",
"pinnedBy": "app_system",
"pinnedAt": 1700210300
},
{
"conversationId": "superhero1_user_superhero2",
"conversationType": "user",
"pinnedBy": "app_system",
"pinnedAt": 1700210299
}
]
}{
"error": {
"code": "ERR_SYSTEM_PINNED_CONVERSATIONS_LIMIT_EXCEEDED",
"message": "The number of pinned conversations exceeds the allowed limit of 5."
}
}For the complete error reference, see Error Guide.
Authorizations
API Key with fullAccess scope(i.e. Rest API Key from the Dashboard).
Body
application/json
The conversations to pin at the top for every end user, in the order they should appear. Each entry names either a user (uid) or a group (guid). Entries left out of the array are unpinned. Send an empty array to clear the list. Repeated entries are kept once, at their first position.
Show child attributes
Show child attributes
Example:
[
{ "guid": "supergroup" },
{ "uid": "superhero2" }
]
Response
The new global pinned conversation list, in display order
Show child attributes
Show child attributes
Was this page helpful?