Workspaces

List workspace contact interactions

Per-member retained email, meeting and shared-note dates, and `linkedin_connected_at`, the earliest date the member connected with the contact on LinkedIn (it counts toward Known by but is not an inte

GET /v2/workspaces/{workspaceId}/contacts/{contactId}/interactions

Parameters

Path parameters

workspaceId
string (uuid) required
contactId
string (uuid) required

Query parameters

include_counts
boolean
Default false: counts stay null and no Personal aggregate is read. Set true to include authorized live counts.

Responses

200 — Successful response

Content-Type: application/json

data
object required
data.interactions
array<object> required
data.interactions[].member_user_id
string required
data.interactions[].first_email_at
string (date-time) required
data.interactions[].last_email_at
string (date-time) required
data.interactions[].first_calendar_event_at
string (date-time) required
data.interactions[].last_calendar_event_at
string (date-time) required
data.interactions[].last_note_at
string (date-time) required
data.interactions[].linkedin_connected_at
string (date-time) required
data.interactions[].email_count
integer | null required
Null unless include_counts=true and an active member has a live shared credential syncing email; null also means unknown.
data.interactions[].meeting_count
integer | null required
Null unless include_counts=true and an active member has a live shared credential syncing calendar; null also means unknown.
data.pagination
object
data.pagination.nextCursor
string | null
data.pagination.count
integer

Example

{
  "data": {
    "interactions": [
      {
        "member_user_id": "string",
        "first_email_at": "2026-10-23T10:31:51.492Z",
        "last_email_at": "2026-10-23T10:31:51.492Z",
        "first_calendar_event_at": "2026-10-23T10:31:51.492Z",
        "last_calendar_event_at": "2026-10-23T10:31:51.492Z",
        "last_note_at": "2026-10-23T10:31:51.492Z",
        "linkedin_connected_at": "2026-10-23T10:31:51.492Z",
        "email_count": 0,
        "meeting_count": 0
      }
    ]
  }
}

400 — Request body failed validation.

Content-Type: application/json

(body)
any

401 — Missing or invalid API key.

Content-Type: application/json

(body)
any

403 — Valid key, insufficient permission.

Content-Type: application/json

(body)
any

404 — Resource does not exist.

Content-Type: application/json

(body)
any

409 — Request conflicts with the current state of the resource.

Content-Type: application/json

(body)
any

429 — Rate limit exceeded.

Content-Type: application/json

(body)
any

500 — Unexpected server error.

Content-Type: application/json

(body)
any

Code samples

curl https://api.prod.getdex.com/v2/workspaces/00000000-0000-0000-0000-000000000000/contacts/00000000-0000-0000-0000-000000000000/interactions \
  --header 'Authorization: Bearer YOUR_API_KEY'
Copyright © 2026