Messaging
Remove people from a group
Removes members of the company from a group conversation; naming the member’s own id leaves it. Members not in it are left as they are, so repeating the request changes nothing. After leaving, the conversation is no longer visible and the response is 204. Other conversation kinds return 403.
DELETE
/
api
/
member
/
v2026-10
/
messaging
/
conversations
/
{id}
/
recipients
Remove people from a group
curl --request DELETE \
--url https://api.fluid.app/api/member/v2026-10/messaging/conversations/{id}/recipients \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.fluid.app/api/member/v2026-10/messaging/conversations/{id}/recipients"
headers = {"Authorization": "Bearer <token>"}
response = requests.delete(url, headers=headers)
print(response.text)const options = {method: 'DELETE', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.fluid.app/api/member/v2026-10/messaging/conversations/{id}/recipients', 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.fluid.app/api/member/v2026-10/messaging/conversations/{id}/recipients",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "DELETE",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.fluid.app/api/member/v2026-10/messaging/conversations/{id}/recipients"
req, _ := http.NewRequest("DELETE", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.delete("https://api.fluid.app/api/member/v2026-10/messaging/conversations/{id}/recipients")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.fluid.app/api/member/v2026-10/messaging/conversations/{id}/recipients")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Delete.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"status": 200,
"data": {
"id": "0199a1b2-c3d4-7e5f-8a9b-0c1d2e3f4a5b",
"kind": "group",
"title": "Launch team",
"avatar_url": null,
"recipients": [
{
"id": "01a08944-eff4-7a2a-be01-d699fa649966",
"kind": "member",
"name": "Nathan Rivera",
"avatar_url": null
}
],
"recipients_truncated": false,
"last_message": {
"id": "0199a1b2-c3d4-7e5f-8a9b-0c1d2e3f4a60",
"preview": "See you at the kickoff.",
"sent_at": "2026-10-01T15:02:00Z",
"sender_id": "01a08944-eff4-7a2a-be01-d699fa649966"
},
"unread": true,
"archived": false,
"pinned_count": 0,
"last_activity_at": "2026-10-01T15:02:00Z",
"created_at": "2026-09-28T12:00:00Z"
},
"meta": {
"request_uuid": "01a0f4fe-de00-75b3-8d8a-b74b0cde8b07",
"timestamp": "2026-10-01T15:04:05Z"
}
}{
"status": 123,
"error": {
"message": "<string>",
"details": {}
},
"meta": {
"request_uuid": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"timestamp": "2023-11-07T05:31:56Z"
}
}{
"status": 123,
"error": {
"message": "<string>",
"details": {}
},
"meta": {
"request_uuid": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"timestamp": "2023-11-07T05:31:56Z"
}
}{
"status": 123,
"error": {
"message": "<string>",
"details": {}
},
"meta": {
"request_uuid": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"timestamp": "2023-11-07T05:31:56Z"
}
}{
"status": 123,
"error": {
"message": "<string>",
"details": {}
},
"meta": {
"request_uuid": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"timestamp": "2023-11-07T05:31:56Z"
}
}Authorizations
A member credential in the Authorization: Bearer header: a member
session JWT, a portal JWT whose login is linked to a membership in
that company, or a member token. The credential alone
identifies the member and company.
Path Parameters
Public id of a group conversation the member can see.
Query Parameters
Members to remove, at most 50.
Required array length:
1 - 50 elements⌘I
Remove people from a group
curl --request DELETE \
--url https://api.fluid.app/api/member/v2026-10/messaging/conversations/{id}/recipients \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.fluid.app/api/member/v2026-10/messaging/conversations/{id}/recipients"
headers = {"Authorization": "Bearer <token>"}
response = requests.delete(url, headers=headers)
print(response.text)const options = {method: 'DELETE', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.fluid.app/api/member/v2026-10/messaging/conversations/{id}/recipients', 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.fluid.app/api/member/v2026-10/messaging/conversations/{id}/recipients",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "DELETE",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.fluid.app/api/member/v2026-10/messaging/conversations/{id}/recipients"
req, _ := http.NewRequest("DELETE", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.delete("https://api.fluid.app/api/member/v2026-10/messaging/conversations/{id}/recipients")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.fluid.app/api/member/v2026-10/messaging/conversations/{id}/recipients")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Delete.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"status": 200,
"data": {
"id": "0199a1b2-c3d4-7e5f-8a9b-0c1d2e3f4a5b",
"kind": "group",
"title": "Launch team",
"avatar_url": null,
"recipients": [
{
"id": "01a08944-eff4-7a2a-be01-d699fa649966",
"kind": "member",
"name": "Nathan Rivera",
"avatar_url": null
}
],
"recipients_truncated": false,
"last_message": {
"id": "0199a1b2-c3d4-7e5f-8a9b-0c1d2e3f4a60",
"preview": "See you at the kickoff.",
"sent_at": "2026-10-01T15:02:00Z",
"sender_id": "01a08944-eff4-7a2a-be01-d699fa649966"
},
"unread": true,
"archived": false,
"pinned_count": 0,
"last_activity_at": "2026-10-01T15:02:00Z",
"created_at": "2026-09-28T12:00:00Z"
},
"meta": {
"request_uuid": "01a0f4fe-de00-75b3-8d8a-b74b0cde8b07",
"timestamp": "2026-10-01T15:04:05Z"
}
}{
"status": 123,
"error": {
"message": "<string>",
"details": {}
},
"meta": {
"request_uuid": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"timestamp": "2023-11-07T05:31:56Z"
}
}{
"status": 123,
"error": {
"message": "<string>",
"details": {}
},
"meta": {
"request_uuid": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"timestamp": "2023-11-07T05:31:56Z"
}
}{
"status": 123,
"error": {
"message": "<string>",
"details": {}
},
"meta": {
"request_uuid": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"timestamp": "2023-11-07T05:31:56Z"
}
}{
"status": 123,
"error": {
"message": "<string>",
"details": {}
},
"meta": {
"request_uuid": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"timestamp": "2023-11-07T05:31:56Z"
}
}