GetConversationsV3

View as Markdown
## Get a cursor-paginated collection of LinkedIn conversations. Up to 100 items per request. Successor to **GetConversationsV2**. Two differences matter: - **Paging is cursor-based, not offset-based.** There is no `offset` - pass the `nextCursor` from the previous response as `cursor` to fetch the next page. This removes the deep-paging limit that **GetConversationsV2** runs into on large inboxes. - **`correspondentProfile` no longer carries email or custom fields.** The `emailAddress`, `enrichedEmailAddress`, `customEmailAddress` and `customFields` keys are not returned by this endpoint. The three email keys were already always `null` on **GetConversationsV2**. Use `/api/public/lead/GetLead` when you need them. ### Body Parameters - **limit** _(int, optional)_: Page size, 1-100. Defaults to `10`. - **cursor** _(string, optional)_: Opaque cursor taken from a previous response's `nextCursor`. Omit or send `null` for the first page. - **from** _(datetime, optional)_: Lower bound on `lastMessageAt`, UTC. Omit for no lower bound. - **to** _(datetime, optional)_: Upper bound on `lastMessageAt`, UTC. **Defaults to the current UTC time** when omitted. A `from` later than `to` is rejected with 400 `From must not be later than To.` - **filters** _(object, optional)_ - **linkedInAccountIds** (int\[\]): The ids of the LinkedIn senders. - **campaignIds** (long\[\]) - **searchString** (string, optional) - **leadLinkedInId** (string, optional): The LinkedIn ID of the lead. You can find this ID as "linkedin_id" in the response of many of our endpoints, for example in the '/api/public/lead/GetLead' endpoint. Cannot be combined with `leadProfileUrl`. - **leadProfileUrl** (string, optional): The LinkedIn URL of the lead. Cannot be combined with `leadLinkedInId`. - **tags** (string\[\]): Case-insensitive list of lead tags. Only the conversations of leads that have at least one of the tags are returned. Every tag must already exist. - **latestAutoTagNames** (string\[\]): Filter by the lead's most recent auto tag. - **seen** (bool, optional): `true` for read conversations, `false` for unread, `null` for both. ### Paging Conversations are sorted by `lastMessageAt` descending, then `linkedInAccountId` ascending. Keep calling the endpoint with the returned `nextCursor` for as long as `hasNextPage` is `true`; `nextCursor` is `null` on the last page. `totalCount` is the total number of matching conversations, not the size of the current page. Treat the cursor as opaque - do not build or edit it yourself, an unparseable value returns 400 `Invalid cursor format.` ### Response fields - **items** _(array)_: The conversations for this page. - **totalCount** _(long)_: Total matching conversations across all pages. - **nextCursor** _(string)_: Cursor for the next page, `null` when there are no more pages. - **hasNextPage** _(bool)_ `items[].campaignId` is omitted entirely when the conversation is not tied to a campaign. ### Errors All of the following return **400** with body `{ "errorMessage": "..." }`: - `Invalid cursor format.` - `Only one of LeadId or LeadProfileUrl parameters can be used at a time.` - `'<url>' is invalid profile url.` - `Lead with profile url: '<url>' does not exist` - `Invalid LinkedIn Account Id is provided in the LinkedInAccountIds property` - `The campaign you are trying to open does not exist.` - `Cannot filter with Tags because the following tags do not exist: <names>` - `Auto tag name is not supported, AutoTagName: <name>`

Headers

X-API-KEYstringOptional

API key header using this scheme. Example: “X-API-KEY: {API_KEY}

Request

This endpoint expects an object.
limitintegerRequired
fromdatetimeRequired
todatetimeRequired
filtersobjectRequired
cursorany or nullOptional

Response

OK
itemslist of objects
totalCountinteger
nextCursorstring
hasNextPageboolean

Errors

400
Get Conversations V3inbox Request Bad Request Error