---
title: "Search email tracking"
method: POST
path: "/email/tracking"
tags: ["Email API"]
---

# Search email tracking

`POST /email/tracking`

Returns a paginated list of email log rows for your account (latest event per message when browsing the full list).

Optional query `trackingId` narrows results to one message's timeline (same data shape as list, filtered).

Request body accepts zero or more [search filters](#search-filters) (same pattern as SMS tracking). Combine with `dateStart` / `dateEnd` (ISO-8601, UTC) to bound the time window.

Log rows may take **1–2 minutes** to appear after a successful send.

## Query parameters

- `trackingId` string
- `dateStart` string, date-time
- `dateEnd` string, date-time
- `page` integer
- `size` integer

## Headers

- `Authorization` string, required
- `Content-Type` string, required

## Request body

- SearchFilter[]
  - `fieldName` string, required — Searchable fields include `deliveryStatus`, `date`, `event`, `envelope`, `recipient`, `from`, `to`, `subject`, `status`, `messages`, `trackingId`, `messageId`, `type`. Use query `trackingId` instead of a body filter when looking up one batch.
  - `searchTerm` unknown, required
  - `searchOperator` 'is' | 'is_not' | 'contains' | 'starts_with' | 'ends_with' — One of `is`, `is_not`, `contains`, `starts_with`, `ends_with`.

## Response `200`

Paginated tracking rows

- EmailTrackingPage
  - `content` EmailTracking[]
    - `trackingId` string — Batch id from POST /transactional-email — primary customer correlation id.
    - `messageId` string — Per-recipient worker log id — timeline key for one recipient in a batch.
    - `recipient` string
    - `from` string
    - `subject` string
    - `status` string
    - `deliveryStatus` string
    - `event` string
    - `channel` 'API' | 'SMTP' | 'MARKETING'
    - `campaignName` string
    - `envelope` string
    - `date` string, date-time
    - `openedCount` integer
    - `clickCount` integer
    - `tags` string[]
    - `content` string — Present when `include_content=true` on single GET.
    - `results` EmailTrackingSmtpResult[]
      - `deliveryStatus` string
      - `time` string
      - `messages` integer
      - `dsn` boolean
      - `description` string
      - `status` string
      - `state` string
      - `attempt` integer
    - `callbackBody` object
    - `dsn` object
  - `totalElements` integer
  - `totalPages` integer
  - `size` integer
  - `number` integer

## Other responses

- `401` — Missing or invalid Bearer token
- `403` — Insufficient role or OAuth scope (`transactional_email` required)

---

[API](https://skmtc.net/routee/apis/auth.md) · [All operations](https://skmtc.net/routee/apis/auth/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/routee/auth/revisions/5cef04e8f7d8/schema)
