Search Ticket Messages
Search messages across tickets with filters for team, ticket, author, author role, and creation time range. This is the single-request alternative to listing tickets and calling List Ticket Messages per ticket — e.g. all messages authored by given team members in a given week, regardless of when their tickets were opened. Searches messages on non-archived tickets the caller can view; results are ordered newest first.
Authentication and permissions
Token requirements: User-based token (OAuth) or Organization-scoped API key or Team-scoped API key. Send a bearer access token for one of these identities. The permissions and resource restrictions below also apply.
- Search specified teams: Supply team_ids. Every requested team must be allowed.
- Search the organization: Omitting team_ids searches the organization and requires an organization-scoped key.
Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Body
Optional. Filter to messages on tickets in these teams. If not provided, searches all teams the caller can view tickets in.
Optional. Only return messages on any of these tickets. This is the batch alternative to calling List Ticket Messages per ticket.
Optional. Only return messages authored by any of these users. Assistant and system messages have no author user and never match.
Optional. Filter by author roles. Returns messages matching ANY of the specified roles (e.g. USER_ROLE for human messages, INTERNAL_NOTE_ROLE for internal notes).
USER_ROLE, ASSISTANT_ROLE, SYSTEM_INFO_ROLE, INTERNAL_NOTE_ROLE A timestamp in RFC 3339 format (e.g., "2025-01-15T01:30:15Z").
"2025-01-15T01:30:15.000Z"
A timestamp in RFC 3339 format (e.g., "2025-01-15T01:30:15Z").
"2025-01-15T01:30:15.000Z"
Maximum number of results to return. Default is 100, maximum is 1000.
Token for pagination. Leave empty for the first request.

