Download OpenAPI specification:
📋 Preview Release: This API is currently in preview. While production-ready, the API may evolve based on customer feedback. We will communicate any breaking changes in advance through our developer portal and provide migration guides when needed.
QR Code Generator PRO's API enables you to rapidly create and customize QR Codes and view QR Code scan data within your existing workflow, making it easier to automate and manage your QR Codes.
The API enables the following actions:
Note - only URL QR Codes are currently available through the API. If you have requests for future iterations of the API or use cases you'd like to see supported, please reach out to api-support@qr-code-generator.com.
A QR Code Generator PRO account. Log in to your account and verify your QR Code creation limits.
An API Key.
All endpoints require an API key to be provided via the Authorization header using the Key scheme (e.g., Authorization: Key <your-api-key>).
Retrieves a list of all dynamic QR Codes for the authenticated account.
| perPage | integer [ 1 .. 50 ] Default: 10 Maximum number of QR codes to return (default 10, max 50) |
| cursor | string^[A-Za-z0-9+/=_-]+$ Cursor for pagination. Use the value from |
required | Array of objects (QrCodeListResponse) | ||||||||||||||
Array
| |||||||||||||||
required | object (PaginationResponse) | ||||||||||||||
| |||||||||||||||
{- "data": [
- {
- "id": "12345",
- "type": "url",
- "title": "My QR Code",
- "status": "active",
- "createdAt": "2025-10-20T12:00:00Z",
- "scans": {
- "total": 100,
- "unique": 75
},
}
], - "pagination": {
- "nextCursor": "eyJpZCI6IjEyMzQ1In0",
- "hasMore": true
}
}Creates a dynamic QR Code. The type field in the request body determines the QR Code type.
Currently only "url" type is supported. Requires a valid subscription. All customizations are optional.
| type required | string (QrCodeType) Example: "url" The type of QR Code to create. Must be "url" for this request. | ||||||||||
| url required | string (QrCodeDestinationUrl) [ 1 .. 1500 ] characters ^https?://.* Example: "https://example.com" The destination URL for the QR Code. Must be a valid HTTP or HTTPS URL. Supports internationalized URLs with non-ASCII characters. | ||||||||||
| title | string <= 150 characters Example: "My Dynamic QR Code" Optional title of the QR Code as displayed in the app. | ||||||||||
object (QrCodeCustomizationRequest) Customization options for requests. All fields are optional - omitted fields will use defaults. | |||||||||||
| |||||||||||
{- "type": "url",
- "title": "My Dynamic QR Code",
- "customizations": {
- "background": {
- "color": "#FFFFFF"
}, - "pattern": {
- "color": "#000000",
- "shape": "square"
}
}
}{- "id": "1337",
- "type": "url",
- "title": "string",
- "createdAt": "2025-09-18T07:38:50Z",
- "status": "active",
- "customizations": {
- "frame": {
- "name": "no-frame",
- "color": "#000000",
- "text": "Scan me!"
}, - "background": {
- "color": "#000000"
}, - "corners": {
- "topLeft": {
- "innerColor": "#000000",
- "outerColor": "#000000",
- "shape": "version17"
}, - "topRight": {
- "innerColor": "#000000",
- "outerColor": "#000000",
- "shape": "version17"
}, - "bottomLeft": {
- "innerColor": "#000000",
- "outerColor": "#000000",
- "shape": "version17"
}
}, - "pattern": {
- "shape": "dots",
- "color": "#000000"
}, - "logo": {
- "name": "no-logo"
}
},
}Updates properties of an existing dynamic QR Code, such as its status (active or paused), destination URL and design/customization.
| qrcodeId required | string (QrCodeId) ^[0-9]{1,10}$ Example: 1337 Unique identifier of the QR Code |
| status | string (QrCodeStatus) Enum: "active" "paused" Example: "active" Whether the QR Code is active (scannable) or paused (not scannable). | ||||||||||
| url | string (QrCodeDestinationUrl) [ 1 .. 1500 ] characters ^https?://.* Example: "https://example.com" The destination URL for the QR Code. Must be a valid HTTP or HTTPS URL. Supports internationalized URLs with non-ASCII characters. | ||||||||||
| title | string <= 150 characters Example: "My Dynamic QR Code" Optional title of the QR Code. | ||||||||||
object (QrCodeCustomizationRequest) Customization options for requests. All fields are optional - omitted fields will use defaults. | |||||||||||
| |||||||||||
| id | string (QrCodeId) ^[0-9]{1,10}$ Example: "1337" Unique identifier of the QR Code | ||||||||||
| type | string Example: "url" The type of the QR Code. | ||||||||||
| title | string Title of the QR Code as displayed in the app. | ||||||||||
| createdAt | string <date-time> Example: "2025-09-18T07:38:50Z" The creation timestamp of the QR Code in ISO 8601 format. | ||||||||||
| status | string (QrCodeStatus) Enum: "active" "paused" Example: "active" Whether the QR Code is active (scannable) or paused (not scannable). | ||||||||||
object (QrCodeCustomizationResponse) Customization options in responses. All fields are always present with their current or default values. | |||||||||||
| |||||||||||
| url required | string (QrCodeDestinationUrl) [ 1 .. 1500 ] characters ^https?://.* Example: "https://example.com" The destination URL for the QR Code. Must be a valid HTTP or HTTPS URL. Supports internationalized URLs with non-ASCII characters. | ||||||||||
| previewUrl | string <uri> Example: "https://cdn.qr-code-generator.com/qrcode-preview-api/iwqenadIAdaduiasdasnmsadyyqweqpaskdjadUAIDADASDnadjad7sad8ad8a" The preview URL of the QR Code image. Note that this is a temporary URL meant for preview purposes and may expire after some time. | ||||||||||
{- "status": "paused"
}{- "id": "1337",
- "type": "url",
- "title": "string",
- "createdAt": "2025-09-18T07:38:50Z",
- "status": "active",
- "customizations": {
- "frame": {
- "name": "no-frame",
- "color": "#000000",
- "text": "Scan me!"
}, - "background": {
- "color": "#000000"
}, - "corners": {
- "topLeft": {
- "innerColor": "#000000",
- "outerColor": "#000000",
- "shape": "version17"
}, - "topRight": {
- "innerColor": "#000000",
- "outerColor": "#000000",
- "shape": "version17"
}, - "bottomLeft": {
- "innerColor": "#000000",
- "outerColor": "#000000",
- "shape": "version17"
}
}, - "pattern": {
- "shape": "dots",
- "color": "#000000"
}, - "logo": {
- "name": "no-logo"
}
},
}Retrieves the details of a dynamic QR Code by its unique identifier.
| qrcodeId required | string (QrCodeId) ^[0-9]{1,10}$ Example: 1337 Unique identifier of the QR Code |
| id | string (QrCodeId) ^[0-9]{1,10}$ Example: "1337" Unique identifier of the QR Code | ||||||||||
| type | string Example: "url" The type of the QR Code. | ||||||||||
| title | string Title of the QR Code as displayed in the app. | ||||||||||
| createdAt | string <date-time> Example: "2025-09-18T07:38:50Z" The creation timestamp of the QR Code in ISO 8601 format. | ||||||||||
| status | string (QrCodeStatus) Enum: "active" "paused" Example: "active" Whether the QR Code is active (scannable) or paused (not scannable). | ||||||||||
object (QrCodeCustomizationResponse) Customization options in responses. All fields are always present with their current or default values. | |||||||||||
| |||||||||||
| url required | string (QrCodeDestinationUrl) [ 1 .. 1500 ] characters ^https?://.* Example: "https://example.com" The destination URL for the QR Code. Must be a valid HTTP or HTTPS URL. Supports internationalized URLs with non-ASCII characters. | ||||||||||
| previewUrl | string <uri> Example: "https://cdn.qr-code-generator.com/qrcode-preview-api/iwqenadIAdaduiasdasnmsadyyqweqpaskdjadUAIDADASDnadjad7sad8ad8a" The preview URL of the QR Code image. Note that this is a temporary URL meant for preview purposes and may expire after some time. | ||||||||||
{- "id": "1337",
- "type": "url",
- "title": "string",
- "createdAt": "2025-09-18T07:38:50Z",
- "status": "active",
- "customizations": {
- "frame": {
- "name": "no-frame",
- "color": "#000000",
- "text": "Scan me!"
}, - "background": {
- "color": "#000000"
}, - "corners": {
- "topLeft": {
- "innerColor": "#000000",
- "outerColor": "#000000",
- "shape": "version17"
}, - "topRight": {
- "innerColor": "#000000",
- "outerColor": "#000000",
- "shape": "version17"
}, - "bottomLeft": {
- "innerColor": "#000000",
- "outerColor": "#000000",
- "shape": "version17"
}
}, - "pattern": {
- "shape": "dots",
- "color": "#000000"
}, - "logo": {
- "name": "no-logo"
}
},
}Retrieves the total number of times this QR Code has been scanned. Returns both total scans and unique scans (by IP address).
| qrcodeId required | string (QrCodeId) ^[0-9]{1,10}$ Example: 1337 Unique identifier of the QR Code |
| total required | integer >= 0 Example: "1337" Total number of scans for the QR Code since creation |
| unique required | integer >= 0 Example: "900" Number of unique scans (a combination of IP address and user agent) for the QR Code since creation |
{- "total": 1337,
- "unique": 900
}Retrieves the total number of scans for this QR Code over time. The results can be filtered by date range and grouped by an interval (hourly, daily, monthly).
| qrcodeId required | string (QrCodeId) ^[0-9]{1,10}$ Example: 1337 Unique identifier of the QR Code |
| startDate required | string <date> Example: startDate=2024-07-10 Start date (YYYY-MM-DD). Must be before the endDate. |
| endDate required | string <date> Example: endDate=2024-09-11 End date (YYYY-MM-DD). Must be after the startDate. |
| interval required | string (ScanTotalsInterval) Enum: "hour" "day" "month" Example: interval=month Aggregation interval for scan totals |
| startDate required | string <date> Example: "2024-07-01" Start date of the aggregation period (YYYY-MM-DD) | ||||||
| endDate required | string <date> Example: "2024-09-30" End date of the aggregation period (YYYY-MM-DD) | ||||||
| interval required | string (ScanTotalsInterval) Enum: "hour" "day" "month" Example: "month" Aggregation interval for scan totals | ||||||
required | Array of objects (ScanTotalsItem) Example: [{"time":"2024-07-01T00:00:00Z","total":45,"unique":42},{"time":"2024-08-02T00:00:00Z","total":89,"unique":67},{"time":"2024-09-03T16:00:00Z","total":123,"unique":98}] Array of scan data points. Each entry contains the period timestamp and its total and unique scan counts. | ||||||
Array
| |||||||
{- "startDate": "2024-07-01",
- "endDate": "2024-09-30",
- "interval": "month",
- "scans": [
- {
- "time": "2024-07-01T00:00:00Z",
- "total": 45,
- "unique": 42
}, - {
- "time": "2024-08-01T00:00:00Z",
- "total": 89,
- "unique": 67
}, - {
- "time": "2024-09-01T00:00:00Z",
- "total": 123,
- "unique": 98
}
]
}Returns the entitlements associated with the calling user's account, such as subscription tier, quotas/limits and usage information.
| accountType | string (AccountType) Enum: "free" "trial" "paid" Example: "paid" The type of account classification | ||||||||
| subscriptionTier | string Example: "Professional" | ||||||||
Array of objects (AccountEntitlement) | |||||||||
Array
| |||||||||
{- "accountType": "paid",
- "subscriptionTier": "Professional",
- "entitlements": [
- {
- "name": "activeDynamicQrCodes",
- "description": "Active dynamic QR Codes in your account",
- "limit": 250,
- "usage": 16
}
]
}