---
title: "Full contact timeline"
method: GET
path: "/contacts/{id}/journey"
tags: ["Contacts"]
---

# Full contact timeline

`GET /contacts/{id}/journey`

## Request

- Base URL: `https://sending.dev/api/v1`
- URL: `https://sending.dev/api/v1/contacts/{id}/journey`
- Auth: HTTP bearer

Sent messages (split into transactional/campaign/automation), emails written by the contact to agent inboxes, UTM touches and conversions, newest first. Required scope: `contacts:read` or `contacts:write`.

## Path parameters

- `id` string, required: Contact ID.

## Response `200`

Contact timeline.

- ContactJourney
  - `data` ContactJourneyEntry[], required
    - `type` 'message_sent' | 'email_received' | 'touch' | 'conversion' | 'note' | 'enrollment', required: Timeline entry type.
    - `at` string, date-time, required
    - `kind` string: Origin of messages and touches: transactional | campaign | automation | event | posthog.
    - `subject` string, nullable
    - `to` object: Destination agent inbox (email_received only).
      - `address` string, required
      - `displayName` string, required
      - `domainKind` string, required
    - `name` string
    - `valueCents` integer
    - `events` object: Summary of the message's events (message_sent via email only).
      - `openedHuman` integer, required
      - `openedMachine` integer, required: Non-human opens (Apple MPP, Gmail proxy, scanners).
      - `clicks` integer, required
      - `contentClicks` integer, required: Clicks on content: excludes logo, domain chrome and social links.
      - `links` string[], required: Clicked URLs, canonical (without utm_*) and deduplicated.
      - `lastLinkUrl` string, nullable, required
      - `bounced` boolean, required
      - `unsubscribed` boolean, required
    - `phase` 'entered' | 'exited' | 'current': Enrollment only: entry into the automation, exit, or the node the contact is currently on.
    - `automationId` string, uuid
    - `automationName` string
    - `status` string
    - `nodeId` string, nullable
    - `nodeLabel` string, nullable: Email subject for message steps, otherwise the action name.
    - `nodeType` string, nullable
    - `exitReason` string, nullable
    - `test` boolean

## Other responses

- `401`: Missing or invalid token.
- `403`: Insufficient scope.
- `404`: Resource not found.

---

[API](https://skmtc.dev/sending/apis/sending-dev-api.md) · [All operations](https://skmtc.dev/sending/apis/sending-dev-api/llms.txt) · [OpenAPI document](https://skmtc.dev/sending/apis/sending-dev-api/revisions/9fe78d2918a1?raw)
