---
title: "Who opened the page, by the name it was addressed to."
method: GET
path: "/sites/{idOrSlug}/recipients"
tags: ["Share tokens"]
---

# Who opened the page, by the name it was addressed to.

`GET /sites/{idOrSlug}/recipients`

## Request

- Base URL: `https://api.stacktr.ee`
- URL: `https://api.stacktr.ee/sites/{idOrSlug}/recipients`
- Auth: one of:
  - HTTP bearer
  - OAuth 2 (authorization code, authorization URL `https://api.stacktr.ee/oauth/authorize`, token URL `https://api.stacktr.ee/oauth/token`, scopes: `sites:write`, `sites:read`)

Rolls up opens per recipient — from a labelled share link or from `?to=` / `?name=` on the URL. `viewers` is distinct devices behind one name, so a value above 1 means the link was forwarded. Depth fields (`sessions`, `active_seconds`, `max_scroll`) are null unless the plan includes engagement detail; the whole list is empty when the plan has no viewer numbers.

## Response `200`

OK

- object
  - `metrics_locked` boolean
  - `detail_locked` boolean
  - `recipients` object[]
    - `name` string
    - `opens` integer
    - `viewers` integer
    - `first_seen` integer
    - `last_seen` integer
    - `via_link` boolean
    - `sessions` integer, nullable
    - `active_seconds` integer, nullable
    - `max_scroll` integer, nullable
    - `video_percent` integer, nullable: Furthest this person got through video on the page. null with no video, no play, or depth locked.
  - `sent_to` object[]: Who the owner said the page is for, opened or not. Never locked: compare with recipients to see who has not opened it yet.
    - `name` string
    - `key` string
    - `source` 'publish' | 'page' | 'share_link' | 'agent'
    - `share_token_id` string, nullable: The signed link this person was sent, when it was one.
    - `added_at` integer

---

[API](https://skmtc.dev/stacktr/apis/stacktree-api.md) · [All operations](https://skmtc.dev/stacktr/apis/stacktree-api/llms.txt) · [OpenAPI document](https://skmtc.dev/stacktr/apis/stacktree-api/revisions/5878cce46977?raw)
