---
title: "Read aggregate analytics for one project-owned dynamic QR record"
method: GET
path: "/api/dynamic-qr-vaults/{vaultId}/qr/{slug}/analytics"
---

# Read aggregate analytics for one project-owned dynamic QR record

`GET /api/dynamic-qr-vaults/{vaultId}/qr/{slug}/analytics`

## Request

- Base URL: `https://qrcodecrafter.com`
- URL: `https://qrcodecrafter.com/api/dynamic-qr-vaults/{vaultId}/qr/{slug}/analytics`
- Auth: HTTP bearer
- TypeScript: <https://skmtc.dev/qrcodecrafter/apis/qrcodecrafter-api-2/docs/api/dynamic-qr-vaults/:vaultId/qr/:slug/analytics/get.ts> (a function with typed inputs; its response is checked against the schema)

Requires the private vault bearer capability and verifies that the selected child belongs to the vault. Returns approximate aggregate redirect counts only; no visitor identifiers, IP addresses, user agents, referrers, cookies, locations, or device data are stored.

## Response `200`

Aggregate analytics for the selected project-owned redirect. Analytics may be omitted when disabled outside production.

- DynamicQrVaultChildAnalyticsResponse
  - `success` boolean, required
  - `slug` string, required
  - `analytics` DynamicQrAnalyticsSummary: Enabled on the production deployment. The analytics property remains optional so non-production or deliberately disabled deployments can omit it.
    - `available` boolean, required: False when analytics are enabled but aggregate storage is temporarily unavailable.
    - `approximate` true, required: Counts are best-effort redirects, not unique people or guaranteed scans.
    - `retentionDays` 90, required
    - `dailyCountLimit` 100000, required: Maximum aggregate redirects counted for one slug in one UTC day. Later eligible redirects still work but are not counted.
    - `totalScans` integer: Lifetime aggregate redirect count. Present when analytics storage is available.
    - `daily` object[]
      - `date` string, date, required
      - `count` integer, required
    - `lastCountedAt` string, date-time

## Other responses

- `401`: Invalid vault capability
- `404`: Child is not owned by this vault
- `503`: Vault or child storage temporarily unavailable

---

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