List recipients in a conversation
List recipients in a conversation you belong to. Returns active recipients by default; when recipient_ids is provided, includes discarded recipients so clients can resolve message authors. Supports optional search filtering by name. Callable by a company admin or rep whose role includes the messaging view permission; a conversation you are not in returns 404.
Results are paginated by page number with page and per_page (default 20). The response is a two-element array: the pagination details, then the recipients in items.
curl --request GET \
--url https://api.fluid.app/api/v1/messaging/conversations/{conversation_id}/recipients \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.fluid.app/api/v1/messaging/conversations/{conversation_id}/recipients"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.fluid.app/api/v1/messaging/conversations/{conversation_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/v1/messaging/conversations/{conversation_id}/recipients",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
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/v1/messaging/conversations/{conversation_id}/recipients"
req, _ := http.NewRequest("GET", 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.get("https://api.fluid.app/api/v1/messaging/conversations/{conversation_id}/recipients")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.fluid.app/api/v1/messaging/conversations/{conversation_id}/recipients")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body[
{
"pagination": {
"current": 1,
"previous": null,
"next": null,
"per_page": 20,
"pages": 1,
"count": 3
}
},
{
"items": [
{
"id": 48117,
"receivable_id": 7734,
"receivable_type": "UserCompany",
"discarded_at": null,
"avatar_background": "F4B400",
"first_name": "Dwight",
"last_name": "Schrute",
"avatar_url": "https://cdn.fluid.app/tr:h-64,w-64/users/7734/dwight-schrute.jpg",
"image_url": "https://cdn.fluid.app/users/7734/dwight-schrute.jpg",
"status": "online",
"last_online": "2026-09-29T21:14:03Z",
"country_name": "United States",
"pro_user": true,
"left_conversation_at": null,
"blocked": false,
"conversation_messaging_enabled?": true
},
{
"id": 48121,
"receivable_id": 7741,
"receivable_type": "UserCompany",
"discarded_at": null,
"avatar_background": "4A90D9",
"first_name": "Jim",
"last_name": "Halpert",
"avatar_url": "https://cdn.fluid.app/tr:h-64,w-64/users/7741/jim-halpert.jpg",
"image_url": "https://cdn.fluid.app/users/7741/jim-halpert.jpg",
"status": "away",
"last_online": "2026-09-30T13:02:47Z",
"country_name": "United States",
"pro_user": false,
"left_conversation_at": null,
"blocked": false,
"conversation_messaging_enabled?": true
},
{
"id": 48254,
"receivable_id": 19302,
"receivable_type": "Contact",
"discarded_at": null,
"avatar_background": "7CB342",
"first_name": "Holly",
"last_name": "Flax",
"avatar_url": null,
"image_url": null,
"email": "holly.flax@gmail.com",
"phone": "+15705550148",
"country_name": "United States",
"pro_user": false,
"left_conversation_at": null,
"blocked": false,
"conversation_messaging_enabled?": true
}
]
}
]{
"message": "<string>"
}Authorizations
Bearer token authentication
Path Parameters
Query Parameters
Recipient IDs to filter by (array query param)
Search query to filter recipients by name
The page number to return, starting at 1.
The number of recipients per page. Defaults to 20.
Response
A page of recipients.
- Option 1
- Option 2
Page-number pagination details for a page of results.
Show child attributes
Show child attributes
curl --request GET \
--url https://api.fluid.app/api/v1/messaging/conversations/{conversation_id}/recipients \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.fluid.app/api/v1/messaging/conversations/{conversation_id}/recipients"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.fluid.app/api/v1/messaging/conversations/{conversation_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/v1/messaging/conversations/{conversation_id}/recipients",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
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/v1/messaging/conversations/{conversation_id}/recipients"
req, _ := http.NewRequest("GET", 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.get("https://api.fluid.app/api/v1/messaging/conversations/{conversation_id}/recipients")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.fluid.app/api/v1/messaging/conversations/{conversation_id}/recipients")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body[
{
"pagination": {
"current": 1,
"previous": null,
"next": null,
"per_page": 20,
"pages": 1,
"count": 3
}
},
{
"items": [
{
"id": 48117,
"receivable_id": 7734,
"receivable_type": "UserCompany",
"discarded_at": null,
"avatar_background": "F4B400",
"first_name": "Dwight",
"last_name": "Schrute",
"avatar_url": "https://cdn.fluid.app/tr:h-64,w-64/users/7734/dwight-schrute.jpg",
"image_url": "https://cdn.fluid.app/users/7734/dwight-schrute.jpg",
"status": "online",
"last_online": "2026-09-29T21:14:03Z",
"country_name": "United States",
"pro_user": true,
"left_conversation_at": null,
"blocked": false,
"conversation_messaging_enabled?": true
},
{
"id": 48121,
"receivable_id": 7741,
"receivable_type": "UserCompany",
"discarded_at": null,
"avatar_background": "4A90D9",
"first_name": "Jim",
"last_name": "Halpert",
"avatar_url": "https://cdn.fluid.app/tr:h-64,w-64/users/7741/jim-halpert.jpg",
"image_url": "https://cdn.fluid.app/users/7741/jim-halpert.jpg",
"status": "away",
"last_online": "2026-09-30T13:02:47Z",
"country_name": "United States",
"pro_user": false,
"left_conversation_at": null,
"blocked": false,
"conversation_messaging_enabled?": true
},
{
"id": 48254,
"receivable_id": 19302,
"receivable_type": "Contact",
"discarded_at": null,
"avatar_background": "7CB342",
"first_name": "Holly",
"last_name": "Flax",
"avatar_url": null,
"image_url": null,
"email": "holly.flax@gmail.com",
"phone": "+15705550148",
"country_name": "United States",
"pro_user": false,
"left_conversation_at": null,
"blocked": false,
"conversation_messaging_enabled?": true
}
]
}
]{
"message": "<string>"
}