Fetch Reaction Users
curl --request GET \
--url https://api.sublay.io/api/v6/:projectId/api/v7/conversations/:conversationId/messages/:messageId/reactionsimport requests
url = "https://api.sublay.io/api/v6/:projectId/api/v7/conversations/:conversationId/messages/:messageId/reactions"
response = requests.get(url)
print(response.text)const options = {method: 'GET'};
fetch('https://api.sublay.io/api/v6/:projectId/api/v7/conversations/:conversationId/messages/:messageId/reactions', 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.sublay.io/api/v6/:projectId/api/v7/conversations/:conversationId/messages/:messageId/reactions",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
]);
$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.sublay.io/api/v6/:projectId/api/v7/conversations/:conversationId/messages/:messageId/reactions"
req, _ := http.NewRequest("GET", url, nil)
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.sublay.io/api/v6/:projectId/api/v7/conversations/:conversationId/messages/:messageId/reactions")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.sublay.io/api/v6/:projectId/api/v7/conversations/:conversationId/messages/:messageId/reactions")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
response = http.request(request)
puts response.read_body{
"data": [
{
"user": {},
"emoji": "<string>",
"createdAt": "<string>"
}
],
"pagination": {
"page": 123,
"limit": 123,
"total": 123,
"hasMore": true
}
}Chat — Messages
Fetch Reaction Users
List users who reacted to a message with a specific emoji
GET
/
:projectId
/
api
/
v7
/
conversations
/
:conversationId
/
messages
/
:messageId
/
reactions
Fetch Reaction Users
curl --request GET \
--url https://api.sublay.io/api/v6/:projectId/api/v7/conversations/:conversationId/messages/:messageId/reactionsimport requests
url = "https://api.sublay.io/api/v6/:projectId/api/v7/conversations/:conversationId/messages/:messageId/reactions"
response = requests.get(url)
print(response.text)const options = {method: 'GET'};
fetch('https://api.sublay.io/api/v6/:projectId/api/v7/conversations/:conversationId/messages/:messageId/reactions', 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.sublay.io/api/v6/:projectId/api/v7/conversations/:conversationId/messages/:messageId/reactions",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
]);
$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.sublay.io/api/v6/:projectId/api/v7/conversations/:conversationId/messages/:messageId/reactions"
req, _ := http.NewRequest("GET", url, nil)
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.sublay.io/api/v6/:projectId/api/v7/conversations/:conversationId/messages/:messageId/reactions")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.sublay.io/api/v6/:projectId/api/v7/conversations/:conversationId/messages/:messageId/reactions")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
response = http.request(request)
puts response.read_body{
"data": [
{
"user": {},
"emoji": "<string>",
"createdAt": "<string>"
}
],
"pagination": {
"page": 123,
"limit": 123,
"total": 123,
"hasMore": true
}
}Returns a paginated list of users who reacted with a given emoji on a message. Useful for rendering a “who reacted” popover. The caller must be a member of the conversation.
Path Parameters
string
required
The ID of the conversation.
string
required
The ID of the message.
Query Parameters
string
required
The emoji to filter by.
number
Page number (1-based). Defaults to 1.
number
Number of reactions per page. Defaults to 50. Max 100.
Space-scoped reputation
This endpoint has a space in context, so it accepts the opt-in reputation params. They add aspaceReputation field to each reactor’s user, alongside the always-present reputation total. Requires the reputation bundle. See the Reputation data model for the full contract.
string
Adds
spaceReputation to each returned user. One of: a space <uuid> (that space’s bucket), none (the project-general bucket), or context (the space derived from this request’s context — per-row on lists). The empty string and the legacy general / null aliases are rejected (400). Missing buckets read as 0.boolean
Only honored with an explicit space
<uuid>. When true, spaceReputation is the subtree sum — the space plus all of its descendants (the root space’s own bucket included). Ignored for none; not allowed with context.Response
array
object
Error Responses
Forbidden — 403
Forbidden — 403
{ "error": "You are not a member of this conversation.", "code": "chat/not-a-member" }
Not Found — 404
Not Found — 404
{ "error": "Message not found.", "code": "chat/message-not-found" }

