Get one QR code
Overview
Get a code's details and image.
Use this to download or display it.
You'll need the qr_code_id (id in List QR codes).
Returns the code.
Prerequisites
- A bearer token for the account. See Authentication.
- The QR code's id (
qrCodeId), from List QR codes.
Base URL
| Environment | URL |
|---|---|
| Production | https://production-api.shoutaboutus.com |
| Development | https://development-api.shoutaboutus.com |
Endpoint
GET /api/v1/qr-codes/{qrCodeId}
Authentication
Account token
- The endpoint scopes results to the caller's own account automatically; there is no parameter to query another account.
store_idisn't accepted here; to find a location's codes, use List QR codes withstore_id.
QR codes belong to the account that created them, and every QR endpoint matches on that account exactly; it doesn't walk the partner tree. A Partner token sees nothing, even for a location inside the partner's own tree: list endpoints return an empty result, and single-record endpoints return
404 QR code not found. The 404 means "not visible to this token", not "this QR code doesn't exist". Use an Account token for every endpoint in this section.
Rate limit
This endpoint has no rate limit.
Request parameters
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
qrCodeId | path | integer | Yes | The QR code's id (id in List QR codes). Digits only. |
Request body
None.
Request payload
None.
Response body
The payload is inside data.
| Field | Type | Description |
|---|---|---|
status | string | success. |
data | object | The QR code. |
data.id | integer | The QR code's id. Use it as qrCodeId. |
data.name | string | The code's name. |
data.company_id | integer | The account that owns the code. |
data.store_id | integer | The location the code is for. |
data.qr_code_image_path | string | Where the image is stored. |
data.destination_type | string | Where a scan goes: landing_page (a landing page template), review_site (the location's landing page URL on a review site) or custom_url (any URL). |
data.landing_page_id | integer or null | The landing page template, for landing_page. |
data.review_site_id | integer or null | The review site, for review_site. |
data.destination_url | string or null | The URL a scan opens. |
data.last_scanned_at | string or null | When the code was last scanned (ISO 8601), or null. |
data.customization | object or null | How the image looks: color (a hex colour such as #000000, a colour name, or [r, g, b]) and width (pixels, 64 to 2048; 300 when left out). |
data.created_at | string | When the code was created (ISO 8601). |
data.updated_at | string | When the code was last changed (ISO 8601). |
data.deleted_at | string or null | Always null here. |
data.unique_code | string | The code's public id, used in the link the image encodes. |
data.qr_code_image_url | string or null | URL of the QR code image (PNG). |
data.company | object | The owning account. |
data.company.id | integer | The account's id. |
data.company.name | string | The account's name. |
data.store | object or null | The location. |
data.store.id | integer | The location's id. |
data.store.name | string | The location's name. |
data.landing_page | object or null | The landing page template, or null. |
data.landing_page.id | integer | The template's id. |
data.landing_page.unique_code | string | The template's encoded id. |
data.review_site | object or null | The review site ({"id": …}), or null. |
message | string | QR code retrieved successfully |
Response payload
{
"data": {
"status": "success",
"data": {
"id": 2963,
"name": "Default QR Code",
"company_id": 5994,
"store_id": 3007,
"qr_code_image_path": "qr_codes/qr_2963_1790160225.png",
"destination_type": "landing_page",
"landing_page_id": 1,
"review_site_id": null,
"destination_url": "https://production.shoutaboutus.com/lp/1?store_id=3007",
"last_scanned_at": null,
"customization": {
"color": "#000000",
"width": 240
},
"created_at": "2026-09-23T10:43:44.000000Z",
"updated_at": "2026-09-23T10:43:45.000000Z",
"deleted_at": null,
"unique_code": "g7qkum",
"qr_code_image_url": "https://d2ny6zb7otrnhl.cloudfront.net/qr_codes/qr_2963_1790160225.png",
"company": {
"id": 5994,
"name": "Acme Coffee"
},
"store": {
"id": 3007,
"name": "Acme Coffee"
},
"landing_page": {
"id": 1,
"unique_code": "9ocy"
},
"review_site": null
},
"message": "QR code retrieved successfully"
}
}Examples
Success payload
See Response payload.
Error payload
404 Not found
{
"message": "QR code not found",
"status": "error",
"errors": []
}| Status | Meaning |
|---|---|
200 | The QR code. |
401 | The token is missing, expired or invalid. |
404 | QR code not found: the QR code wasn't created under your token's account (another account, a Partner token, or it has been deleted). |
500 | Unexpected server error. |
Example request
curl --request GET \
--url "https://production-api.shoutaboutus.com/api/v1/qr-codes/2963" \
--header 'Authorization: Bearer <bearer-token>' \
--header 'Accept: application/json'Updated 17 days ago
Did this page help you?
