---
title: "List workspace contact interactions (v2)"
method: GET
path: "/v2/workspaces/{workspaceId}/contacts/{contactId}/interactions"
tags: ["workspaces"]
---

# List workspace contact interactions (v2)

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

## Request

- Base URL: `https://api.prod.getdex.com`
- URL: `https://api.prod.getdex.com/v2/workspaces/{workspaceId}/contacts/{contactId}/interactions`
- Auth: HTTP bearer

Per-member retained email, meeting and shared-note dates, plus live email and meeting counts summed across the member’s connected accounts and all contact emails. Counts are opt-in with `include_counts=true`; otherwise both counts are null and no Personal aggregate is read. Requested counts require active membership and a live, non-DISABLED shared credential still syncing that channel; null means unknown. Former members retain dates only. Requires Teams access and workspace membership.

## Path parameters

- `workspaceId` string, uuid, required
- `contactId` string, uuid, required

## Query parameters

- `include_counts` boolean

## Response `200`

Successful response

- object
  - `data` object, required
    - `interactions` object[], required
      - `member_user_id` string, required
      - `first_email_at` union, required
        - string, date-time
        - unknown
      - `last_email_at` union, required
        - string, date-time
        - unknown
      - `first_calendar_event_at` union, required
        - string, date-time
        - unknown
      - `last_calendar_event_at` union, required
        - string, date-time
        - unknown
      - `last_note_at` union, required
        - string, date-time
        - unknown
      - `email_count` integer, nullable, required: Null unless include_counts=true and an active member has a live shared credential syncing email; null also means unknown.
      - `meeting_count` integer, nullable, required: Null unless include_counts=true and an active member has a live shared credential syncing calendar; null also means unknown.
    - `pagination` object
      - `nextCursor` string, nullable
      - `count` integer

## Other responses

- `400`: Request body failed validation.
- `401`: Missing or invalid API key.
- `403`: Valid key, insufficient permission.
- `404`: Resource does not exist.
- `409`: Request conflicts with the current state of the resource.
- `429`: Rate limit exceeded.
- `500`: Unexpected server error.

## Changes

- **2026-10-17** `44f9e870edb1`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/getdex/apis/dex-public-api/changes/v2/workspaces/:workspaceId/contacts/:contactId/interactions/get.md)

---

[API](https://skmtc.dev/getdex/apis/dex-public-api.md) · [All operations](https://skmtc.dev/getdex/apis/dex-public-api/llms.txt) · [OpenAPI document](https://skmtc.dev/getdex/apis/dex-public-api/revisions/657247ddcf7c?raw)
