---
title: "Get link click breakdown"
method: GET
path: "/metrics/links"
tags: ["Analytics"]
---

# Get link click breakdown

`GET /metrics/links`

## Request

- Base URL: `https://api.sequenzy.com/api/v1`
- URL: `https://api.sequenzy.com/api/v1/metrics/links`
- Auth: HTTP bearer

Returns clicks per link destination across every email in the time range, ranked by unique clicks, which count each subscriber once per link however often they clicked. Destinations ignore query strings, fragments and trailing slashes, so the same page linked with different UTM tags counts as one link, and links that differ only by query parameters, such as video or product IDs, are combined. Test sends are excluded. Defaults to the last 90 days. For one campaign's links with exact URLs, read `clickedLinks` from the campaign metrics endpoint.

## Query parameters

- `period` '1h' | '24h' | '7d' | '30d' | '90d'
- `start` string, date-time
- `end` string, date-time
- `emailType` 'campaign' | 'transactional' | 'sequence'
- `mailboxProvider` string
- `limit` integer
- `includeMachineEngagement` boolean

## Response `200`

Success

- object: Clicks per link destination. Destinations ignore query strings, fragments and trailing slashes, so the same page linked with different UTM tags counts as one link.
  - `success` boolean, required
  - `period` string, required: Applied period, or `custom` when start/end were provided.
  - `emailType` 'campaign' | 'transactional' | 'sequence'
  - `mailboxProvider` string: Echoed back when `mailboxProvider` is provided.
  - `start` string, date-time
  - `end` string, date-time
  - `totalClicks` integer, required: Click events across every destination in scope, repeats included, before `limit` is applied. `0` when nothing was clicked, in which case `links` is empty.
  - `totalUniqueClicks` integer, required: Sum of every destination's `uniqueClicks` in scope, before `limit` is applied.
  - `totalLinks` integer, required: Distinct destinations in scope, before `limit` is applied.
  - `links` object[], required: Destinations ranked by unique clicks, then total clicks.
    - `url` string, required: Destination URL without query string, fragment or trailing slash.
    - `clicks` integer, required: Every recorded click on the destination, repeats included.
    - `uniqueClicks` integer, required: Subscribers who clicked the destination, each counted once however often they clicked. Recipients without a subscriber record count once per email.
    - `share` number, required: Percentage of `totalUniqueClicks`, rounded to two decimals.

## Other responses

- `400`: Invalid period, date range, email type, mailbox provider, or limit
- `401`: Unauthorized
- `403`: The key lacks analytics read access, or a marketer-role personal key requested transactional email
- `500`: Analytics storage error

## Changes

- **2026-10-16** `db3873ca3d4d`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/sequenzy/apis/sequenzy-api/changes/metrics/links/get.md)

---

[API](https://skmtc.dev/sequenzy/apis/sequenzy-api.md) - [All operations](https://skmtc.dev/sequenzy/apis/sequenzy-api/llms.txt) - [OpenAPI document](https://skmtc.dev/sequenzy/apis/sequenzy-api/revisions/8156dc12d8b4?raw)
