---
title: "Analytics"
description: "Per-link series and breakdowns over any date range."
---

> Documentation Index
> Fetch the complete documentation index at: https://docs.in.bio/llms.txt
> Use this file to discover all available pages before exploring further.

# Analytics

`GET /api/v1/links/{id}/analytics` — scope `analytics:read`.

| Param | Type | Notes |
|---|---|---|
| `from` | date | Default: 30 days before `to`. Clamped to your plan's retention (Free: 30 days) |
| `to` | date | Default: today |

```json
{
  "data": {
"range": { "from": "2026-06-22", "to": "2026-07-22" },
"totals": { "clicks": 1240, "uniques": 981, "botClicks": 77 },
"series": [{ "date": "2026-06-22", "clicks": 40, "uniques": 31 }],
"countries": [{ "value": "US", "clicks": 512 }],
"devices": [{ "value": "mobile", "clicks": 700 }],
"browsers": [{ "value": "Chrome", "clicks": 640 }],
"referrers": [{ "value": "news.ycombinator.com", "clicks": 210 }]
  }
}
```

Notes:

- `countries` and `referrers` are the top 10 by clicks.
- Bot traffic is excluded from every number except `totals.botClicks`.
- `uniques` is a privacy-conscious 24-hour estimate — see
  [how uniques work](/guides/analytics#how-unique-visitors-work).
- `series` contains only days with data; fill gaps client-side if you chart it.

Source: https://docs.in.bio/api/analytics/index.mdx
