---
title: "Get unified timeline"
method: GET
path: "/v1/unified-timeline/"
tags: ["unified-timeline"]
---

# Get unified timeline

`GET /v1/unified-timeline/`

Retrieve a unified, paginated timeline combining notes, reminders, emails, and calendar events. Supports filtering by source type, contact, date range, and text search.

## Query parameters

- `sources` string
- `contactId` string, uuid
- `take` integer
- `cursor` string
- `startDate` string
- `endDate` string
- `upcoming` boolean
- `searchQuery` string
- `includeContactDetails` boolean

## Response `200`

Successful response

- object
  - `error` boolean, required
  - `data` object, required
    - `items` union[], required
      - union
        - object
          - `type` 'NOTE', required
          - `date` string, required
          - `data` object, required
            - `id` string, uuid, required
            - `user_id` string
            - `note` string, nullable
            - `custom_emoji` string, nullable
            - `meeting_type` string, nullable
            - `meeting_type_id` string, uuid, nullable
            - `event_time` union
              - …
            - `created_at` union
              - …
            - `google_calendar_event_id_v3` string, nullable
            - `oauth_credential_id` string, uuid, nullable
            - `calendar_account_email` string, nullable
            - `calendar_account_provider` 'GOOGLE' | 'OFFICE365', nullable
            - `reminder_id` string, uuid, nullable
            - `next_cursor` string
            - `meeting_types` object, nullable, required
            - `timeline_items_contacts` object[]
              - …
            - `attachments` object[]
              - …
        - object
          - `type` 'REMINDER', required
          - `date` string, required
          - `data` object, required
            - `id` string, uuid, required
            - `user_id` string
            - `text` string, nullable
            - `due_at_date` union
              - …
            - `due_at_time` union
              - …
            - `is_complete` boolean
            - `email_sent` boolean
            - `push_notification_sent` boolean
            - `recurrence` string, nullable
            - `last_completed_at` union
              - …
            - `next_occurrence_at` union
              - …
            - `created_at` union
              - …
            - `is_overdue` boolean
            - `next_cursor` string
            - `reminders_contacts` object[]
              - …
            - `users` object, nullable
        - object
          - `type` 'EMAIL', required
          - `date` string, required
          - `data` object, required
            - `providerId` string
            - `threadId` string, nullable
            - `subjectOrTitle` string
            - `snippet` string, nullable
            - `dateTime` string
            - `endDateTime` string, nullable
            - `isAllDay` boolean
            - `participants` object[]
              - …
            - `providerLink` string, nullable
            - `email` string
            - `iCalUID` string, nullable
            - `isRecurring` boolean
            - `provider` string
        - object
          - `type` 'CALENDAR', required
          - `date` string, required
          - `data` object, required
            - `providerId` string
            - `threadId` string, nullable
            - `subjectOrTitle` string
            - `snippet` string, nullable
            - `dateTime` string
            - `endDateTime` string, nullable
            - `isAllDay` boolean
            - `participants` object[]
              - …
            - `providerLink` string, nullable
            - `email` string
            - `iCalUID` string, nullable
            - `isRecurring` boolean
            - `provider` string
        - object
          - `type` 'FEED', required
          - `date` string, required
          - `data` object, required
            - `id` string, uuid, required
            - `user_id` string, required
            - `contact_id` string, uuid, nullable
            - `feed_type` string, required
            - `body` object, required
              - …
            - `created_at` string, required
    - `nextCursor` string, nullable, required
    - `hasMore` boolean, required
    - `count` integer, required
    - `timedOutSources` string[], required

## Other responses

- `400` — Request body failed validation.
- `401` — Missing or invalid API key.
- `403` — Valid key, insufficient permission.
- `404` — Resource does not exist.
- `429` — Rate limit exceeded.
- `500` — Unexpected server error.

---

[API](https://skmtc.net/getdex/apis/dex-public-api.md) · [All operations](https://skmtc.net/getdex/apis/dex-public-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/getdex/dex-public-api/versions/6f01cd52ac12/schema)
