Retrieve all messages
List messages across conversations with optional filters for conversation, researcher, or date range. Supports pagination.
curl --request GET \
--url https://api-staging.respondent.io/v1/messaging/messages \
--header 'x-api-key: <x-api-key>' \
--header 'x-api-secret: <x-api-secret>'import requests
url = "https://api-staging.respondent.io/v1/messaging/messages"
headers = {
"x-api-key": "<x-api-key>",
"x-api-secret": "<x-api-secret>"
}
response = requests.get(url, headers=headers)
print(response.text)const options = {
method: 'GET',
headers: {'x-api-key': '<x-api-key>', 'x-api-secret': '<x-api-secret>'}
};
fetch('https://api-staging.respondent.io/v1/messaging/messages', 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-staging.respondent.io/v1/messaging/messages",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"x-api-key: <x-api-key>",
"x-api-secret: <x-api-secret>"
],
]);
$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-staging.respondent.io/v1/messaging/messages"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("x-api-key", "<x-api-key>")
req.Header.Add("x-api-secret", "<x-api-secret>")
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-staging.respondent.io/v1/messaging/messages")
.header("x-api-key", "<x-api-key>")
.header("x-api-secret", "<x-api-secret>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api-staging.respondent.io/v1/messaging/messages")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["x-api-key"] = '<x-api-key>'
request["x-api-secret"] = '<x-api-secret>'
response = http.request(request)
puts response.read_body{
"page": 1,
"pageSize": 50,
"results": [
{
"createdAt": "<string>",
"uid": "<string>",
"body": "<string>",
"conversation": {
"createdAt": "<string>",
"uid": "<string>",
"name": "<string>",
"deleted": true,
"locked": true,
"read": true,
"participants": [
{
"uid": "<string>",
"firstName": "<string>",
"lastName": "<string>",
"read": true,
"deleted": true,
"foreignId": "<string>"
}
],
"updatedAt": "<string>",
"metadata": {
"projectId": "<string>",
"surveyResponseId": "<string>",
"externalResearcherId": "<string>",
"externalTeamId": "<string>",
"externalCompanyId": "<string>"
}
},
"sender": {
"uid": "<string>",
"firstName": "<string>",
"lastName": "<string>",
"foreignId": "<string>"
},
"updatedAt": "<string>"
}
],
"totalResults": 123
}Query Parameters
Filter messages by conversationUid.
Filter messages by externalResearcherId.
Filter messages by projectId.
Get all messages since timestamp.
Get all messages until timestamp.
Response
Hide child attributes
Hide child attributes
Unique identifier of message.
Body of message.
Conversation message belongs to.
Hide child attributes
Hide child attributes
Unique identifier of conversation.
Name of conversation.
If conversation is marked as deleted.
If conversation is locked.
All participants of conversation including the researcher. The researcher will be the API owner/admin account for the api team.
Hide child attributes
Hide child attributes
Unique identifier for messaging user.
First name of user.
Last name initial of user.
Whether the participant has read the conversation.
Whether the participant has muted the conversation.
UserId of messaging user.
Metadata of conversation.
Hide child attributes
Hide child attributes
ProjectId of the project the coversation belongs to.
ScreenerResponseId for the project, if exists.
ExternalResearcherId for the project, if exists.
ExternalTeamId for the project, if exists.
ExternalCompanyId for the project, if exists.
Sender of message.
Either a participant or the api team owner/admin.
To find the external researcher, use conversation.metadata.externalResearcherId.
The total number of results possible, which is only provided in the response when includeCount is passed as true within a request.
Was this page helpful?
curl --request GET \
--url https://api-staging.respondent.io/v1/messaging/messages \
--header 'x-api-key: <x-api-key>' \
--header 'x-api-secret: <x-api-secret>'import requests
url = "https://api-staging.respondent.io/v1/messaging/messages"
headers = {
"x-api-key": "<x-api-key>",
"x-api-secret": "<x-api-secret>"
}
response = requests.get(url, headers=headers)
print(response.text)const options = {
method: 'GET',
headers: {'x-api-key': '<x-api-key>', 'x-api-secret': '<x-api-secret>'}
};
fetch('https://api-staging.respondent.io/v1/messaging/messages', 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-staging.respondent.io/v1/messaging/messages",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"x-api-key: <x-api-key>",
"x-api-secret: <x-api-secret>"
],
]);
$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-staging.respondent.io/v1/messaging/messages"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("x-api-key", "<x-api-key>")
req.Header.Add("x-api-secret", "<x-api-secret>")
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-staging.respondent.io/v1/messaging/messages")
.header("x-api-key", "<x-api-key>")
.header("x-api-secret", "<x-api-secret>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api-staging.respondent.io/v1/messaging/messages")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["x-api-key"] = '<x-api-key>'
request["x-api-secret"] = '<x-api-secret>'
response = http.request(request)
puts response.read_body{
"page": 1,
"pageSize": 50,
"results": [
{
"createdAt": "<string>",
"uid": "<string>",
"body": "<string>",
"conversation": {
"createdAt": "<string>",
"uid": "<string>",
"name": "<string>",
"deleted": true,
"locked": true,
"read": true,
"participants": [
{
"uid": "<string>",
"firstName": "<string>",
"lastName": "<string>",
"read": true,
"deleted": true,
"foreignId": "<string>"
}
],
"updatedAt": "<string>",
"metadata": {
"projectId": "<string>",
"surveyResponseId": "<string>",
"externalResearcherId": "<string>",
"externalTeamId": "<string>",
"externalCompanyId": "<string>"
}
},
"sender": {
"uid": "<string>",
"firstName": "<string>",
"lastName": "<string>",
"foreignId": "<string>"
},
"updatedAt": "<string>"
}
],
"totalResults": 123
}