---
title: "List activity"
method: GET
path: "/v1/activity"
tags: ["Activity"]
---

# List activity

`GET /v1/activity`

## Request

- Base URL: `https://api.talktohumans.app`
- URL: `https://api.talktohumans.app/v1/activity`
- Auth: HTTP bearer

Lists activity events for the current organization.

## Query parameters

- `from` string
- `to` string
- `timezone` string
- `account_id` string[]
- `user_id` string[]
- `event_type` ActivityEventType[]
- `channel` string[]
- `source` string[]
- `tag` string
- `limit` integer
- `cursor` string

## Response `200`

Activity rows.

- ListActivityEnvelope
  - `data` ActivityListResponse, required
    - `generated_at` string, date-time, required
    - `timezone` string, required: IANA timezone used to interpret date-only request filters.
    - `filters` ActivityFilters, required
      - `from` string, date-time: Normalized inclusive lower bound in UTC, when supplied.
      - `to` string, date-time: Normalized exclusive upper bound in UTC, when supplied.
      - `to_exclusive` boolean, required: Always true. Activity queries include events where `occurred_at < to`.
      - `account_ids` string[]
      - `user_ids` string[]
      - `event_types` ActivityEventType[]
      - `channels` string[]
      - `sources` string[]
      - `tag_attribution` 'unavailable', required: Tag filtering is intentionally unavailable until activity events include tag attribution metadata.
    - `activity` ActivityEvent[], required
      - `id` string, required: TalkToHumans activity event ID.
      - `occurred_at` string, date-time, required: When the activity happened.
      - `recorded_at` string, date-time, required: When TalkToHumans recorded the activity.
      - `event_type` 'connection_request_sent' | 'connection_request_accepted' | 'incoming_connection_request_accepted' | 'message_scheduled' | 'message_sent' | 'follow_up_sent' | 'message_received' | 'outbound_reply_received' | 'template_run_started' | 'template_run_replied', required
      - `source` string, required: Backend emitter that recorded the fact.
      - `channel` string: Activity channel when known.
      - `user_id` string: TalkToHumans user ID when the fact can be attributed to a user.
      - `account_id` string: TalkToHumans LinkedIn account ID when the fact can be attributed to an account.
      - `subject_key` string: Stable content-free contact identity used to deduplicate reporting metrics.
      - `template_run_public_id` string: Template-run identity when the activity belongs to attributed outreach.
      - `template_key` string: Stable opaque template identity snapshotted when the activity was recorded.
      - `template_public_id` string
      - `template_type` 'normal' | 'sequence'
      - `attribution_method` 'user_and_account' | 'user' | 'account' | 'unattributed', required
      - `metadata` ActivityMetadata: Small machine-readable metadata allowlist. Possible keys include `chat_provider`, `invite_entity_urn`, `invite_id`, `invitation_id`, `invitation_urn`, `message_mode`, `message_public_id`, `message_source`, `occurred_at_basis`, `outcome`, `participant_provider`, `position`, `previous_invite_type`, `provider_chat_id`, `provider_message_id`, `provider_participant_id`, `reason`, `relationship_source`, `reply_basis`, `scheduled_for`, `sequence_step_public_id`, `task_type`, `template_run_public_id`, and `template_status`. Message text, attachments, notes, drafts, and generated message bodies are never returned here.
    - `pagination` ActivityPagination, required
      - `limit` integer, required
      - `has_more` boolean, required
      - `next_cursor` string: Cursor for the next activity page. Omitted when there are no more results.

## Other responses

- `400`: Invalid request parameters.
- `401`: Missing, malformed, invalid, or retired local API key.
- `403`: API access is not enabled for the organization, the API key cannot resolve to an active organization user, or the credential's user is not an organization admin.
- `429`: Rate limit exceeded. Public routes allow 50 requests per 10 seconds per IP and endpoint.
- `500`: Unexpected server error.

---

[API](https://skmtc.dev/talktohumans/apis/talktohumans-public-api.md) · [All operations](https://skmtc.dev/talktohumans/apis/talktohumans-public-api/llms.txt) · [OpenAPI document](https://skmtc.dev/talktohumans/apis/talktohumans-public-api/revisions/4551ad2f26af?raw)
