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
templateIdof the record you are targeting.
Base URL
| Environment | URL |
|---|---|
| Production | https://production-api.shoutaboutus.com |
| Development | https://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 throughvalidationData.
Rate limit
- No rate limit.
Path parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
templateId | integer | Required | Digits 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 ofqr_code_scan_historyrecords — fields such asid,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
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
| Status | Meaning |
|---|---|
401 | The bearer token is missing, expired or invalid |
404 | Returned if the template does not belong to the authenticated user's company |
422 | The request failed validation — the response names the fields |
500 | Unexpected 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'Updated 10 days ago
Did this page help you?
