---
title: "Search communications by Agent (cursor paged)"
method: GET
path: "/v2.0/communication/agent"
tags: ["Communication V2"]
---

# Search communications by Agent (cursor paged)

`GET /v2.0/communication/agent`

Returns communication timeline entries for the caller (or the caller's team when teamView=true, requiring ACCESS_ALL_TEAM_LEADS permission) within a time range.

- The time window (endTime - startTime) may span up to 90 days in a single query.
- type accepts CALL, TEXT, EMAIL, or ALL to fetch all three together in one request.
- limit controls the page size and must be between 1 and 1000 (default 100).
- Cursor pagination: the response returns a nextCursor token; pass it back as the 'cursor' parameter to fetch the next page. Keep paging while nextCursor is non-null and stop when it is null. Because a full page cannot tell whether more entries exist, the last page may come back with an empty data array and nextCursor=null - treat that as end-of-data, not an error. This is the recommended way to sync large or historical ranges.

## Query parameters

- `type` 'CALL' | 'TEXT' | 'EMAIL' | 'ALL'
- `startTime` integer, required
- `endTime` integer, required
- `limit` integer
- `cursor` string
- `teamView` boolean

## Headers

- `Authorization` string, required

## Response `200`

Cursor-paged communication entries.

- CommunicationCursorPage
  - `data` CommunicationResponse[] — Communication entries for this page.
    - `id` integer — The ID of the communication
    - `leadId` integer — The lead(Id) associated with the communication
    - `agentId` integer — The related Agent ID
    - `direction` string — Outbound or Inbound
    - `callOutcome` string — Dialer call outcome
    - `callDuration` string — Dialer call duration
    - `status` string — The communication status
    - `communicationTime` string — The time of the communication
    - `communicationType` string — The communication type (AUTO, MANUAL OR LOGGED)
    - `eventType` string — The event type (Call, Text, Opened Email, Bounced Email or Sent Email)
    - `fromPond` boolean — Is the communication from the lead pond
  - `nextCursor` string — Opaque cursor for the next page. Pass it back as the 'cursor' parameter. Null when there are no more pages. A non-null value does not guarantee further entries: the next request may return an empty data array with nextCursor=null, which marks the end.
  - `hasMore` boolean — Whether more pages are available.
  - `limit` integer — Page size used for this query.
  - `totalCount` integer — Total number of matching entries for the whole query.

## Other responses

- `400` — Invalid parameters, invalid cursor, or teamView=true without ACCESS_ALL_TEAM_LEADS permission.
- `401` — Missing or invalid authentication token.
- `500` — Internal server error.

---

[API](https://skmtc.net/lofty/apis/lofty-service-open-apis.md) · [All operations](https://skmtc.net/lofty/apis/lofty-service-open-apis/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/lofty/lofty-service-open-apis/versions/23e640467118/schema)
