List Conversations (Optimized)
Changed onOptimized alias for GET /conversations. Uses a batch query path that pre-fetches edges in a single pass, making it significantly faster for large result sets. Behavioural differences from /conversations: (1) extractedIntelligence and confirmedExtractedIntelligence are omitted by default — pass with_crm_records=true to include them; (2) empty conversations are not excluded; All filter parameters are identical to /conversations. Including private conversation metadata requires enablement by Attention for your organization; see filter[include_private].
Request
- Base URLhttps://api.attention.tech/v2
- AuthAPI key in header Authorization
- TypeScriptA function with typed inputs. Its response is checked against the schema.
Query parameters
Start date and time for filtering conversations (ISO 8601 format)
End date and time for filtering conversations (ISO 8601 format)
Filter by last-updated lower bound (RFC 3339, e.g. 2026-04-01T00:00:00Z; fractional seconds and numeric UTC offsets accepted). Matches conversations whose updatedAt (when the conversation was last updated) is greater than or equal to this value. Only conversations that have an updatedAt are matched; updatedAt reflects changes to the conversation itself, not to related records such as scorecard results or CRM data. When set, results are ordered by updatedAt ascending and paged with cursor, and meta.totalRecords is a lower bound. For incremental sync, start with a full unfiltered pull, then pass the time of the previous sync minus a few minutes and deduplicate by id.
Filter by last-updated upper bound (RFC 3339, e.g. 2026-04-10T23:59:59Z; fractional seconds and numeric UTC offsets accepted). Matches conversations whose updatedAt (when the conversation was last updated) is less than or equal to this value. Only conversations that have an updatedAt are matched. When set, results are ordered by updatedAt ascending and paged with cursor, and meta.totalRecords is a lower bound.
Opaque cursor returned as nextCursor by a previous call with the same filters. Omit on the first page. Requires fromUpdatedAtDateTime or toUpdatedAtDateTime; page is ignored when set.
Page number for pagination (starts from 1)
Number of items per page (max 50)
Filter conversations by owner IDs
Filter conversations by owner email addresses
Filter conversations by title using case-insensitive partial matching
Filter conversations by participant email addresses
Filter conversations by external opportunity IDs
CRM platform entity code to filter linked CRM records
CRM record field name (from org_crm_records.record_data) to match on linked CRM records
Exact values to match for the given CRM field. Values are OR-ed together. Maximum 10 entries.
Filter conversations by team IDs
Exclude internal conversations from results
Exclude conversations that have not been analyzed
Filter conversations by analysis status (deprecated, use filter[hide_non_analyzed] instead)
Exclude conversations that are pending processing
Omit the transcript field from each conversation in the response. Conversations are not filtered; totals and pagination are unchanged.
Requires organization enablement: Attention must enable this filter for your organization. Contact your Attention account manager before relying on it for synchronization. When not enabled, this parameter is ignored and private conversations remain excluded. When enabled, true also returns private conversations and requires an organization-level API key or an admin user. A private conversation carries only id, type, links and the attributes uuid, createdAt, finishedAt, updatedAt, userUUID, private and isInternal (isInternal is omitted when false). finishedAt, liveStreamStartedAt and liveStreamEndedAt read 0001-01-01T00:00:00.000Z when unset; every other attribute is empty, null or omitted. Public conversation rows retain their normal response shape. Combine with fromUpdatedAtDateTime to detect conversations that became private after a previous sync. When enabled and true, cannot be combined with filter[title], filter[label.name], filter[label.values], filter[participants.email], filter[external_opportunity.id], filter[crm_field.*], filter[hide_non_analyzed] or filter[analyzed].
Exclude conversations that failed processing
Include internal participants in the response
Include Zoom-specific metadata in the response
Include import metadata in the response
Include detailed transcript information in the response
Include CRM records in the response. Also re-enables extractedIntelligence and confirmedExtractedIntelligence fields that are otherwise stripped on this endpoint.
Include intelligence items in the response
Response
Successfully retrieved conversations
Example response
{
"data": [],
"links": {
"self": "/v2/conversations?page=1",
"related": "/v2/conversations?page=2"
},
"meta": {
"totalRecords": 150
}
}Changes
- info
added the new optional
queryrequest parameterfilter[include_private]
- info
- info
added the new optional
queryrequest parametercursor - info
added the new optional
queryrequest parameterfromUpdatedAtDateTime - info
added the new optional
queryrequest parametertoUpdatedAtDateTime - info
added the optional property
///to the response with the status (media type: application/json) - info
added the optional property
///to the response with the status (media type: application/vnd.api+json) - info
added the optional property
to the response with the status (media type: application/json) - info
added the optional property
to the response with the status (media type: application/vnd.api+json)
- info