Skip to content

List group messages

GET
/groups/{id}/messages
curl --request GET \
--url 'https://app.whatsetter.com/api/v1/groups/example/messages?limit=25' \
--header 'Authorization: Bearer <token>'

The group’s transcript, newest first. sender keeps one member’s messages (international phone digits), from_agent=true keeps only what WhatSetter sent through the connected number (AI or manual replies), since / until bound the window. Media is flagged (has_media, media_type) but never linked. Requires scope groups:read.

id
required
string
since
string format: date-time

ISO-8601 — only messages sent at or after this instant.

until
string format: date-time

ISO-8601 — only messages sent at or before this instant.

sender
string

One member’s phone, international digits (e.g. 33612345678).

from_agent
boolean

true = only messages WhatSetter sent (AI or manual); false = only members’ messages.

limit
integer
default: 25 >= 1 <= 100
cursor
string

Opaque cursor from the previous page’s pagination.next_cursor.

Page of messages

Media typeapplication/json
object
data
Array<object>
object
id
string
whatsapp_message_id
string | null
sender
object
phone

International digits; null when WhatsApp only exposed an anonymous id.

string | null
name
string | null
from_agent

Sent by WhatSetter through the connected number (AI reply or manual reply from the dashboard).

boolean
ai_generated

Written by the AI (subset of from_agent).

boolean
text
string | null
type

Internal interaction type (e.g. text, image, USER_MESSAGE, ai_group_reply).

string | null
is_mention

The connected number was @mentioned.

boolean
has_media
boolean
media_type

Image, video, audio, document… when has_media is true.

string | null
sent_at
string | null format: date-time
pagination
object
has_more
boolean
next_cursor
string | null
Examplegenerated
{
"data": [
{
"id": "example",
"whatsapp_message_id": "example",
"sender": {
"phone": "example",
"name": "example"
},
"from_agent": true,
"ai_generated": true,
"text": "example",
"type": "example",
"is_mention": true,
"has_media": true,
"media_type": "example",
"sent_at": "2026-04-15T12:00:00Z"
}
],
"pagination": {
"has_more": true,
"next_cursor": "example"
}
}

Missing, unknown or revoked API key

Media typeapplication/json
object
error
object
code
string
message
string
Examplegenerated
{
"error": {
"code": "example",
"message": "example"
}
}

Resource not found in this workspace

Media typeapplication/json
object
error
object
code
string
message
string
Examplegenerated
{
"error": {
"code": "example",
"message": "example"
}
}

Invalid parameter or body (also an invalid or expired cursor)

Media typeapplication/json
object
error
object
code
string
message
string
Examplegenerated
{
"error": {
"code": "example",
"message": "example"
}
}