Skip to main content
GET
/
qr-codes
/
{id}
/
analytics
QR Code Analytics
curl --request GET \
  --url https://api.useqrkit.com/v1/qr-codes/{id}/analytics \
  --header 'Authorization: Bearer <token>'
{
  "object": "analytics",
  "qr_code_id": "qr_123",
  "total_scans": 123,
  "first_scan_at": "2023-11-07T05:31:56Z",
  "last_scan_at": "2023-11-07T05:31:56Z",
  "scans_by_day": [
    {
      "date": "2026-06-01",
      "count": 123
    }
  ],
  "countries": [
    {
      "name": "<string>",
      "count": 123
    }
  ],
  "cities": [
    {
      "name": "<string>",
      "count": 123
    }
  ],
  "devices": [
    {
      "name": "<string>",
      "count": 123
    }
  ],
  "operating_systems": [
    {
      "name": "<string>",
      "count": 123
    }
  ],
  "browsers": [
    {
      "name": "<string>",
      "count": 123
    }
  ],
  "referrers": [
    {
      "name": "<string>",
      "count": 123
    }
  ],
  "languages": [
    {
      "name": "<string>",
      "count": 123
    }
  ]
}

Authorizations

Authorization
string
header
required

API key in the Authorization header: Bearer qr_live_… or Bearer qr_test_…. Token endpoints take a Clerk session JWT instead.

Path Parameters

id
string
required

Query Parameters

from
string<date>

Include scans on/after this date.

to
string<date>

Include scans on/before this date.

Response

Analytics summary

object
string
Example:

"analytics"

qr_code_id
string
Example:

"qr_123"

total_scans
integer
first_scan_at
string<date-time> | null
last_scan_at
string<date-time> | null
scans_by_day
object[]
countries
object[]

Top 10 values with scan counts.

cities
object[]

Top 10 values with scan counts.

devices
object[]

Top 10 values with scan counts.

operating_systems
object[]

Top 10 values with scan counts.

browsers
object[]

Top 10 values with scan counts.

referrers
object[]

Top 10 values with scan counts.

languages
object[]

Top 10 values with scan counts.