---
title: "Measured performance per published clip — real YouTube Analytics at 48h and 7d, newest first, 100 per page"
method: GET
path: "/api/v1/receipts"
---

# Measured performance per published clip — real YouTube Analytics at 48h and 7d, newest first, 100 per page

`GET /api/v1/receipts`

## Request

- Base URL: `https://everpop.app`
- URL: `https://everpop.app/api/v1/receipts`
- Auth: HTTP bearer

Eligible YouTube Shorts published through Everpop, newest first. Pages with an opaque cursor: pass the envelope's nextCursor back as ?cursor= until it is null. A receipt may include a separately signed pre-publish prediction; measured metrics are not separately signed.

## Query parameters

- `limit` integer
- `cursor` string

## Response `200`

One page of receipts: aggregate YouTube Analytics metrics at 48h and 7d (views, retention as averageViewPercentage, likes, comments, shares and subscribers gained), each with its postId.

- ReceiptListEnvelope
  - `ok` unknown, required
  - `data` object, required
    - `receipts` ReceiptItem[], required
      - `postId` string, required: The post id POST /api/v1/campaigns/{id}/attach takes.
      - `title` string, nullable, required
      - `publishedUrl` string, nullable, required
      - `postedAt` string, date-time, nullable, required
      - `outcomes` object, required
        - `h48` ReceiptWindow, required: Aggregate YouTube Analytics metrics for one measurement window.
          - `views` number, nullable, required
          - `averageViewPercentage` number, nullable, required: Average percentage of the Short viewed (retention).
          - `likes` number, nullable, required
          - `comments` number, nullable, required
          - `shares` number, nullable, required
          - `subscribersGained` number, nullable, required
          - `measuredAt` string, date-time, required
        - `d7` ReceiptWindow, required: Aggregate YouTube Analytics metrics for one measurement window.
          - `views` number, nullable, required
          - `averageViewPercentage` number, nullable, required: Average percentage of the Short viewed (retention).
          - `likes` number, nullable, required
          - `comments` number, nullable, required
          - `shares` number, nullable, required
          - `subscribersGained` number, nullable, required
          - `measuredAt` string, date-time, required
      - `receiptUrl` string, uri, nullable, required: Token-protected public receipt page, once the post has a measured window; null before.
    - `campaignReportUrl` string, uri, nullable, required: One token-protected link bundling the measured receipts on this page; null when none on the page is measured.
  - `nextCursor` string, nullable, required: Pass back as ?cursor= for the next (older) page; null on the last page.

## Other responses

- `401`: The API key did not authenticate. code=key_missing: no Authorization: Bearer epk_... header. code=key_invalid: the key is unknown or revoked. code=key_expired: the key passed its expiry; the user creates a new one in Dashboard → API.
- `402`: REST and MCP need the Pro or Scale plan. reason=subscription: the account has no active subscription (subscribe, or redeem an invite code). reason=plan: the account's plan doesn't include this (API and agent access need Pro or Scale).
- `403`: code=scope (also reason=scope): the API key is read-only and this is a write. code=suspended: the account is suspended. Endpoint-specific refusals document their own reason.
- `422`: Invalid limit, or code=invalid_cursor (pass nextCursor back unchanged).
- `429`: Too many requests. code=rate_limited: the per-minute limit; wait Retry-After (60) seconds. code=quota_exhausted (with used, limit, resetsAt, retryable: false): the monthly allowance is used up; Retry-After is the seconds until resetsAt — tell the user rather than wait. code=queue_capacity (retryable: true): the render queue is full; retry after Retry-After (180).

---

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