Skip to main content
GET
List conversation messages

Authorizations

x-api-key
string
header
required

Project-bound API key. Do not send an Authorization header.

Path Parameters

projectId
string
required
Minimum string length: 1

Query Parameters

fromDate
string<date-time>

Inclusive ISO 8601 timestamp. Required with toDate unless sessionIds is supplied.

toDate
string<date-time>

Exclusive ISO 8601 timestamp. Required with fromDate unless sessionIds is supplied.

sessionIds
string[]

Filter to specific sessions. Pass up to 10,000 session IDs, comma-separated or by repeating the parameter. Can be used instead of a date range.

Maximum array length: 10000
Minimum string length: 1
channelUIds
string[]

Filter to messages from specific end users, using the identity recorded for them on the channel. Pass up to 100 values, comma-separated or by repeating the parameter.

Maximum array length: 100
Minimum string length: 1
channel
enum<string>[]

Filter by the channel the conversation took place on. Pass up to 100 values, comma-separated or by repeating the parameter.

Matched exactly as stored, with no alias handling. Unlike the sessions endpoint, web and web_chat are different values here, and shorthand such as sms or sdk_http matches nothing — use the exact channel name.

Not restricted to a fixed list, so an unrecognised value returns no results rather than an error.

Maximum array length: 100
Available options:
http_async,
slack,
line,
msteams,
whatsapp,
messenger,
instagram,
twilio_sms,
zendesk,
telegram,
genesys,
genesys_open_messaging,
ai4w,
kore_agent_assist,
email,
voice_vxml,
korevg,
audiocodes,
genesys_audio_connector,
voice_pipeline,
voice_realtime,
voice,
voice_twilio,
voice_livekit,
ag_ui,
a2a,
sdk_websocket,
web_debug,
web_chat,
api,
http
environment
enum<string>[]

Filter by environment. Pass up to 100 values, comma-separated or by repeating the parameter. Matched exactly as stored.

Not restricted to a fixed list, so an unrecognised value returns no results rather than an error, though in practice only the four values below are stored.

Maximum array length: 100
Available options:
dev,
staging,
production,
working-copy
traceDimensions[key]
string

Filter by a custom dimension recorded against the session. Replace key with the dimension name — for example traceDimensions[tier]=gold. Repeat with different keys to require all of them. Values match exactly.

cursor
string

Pass the nextCursor value from the previous response to get the next page. Do not use together with offset or skip.

Minimum string length: 1
offset
integer
default:0

Number of messages to skip before the first one returned. Do not use together with cursor or skip.

Required range: x >= 0
skip
integer

An older name for offset, kept for compatibility. Prefer offset. Do not use together with cursor or offset.

Required range: x >= 0
limit
integer
default:100

How many messages to return. A page may come back with fewer than requested so the response stays within the 1 MiB size limit — check hasMore rather than assuming a short page is the last one.

Required range: 1 <= x <= 10000
direction
enum<string>
default:asc

Sort order by time: asc for oldest first, desc for newest first.

Available options:
asc,
desc

Response

Message page returned successfully.

success
boolean
required

Always true on a successful response.

totalRecords
integer
required

Total number of messages matching your filters, across all pages.

Required range: x >= 0
hasMore
boolean
required

Whether more pages are available after this one.

offset
integer
required

The offset applied to this response.

Required range: x >= 0
limit
integer
required

The page size applied to this response.

Required range: 1 <= x <= 10000
messages
object[]
required

The messages on this page.

nextCursor
string | null
required

Opaque cursor for the next page.