Adds the authenticated caller's reaction to a non-deleted message, or removes it when the same caller already reacted with the same emoji.
/api/conversations/{id}/messages/{messageId}/reactionsAdds the authenticated caller's reaction to a non-deleted message, or removes it when the same caller already reacted with the same emoji. Visitor callers can only react inside their own conversations. The legacy userId body field is still required, but the server stores the authenticated caller ID instead of trusting the body value. A message can store at most 200 unique reactions. The response includes a monotonically increasing revision that orders reaction snapshots delivered over HTTP and realtime.
Bearer API key or X-API-Key header.conversations:writeautomation_api)Resource identifier.
Resource identifier.
application/json
Message reaction request.
TypeScript Definitions
Use the request body type in TypeScript.
Message reaction request.
application/json
application/json
application/json
application/json
application/json
application/json
application/json
application/json
application/json
{
"messageId": "7f1f4d83-0a0e-4f34-9c4b-9a98d6e1c2ab",
"reactions": [
{
"emoji": "thumbs_up",
"userId": "550e8400-e29b-41d4-a716-446655440000"
}
],
"revision": 1
}{
"error": {
"code": "string",
"message": "string",
"fields": {
"property1": "string",
"property2": "string"
},
"details": {},
"correlationId": "string"
}
}{
"error": {
"code": "string",
"message": "string",
"fields": {
"property1": "string",
"property2": "string"
},
"details": {},
"correlationId": "string"
}
}{
"error": {
"code": "string",
"message": "string",
"fields": {
"property1": "string",
"property2": "string"
},
"details": {},
"correlationId": "string"
}
}{
"error": {
"code": "string",
"message": "string",
"fields": {
"property1": "string",
"property2": "string"
},
"details": {},
"correlationId": "string"
}
}{
"error": {
"code": "string",
"message": "string",
"fields": {
"property1": "string",
"property2": "string"
},
"details": {},
"correlationId": "string"
}
}{
"error": {
"code": "string",
"message": "string",
"fields": {
"property1": "string",
"property2": "string"
},
"details": {},
"correlationId": "string"
}
}{
"error": {
"code": "string",
"message": "string",
"fields": {
"property1": "string",
"property2": "string"
},
"details": {},
"correlationId": "string"
}
}{
"error": {
"code": "string",
"message": "string",
"fields": {
"property1": "string",
"property2": "string"
},
"details": {},
"correlationId": "string"
}
}curl --request POST \
'https://api.convor.io/api/conversations/11111111-1111-4111-8111-111111111111/messages/11111111-1111-4111-8111-111111111111/reactions' \
--header 'Accept: application/json' \
--header 'Authorization: Bearer convor_sk_...' \
--header 'Content-Type: application/json' \
--data '{
"emoji": "thumbs_up",
"userId": "550e8400-e29b-41d4-a716-446655440000"
}'const response = await fetch("https://api.convor.io/api/conversations/11111111-1111-4111-8111-111111111111/messages/11111111-1111-4111-8111-111111111111/reactions", {
method: "POST",
headers: {
"Accept": "application/json",
"Authorization": "Bearer convor_sk_...",
"Content-Type": "application/json"
},
body: JSON.stringify({
"emoji": "thumbs_up",
"userId": "550e8400-e29b-41d4-a716-446655440000"
}),
});
const contentType = response.headers.get("content-type") ?? "";
const data = response.status === 204
? null
: contentType.includes("json")
? await response.json()
: contentType.startsWith("text/")
? await response.text()
: await response.blob();
if (!response.ok) {
const message = typeof data === "object" && data !== null
&& "error" in data && typeof data.error === "object"
&& data.error !== null && "message" in data.error
? String(data.error.message)
: "Convor API request failed (" + response.status + ")";
throw new Error(message);
}
console.log(data);Was this page helpful?
Emoji reaction to toggle.
User attributed as the reaction author.