QR template scan history

Overview

Get paginated scan-history records for a QR code template (by path ID), newest first by scanned_at, alongside a minimal template stub. Returns 404 if the template does not belong to the authenticated user's company.

Prerequisites

  • A bearer token. Callable with Account tokens.
  • The templateId 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/template/{templateId}/scan-history

Authentication

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

  • Who can call it: Account tokens.

  • The endpoint loads the template for the authenticated user's company only.

  • The {templateId} route segment accepts digits only and is supplied to request validation through validationData.

Rate limit

  • No rate limit.

Path parameters

ParameterTypeRequiredDescription
templateIdintegerRequiredDigits only.

Query parameters

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

Response

  • data.status (string) — "success".
  • data.data (object) — a paginator of scan rows: current_page, data (array of qr_code_scan_history records — fields such as id, qr_code_template_id, ip_address, user_agent, referer, scanned_at), per_page, total, last_page, etc.
  • data.message (string) — "QR code template scan history retrieved successfully".
  • data.qr_code_template (object) — { id, name } of the parent template.

200 Success · 200

{
  "data": {
    "status": "success",
    "data": {
      "current_page": 1,
      "data": [
        {
          "id": 123,
          "qr_code_template_id": 10,
          "ip_address": "192.168.1.1",
          "user_agent": "Mozilla/5.0",
          "referer": "https://example.com",
          "scanned_at": "2026-06-15T10:30:00.000000Z"
        }
      ],
      "per_page": 15,
      "total": 42,
      "last_page": 3
    },
    "message": "QR code template scan history retrieved successfully",
    "qr_code_template": { "id": 10, "name": "Standard A6 Template" }
  }
}

Errors

StatusMeaning
401The bearer token is missing, expired or invalid
404Returned if the template does not belong to the authenticated user's 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/template/123/scan-history" \
  --header 'Authorization: Bearer <bearer-token>' \
  --header 'Accept: application/json'

Did this page help you?