Skip to main content
GET
/
v1
/
analytics
/
links
/
{identifier}
curl https://api.bouncy.ai/v1/analytics/links/link_abc123xyz \
  -H "Authorization: Bearer bcy_live_pk_YOUR_API_KEY"
{
  "id": "my-bio-page",
  "identifier": "my-bio-page",
  "type": "Website",
  "resolvedBy": "customSlug",
  "totalViews": 190,
  "dailyViews": [
    {
      "date": "2026-01-15",
      "views": 74,
      "clicks": 78,
      "adultClicks": 46,
      "countries": {
        "us": 41,
        "gb": 18
      },
      "devices": {
        "mobile": 69,
        "desktop": 5
      },
      "platforms": {
        "ios": 43,
        "android": 26,
        "windows": 5
      },
      "referrers": {
        "instagram.com": 38,
        "direct": 22
      }
    }
  ],
  "deviceStats": {
    "mobile": 176,
    "desktop": 14
  },
  "countryStats": [
    { "name": "United States", "views": 112 },
    { "name": "United Kingdom", "views": 49 }
  ],
  "topCountry": "United States",
  "topCountryViews": 112,
  "lastViewed": "2026-01-31T19:22:10.000Z",
  "platformStats": {
    "ios": 104,
    "android": 72,
    "windows": 14
  },
  "referrerStats": [
    { "domain": "instagram.com", "views": 89 },
    { "domain": "direct", "views": 54 }
  ],
  "totalClicks": 211,
  "clicksByLink": [
    {
      "id": "shop_0_lx8abc",
      "count": 88,
      "totalClicks": 88,
      "title": "Shop Now",
      "url": "https://example.com/shop",
      "type": "standard",
      "dailyClicks": [
        { "date": "2026-01-15", "clicks": 32 },
        { "date": "2026-01-16", "clicks": 56 }
      ]
    },
    {
      "id": "adult-18plus-btn",
      "count": 123,
      "totalClicks": 123,
      "title": "Yes, I'm 18+",
      "url": "https://example.com/adult-destination",
      "type": "adult-confirmation",
      "dailyClicks": [
        { "date": "2026-01-15", "clicks": 46 },
        { "date": "2026-01-16", "clicks": 77 }
      ]
    }
  ],
  "adultConfirmation": {
    "clicks": 123,
    "rate": 64.74
  }
}

Documentation Index

Fetch the complete documentation index at: https://docs.bouncy.ai/llms.txt

Use this file to discover all available pages before exploring further.

Request

Headers

Path Parameters

identifier
string
required
The link or website identifier. For websites, you can use the document ID, custom slug, or custom domain.Examples: link_abc123xyz, my-bio-page, example.com

Query Parameters

timeframe
string
Preset date range. Supported values are last_7_days, last_30_days, last_90_days, this_month, last_month, and all_time.Example: last_30_days
from
string
Custom range start date in YYYY-MM-DD format. Must be used with to.Example: 2026-01-01
to
string
Custom range end date in YYYY-MM-DD format. Must be used with from.Example: 2026-01-31
Bio website button clicks are returned in clicksByLink. Each tracked button includes the link ID, title, URL, total clicks, and daily clicks for the selected range.

Response

id
string
Resolved Firestore document ID used for analytics lookup.
identifier
string
Identifier from the request path.
type
string
Resource type, such as Website or Deeplink.
resolvedBy
string
How the identifier was matched, such as documentId, customSlug, or customDomain.
totalViews
number
Total views in the selected range.
dailyViews
array
Time-series analytics for the selected range. For short ranges this is hourly; for longer ranges this is daily or monthly.
deviceStats
object
View breakdown by device type.
countryStats
array
Countries by view count.
topCountry
string
Highest-view country in the selected range, excluding unknown values.
topCountryViews
number
View count for topCountry.
lastViewed
string | null
Timestamp of the latest view, or null when no view has been recorded.
platformStats
object
View breakdown by platform or operating system.
referrerStats
array
Referrer domains by view count.
totalClicks
number
Total tracked clicks in the selected range. For bio websites, this is the total clicks across tracked buttons.
Click breakdown by tracked link or button.
adultConfirmation
object | null
Adult confirmation metric for adult-gated links. Returns null when no adult confirmation clicks were tracked in the selected range.
curl https://api.bouncy.ai/v1/analytics/links/link_abc123xyz \
  -H "Authorization: Bearer bcy_live_pk_YOUR_API_KEY"
{
  "id": "my-bio-page",
  "identifier": "my-bio-page",
  "type": "Website",
  "resolvedBy": "customSlug",
  "totalViews": 190,
  "dailyViews": [
    {
      "date": "2026-01-15",
      "views": 74,
      "clicks": 78,
      "adultClicks": 46,
      "countries": {
        "us": 41,
        "gb": 18
      },
      "devices": {
        "mobile": 69,
        "desktop": 5
      },
      "platforms": {
        "ios": 43,
        "android": 26,
        "windows": 5
      },
      "referrers": {
        "instagram.com": 38,
        "direct": 22
      }
    }
  ],
  "deviceStats": {
    "mobile": 176,
    "desktop": 14
  },
  "countryStats": [
    { "name": "United States", "views": 112 },
    { "name": "United Kingdom", "views": 49 }
  ],
  "topCountry": "United States",
  "topCountryViews": 112,
  "lastViewed": "2026-01-31T19:22:10.000Z",
  "platformStats": {
    "ios": 104,
    "android": 72,
    "windows": 14
  },
  "referrerStats": [
    { "domain": "instagram.com", "views": 89 },
    { "domain": "direct", "views": 54 }
  ],
  "totalClicks": 211,
  "clicksByLink": [
    {
      "id": "shop_0_lx8abc",
      "count": 88,
      "totalClicks": 88,
      "title": "Shop Now",
      "url": "https://example.com/shop",
      "type": "standard",
      "dailyClicks": [
        { "date": "2026-01-15", "clicks": 32 },
        { "date": "2026-01-16", "clicks": 56 }
      ]
    },
    {
      "id": "adult-18plus-btn",
      "count": 123,
      "totalClicks": 123,
      "title": "Yes, I'm 18+",
      "url": "https://example.com/adult-destination",
      "type": "adult-confirmation",
      "dailyClicks": [
        { "date": "2026-01-15", "clicks": 46 },
        { "date": "2026-01-16", "clicks": 77 }
      ]
    }
  ],
  "adultConfirmation": {
    "clicks": 123,
    "rate": 64.74
  }
}