QR code scan history

Overview

Get paginated scan history (newest first by scanned_at) for a QR code belonging to the authenticated account-user, along with a small summary of the QR code itself.

Prerequisites

  • A bearer token. Callable with Account tokens.
  • The qrCodeId of the record you are targeting.

Base URL

EnvironmentURL
Productionhttps://production-api.shoutaboutus.com
Developmenthttps://development-api.shoutaboutus.com

Endpoint

GET /api/v1/qr-codes/{qrCodeId}/scan-history

Authentication

  • Requires a bearer token in the Authorization: Bearer <bearer-token> header.

  • Who can call it: Account tokens.

  • The QR code must belong to the caller's own company (404 if outside it).

  • The request injects the route id into validation data and asserts it is an existing QR code.

Rate limit

  • No rate limit.

Path parameters

ParameterTypeRequiredDescription
qrCodeIdintegerRequiredDigits only.

Query parameters

  • Query: per_page (integer, optional, 10–100, default 15; values below 10 are raised to 10).

Response

  • data.status (string) — "success".
  • data.data (object) — a paginator of scan-history rows. Each row: id, qr_code_id, qr_code_template_id (nullable), ip_address, user_agent, referer, device_type, browser, os, latitude, longitude, country, city, metadata, scanned_at. Includes paginator keys current_page, per_page, total, last_page.
  • data.message (string) — "QR code scan history retrieved successfully".
  • data.qr_code (object).

200 Success · 200

{
  "data": {
    "status": "success",
    "data": {
      "current_page": 1,
      "data": [
        {
          "id": 123,
          "qr_code_id": 200,
          "qr_code_template_id": null,
          "ip_address": "203.0.113.5",
          "device_type": "mobile",
          "browser": "Chrome",
          "os": "iOS",
          "country": "US",
          "city": "New York",
          "scanned_at": "2026-06-15T10:30:00.000000Z"
        }
      ],
      "per_page": 15,
      "total": 42,
      "last_page": 3
    },
    "message": "QR code scan history retrieved successfully",
    "qr_code": {
      "id": 200,
      "name": "Lobby QR Code",
      "destination_type": "landing_page"
    }
  }
}

Errors

StatusMeaning
401The bearer token is missing, expired or invalid
404Returned if outside the account company
422The request failed validation — the response names the fields
500Unexpected server error

Example request

curl --request GET \
  --url "https://production-api.shoutaboutus.com/api/v1/qr-codes/123/scan-history" \
  --header 'Authorization: Bearer <bearer-token>' \
  --header 'Accept: application/json'

Did this page help you?