Introduction
This documentation outlines the use of QR Stuff API.
This documentation aims to provide all the information you need to work with our API.
Project
Create Project
POST /api/projects
Example request:
curl -X POST "https://api.qrstuff.com/api/projects" \
-H "Authorization: Bearer [your_api_key]" \
-H "Content-Type: application/x-www-form-urlencoded" \
--data-urlencode 'name=Test Project' \
--data-urlencode 'script=<script>!function(e,t,a,n,c,s,o){e.GoogleAnalyticsObject=c,e[c]=e[c]||function(){(e[c].q=e[c].q||[]).push(arguments)},e[c].l=1*new Date,s=t.createElement(a),o=t.getElementsByTagName(a)[0],s.async=1,s.src=n,o.parentNode.insertBefore(s,o)}(window,document,\"script\",\"//www.google-analytics.com/analytics.js\",\"ga\"),ga(\"create\",\"UA-xxxxxx-1\",\"auto\"),ga(\"send\",\"pageview\");</script>' \
Example Response:
'{
"data": {
"id": 101,
"name": "Test Project",
"num_codes": null,
"created_by": {
"id": 1,
"name": "James Orland"
},
"last_qr_code_creation": "0 days",
"users_with_access": [
{
"id": 1,
"name": "James Orland"
}
],
"script": "<script>!function(e,t,a,n,c,s,o){e.GoogleAnalyticsObject=c,e[c]=e[c]||function(){(e[c].q=e[c].q||[]).push(arguments)},e[c].l=1*new Date,s=t.createElement(a),o=t.getElementsByTagName(a)[0],s.async=1,s.src=n,o.parentNode.insertBefore(s,o)}(window,document,\"script\",\"//www.google-analytics.com/analytics.js\",\"ga\"),ga(\"create\",\"UA-xxxxxx-1\",\"auto\"),ga(\"send\",\"pageview\");</script>",
}
}'
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| name | string | Yes | Project name |
| script | string | No | Custom pixels script. It must be within . |
Response
On success the API will return a JSON object. The HTTP status code will be 201 Created.
| Status Code | Description |
|---|---|
| 201 | Success. Project created. |
Error Responses
If there is an error during create project, the API will return an appropriate error response.
| Status Code | Description |
|---|---|
| 400 | Bad Request - Invalid input data. |
| 401 | Unauthorized - Authentication failed. |
| 422 | Unprocessable Entity. |
| 500 | Internal Server Error - An unexpected error. |
Get Project
GET /api/projects/{id}
Example request:
curl -X GET "https://api.qrstuff.com/api/projects/101" \
-H "Authorization: Bearer [your_api_key]" \
Example Response:
'{
"data": {
"id": 101,
"name": "Test Project",
"num_codes": 2,
"created_by": {
"id": 1,
"name": "James Orland"
},
"last_qr_code_creation": "11 years",
"users_with_access": [
{
"id": 1,
"name": "James Orland"
},
{
"id": 2,
"name": "John Doe"
}
],
"script": "<script>!function(e,t,a,n,c,s,o){e.GoogleAnalyticsObject=c,e[c]=e[c]||function(){(e[c].q=e[c].q||[]).push(arguments)},e[c].l=1*new Date,s=t.createElement(a),o=t.getElementsByTagName(a)[0],s.async=1,s.src=n,o.parentNode.insertBefore(s,o)}(window,document,\"script\",\"//www.google-analytics.com/analytics.js\",\"ga\"),ga(\"create\",\"UA-xxxxxx-1\",\"auto\"),ga(\"send\",\"pageview\");</script>",
}
}'
URL Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| id | int | Yes | Project ID |
Response
On success the API will return a JSON object. The HTTP status code will be 200 OK.
| Status Code | Description |
|---|---|
| 200 | Success. Project fetched. |
Error Responses
If there is an error during fetch project, the API will return an appropriate error response.
| Status Code | Description |
|---|---|
| 400 | Bad Request - Invalid input data. |
| 401 | Unauthorized - Authentication failed. |
| 403 | Forbidden. |
| 404 | Not Found. |
| 422 | Unprocessable Entity. |
| 500 | Internal Server Error - An unexpected error. |
Update Project
PUT /api/projects/{id}
Example request:
curl -X PUT "https://api.qrstuff.com/api/projects/101" \
-H "Authorization: Bearer [your_api_key]" \
-H 'Content-Type: application/json' \
-d '{
"name": "Project World",
"script": "<script>!function(e,t,a,n,c,s,o){e.GoogleAnalyticsObject=c,e[c]=e[c]||function(){(e[c].q=e[c].q||[]).push(arguments)},e[c].l=1*new Date,s=t.createElement(a),o=t.getElementsByTagName(a)[0],s.async=1,s.src=n,o.parentNode.insertBefore(s,o)}(window,document,\"script\",\"//www.google-analytics.com/analytics.js\",\"ga\"),ga(\"create\",\"UA-xxxxxx-1\",\"auto\"),ga(\"send\",\"pageview\");</script>"
}'
Example Response:
'{
"data": {
"id": 101,
"name": "Project World",
"num_codes": 2,
"created_by": {
"id": 1,
"name": "James Orland"
},
"last_qr_code_creation": "0 days",
"users_with_access": [
{
"id": 1,
"name": "James Orland"
}
],
"script": "<script>!function(e,t,a,n,c,s,o){e.GoogleAnalyticsObject=c,e[c]=e[c]||function(){(e[c].q=e[c].q||[]).push(arguments)},e[c].l=1*new Date,s=t.createElement(a),o=t.getElementsByTagName(a)[0],s.async=1,s.src=n,o.parentNode.insertBefore(s,o)}(window,document,\"script\",\"//www.google-analytics.com/analytics.js\",\"ga\"),ga(\"create\",\"UA-xxxxxx-1\",\"auto\"),ga(\"send\",\"pageview\");</script>",
}
}'
URL Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| id | int | Yes | The Project ID. |
Body Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| name | string | Yes | Required. Project name |
| script | string | No | Custom pixels script. It must be within . |
Response
On success the API will return a project updated details json. The HTTP status code will be 200 OK.
| Status Code | Description |
|---|---|
| 200 | Success. Project details fetched. |
Error Responses
If there is an error during update, the API will return an appropriate error response.
| Status Code | Description |
|---|---|
| 400 | Bad Request - Invalid input data. |
| 401 | Unauthorized - Authentication failed. |
| 403 | Forbidden. |
| 404 | Not Found. |
| 422 | Unprocessable Entity. |
| 500 | Internal Server Error - An unexpected error. |
List Projects
GET /api/projects
Example request:
curl -X GET "https://api.qrstuff.com/api/projects/q=default&page=1" \
-H "Authorization: Bearer [your_api_key]" \
Example Response:
'{
"data": [
{
"id": 1,
"name": "Default Project 1",
"num_codes": 100,
"created_by": {
"id": 1,
"name": "James Orland"
},
"last_qr_code_creation": "0 days",
"users_with_access": [
{
"id": 1,
"name": "James Orland"
}
]
}
},
{
"id": 3,
"name": "Default Project 2",
"num_codes": 100,
"created_by": {
"id": 1,
"name": "James Orland"
},
"last_qr_code_creation": "12 days",
"users_with_access": [
{
"id": 1,
"name": "James Orland"
}
]
},
{
"id": 4,
"name": "Default Project 3",
"num_codes": 100,
"created_by": {
"id": 1,
"name": "James Orland"
},
"last_qr_code_creation": "10 days",
"users_with_access": [
{
"id": 1,
"name": "James Orland"
}
]
},
{
"id": 5,
"name": "Default Project 4",
"num_codes": 100,,
"created_by": {
"id": 1,
"name": "James Orland"
},
"last_qr_code_creation": "10 days",
"users_with_access": [
{
"id": 1,
"name": "James Orland"
}
]
},
{
"id": 7,
"name": "Default Project 5",
"num_codes": 100,
"created_by": {
"id": 1,
"name": "James Orland"
},
"last_qr_code_creation": "10 days",
"users_with_access": [
{
"id": 1,
"name": "James Orland"
}
]
}
],
"links": {
"first": "https://api.qrstuff.com/api/projects?page=1",
"last": "https://api.qrstuff.com/api/projects?page=4",
"prev": null,
"next": "https://api.qrstuff.com/api/projects?page=2"
},
"meta": {
"current_page": 1,
"from": 1,
"last_page": 25,
"links": [
{
"url": null,
"label": "« Previous",
"active": false
},
{
"url": "https://api.qrstuff.com/api/projects?page=1",
"label": "1",
"active": true
},
{
"url": "https://api.qrstuff.com/api/projects?page=2",
"label": "2",
"active": false
},
{
"url": "https://api.qrstuff.com/api/projects?page=3",
"label": "3",
"active": false
},
{
"url": "https://api.qrstuff.com/api/projects?page=4",
"label": "4",
"active": false
},
{
"url": "https://api.qrstuff.com/api/projects?page=2",
"label": "Next »",
"active": false
}
],
"path": "https://api.qrstuff.com/api/projects",
"per_page": 5,
"to": 5,
"total": 100
}
}'
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| q | string | No | Query Param for search with project name |
| page | int | No | Query Param pagination |
Response
On success the API will return a JSON object of projects. The HTTP status code will be 200 OK.
| Status Code | Description |
|---|---|
| 200 | Success. Projects fetched. |
Error Responses
If there is an error during fetch projects list, the API will return an appropriate error response.
| Status Code | Description |
|---|---|
| 400 | Bad Request - Invalid input data. |
| 401 | Unauthorized - Authentication failed. |
| 422 | Unprocessable Entity. |
| 500 | Internal Server Error - An unexpected error. |
Delete Project
DELETE /api/projects/{id}
Example request:
curl -X DELETE "https://api.qrstuff.com/api/projects/101" \
-H "Authorization: Bearer [your_api_key]" \
Example Response:
null
URL Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| id | int | Yes | The Project ID. |
Response
On success the API will return true. The HTTP status code will be 200 OK.
| Status Code | Description |
|---|---|
| 200 | Success. Project deleted. |
Error Responses
If there is an error during delete, the API will return an appropriate error response.
| Status Code | Description |
|---|---|
| 400 | Bad Request - Invalid input data. |
| 401 | Unauthorized - Authentication failed. |
| 500 | Internal Server Error - An unexpected error. |
Get QR Codes
GET /api/projects/{id}/qr-codes
Example request:
curl -X GET "https://api.qrstuff.com/api/projects/101/qr-codes?q=default&page=1" \
-H "Authorization: Bearer [your_api_key]" \
Example Response:
'{
"data": [
{
"id": 288,
"name": "QR Code 288",
"content": "MECARD:N:Little,Sandra;ADR:14 Newton Street,Mainville,Florida,687987,USA;TEL:4089961021;EMAIL:sandra@smitheng.com;NOTE:Smith Engineering;URL:www.smitheng.com;",
"dynamic": false,
"content_type": "TEXT",
"rendering_options": null,
"format": "png",
"metadata": null,
"created_at": "2011-07-08T15:18:52+00:00",
"updated_at": "-0001-11-30T00:00:00+00:00",
"preview_url": "https://api.qrstuff.com/api/preview/288/secure?expires=1749547335&signature=9e1cab5866c4219fabe0d2deb1677358150fa0c18782b9aac778acbde934d06a"
},
{
"id": 289,
"name": "QR Code 289",
"content": "MECARD:N:Thomas,Evelyn;ADR:14 Newton Street,Mainville,Florida,687987,USA;TEL:4089961022;EMAIL:evelyn@smitheng.com;NOTE:Smith Engineering;URL:www.smitheng.com;",
"dynamic": false,
"content_type": "TEXT",
"rendering_options": null,
"format": "png",
"metadata": null,
"created_at": "2011-07-08T15:18:52+00:00",
"updated_at": "-0001-11-30T00:00:00+00:00",
"preview_url": "https://api.qrstuff.com/api/preview/289/secure?expires=1749547335&signature=56edd489416d4966ecd9ce9e9719dfb74de981f90827a7af4effcab055f570c8"
},
{
"id": 290,
"name": "QR Code 290",
"content": "MECARD:N:Smith,Melissa;ADR:14 Newton Street,Mainville,Florida,687987,USA;TEL:4089961023;EMAIL:melissa@smitheng.com;NOTE:Smith Engineering;URL:www.smitheng.com;",
"dynamic": false,
"content_type": "TEXT",
"rendering_options": null,
"format": "png",
"metadata": null,
"created_at": "2011-07-08T15:18:52+00:00",
"updated_at": "-0001-11-30T00:00:00+00:00",
"preview_url": "https://api.qrstuff.com/api/preview/290/secure?expires=1749547335&signature=42eaf743499d228e255fa46a80e15c34652b48d03fc0f9eb872dac349d145f96"
},
{
"id": 291,
"name": "QR Code 291",
"content": "MECARD:N:Graham,Ivan;ADR:14 Newton Street,Mainville,Florida,687987,USA;TEL:4089961024;EMAIL:ivan@smitheng.com;NOTE:Smith Engineering;URL:www.smitheng.com;",
"dynamic": false,
"content_type": "TEXT",
"rendering_options": null,
"format": "png",
"metadata": null,
"created_at": "2011-07-08T15:18:53+00:00",
"updated_at": "-0001-11-30T00:00:00+00:00",
"preview_url": "https://api.qrstuff.com/api/preview/291/secure?expires=1749547335&signature=5782e72553d3876130bf64af4483e49fadaf643ecf6a3b3cce03c2e02eeddbc1"
},
{
"id": 293,
"name": "QR Code 293",
"content": "MECARD:N:Smith,Tom;ADR:14 Newton Street,Mainville,Florida,687987,USA;TEL:4089961010;EMAIL:office@smitheng.com;NOTE:Smith Engineering;URL:www.smitheng.com;",
"dynamic": false,
"content_type": "TEXT",
"rendering_options": null,
"format": "png",
"metadata": null,
"created_at": "2011-07-08T15:20:09+00:00",
"updated_at": "-0001-11-30T00:00:00+00:00",
"preview_url": "https://api.qrstuff.com/api/preview/293/secure?expires=1749547335&signature=20ff3a697cf5d5d2cfb8c4a2dc12cf1292469a85d4846a7ab0e5376b81abc35f"
}
],
"links": {
"first": "https://api.qrstuff.com/api/projects/1/qr-codes?page=1",
"last": "https://api.qrstuff.com/api/projects/1/qr-codes?page=434",
"prev": null,
"next": "https://api.qrstuff.com/api/projects/1/qr-codes?page=2"
},
"meta": {
"current_page": 1,
"from": 1,
"last_page": 434,
"links": [
{
"url": null,
"label": "« Previous",
"active": false
},
{
"url": "https://api.qrstuff.com/api/projects/1/qr-codes?page=1",
"label": "1",
"active": true
},
{
"url": "https://api.qrstuff.com/api/projects/1/qr-codes?page=2",
"label": "2",
"active": false
},
{
"url": "https://api.qrstuff.com/api/projects/1/qr-codes?page=3",
"label": "3",
"active": false
},
{
"url": "https://api.qrstuff.com/api/projects/1/qr-codes?page=4",
"label": "4",
"active": false
},
{
"url": "https://api.qrstuff.com/api/projects/1/qr-codes?page=5",
"label": "5",
"active": false
},
{
"url": "https://api.qrstuff.com/api/projects/1/qr-codes?page=6",
"label": "6",
"active": false
},
{
"url": "https://api.qrstuff.com/api/projects/1/qr-codes?page=7",
"label": "7",
"active": false
},
{
"url": "https://api.qrstuff.com/api/projects/1/qr-codes?page=8",
"label": "8",
"active": false
},
{
"url": "https://api.qrstuff.com/api/projects/1/qr-codes?page=9",
"label": "9",
"active": false
},
{
"url": "https://api.qrstuff.com/api/projects/1/qr-codes?page=10",
"label": "10",
"active": false
},
{
"url": null,
"label": "...",
"active": false
},
{
"url": "https://api.qrstuff.com/api/projects/1/qr-codes?page=433",
"label": "433",
"active": false
},
{
"url": "https://api.qrstuff.com/api/projects/1/qr-codes?page=434",
"label": "434",
"active": false
},
{
"url": "https://api.qrstuff.com/api/projects/1/qr-codes?page=2",
"label": "Next »",
"active": false
}
],
"path": "https://api.qrstuff.com/api/projects/1/qr-codes",
"per_page": 5,
"to": 5,
"total": 2168
}
}'
URL Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| id | int | Yes | Project ID |
| batch_id | int | No | QR Code Batch ID |
| q | string | No | Query Param for search with project name |
| page | int | No | Query Param pagination |
Response
On success the API will return a JSON object. The HTTP status code will be 200 OK.
| Status Code | Description |
|---|---|
| 200 | Success. QR Codes fetched. |
Error Responses
If there is an error during fetch project, the API will return an appropriate error response.
| Status Code | Description |
|---|---|
| 400 | Bad Request - Invalid input data. |
| 401 | Unauthorized - Authentication failed. |
| 422 | Unprocessable Entity. |
| 500 | Internal Server Error - An unexpected error. |
Move QR Codes
PUT /api/qrcodes/move-to-project/{id}
Example request:
curl -X PUT "https://api.qrstuff.com/api/qrcodes/move-to-project/101" \
-H "Authorization: Bearer [your_api_key]" \
-d '{
"qrcodes": [
15547,
15548
]
}'
Example Response:
null
URL Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| id | int | Yes | Project Id |
Body Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| qrcodes | array | Yes | QR Code Ids |
Response
On success the API will return a JSON object. The HTTP status code will be 200 OK.
| Status Code | Description |
|---|---|
| 200 | Success. QR Codes moved. |
Error Responses
If there is an error during moving QR Codes, the API will return an appropriate error response.
| Status Code | Description |
|---|---|
| 400 | Bad Request - Invalid input data. |
| 401 | Unauthorized - Authentication failed. |
| 422 | Unprocessable Entity. |
| 500 | Internal Server Error - An unexpected error. |
Restore Deleted Projects
POST /api/projects/restore
Example request:
curl -X POST "https://api.qrstuff.com/api/projects/restore" \
-H "Authorization: Bearer [your_api_key]" \
-d '{
"project_ids": [
101,
102
]
}'
Example Response:
'{
"message": "2 Project(s) have been successfully restored."
}'
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| project_ids | array | Yes | Project Ids |
Response
On success the API will return a JSON object. The HTTP status code will be 200 OK.
| Status Code | Description |
|---|---|
| 200 | Success. Projects successfully restored. |
Error Responses
If there is an error during restore projects, the API will return an appropriate error response.
| Status Code | Description |
|---|---|
| 400 | Bad Request - Invalid input data. |
| 401 | Unauthorized - Authentication failed. |
| 422 | Unprocessable Entity. |
| 500 | Internal Server Error - An unexpected error. |
QR Code Print Config
GET /api/qrcode-print-config
Example request:
curl -X GET "https://api.qrstuff.com/api/qrcode-print-config" \
-H "Authorization: Bearer [your_api_key]" \
Example Response:
'{
"paper_sizes": [
"A3",
"A4",
"Letter"
],
"default_paper_size": "A4",
"qrcode_print_layout": [
"2X2",
"2X3",
"3X3",
"3X4",
"4X4",
"4X5",
"5X5",
"5X6"
],
"default_qrcode_print_layout": "3X4"
}'
Response
On success the API will return a JSON object. The HTTP status code will be 200 OK.
| Status Code | Description |
|---|---|
| 200 | Success. QR Code pring config fetched. |
Error Responses
If there is an error during get QR Code print config, the API will return an appropriate error response.
| Status Code | Description |
|---|---|
| 400 | Bad Request - Invalid input data. |
| 401 | Unauthorized - Authentication failed. |
| 422 | Unprocessable Entity. |
| 500 | Internal Server Error - An unexpected error. |
Print QR Codes
POST /api/projects/{{project_id}}/qrcodes/print
Example request:
curl -X POST "https://api.qrstuff.com/api/projects/101/qrcodes/print" \
-H "Authorization: Bearer [your_api_key]" \
-d '{
"layout": "5X6",
"paper_size": "A3",
}'
Example Response:
'PDF File URL generated.'
URL Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| id | int | Yes | Project Id |
Body Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| layout | string | No | QR Code pring layout. eg: 3X4 |
| paper_size | string | No | QR Code paper size. eg: A4 |
Response
On success the API will return true. The HTTP status code will be 200 OK.
| Status Code | Description |
|---|---|
| 200 | Success. PDF file generated. |
Error Responses
If there is an error during QR Code print of project, the API will return an appropriate error response.
| Status Code | Description |
|---|---|
| 400 | Bad Request - Invalid input data. |
| 401 | Unauthorized - Authentication failed. |
| 422 | Unprocessable Entity. |
| 500 | Internal Server Error - An unexpected error. |
Download QR Codes
GET /api/projects/{{project_id}}/qrcodes/download
Example request:
curl -X GET "https://api.qrstuff.com/api/projects/101/qrcodes/download" \
-H "Authorization: Bearer [your_api_key]" \
Example Response:
'Excel File URL generated.'
URL Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| project_id | int | Yes | The Project ID. |
Response
On success the API will return a JSON object. The HTTP status code will be 200 OK.
| Status Code | Description |
|---|---|
| 200 | Success. Excel file generated & downloaded. |
Error Responses
If there is an error during QR Code download of project, the API will return an appropriate error response.
| Status Code | Description |
|---|---|
| 400 | Bad Request - Invalid input data. |
| 401 | Unauthorized - Authentication failed. |
| 422 | Unprocessable Entity. |
| 500 | Internal Server Error - An unexpected error. |
Project Analytics
Total Scans
POST /api/analytics/total-scans
Example request:
curl -X POST "https://api.qrstuff.com/api/analytics/total-scans" \
-H "Authorization: Bearer [your_api_key]" \
-d '{
"scope": "project",
"idproject": 101,
"start_date": "2025-01-01",
"end_date": "2025-02-01"
}'
Example Response:
'{
"total_scans": 100,
"growth": 100,
"url": "https://api.qrstuff.com/project/101/daily-scans-chart?end_date=2025-02-01&start_date=2025-01-01&signature=514c75cc6e9f67799fe6d8b2cab3584c589ef1a4ae9f952f99fc05e70b6f3b78"
}'
Body Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| scope | string | Yes | Scope. Must be project |
| idproject | int | Yes | Project Id |
| start_date | date | No | Optional. Start Date |
| end_date | date | No | Optional. End Date |
Response
On success the API will return a JSON object that includes the total_scans, along with growth data and a daily scan chart. The HTTP status code will be 200 OK.
| Status Code | Description |
|---|---|
| 200 | Success. Result fetched successfully. |
Error Responses
If there is an error during request, the API will return an appropriate error response.
| Status Code | Description |
|---|---|
| 400 | Bad Request - Invalid input data. |
| 401 | Unauthorized - Authentication failed. |
| 422 | Unprocessable Entity. |
| 500 | Internal Server Error - An unexpected error. |
Device Wise Scans
POST /api/analytics/device-wise-scans
Example request:
curl -X POST "https://api.qrstuff.com/api/analytics/device-wise-scans" \
-H "Authorization: Bearer [your_api_key]" \
-d '{
"scope": "project",
"idproject": 101,
"start_date": "2025-01-01",
"end_date": "2025-02-01"
}'
Example Response:
'{
"url": "https://api.qrstuff.com/project/101/device-scans-chart?end_date=2025-02-01&start_date=2025-01-01&signature=514c75cc6e9f67799fe6d8b2cab3584c589ef1a4ae9f952f99fc05e70b6f3b78"
}'
Body Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| scope | string | Yes | Scope. Must be project |
| idproject | int | Yes | Project Id |
| start_date | date | No | Optional. Start Date |
| end_date | date | No | Optional. End Date |
Response
On success the API will return a JSON object that includes a device wise scan chart. The HTTP status code will be 200 OK.
| Status Code | Description |
|---|---|
| 200 | Success. Result fetched successfully. |
Error Responses
If there is an error during request, the API will return an appropriate error response.
| Status Code | Description |
|---|---|
| 400 | Bad Request - Invalid input data. |
| 401 | Unauthorized - Authentication failed. |
| 422 | Unprocessable Entity. |
| 500 | Internal Server Error - An unexpected error. |
Top Performing Location
POST /api/analytics/top-performing-location
Example request:
curl -X POST "https://api.qrstuff.com/api/analytics/top-performing-location" \
-H "Authorization: Bearer [your_api_key]" \
-d '{
"scope": "project",
"idproject": 101,
"start_date": "2025-01-01",
"end_date": "2025-02-01"
}'
Example Response:
'{
"country_code": "US",
"country_name": "United State",
"scans": 100,
"total_scan": 100,
"percentage_of_total": 100
}'
Body Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| scope | string | Yes | Scope. Must be project |
| idproject | int | Yes | Project Id |
| start_date | date | No | Optional. Start Date |
| end_date | date | No | Optional. End Date |
Response
On success the API will return a JSON object. The HTTP status code will be 200 OK.
| Status Code | Description |
|---|---|
| 200 | Success. Result fetched successfully. |
Error Responses
If there is an error during request, the API will return an appropriate error response.
| Status Code | Description |
|---|---|
| 400 | Bad Request - Invalid input data. |
| 401 | Unauthorized - Authentication failed. |
| 422 | Unprocessable Entity. |
| 500 | Internal Server Error - An unexpected error. |
Top Performing Date
POST /api/analytics/top-performing-date
Example request:
curl -X POST "https://api.qrstuff.com/api/analytics/top-performing-date" \
-H "Authorization: Bearer [your_api_key]" \
-d '{
"scope": "project",
"idproject": 101,
"start_date": "2025-01-01",
"end_date": "2025-02-01"
}'
Example Response:
'{
"date": "2025-01-01",
"scans": 100,
"total_scan": 100,
"percentage_of_total": 100
}'
Body Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| scope | string | Yes | Scope. Must be project |
| idproject | int | Yes | Project Id |
| start_date | date | No | Optional. Start Date |
| end_date | date | No | Optional. End Date |
Response
On success the API will return a JSON object. The HTTP status code will be 200 OK.
| Status Code | Description |
|---|---|
| 200 | Success. Result fetched successfully. |
Error Responses
If there is an error during request, the API will return an appropriate error response.
| Status Code | Description |
|---|---|
| 400 | Bad Request - Invalid input data. |
| 401 | Unauthorized - Authentication failed. |
| 422 | Unprocessable Entity. |
| 500 | Internal Server Error - An unexpected error. |
Unique Users
POST /api/analytics/unique-users
Example request:
curl -X POST "https://api.qrstuff.com/api/analytics/unique-users" \
-H "Authorization: Bearer [your_api_key]" \
-d '{
"scope": "project",
"idproject": 101,
"start_date": "2025-01-01",
"end_date": "2025-02-01"
}'
Example Response:
'{
"current_page": 1,
"data": [
{
"date": "2025-01-01",
"users": "10"
},
{
"date": "2025-01-02",
"users": "20"
},
{
"date": "2025-01-03",
"users": "5"
},
{
"date": "2025-01-04",
"users": "10"
},
{
"date": "2025-01-05",
"users": "15"
},
{
"date": "2025-01-06",
"users": "25"
},
{
"date": "2025-01-07",
"users": "10"
},
{
"date": "2025-01-08",
"users": "20"
},
{
"date": "2025-01-09",
"users": "5"
},
{
"date": "2025-01-10",
"users": "10"
},
{
"date": "2025-01-11",
"users": "15"
},
{
"date": "2025-01-12",
"users": "25"
},
{
"date": "2025-01-13",
"users": "10"
},
{
"date": "2025-01-14",
"users": "20"
},
{
"date": "2025-01-15",
"users": "5"
}
],
"first_page_url": "https://api.qrstuff.com/api/analytics/unique-users?page=1",
"from": 1,
"last_page": 2,
"last_page_url": "https://api.qrstuff.com/api/analytics/unique-users?page=1",
"links": [
{
"url": null,
"label": "« Previous",
"active": false
},
{
"url": "https://api.qrstuff.com/api/analytics/unique-users?page=1",
"label": "1",
"active": true
},
{
"url": "https://api.qrstuff.com/api/analytics/unique-users?page=2",
"label": "2",
"active": false
},
{
"url": "https://api.qrstuff.com/api/analytics/unique-users?page=2",
"label": "Next »",
"active": false
}
],
"next_page_url": "https://api.qrstuff.com/api/analytics/unique-users?page=2",
"path": "https://api.qrstuff.com/api/analytics/unique-users",
"per_page": 15,
"prev_page_url": null,
"to": 15,
"total": 30,
"url": "https://api.qrstuff.com/project/101/user-scans-chart?end_date=2025-02-01&start_date=2025-01-01&signature=10de41f772e09093daadbe59944f6c5981ddd763d129cebdef2f84d376140e58"
}'
Body Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| scope | string | Yes | Scope. Must be project |
| idproject | int | Yes | Project Id |
| start_date | date | No | Optional. Start Date |
| end_date | date | No | Optional. End Date |
Response
On success the API will return a JSON object included with unique user chart URL. The HTTP status code will be 200 OK.
| Status Code | Description |
|---|---|
| 200 | Success. Result fetched successfully. |
Error Responses
If there is an error during request, the API will return an appropriate error response.
| Status Code | Description |
|---|---|
| 400 | Bad Request - Invalid input data. |
| 401 | Unauthorized - Authentication failed. |
| 422 | Unprocessable Entity. |
| 500 | Internal Server Error - An unexpected error. |
Chart- Country Wise Scans
POST /api/analytics/chart
Example request:
curl -X POST "https://api.qrstuff.com/api/analytics/chart" \
-H "Authorization: Bearer [your_api_key]" \
-d '{
"chart_type": "country"
"country": null,
"scope": "project",
"idproject": 101,
"start_date": "2025-01-01",
"end_date": "2025-02-01"
}'
Example Response:
'{
"url": "https://api.qrstuff.com/project/101/country-scans-chart?end_date=2025-02-01&start_date=2025-01-01&signature=96dcd41fe6e1fbc9eb45c3a3eaeea430ab54e7876a653d7c6ea362fb96ce27c4"
}'
Body Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| chart_type | string | Yes | Chart Type . Must be country or region |
| country | string | No | Country Code. Required if chart_type is region. eg. US |
| scope | string | Yes | Scope. Must be project |
| idproject | int | Yes | Project Id |
| start_date | date | No | Optional. Start Date |
| end_date | date | No | Optional. End Date |
Response
On success the API will return a JSON object included chart URL. The HTTP status code will be 200 OK.
| Status Code | Description |
|---|---|
| 200 | Success. Chart URL generated. |
Error Responses
If there is an error during request, the API will return an appropriate error response.
| Status Code | Description |
|---|---|
| 400 | Bad Request - Invalid input data. |
| 401 | Unauthorized - Authentication failed. |
| 422 | Unprocessable Entity. |
| 500 | Internal Server Error - An unexpected error. |
Chart- Scans by Time of Day
POST /api/analytics/chart
Example request:
curl -X POST "https://api.qrstuff.com/api/analytics/chart" \
-H "Authorization: Bearer [your_api_key]" \
-d '{
"chart_type": "time"
"scope": "project",
"idproject": 101,
"start_date": "2025-01-01",
"end_date": "2025-02-01"
}'
Example Response:
'{
"url": "https://api.qrstuff.com/project/101/scans-chart-by-time-of-day?end_date=2025-02-01&start_date=2025-01-01&signature=32aa4330dcded6c2bdf9f01abfda0c2ddbd5f1606fd1987a3fd1d72fd74356f3"
}'
Body Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| chart_type | string | Yes | Chart Type . Must be time |
| scope | string | Yes | Scope. Must be project |
| idproject | int | Yes | Project Id |
| start_date | date | No | Optional. Start Date |
| end_date | date | No | Optional. End Date |
Response
On success the API will return a JSON object included chart URL. The HTTP status code will be 200 OK.
| Status Code | Description |
|---|---|
| 200 | Success. Chart URL generated. |
Error Responses
If there is an error during request, the API will return an appropriate error response.
| Status Code | Description |
|---|---|
| 400 | Bad Request - Invalid input data. |
| 401 | Unauthorized - Authentication failed. |
| 422 | Unprocessable Entity. |
| 500 | Internal Server Error - An unexpected error. |
Files
Store File
POST /api/files
Example request:
curl -X POST "https://api.qrstuff.com/api/files" \
-H "Authorization: Bearer [your_api_key]" \
--form 'file=@"/file.jpg"'
Example Response:
'{
"data": {
"idfs_file": 101,
"name": "file.jpg",
"size": 271545,
"created": "2024-06-07T10:38:58.000000Z",
"url": "https://s3.aws.amazon.com/example-files/file.jpg?X-Amz-Content-Sha256=UNSIGNED-PAYLOAD&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=example%2F20240607%2Feu-west-1%2Fs3%2Faws4_request&X-Amz-Date=20240607T103858Z&X-Amz-SignedHeaders=host&X-Amz-Expires=3600&X-Amz-Signature=73bed04f35aaf463d57da6ca7ab63f907a7401066edd53a0d7d9a6e6b305c665"
}
}'
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| file | file | Yes | The file to be uploaded. File extension: jpg, png, gif, mp3, m4a, pdf, mov, mp4, webm, csv, xls, xlsx |
Response
On success the API will return a JSON object. The HTTP status code will be 201 Created.
| Status Code | Description |
|---|---|
| 201 | Success. File uploaded. |
Error Responses
If there is an error during store file, the API will return an appropriate error response.
| Status Code | Description |
|---|---|
| 400 | Bad Request - Invalid input data. |
| 401 | Unauthorized - Authentication failed. |
| 422 | Unprocessable Entity. |
| 500 | Internal Server Error - An unexpected error. |
Get File
GET /api/files/{id}
Example request:
curl -X GET "https://api.qrstuff.com/api/files/101" \
-H "Authorization: Bearer [your_api_key]" \
Example Response:
'{
"data": {
"idfs_file": 101,
"name": "file.jpg",
"size": 271545,
"created": "2024-06-07T10:38:58.000000Z",
"url": "https://s3.aws.amazon.com/example-files/file.jpg?X-Amz-Content-Sha256=UNSIGNED-PAYLOAD&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=example%2F20240607%2Feu-west-1%2Fs3%2Faws4_request&X-Amz-Date=20240607T103858Z&X-Amz-SignedHeaders=host&X-Amz-Expires=3600&X-Amz-Signature=73bed04f35aaf463d57da6ca7ab63f907a7401066edd53a0d7d9a6e6b305c665"
}
}'
URL Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| id | int | Yes | The file ID to be uploaded. |
Response
On success the API will return a JSON object. The HTTP status code will be 200 OK.
| Status Code | Description |
|---|---|
| 200 | Success. File fetched. |
Error Responses
If there is an error during fetch file, the API will return an appropriate error response.
| Status Code | Description |
|---|---|
| 400 | Bad Request - Invalid input data. |
| 401 | Unauthorized - Authentication failed. |
| 422 | Unprocessable Entity. |
| 500 | Internal Server Error - An unexpected error. |
QR Code Generate
| Parameter | Type | Required | Description |
|---|---|---|---|
| idproject | int | No | Optional. Project ID |
| name | string | No | Optional. QR Code name/ title |
| No | Optional. Valid email address | ||
| idclient | int | No | Optional. Valid client ID. Must exists in Clients database |
| type | string | Yes | Data type. Supported data types are: APP_DOWNLOAD, AR_QR_CODE, ATTENDANCE, AUDIO, BITCOIN, COUPON, DETAIL_PAGE, DISCORD, DPP_GS1, DROPBOX, EVENTBRITE, FACEBOOK, FACEBOOK_LIKE, FILE_UPLOAD, FORM_SUBMISSION, GOOGLE_FORM, GOOGLE_REVIEW, GOOGLE_MEET, IMAGE, INSTAGRAM, ITUNES_LINK, LINKEDIN, LINKEDIN_SHARE, MAILTO, MAPS, MATMSG, NEWSLETTER, PDF, PAYPAL_BUY, SMSTO, SNAPCHAT, SOCIAL_LINKS, SPOTIFY, TEL, TEXT, TELEGRAM, TIKTOK, TILEZ_DBC, TWITTER, TWITTER_STATUS, UPI, VCALENDAR, VCARD, VENMO, VIDEO, VIMEO, WHATSAPP, WIFI, YOUTUBE, ZELLE, ZOOM |
| dynamic | bool | No | Optional. Use true our qrs.ly URL shortener, allows you to edit target links anytime as well. and false for Embed URL into code as is. Default: false |
| url_key | string | No | Optional. Custom url key for QR Code. Only allowed if dynamic is true. Not supported keys are: health, client, dashboard, error, login, logout, project, qr, qrstuff, redirect |
| format | string | No | Optional. Qrcode image format. Supported formats are: bmp, dxf, eps, gif, jpg, pdf, png, png8, svg, tiff, webp. Default: png |
| error_correction_level | string | No | Optional. The QR code ECL. Supported code are: H, M, L, Q. Default: L |
| size | int | No | Optional. The QR code size. Min:128, Max:1024. Default: 128 |
| resolution | int | No | Optional. The QR code resolution. Supported resolution 72, 150, 300, 600. Default: 72 |
| gradient | string | No | Optional. The QR code gradient type. Supported types are: radial, vertical, diagonal, inverse_diagonal, horizontal. Not supported if the format is DXF. Not supported if the background_image is present. Not supported if the foreground_image is present. Default: null |
| colors.bg | string | No | Optional. Background color of the QR code. Must match the regex /^#[0-9a-f]{6}$/i. Default: #ffffff |
| colors.fg | string | No | Optional. Foreground color of the QR code. Must match the regex /^#[0-9a-f]{6}$/i. Default: #000000 |
| colors.finder | string | No | Optional. Color of the finder pattern. Must match the regex /^#[0-9a-f]{6}$/i. Default: #000000 |
| colors.finder_eye | string | No | Optional. Color of the finder pattern eye. Must match the regex /^#[0-9a-f]{6}$/i. Default: #000000 |
| colors.alignment_inner | string | No | Optional. Color of the alignment pattern (inner). Must match the regex /^#[0-9a-f]{6}$/i. Default: #000000 |
| colors.alignment_outer | string | No | Optional. Color of the alignment pattern (outer).Must match the regex /^#[0-9a-f]{6}$/i. Default: #000000 |
| colors.gradient | string | No | Optional. Color of the gradient. Must match the regex /^#[0-9a-f]{6}$/i. Default: null |
| colors.center_text | string | No | Optional. Color of the center text. Must match the regex /^#[0-9a-f]{6}$/i. Default: #000000 |
| colors.transparent | bool | No | Optional. Indicates if the QR code has transparency. Default: false |
| module_shape | string | No | Optional. Shape of the QR code modules. Supported shapes are: square, round, dot, square_outlined, square_rounded_connected, dots_connected, diamond, diamond_rounded, star_4_point, star_4_point_rounded, star_5_point, star_5_point_rounded. Default: square |
| finder_shape | string | No | Optional. Shape of the finder pattern. Supported shapes are: square, round, circle, diamond, diamond_rounded, star_4_point, star_4_point_rounded, star_5_point, star_5_point_rounded. Default: square |
| finder_eye_shape | string | No | Optional. Shape of the finder pattern eye. Supported shapes are: square, round, circle, dot, square_outlined, square_rounded_outlined, diamond, diamond_rounded, star_4_point, star_4_point_rounded, star_5_point, star_5_point_rounded. Default: square |
| alignment_outer_shape | string | No | Optional. Shape of the alignment pattern (outer). Supported shapes are: square, round, circle, dot, square_outlined, square_rounded_outlined, diamond, diamond_rounded, star_4_point, star_4_point_rounded, star_5_point, star_5_point_rounded. Default: square |
| alignment_inner_shape | string | No | Optional. Shape of the alignment pattern (inner). Supported shapes are: square, round, dot, square_outlined, diamond, diamond_rounded, star_4_point, star_4_point_rounded, star_5_point, star_5_point_rounded. Default: square |
| center_text | string | No | Optional. Text to embed in the QR code. Text length should be Min:1, Max:16. Not supported if the format is DXF. Not supported if logo is present. |
| logo.idfs_file | int | No | Optional. ID of the logo file to embed in the QR code. Must be a valid image url or base64-encoded png/jpeg image string. Not supported if the format is DXF. Not supported if center_text is present. Default: null |
| logo.multiplier | float | No | Optional. Used only when a logo is specified. Defines a scale factor for resizing the logo. For example, a value of 1.1 increases the logo size by 10%. Supported range: 0.5 to 1.5. Default: null |
| background_image.idfs_file | int | No | Optional. ID of the background image file to use. Must be a valid image url. Not supported if the format is DXF. Not supported if the module_shape is connected. Not supported if the gradient is present. Not supported if the foreground_image is present. Default: null |
| foreground_image.idfs_file | int | No | Optional. ID of the foreground image file to use. Must be a valid image url. Not supported if the format is DXF. Not supported if the gradient is present. Not supported if the background_image is present. Default: null |
| require_password | bool | No | Optional. Use true for QR code password protection. Default: false |
| password | string | No | Required if require_password is true. Min:4, Max:128. Default: null |
| password_attempts_limit | int | No | Optional. Password attempts limit. Min:1, Max:6. Default: null |
| password_failure_redirect | bool | No | Optional. Use true for to redirect password failed. Default: null |
| password_failure_url | string | No | Optional. Required if password_failure_redirect is null |
| password_failure_message | string | No | Optional. Required if password_failure_redirect is null |
| password_note | string | No | Optional. Password note |
| active | bool | No | Optional. Use false to inactive QR Code. Default: true |
| inactive_from | string | No | Optional. Must be in now or schedule_later. Default: now |
| active_after | string | No | Optional. Required if inactive_from is schedule_later. Date format: Y-m-d H:i. Allowed future date. |
| inactive_message | string | No | Optional. The QR Code inactive message. Defult: null |
| inactive_url | url | No | Optional. A valid URL where inactive code will redirect. Max:2048 Defult: null |
| hit_limit_enabled | bool | No | Optional. Use true for to enable QR Code hit limit. Default: false |
| hit_limit | int | No | Optional. The QR Code hit limit. Max:9999999 |
| hit_limit_message | string | No | Optional. The QR Code hit limit exceeded message. Max:1000 |
| hit_limit_url | url | No | Optional. A valid URL where QR code will redirect once hit limit exceeded. Max:2048 |
| slack_settings | array | No | Optional. An array containing slack setting for the QR code. |
| slack_settings.enabled | bool | No | Optional. Use true for to enable QR Code slack setting. Default: false |
| slack_settings.notify_scans | bool | No | Optional. Use true for to enable QR Code scan notification. Default: false |
| slack_settings.scans_channel | string | No | Require if notify_scans is true . The slack channel name where scan notification sent. Default: null |
| slack_settings.notify_submissions | bool | No | Optional. Use true for to enable QR Code notification on submit. Supported data types are: FORM_SUBMISSION, ATTENDANCE. Default: false |
| slack_settings.submissions_channel | string | No | Require if notify_submissions is true . The slack channel name where submit notification sent. Supported data types are: FORM_SUBMISSION, ATTENDANCE. Default: null |
| gacampaign | array | No | An array containing Google Campaign Tracking for the QR code. Only supported for URL data type. |
| gacampaign.source | string | No | Optional. Google Campaign Source. Max:255. Default: null |
| gacampaign.medium | string | No | Optional. Google Campaign Medium. Max:255. Default: QR Code |
| gacampaign.content | string | No | Optional. Google Campaign Content. Max:255. Default: null |
| gacampaign.name | string | No | Optional. Google Campaign Name. Max:255. Default: null |
| enable_gps_tracking | bool | No | Optional. Use true to enable GPS tracking for QR Code. Allowed when dynamic is true. Default: false |
| metadata | array | No | An array containing metadata for the QR code. |
| script | string | No | Custom pixels script. It must be within <script></script>. |
| variants | array | No | Optional. An array containing QR code variants data according to rules. Only supported when dynamic is true. |
| variants.name | string | No | QR code variants name. Max:255. |
| variants.rules | array | No | Required when variants is present. The conditions that must be met for this variant to apply. You can nest groups to build complex logic. |
| variants.data | array | No | Required when variants is present. The data payload to apply when this variant matches.. Typically used to override QR destination or other dynamic properties. |
App Download
POST /api/generate
Example request:
curl -X POST "https://api.qrstuff.com/api/generate" \
-H "Authorization: Bearer [your_api_key]" \
-H "Content-Type: application/json" \
-d '{
"data": {
"itunes_url": null,
"itunes_ipad_url": null,
"google_play_tablet_url": null,
"google_play_tablet_cn_url": null,
"google_play_url": null,
"google_play_cn_url": null,
"blackberry_app_world_url": null,
"blackberry_ten_app_world_url": null,
"windows_marketplace_url": null,
"fallback_url": ""
},
"type": "APP_DOWNLOAD",
"dynamic": false,
"format": "png",
"size": 512,
"error_correction_level": "L",
"gradient": "diagonal",
"colors": {
"bg": "#FFFFFF",
"fg": "#000000",
"finder": "#000000",
"finder_eye": "#000000",
"alignment_inner": "#000000",
"alignment_outer": "#000000",
"gradient": "#5D4696",
"center_text": "#000000",
"transparent": false
},
"module_shape": "square",
"finder_shape": "square",
"finder_eye_shape": "square",
"alignment_outer_shape": "square",
"alignment_inner_shape": "square",
"center_text": null,
"logo": {
"idfs_file": null,
"multiplier": null
},
"background_image": {
"idfs_file": null
},
"foreground_image": {
"idfs_file": null
},
"script": "<script>!function(e,t,a,n,c,s,o){e.GoogleAnalyticsObject=c,e[c]=e[c]||function(){(e[c].q=e[c].q||[]).push(arguments)},e[c].l=1*new Date,s=t.createElement(a),o=t.getElementsByTagName(a)[0],s.async=1,s.src=n,o.parentNode.insertBefore(s,o)}(window,document,\"script\",\"//www.google-analytics.com/analytics.js\",\"ga\"),ga(\"create\",\"UA-xxxxxx-1\",\"auto\"),ga(\"send\",\"pageview\");</script>"
}'
The above request will return a PNG file. The HTTP status code will be
201 Created.
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| data.itunes_url | string | Required without all other URLs | URL for the iTunes store. |
| data.itunes_ipad_url | string | Required without all other URLs | URL for the iTunes store for iPad. |
| data.google_play_tablet_url | string | Required without all other URLs | URL for the Google Play store for tablets. |
| data.google_play_tablet_cn_url | string | Required without all other URLs | URL for the Google Play store for tablets in China. |
| data.google_play_url | string | Required without all other URLs | URL for the Google Play store. |
| data.google_play_cn_url | string | Required without all other URLs | URL for the Google Play store in China. |
| data.blackberry_app_world_url | string | Required without all other URLs | URL for the BlackBerry App World. |
| data.blackberry_ten_app_world_url | string | Required without all other URLs | URL for the BlackBerry 10 App World. |
| data.windows_marketplace_url | string | Required without all other URLs | URL for the Windows Marketplace. |
| data.fallback_url | string | Required | Fallback URL to be used if no specific store URL is available. |
| type | string | Yes | Type must be APP_DOWNLOAD. |
Response
On success the API will return a PNG file. The HTTP status code will be 201 Created.
| Status Code | Description |
|---|---|
| 201 | The QR Code successfully generated. |
Error Responses
If there is an error during QR code generate, the API will return an appropriate error response.
| Status Code | Description |
|---|---|
| 400 | Bad Request - Invalid input data. |
| 401 | Unauthorized - Authentication failed. |
| 422 | Unprocessable Entity. |
| 500 | Internal Server Error - An unexpected error. |
AR QR Code
POST /api/generate
Example request:
shell curl -X POST "https://api.qrstuff.com/api/generate" \ -H "Authorization: Bearer [your_api_key]" \ -H "Content-Type: application/json" \ -d '{ "data": { "idfs_file": 101, }, "type": "AR_QR_CODE", "dynamic": true, "format": "png", "size": 512, "error_correction_level": "L", "gradient": "diagonal", "colors": { "bg": "#FFFFFF", "fg": "#000000", "finder": "#000000", "finder_eye": "#000000", "alignment_inner": "#000000", "alignment_outer": "#000000", "gradient": "#5D4696", "center_text": "#000000", "transparent": false }, "module_shape": "square", "finder_shape": "square", "finder_eye_shape": "square", "alignment_outer_shape": "square", "alignment_inner_shape": "square", "center_text": null, "logo": { "idfs_file": null, "multiplier": null }, "background_image": { "idfs_file": null }, "foreground_image": { "idfs_file": null }, "script": "<script>!function(e,t,a,n,c,s,o){e.GoogleAnalyticsObject=c,e[c]=e[c]||function(){(e[c].q=e[c].q||[]).push(arguments)},e[c].l=1*new Date,s=t.createElement(a),o=t.getElementsByTagName(a)[0],s.async=1,s.src=n,o.parentNode.insertBefore(s,o)}(window,document,\"script\",\"//www.google-analytics.com/analytics.js\",\"ga\"),ga(\"create\",\"UA-xxxxxx-1\",\"auto\"),ga(\"send\",\"pageview\");</script>" }'The above request will return a PNG file. The HTTP status code will be201 Created.Parameters
Parameter Type Required Description data.idfs_file integer Required The ID of the file. type string Yes Type must be AR_QR_CODE.dynamic bool Yes Must be true. Response
On success the API will return a PNG file. The HTTP status code will be
201 Created. | Status Code | Description | |-------------|--------------------------------| | 201 | The QR Code successfully generated. |Error Responses
If there is an error during QR code generate, the API will return an appropriate error response. | Status Code | Description | |-------------|------------------------------------| | 400 | Bad Request - Invalid input data. | | 401 | Unauthorized - Authentication failed. | | 422 | Unprocessable Entity. | | 500 | Internal Server Error - An unexpected error. |
Attendance
POST /api/generate
Example request:
curl -X POST "https://api.qrstuff.com/api/generate" \
-H "Authorization: Bearer [your_api_key]" \
-H "Content-Type: application/json" \
-d '{
"data": {
"idgoogle_sheet": 101,
"full_name_label":"Full Name",
"location":"QRStuff",
"event":"Meeting",
"record_full_name":true,
"record_location":true,
"action":"CheckIN",
"enable_geofencing": true,
"latitude": 26.8557923,
"longitude": 75.8072007,
"radius": 1
},
"type": "ATTENDANCE",
"dynamic": true,
"format": "png",
"size": 512,
"error_correction_level": "L",
"gradient": "diagonal",
"colors": {
"bg": "#FFFFFF",
"fg": "#000000",
"finder": "#000000",
"finder_eye": "#000000",
"alignment_inner": "#000000",
"alignment_outer": "#000000",
"gradient": "#5D4696",
"center_text": "#000000",
"transparent": false
},
"module_shape": "square",
"finder_shape": "square",
"finder_eye_shape": "square",
"alignment_outer_shape": "square",
"alignment_inner_shape": "square",
"center_text": null,
"logo": {
"idfs_file": null,
"multiplier": null
},
"background_image": {
"idfs_file": null
},
"foreground_image": {
"idfs_file": null
},
"script": "<script>!function(e,t,a,n,c,s,o){e.GoogleAnalyticsObject=c,e[c]=e[c]||function(){(e[c].q=e[c].q||[]).push(arguments)},e[c].l=1*new Date,s=t.createElement(a),o=t.getElementsByTagName(a)[0],s.async=1,s.src=n,o.parentNode.insertBefore(s,o)}(window,document,\"script\",\"//www.google-analytics.com/analytics.js\",\"ga\"),ga(\"create\",\"UA-xxxxxx-1\",\"auto\"),ga(\"send\",\"pageview\");</script>"
}'
The above request will return a PNG file. The HTTP status code will be
201 Created.
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| data.idgoogle_sheet | integer | Required | The ID of the Google Sheet. |
| data.location | string | Sometimes, required | The location associated with the action. |
| data.action | string | Sometimes, required | The action to be performed. |
| data.event | string | Sometimes, required | The event triggering the action. |
| data.record_full_name | boolean | Sometimes | Flag indicating if the full name should be recorded. |
| data.full_name_label | string | Sometimes, required with record_full_name |
The label to use for the full name if it is being recorded. |
| data.record_location | boolean | Sometimes | Flag indicating if the location should be recorded. |
| data.enable_geofencing | boolean | Sometimes | Flag indicating if the scans need to validated with geo-location. |
| data.latitude | numeric | Sometimes, required with enable_geofencing |
Latitude of the event location. Must be between -90 and 90. |
| data.longitude | numeric | Sometimes, required with enable_geofencing |
Longitude of the event location. Must be between -180 and 180. |
| data.radius | numeric | Sometimes, required with enable_geofencing |
Radius to validate qrcode to be scanned. |
| type | string | Yes | Type must be ATTENDANCE. |
| dynamic | bool | Yes | Must be true. |
Response
On success the API will return a PNG file. The HTTP status code will be 201 Created.
| Status Code | Description |
|---|---|
| 201 | The QR Code successfully generated. |
Error Responses
If there is an error during QR code generate, the API will return an appropriate error response.
| Status Code | Description |
|---|---|
| 400 | Bad Request - Invalid input data. |
| 401 | Unauthorized - Authentication failed. |
| 422 | Unprocessable Entity. |
| 500 | Internal Server Error - An unexpected error. |
Audio File
POST /api/generate
Example request:
curl -X POST "https://api.qrstuff.com/api/generate" \
-H "Authorization: Bearer [your_api_key]" \
-H "Content-Type: application/json" \
-d '{
"data": {
"idfs_file": 123
},
"type": "AUDIO",
"dynamic": false,
"format": "png",
"size": 512,
"error_correction_level": "L",
"gradient": "diagonal",
"colors": {
"bg": "#FFFFFF",
"fg": "#000000",
"finder": "#000000",
"finder_eye": "#000000",
"alignment_inner": "#000000",
"alignment_outer": "#000000",
"gradient": "#5D4696",
"center_text": "#000000",
"transparent": false
},
"module_shape": "square",
"finder_shape": "square",
"finder_eye_shape": "square",
"alignment_outer_shape": "square",
"alignment_inner_shape": "square",
"center_text": null,
"logo": {
"idfs_file": null,
"multiplier": null
},
"background_image": {
"idfs_file": null
},
"foreground_image": {
"idfs_file": null
},
"script": "<script>!function(e,t,a,n,c,s,o){e.GoogleAnalyticsObject=c,e[c]=e[c]||function(){(e[c].q=e[c].q||[]).push(arguments)},e[c].l=1*new Date,s=t.createElement(a),o=t.getElementsByTagName(a)[0],s.async=1,s.src=n,o.parentNode.insertBefore(s,o)}(window,document,\"script\",\"//www.google-analytics.com/analytics.js\",\"ga\"),ga(\"create\",\"UA-xxxxxx-1\",\"auto\"),ga(\"send\",\"pageview\");</script>"
}'
The above request will return a PNG file. The HTTP status code will be
201 Created.
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| data.idfs_file | int | Yes | Audio File ID. |
| type | string | Yes | Type must be AUDIO |
Response
On success the API will return a PNG file. The HTTP status code will be 201 Created.
| Status Code | Description |
|---|---|
| 201 | The QR Code successfully generated. |
Error Responses
If there is an error during QR code generate, the API will return an appropriate error response.
| Status Code | Description |
|---|---|
| 400 | Bad Request - Invalid input data. |
| 401 | Unauthorized - Authentication failed. |
| 422 | Unprocessable Entity. |
| 500 | Internal Server Error - An unexpected error. |
Bitcoin
POST /api/generate
Example request:
curl -X POST "https://api.qrstuff.com/api/generate" \
-H "Authorization: Bearer [your_api_key]" \
-H "Content-Type: application/json" \
-d '{
"data": {
"wallet_address": "1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa",
"amount":"10",
"label": "Testing label",
"message": "Testing message"
},
"type": "BITCOIN",
"dynamic": false,
"format": "png",
"size": 512,
"error_correction_level": "L",
"gradient": "diagonal",
"colors": {
"bg": "#FFFFFF",
"fg": "#000000",
"finder": "#000000",
"finder_eye": "#000000",
"alignment_inner": "#000000",
"alignment_outer": "#000000",
"gradient": "#5D4696",
"center_text": "#000000",
"transparent": false
},
"module_shape": "square",
"finder_shape": "square",
"finder_eye_shape": "square",
"alignment_outer_shape": "square",
"alignment_inner_shape": "square",
"center_text": null,
"logo": {
"idfs_file": null,
"multiplier": null
},
"background_image": {
"idfs_file": null
},
"foreground_image": {
"idfs_file": null
},
"script": "<script>!function(e,t,a,n,c,s,o){e.GoogleAnalyticsObject=c,e[c]=e[c]||function(){(e[c].q=e[c].q||[]).push(arguments)},e[c].l=1*new Date,s=t.createElement(a),o=t.getElementsByTagName(a)[0],s.async=1,s.src=n,o.parentNode.insertBefore(s,o)}(window,document,\"script\",\"//www.google-analytics.com/analytics.js\",\"ga\"),ga(\"create\",\"UA-xxxxxx-1\",\"auto\"),ga(\"send\",\"pageview\");</script>"
}'
The above request will return a PNG file. The HTTP status code will be
201 Created.
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| data.wallet_address | string | Yes | Valid Bitcoin wallet address |
| data.amount | int | No | Amount |
| data.label | string | No | Label |
| data.message | string | No | Message |
| type | string | Yes | Type must be BITCOIN |
Response
On success the API will return a PNG file. The HTTP status code will be 201 Created.
| Status Code | Description |
|---|---|
| 201 | The QR Code successfully generated. |
Error Responses
If there is an error during QR code generate, the API will return an appropriate error response.
| Status Code | Description |
|---|---|
| 400 | Bad Request - Invalid input data. |
| 401 | Unauthorized - Authentication failed. |
| 422 | Unprocessable Entity. |
| 500 | Internal Server Error - An unexpected error. |
Contact Details
POST /api/generate
Example request:
curl -X POST "https://api.qrstuff.com/api/generate" \
-H "Authorization: Bearer [your_api_key]" \
-H "Content-Type: application/json" \
-d '{
"data": {
"first_name": "John",
"last_name": "Doe",
"title": "Mr.",
"additional_names": "John.Doe",
"name_prefix": "John",
"name_suffix": "Doe",
"telephone_number": "123-456-7890",
"cell_phone_number": "123-456-7890",
"fax_number": "123-456-7890",
"email": "johndoe@example.com",
"organization": "Example Corp",
"street": "123 Main St",
"city": "Anytown",
"state": "CA",
"postcode": "12345",
"country": "USA",
"url": "http://example.com",
"note": "Important contact",
"type": "vcard"
},
"type": "VCARD",
"dynamic": false,
"format": "png",
"size": 512,
"error_correction_level": "L",
"gradient": "diagonal",
"colors": {
"bg": "#FFFFFF",
"fg": "#000000",
"finder": "#000000",
"finder_eye": "#000000",
"alignment_inner": "#000000",
"alignment_outer": "#000000",
"gradient": "#5D4696",
"center_text": "#000000",
"transparent": false
},
"module_shape": "square",
"finder_shape": "square",
"finder_eye_shape": "square",
"alignment_outer_shape": "square",
"alignment_inner_shape": "square",
"center_text": null,
"logo": {
"idfs_file": null,
"multiplier": null
},
"background_image": {
"idfs_file": null
},
"foreground_image": {
"idfs_file": null
},
"script": "<script>!function(e,t,a,n,c,s,o){e.GoogleAnalyticsObject=c,e[c]=e[c]||function(){(e[c].q=e[c].q||[]).push(arguments)},e[c].l=1*new Date,s=t.createElement(a),o=t.getElementsByTagName(a)[0],s.async=1,s.src=n,o.parentNode.insertBefore(s,o)}(window,document,\"script\",\"//www.google-analytics.com/analytics.js\",\"ga\"),ga(\"create\",\"UA-xxxxxx-1\",\"auto\"),ga(\"send\",\"pageview\");</script>"
}'
The above request will return a PNG file. The HTTP status code will be
201 Created.
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| data.first_name | string | Yes | The first name of the contact. Must be a string between 1 and 100 characters. |
| data.last_name | string | No | The last name of the contact. Must be a string between 1 and 100 characters. |
| data.title | string | No | The title of the contact. Must be a string between 1 and 100 characters. |
| data.additional_names | string | No | Any additional names of the contact. Must be a string between 1 and 100 characters. |
| data.name_prefix | string | No | The name prefix of the contact. Must be a string between 1 and 100 characters. |
| data.name_suffix | string | No | The name suffix of the contact. Must be a string between 1 and 100 characters. |
| data.telephone_number | string | Yes | The telephone number of the contact. Must be a string between 1 and 100 characters. |
| data.cell_phone_number | string | No | The cell phone number of the contact. Must be a string between 1 and 100 characters. |
| data.fax_number | string | No | The fax number of the contact. Must be a string between 1 and 100 characters. |
| data.email | No | The email address of the contact. Must be a valid email between 1 and 100 characters. | |
| data.organization | string | No | The organization of the contact. Must be a string between 1 and 100 characters. |
| data.street | string | No | The street address of the contact. Must be a string between 1 and 100 characters. |
| data.city | string | No | The city of the contact. Must be a string between 1 and 100 characters. |
| data.state | string | No | The state of the contact. Must be a string between 1 and 100 characters. |
| data.postcode | string | No | The postcode of the contact. Must be a string between 1 and 100 characters. |
| data.country | string | No | The country of the contact. Must be a string between 1 and 100 characters. |
| data.url | string | No | The URL associated with the contact. Must be a string between 1 and 100 characters. |
| data.note | string | No | Any additional notes about the contact. Must be a string between 1 and 100 characters. |
| data.type | string | Yes | The type of contact. Must be either vcard or mecard. |
| type | string | Yes | Type must be VCARD |
Response
On success the API will return a PNG file. The HTTP status code will be 201 Created.
| Status Code | Description |
|---|---|
| 201 | The QR Code successfully generated. |
Error Responses
If there is an error during QR code generate, the API will return an appropriate error response.
| Status Code | Description |
|---|---|
| 400 | Bad Request - Invalid input data. |
| 401 | Unauthorized - Authentication failed. |
| 422 | Unprocessable Entity. |
| 500 | Internal Server Error - An unexpected error. |
Coupon
POST /api/generate
Example request:
curl -X POST "https://api.qrstuff.com/api/generate" \
-H "Authorization: Bearer [your_api_key]" \
-H "Content-Type: application/json" \
-d '{
"data": {
"idfs_file": 1777,
"coupon_code": "FLAT20",
"coupon_description": "put any description here",
"action_button_name": "Click here",
"action_button_link": "http://google.com/",
"detailPoints": [
{"key":"Discount", "value": "200"},
{"key":"Min Amount", "value": "500$"}
]
},
"type": "COUPON",
"dynamic": true,
"format": "png",
"size": 512,
"error_correction_level": "L",
"gradient": "diagonal",
"colors": {
"bg": "#FFFFFF",
"fg": "#000000",
"finder": "#000000",
"finder_eye": "#000000",
"alignment_inner": "#000000",
"alignment_outer": "#000000",
"gradient": "#5D4696",
"center_text": "#000000",
"transparent": false
},
"module_shape": "square",
"finder_shape": "square",
"finder_eye_shape": "square",
"alignment_outer_shape": "square",
"alignment_inner_shape": "square",
"center_text": null,
"logo": {
"idfs_file": null,
"multiplier": null
},
"background_image": {
"idfs_file": null
},
"foreground_image": {
"idfs_file": null
},
"script": "<script>!function(e,t,a,n,c,s,o){e.GoogleAnalyticsObject=c,e[c]=e[c]||function(){(e[c].q=e[c].q||[]).push(arguments)},e[c].l=1*new Date,s=t.createElement(a),o=t.getElementsByTagName(a)[0],s.async=1,s.src=n,o.parentNode.insertBefore(s,o)}(window,document,\"script\",\"//www.google-analytics.com/analytics.js\",\"ga\"),ga(\"create\",\"UA-xxxxxx-1\",\"auto\"),ga(\"send\",\"pageview\");</script>"
}'
The above request will return a PNG file. The HTTP status code will be
201 Created.
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| data.idfs_file | integer | No | idfs file id for image |
| data.coupon_code | string | Yes | Coupon code. |
| data.coupon_description | string | No | Description about coupon. |
| data.action_button_name | string | Yes | Action button name. |
| data.action_button_link | string | Yes | Action button link to redirect |
| data.detailPoints | array | No | content key, value array. |
| type | string | Yes | Type must be COUPON |
Response
On success the API will return a PNG file. The HTTP status code will be 201 Created.
| Status Code | Description |
|---|---|
| 201 | The QR Code successfully generated. |
Error Responses
If there is an error during QR code generate, the API will return an appropriate error response.
| Status Code | Description |
|---|---|
| 400 | Bad Request - Invalid input data. |
| 401 | Unauthorized - Authentication failed. |
| 422 | Unprocessable Entity. |
| 500 | Internal Server Error - An unexpected error. |
Detail Page
POST /api/generate
Example request:
curl -X POST "https://api.qrstuff.com/api/generate" \
-H "Authorization: Bearer [your_api_key]" \
-H "Content-Type: application/json" \
-d '{
"data": {
"images": ["1782|abc.png"],
"heading": "On the floor",
"description": "Did not find anything else",
"detailPoints": [
"Discount|500",
"Name|OnlyMe"
]
},
"type": "DETAIL_PAGE",
"dynamic": true,
"format": "png",
"size": 512,
"error_correction_level": "L",
"gradient": "diagonal",
"colors": {
"bg": "#FFFFFF",
"fg": "#000000",
"finder": "#000000",
"finder_eye": "#000000",
"alignment_inner": "#000000",
"alignment_outer": "#000000",
"gradient": "#5D4696",
"center_text": "#000000",
"transparent": false
},
"module_shape": "square",
"finder_shape": "square",
"finder_eye_shape": "square",
"alignment_outer_shape": "square",
"alignment_inner_shape": "square",
"center_text": null,
"logo": {
"idfs_file": null,
"multiplier": null
},
"background_image": {
"idfs_file": null
},
"foreground_image": {
"idfs_file": null
},
"script": "<script>!function(e,t,a,n,c,s,o){e.GoogleAnalyticsObject=c,e[c]=e[c]||function(){(e[c].q=e[c].q||[]).push(arguments)},e[c].l=1*new Date,s=t.createElement(a),o=t.getElementsByTagName(a)[0],s.async=1,s.src=n,o.parentNode.insertBefore(s,o)}(window,document,\"script\",\"//www.google-analytics.com/analytics.js\",\"ga\"),ga(\"create\",\"UA-xxxxxx-1\",\"auto\"),ga(\"send\",\"pageview\");</script>"
}'
The above request will return a PNG file. The HTTP status code will be
201 Created.
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| data.images | array | Yes | idfs file id and name for image |
| data.heading | string | Yes | Heading. |
| data.description | string | Yes | Description about detail page. |
| data.detailPoints | array | Yes | content key |
| type | string | Yes | Type must be DETAIL_PAGE |
Response
On success the API will return a PNG file. The HTTP status code will be 201 Created.
| Status Code | Description |
|---|---|
| 201 | The QR Code successfully generated. |
Error Responses
If there is an error during QR code generate, the API will return an appropriate error response.
| Status Code | Description |
|---|---|
| 400 | Bad Request - Invalid input data. |
| 401 | Unauthorized - Authentication failed. |
| 422 | Unprocessable Entity. |
| 500 | Internal Server Error - An unexpected error. |
DPP GS1
POST /api/generate
Example request:
curl -X POST "https://api.qrstuff.com/api/generate" \
-H "Authorization: Bearer [your_api_key]" \
-H "Content-Type: application/json" \
-d '{
"data": {
"gtin": "09506000134352",
"consumer_product_variant": "BLUE-L",
"batch_number": "LOT2025A",
"serial_number": "SN778899",
"production_date": "2025-01-01",
"packaging_date": "2025-01-02",
"sell_by_date": "2025-12-01",
"expiration_date": "2025-12-31",
"country_of_origin": "356",
"net_weight_kg": 1.25,
"custom_attributes": [
{ "ai": "101", "value": "ABC123XYZ" },
{ "ai": "102", "value": "XYZ123ABC" }
],
"product_image": 101,
"brand_url": "https://www.brand-example.com"
},
"type": "DPP_GS1",
"dynamic": true,
"format": "png",
"size": 512,
"error_correction_level": "L",
"gradient": "diagonal",
"colors": {
"bg": "#FFFFFF",
"fg": "#000000",
"finder": "#000000",
"finder_eye": "#000000",
"alignment_inner": "#000000",
"alignment_outer": "#000000",
"gradient": "#5D4696",
"center_text": "#000000",
"transparent": false
},
"module_shape": "square",
"finder_shape": "square",
"finder_eye_shape": "square",
"alignment_outer_shape": "square",
"alignment_inner_shape": "square",
"center_text": null,
"logo": {
"idfs_file": null,
"multiplier": null
},
"background_image": {
"idfs_file": null
},
"foreground_image": {
"idfs_file": null
},
"script": "<script>!function(e,t,a,n,c,s,o){e.GoogleAnalyticsObject=c,e[c]=e[c]||function(){(e[c].q=e[c].q||[]).push(arguments)},e[c].l=1*new Date,s=t.createElement(a),o=t.getElementsByTagName(a)[0],s.async=1,s.src=n,o.parentNode.insertBefore(s,o)}(window,document,\"script\",\"//www.google-analytics.com/analytics.js\",\"ga\"),ga(\"create\",\"UA-xxxxxx-1\",\"auto\"),ga(\"send\",\"pageview\");</script>"
}'
The above request will return a PNG file. The HTTP status code will be
201 Created.
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| data.gtin | string | Yes | Global Trade Item Number(GTIN). Must be string with length of 14 digits. |
| data.consumer_product_variant | string | No | Consumer Product Variant. Must be length between 1 to 20. |
| data.batch_number | string | No | Batch or lot number. Must be length between 1 to 20. |
| data.serial_number | string | No | Serial number. Must be length between 1 to 20. |
| data.production_date | string | No | Production Date. Must be a valid date. Format: YYYY-MM-DD. |
| data.packaging_date | string | No | Packaging Date. Must be a valid date. Format: YYYY-MM-DD. |
| data.sell_by_date | string | No | Sell-by Date. Must be a valid date. Format: YYYY-MM-DD. |
| data.expiration_date | string | No | Expiry Date. Must be a valid date. Format: YYYY-MM-DD. |
| data.country_of_origin | string | No | Country of Origin. Must be 3 digits code. For example: 356 for India. Country Code List |
| data.net_weight_kg | numeric | No | Net Weight (kg). For example: 1.25. |
| data.custom_attributes | array | No | Array of ai and value. |
| data.product_image | integer | No | Product image file id. For example: 101. |
| data.brand_url | string | No | Brand URL. Must be a valid URL with a maximum length of 255 characters. |
| type | string | Yes | Type must be DPP_GS1. |
| dynamic | bool | Yes | Must be true. |
Response
On success the API will return a PNG file. The HTTP status code will be 201 Created.
| Status Code | Description |
|---|---|
| 201 | The QR Code successfully generated. |
Error Responses
If there is an error during QR code generate, the API will return an appropriate error response.
| Status Code | Description |
|---|---|
| 400 | Bad Request - Invalid input data. |
| 401 | Unauthorized - Authentication failed. |
| 422 | Unprocessable Entity. |
| 500 | Internal Server Error - An unexpected error. |
Dropbox
POST /api/generate
Example request:
curl -X POST "https://api.qrstuff.com/api/generate" \
-H "Authorization: Bearer [your_api_key]" \
-H "Content-Type: application/json" \
-d '{
"data": {
"url": "https://www.dropbox.com/scl/fo/hth7t908jyzkvj4mtq3tz/h?rlkey=bf9gejvssq82zw98m789hrmiw&dl=0"
},
"type": "DROPBOX",
"dynamic": false,
"format": "png",
"size": 512,
"error_correction_level": "L",
"gradient": "diagonal",
"colors": {
"bg": "#FFFFFF",
"fg": "#000000",
"finder": "#000000",
"finder_eye": "#000000",
"alignment_inner": "#000000",
"alignment_outer": "#000000",
"gradient": "#5D4696",
"center_text": "#000000",
"transparent": false
},
"module_shape": "square",
"finder_shape": "square",
"finder_eye_shape": "square",
"alignment_outer_shape": "square",
"alignment_inner_shape": "square",
"center_text": null,
"logo": {
"idfs_file": null,
"multiplier": null
},
"background_image": {
"idfs_file": null
},
"foreground_image": {
"idfs_file": null
},
"script": "<script>!function(e,t,a,n,c,s,o){e.GoogleAnalyticsObject=c,e[c]=e[c]||function(){(e[c].q=e[c].q||[]).push(arguments)},e[c].l=1*new Date,s=t.createElement(a),o=t.getElementsByTagName(a)[0],s.async=1,s.src=n,o.parentNode.insertBefore(s,o)}(window,document,\"script\",\"//www.google-analytics.com/analytics.js\",\"ga\"),ga(\"create\",\"UA-xxxxxx-1\",\"auto\"),ga(\"send\",\"pageview\");</script>"
}'
The above request will return a PNG file. The HTTP status code will be
201 Created.
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| data.url | string | Yes | Valid Dropbox URL. |
| type | string | Yes | Type must be DROPBOX |
Response
On success the API will return a PNG file. The HTTP status code will be 201 Created.
| Status Code | Description |
|---|---|
| 201 | The QR Code successfully generated. |
Error Responses
If there is an error during QR code generate, the API will return an appropriate error response.
| Status Code | Description |
|---|---|
| 400 | Bad Request - Invalid input data. |
| 401 | Unauthorized - Authentication failed. |
| 422 | Unprocessable Entity. |
| 500 | Internal Server Error - An unexpected error. |
Email Address
POST /api/generate
Example request:
curl -X POST "https://api.qrstuff.com/api/generate" \
-H "Authorization: Bearer [your_api_key]" \
-H "Content-Type: application/json" \
-d '{
"data": {
"email": "john.doe@gmail.com"
},
"type": "MAILTO",
"dynamic": false,
"format": "png",
"size": 512,
"error_correction_level": "L",
"gradient": "diagonal",
"colors": {
"bg": "#FFFFFF",
"fg": "#000000",
"finder": "#000000",
"finder_eye": "#000000",
"alignment_inner": "#000000",
"alignment_outer": "#000000",
"gradient": "#5D4696",
"center_text": "#000000",
"transparent": false
},
"module_shape": "square",
"finder_shape": "square",
"finder_eye_shape": "square",
"alignment_outer_shape": "square",
"alignment_inner_shape": "square",
"center_text": null,
"logo": {
"idfs_file": null,
"multiplier": null
},
"background_image": {
"idfs_file": null
},
"foreground_image": {
"idfs_file": null
},
"script": "<script>!function(e,t,a,n,c,s,o){e.GoogleAnalyticsObject=c,e[c]=e[c]||function(){(e[c].q=e[c].q||[]).push(arguments)},e[c].l=1*new Date,s=t.createElement(a),o=t.getElementsByTagName(a)[0],s.async=1,s.src=n,o.parentNode.insertBefore(s,o)}(window,document,\"script\",\"//www.google-analytics.com/analytics.js\",\"ga\"),ga(\"create\",\"UA-xxxxxx-1\",\"auto\"),ga(\"send\",\"pageview\");</script>"
}'
The above request will return a PNG file. The HTTP status code will be
201 Created.
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| data.email | string | Yes | Valid email address. |
| type | string | Yes | Type must be MAILTO |
Response
On success the API will return a PNG file. The HTTP status code will be 201 Created.
| Status Code | Description |
|---|---|
| 201 | The QR Code successfully generated. |
Error Responses
If there is an error during QR code generate, the API will return an appropriate error response.
| Status Code | Description |
|---|---|
| 400 | Bad Request - Invalid input data. |
| 401 | Unauthorized - Authentication failed. |
| 422 | Unprocessable Entity. |
| 500 | Internal Server Error - An unexpected error. |
Email Message
POST /api/generate
Example request:
curl -X POST "https://api.qrstuff.com/api/generate" \
-H "Authorization: Bearer [your_api_key]" \
-H "Content-Type: application/json" \
-d '{
"data": {
"email": "john.doe@gmail.com",
"cc": "joe@joe.com",
"bcc": "john.doe@john.com, john.doe@doe.com"
"subject": "Test Subject",
"body": "Awesome stuff are built this way"
},
"type": "MATMSG",
"dynamic": false,
"format": "png",
"size": 512,
"error_correction_level": "L",
"gradient": "diagonal",
"colors": {
"bg": "#FFFFFF",
"fg": "#000000",
"finder": "#000000",
"finder_eye": "#000000",
"alignment_inner": "#000000",
"alignment_outer": "#000000",
"gradient": "#5D4696",
"center_text": "#000000",
"transparent": false
},
"module_shape": "square",
"finder_shape": "square",
"finder_eye_shape": "square",
"alignment_outer_shape": "square",
"alignment_inner_shape": "square",
"center_text": null,
"logo": {
"idfs_file": null,
"multiplier": null
},
"background_image": {
"idfs_file": null
},
"foreground_image": {
"idfs_file": null
},
"script": "<script>!function(e,t,a,n,c,s,o){e.GoogleAnalyticsObject=c,e[c]=e[c]||function(){(e[c].q=e[c].q||[]).push(arguments)},e[c].l=1*new Date,s=t.createElement(a),o=t.getElementsByTagName(a)[0],s.async=1,s.src=n,o.parentNode.insertBefore(s,o)}(window,document,\"script\",\"//www.google-analytics.com/analytics.js\",\"ga\"),ga(\"create\",\"UA-xxxxxx-1\",\"auto\"),ga(\"send\",\"pageview\");</script>"
}'
The above request will return a PNG file. The HTTP status code will be
201 Created.
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| data.body | string | Yes | The body of the email. Must be between 1 and 1000 characters. |
| data.subject | string | Yes | The subject of the email. Must be between 1 and 200 characters. |
| data.email | string | Yes | The recipient email address. Must be a valid email address between 1 and 100 characters. |
| data.cc | string | No | Comma-separated list of CC email addresses. Each address must be a valid email and the entire list must be at most 300 characters. |
| data.bcc | string | No | Comma-separated list of BCC email addresses. Each address must be a valid email and the entire list must be at most 300 characters. |
| type | string | Yes | Type must be MATMSG |
Response
On success the API will return a PNG file. The HTTP status code will be 201 Created.
| Status Code | Description |
|---|---|
| 201 | The QR Code successfully generated. |
Error Responses
If there is an error during QR code generate, the API will return an appropriate error response.
| Status Code | Description |
|---|---|
| 400 | Bad Request - Invalid input data. |
| 401 | Unauthorized - Authentication failed. |
| 422 | Unprocessable Entity. |
| 500 | Internal Server Error - An unexpected error. |
Event
POST /api/generate
Example request:
curl -X POST "https://api.qrstuff.com/api/generate" \
-H "Authorization: Bearer [your_api_key]" \
-H "Content-Type: application/json" \
-d '{
"data": {
"event_name": "Annual Meeting",
"start_date_time": "2023-05-01T08:30:00+00:00",
"end_date_time": "2023-05-01T10:30:00+00:00",
"address": "123 Main St, Anytown, USA"
},
"type": "VCALENDAR",
"dynamic": false,
"format": "png",
"size": 512,
"error_correction_level": "L",
"gradient": "diagonal",
"colors": {
"bg": "#FFFFFF",
"fg": "#000000",
"finder": "#000000",
"finder_eye": "#000000",
"alignment_inner": "#000000",
"alignment_outer": "#000000",
"gradient": "#5D4696",
"center_text": "#000000",
"transparent": false
},
"module_shape": "square",
"finder_shape": "square",
"finder_eye_shape": "square",
"alignment_outer_shape": "square",
"alignment_inner_shape": "square",
"center_text": null,
"logo": {
"idfs_file": null,
"multiplier": null
},
"background_image": {
"idfs_file": null
},
"foreground_image": {
"idfs_file": null
},
"script": "<script>!function(e,t,a,n,c,s,o){e.GoogleAnalyticsObject=c,e[c]=e[c]||function(){(e[c].q=e[c].q||[]).push(arguments)},e[c].l=1*new Date,s=t.createElement(a),o=t.getElementsByTagName(a)[0],s.async=1,s.src=n,o.parentNode.insertBefore(s,o)}(window,document,\"script\",\"//www.google-analytics.com/analytics.js\",\"ga\"),ga(\"create\",\"UA-xxxxxx-1\",\"auto\"),ga(\"send\",\"pageview\");</script>"
}'
The above request will return a PNG file. The HTTP status code will be
201 Created.
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| data.event_name | string | Yes | The name of the event. Must be a string with a minimum length of 1 character. |
| data.start_date_time | string | No | The start date and time of the event in ISO 8601 format (e.g., 2023-05-01T08:30:00+00:00). |
| data.end_date_time | string | No | The end date and time of the event in ISO 8601 format (e.g., 2023-05-01T10:30:00+00:00). |
| data.location | string | Sometimes | The location of the event. Cannot be present if address, latitude, or longitude is provided. Must be a string with a minimum length of 1 character. |
| data.address | string | Sometimes | The address of the event. Cannot be present if location is provided. Must be a string with a minimum length of 1 character. |
| data.latitude | numeric | No | The latitude of the event location. Cannot be present if location is provided. Must be a numeric value between -90 and 90. |
| data.longitude | numeric | No | The longitude of the event location. Cannot be present if location is provided. Must be a numeric value between -180 and 180. |
| type | string | Yes | Type must be VCALENDAR. |
Response
On success the API will return a PNG file. The HTTP status code will be 201 Created.
| Status Code | Description |
|---|---|
| 201 | The QR Code successfully generated. |
Error Responses
If there is an error during QR code generate, the API will return an appropriate error response.
| Status Code | Description |
|---|---|
| 400 | Bad Request - Invalid input data. |
| 401 | Unauthorized - Authentication failed. |
| 422 | Unprocessable Entity. |
| 500 | Internal Server Error - An unexpected error. |
Calendly Event
POST /api/generate
Example request:
curl -X POST "https://api.qrstuff.com/api/generate" \
-H "Authorization: Bearer [your_api_key]" \
-H "Content-Type: application/json" \
-d '{
"data": {
"url": "https://calendly.com/acme/intro-call"
},
"type": "CALENDLY",
"dynamic": true,
"format": "png",
"size": 512
}'
The above request will return a PNG file. The HTTP status code will be
201 Created.
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| data.url | string | Yes | Calendly scheduling URL (e.g. https://calendly.com/acme/intro-call). Must follow the format https://calendly.com/{username}/{event-slug}. |
| type | string | Yes | Type must be CALENDLY. |
| dynamic, format, size, colors, etc. | mixed | No | Optional styling parameters behave the same as other data types. |
You can support either flow:
- With OAuth – Connect Calendly, call
GET /api/custom-pixels/providers/calendly/events, and send back the selected scheduling URL (data.url). The backend never fetches scheduled meetings. - Without OAuth – Provide any Calendly scheduling URL manually. No Calendly connection is required.
Response
On success the API will return a PNG file. The HTTP status code will be 201 Created.
| Status Code | Description |
|---|---|
| 201 | The QR Code successfully generated. |
Error Responses
| Status Code | Description |
|---|---|
| 400/422 | Validation errors (invalid Calendly scheduling URL). |
| 500 | Internal Server Error - An unexpected error. |
POST /api/generate
Example request:
curl -X POST "https://api.qrstuff.com/api/generate" \
-H "Authorization: Bearer [your_api_key]" \
-H "Content-Type: application/json" \
-d '{
"data": {
"id": 1234567890
},
"type": "FACEBOOK",
"dynamic": true,
"format": "png",
"size": 512,
"error_correction_level": "L",
"gradient": "diagonal",
"colors": {
"bg": "#FFFFFF",
"fg": "#000000",
"finder": "#000000",
"finder_eye": "#000000",
"alignment_inner": "#000000",
"alignment_outer": "#000000",
"gradient": "#5D4696",
"center_text": "#000000",
"transparent": false
},
"module_shape": "square",
"finder_shape": "square",
"finder_eye_shape": "square",
"alignment_outer_shape": "square",
"alignment_inner_shape": "square",
"center_text": null,
"logo": {
"idfs_file": null,
"multiplier": null
},
"background_image": {
"idfs_file": null
},
"foreground_image": {
"idfs_file": null
},
"script": "<script>!function(e,t,a,n,c,s,o){e.GoogleAnalyticsObject=c,e[c]=e[c]||function(){(e[c].q=e[c].q||[]).push(arguments)},e[c].l=1*new Date,s=t.createElement(a),o=t.getElementsByTagName(a)[0],s.async=1,s.src=n,o.parentNode.insertBefore(s,o)}(window,document,\"script\",\"//www.google-analytics.com/analytics.js\",\"ga\"),ga(\"create\",\"UA-xxxxxx-1\",\"auto\"),ga(\"send\",\"pageview\");</script>"
}'
The above request will return a PNG file. The HTTP status code will be
201 Created.
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| data.id | integer | Yes | Valid Facebook Page ID. |
| type | string | Yes | Type must be FACEBOOK |
| dynamic | bool | Yes | Must be true |
Response
On success the API will return a PNG file. The HTTP status code will be 201 Created.
| Status Code | Description |
|---|---|
| 201 | The QR Code successfully generated. |
Error Responses
If there is an error during QR code generate, the API will return an appropriate error response.
| Status Code | Description |
|---|---|
| 400 | Bad Request - Invalid input data. |
| 401 | Unauthorized - Authentication failed. |
| 422 | Unprocessable Entity. |
| 500 | Internal Server Error - An unexpected error. |
Facebook Like
POST /api/generate
Example request:
curl -X POST "https://api.qrstuff.com/api/generate" \
-H "Authorization: Bearer [your_api_key]" \
-H "Content-Type: application/json" \
-d '{
"data": {
"url": "https://www.facebook.com/john.doe",
"title": "John Doe"
},
"type": "FACEBOOK_LIKE",
"dynamic": true,
"format": "png",
"size": 512,
"error_correction_level": "L",
"gradient": "diagonal",
"colors": {
"bg": "#FFFFFF",
"fg": "#000000",
"finder": "#000000",
"finder_eye": "#000000",
"alignment_inner": "#000000",
"alignment_outer": "#000000",
"gradient": "#5D4696",
"center_text": "#000000",
"transparent": false
},
"module_shape": "square",
"finder_shape": "square",
"finder_eye_shape": "square",
"alignment_outer_shape": "square",
"alignment_inner_shape": "square",
"center_text": null,
"logo": {
"idfs_file": null,
"multiplier": null
},
"background_image": {
"idfs_file": null
},
"foreground_image": {
"idfs_file": null
},
"script": "<script>!function(e,t,a,n,c,s,o){e.GoogleAnalyticsObject=c,e[c]=e[c]||function(){(e[c].q=e[c].q||[]).push(arguments)},e[c].l=1*new Date,s=t.createElement(a),o=t.getElementsByTagName(a)[0],s.async=1,s.src=n,o.parentNode.insertBefore(s,o)}(window,document,\"script\",\"//www.google-analytics.com/analytics.js\",\"ga\"),ga(\"create\",\"UA-xxxxxx-1\",\"auto\"),ga(\"send\",\"pageview\");</script>"
}'
The above request will return a PNG file. The HTTP status code will be
201 Created.
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| data.url | string | Yes | Valid Facebook Profile URL. |
| data.title | string | Yes | Title. |
| type | string | Yes | Type must be FACEBOOK_LIKE |
| dynamic | bool | Yes | Must be true |
Response
On success the API will return a PNG file. The HTTP status code will be 201 Created.
| Status Code | Description |
|---|---|
| 201 | The QR Code successfully generated. |
Error Responses
If there is an error during QR code generate, the API will return an appropriate error response.
| Status Code | Description |
|---|---|
| 400 | Bad Request - Invalid input data. |
| 401 | Unauthorized - Authentication failed. |
| 422 | Unprocessable Entity. |
| 500 | Internal Server Error - An unexpected error. |
File Upload
POST /api/generate
Example request:
curl -X POST "https://api.qrstuff.com/api/generate" \
-H "Authorization: Bearer [your_api_key]" \
-H "Content-Type: application/json" \
-d '{
"data": {
"idfs_file": 123
},
"type": "FILE_UPLOAD",
"dynamic": false,
"format": "png",
"size": 512,
"error_correction_level": "L",
"gradient": "diagonal",
"colors": {
"bg": "#FFFFFF",
"fg": "#000000",
"finder": "#000000",
"finder_eye": "#000000",
"alignment_inner": "#000000",
"alignment_outer": "#000000",
"gradient": "#5D4696",
"center_text": "#000000",
"transparent": false
},
"module_shape": "square",
"finder_shape": "square",
"finder_eye_shape": "square",
"alignment_outer_shape": "square",
"alignment_inner_shape": "square",
"center_text": null,
"logo": {
"idfs_file": null,
"multiplier": null
},
"background_image": {
"idfs_file": null
},
"foreground_image": {
"idfs_file": null
},
"script": "<script>!function(e,t,a,n,c,s,o){e.GoogleAnalyticsObject=c,e[c]=e[c]||function(){(e[c].q=e[c].q||[]).push(arguments)},e[c].l=1*new Date,s=t.createElement(a),o=t.getElementsByTagName(a)[0],s.async=1,s.src=n,o.parentNode.insertBefore(s,o)}(window,document,\"script\",\"//www.google-analytics.com/analytics.js\",\"ga\"),ga(\"create\",\"UA-xxxxxx-1\",\"auto\"),ga(\"send\",\"pageview\");</script>"
}'
The above request will return a PNG file. The HTTP status code will be
201 Created.
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| data.idfs_file | int | Yes | File ID. |
| type | string | Yes | Type must be FILE_UPLOAD |
Response
On success the API will return a PNG file. The HTTP status code will be 201 Created.
| Status Code | Description |
|---|---|
| 201 | The QR Code successfully generated. |
Error Responses
If there is an error during QR code generate, the API will return an appropriate error response.
| Status Code | Description |
|---|---|
| 400 | Bad Request - Invalid input data. |
| 401 | Unauthorized - Authentication failed. |
| 422 | Unprocessable Entity. |
| 500 | Internal Server Error - An unexpected error. |
Form Submission
POST /api/generate
Example request:
curl -X POST "https://api.qrstuff.com/api/generate" \
-H "Authorization: Bearer [your_api_key]" \
-H "Content-Type: application/json" \
-d '{
"data": {
"idgoogle_sheet": 101,
"heading": "QRStuff",
"fields": [
{
"label": "Full Name",
"placeholder": "Enter your name"
}
],
"destination":"https://chat.openai.com/?model=text-davinci-002-render-sha"
},
"type": "FORM_SUBMISSION",
"dynamic": true,
"format": "png",
"size": 512,
"error_correction_level": "L",
"gradient": "diagonal",
"colors": {
"bg": "#FFFFFF",
"fg": "#000000",
"finder": "#000000",
"finder_eye": "#000000",
"alignment_inner": "#000000",
"alignment_outer": "#000000",
"gradient": "#5D4696",
"center_text": "#000000",
"transparent": false
},
"module_shape": "square",
"finder_shape": "square",
"finder_eye_shape": "square",
"alignment_outer_shape": "square",
"alignment_inner_shape": "square",
"center_text": null,
"logo": {
"idfs_file": null,
"multiplier": null
},
"background_image": {
"idfs_file": null
},
"foreground_image": {
"idfs_file": null
},
"script": "<script>!function(e,t,a,n,c,s,o){e.GoogleAnalyticsObject=c,e[c]=e[c]||function(){(e[c].q=e[c].q||[]).push(arguments)},e[c].l=1*new Date,s=t.createElement(a),o=t.getElementsByTagName(a)[0],s.async=1,s.src=n,o.parentNode.insertBefore(s,o)}(window,document,\"script\",\"//www.google-analytics.com/analytics.js\",\"ga\"),ga(\"create\",\"UA-xxxxxx-1\",\"auto\"),ga(\"send\",\"pageview\");</script>"
}'
The above request will return a PNG file. The HTTP status code will be
201 Created.
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| data.idgoogle_sheet | integer | Yes | The ID of the Google Sheet. |
| data.heading | string | Yes | The heading to be used in the Google Sheet. |
| data.destination | string | Yes | The destination associated with the action. |
| data.fields | array | Yes | An array of fields to be included in the Google Sheet configuration. |
| type | string | Yes | Type must be FORM_SUBMISSION |
| dynamic | bool | Yes | Must be true |
Response
On success the API will return a PNG file. The HTTP status code will be 201 Created.
| Status Code | Description |
|---|---|
| 201 | The QR Code successfully generated. |
Error Responses
If there is an error during QR code generate, the API will return an appropriate error response.
| Status Code | Description |
|---|---|
| 400 | Bad Request - Invalid input data. |
| 401 | Unauthorized - Authentication failed. |
| 422 | Unprocessable Entity. |
| 500 | Internal Server Error - An unexpected error. |
Image File
POST /api/generate
Example request:
curl -X POST "https://api.qrstuff.com/api/generate" \
-H "Authorization: Bearer [your_api_key]" \
-H "Content-Type: application/json" \
-d '{
"data": {
"idfs_file": 123
},
"type": "IMAGE",
"dynamic": false,
"format": "png",
"size": 512,
"error_correction_level": "L",
"gradient": "diagonal",
"colors": {
"bg": "#FFFFFF",
"fg": "#000000",
"finder": "#000000",
"finder_eye": "#000000",
"alignment_inner": "#000000",
"alignment_outer": "#000000",
"gradient": "#5D4696",
"center_text": "#000000",
"transparent": false
},
"module_shape": "square",
"finder_shape": "square",
"finder_eye_shape": "square",
"alignment_outer_shape": "square",
"alignment_inner_shape": "square",
"center_text": null,
"logo": {
"idfs_file": null,
"multiplier": null
},
"background_image": {
"idfs_file": null
},
"foreground_image": {
"idfs_file": null
},
"script": "<script>!function(e,t,a,n,c,s,o){e.GoogleAnalyticsObject=c,e[c]=e[c]||function(){(e[c].q=e[c].q||[]).push(arguments)},e[c].l=1*new Date,s=t.createElement(a),o=t.getElementsByTagName(a)[0],s.async=1,s.src=n,o.parentNode.insertBefore(s,o)}(window,document,\"script\",\"//www.google-analytics.com/analytics.js\",\"ga\"),ga(\"create\",\"UA-xxxxxx-1\",\"auto\"),ga(\"send\",\"pageview\");</script>"
}'
The above request will return a PNG file. The HTTP status code will be
201 Created.
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| data.idfs_file | int | Yes | Image File ID. |
| type | string | Yes | Type must be IMAGE |
Response
On success the API will return a PNG file. The HTTP status code will be 201 Created.
| Status Code | Description |
|---|---|
| 201 | The QR Code successfully generated. |
Error Responses
If there is an error during QR code generate, the API will return an appropriate error response.
| Status Code | Description |
|---|---|
| 400 | Bad Request - Invalid input data. |
| 401 | Unauthorized - Authentication failed. |
| 422 | Unprocessable Entity. |
| 500 | Internal Server Error - An unexpected error. |
POST /api/generate
Example request:
curl -X POST "https://api.qrstuff.com/api/generate" \
-H "Authorization: Bearer [your_api_key]" \
-H "Content-Type: application/json" \
-d '{
"data": {
"username": "john.doe"
},
"type": "INSTAGRAM",
"dynamic": false,
"format": "png",
"size": 512,
"error_correction_level": "L",
"gradient": "diagonal",
"colors": {
"bg": "#FFFFFF",
"fg": "#000000",
"finder": "#000000",
"finder_eye": "#000000",
"alignment_inner": "#000000",
"alignment_outer": "#000000",
"gradient": "#5D4696",
"center_text": "#000000",
"transparent": false
},
"module_shape": "square",
"finder_shape": "square",
"finder_eye_shape": "square",
"alignment_outer_shape": "square",
"alignment_inner_shape": "square",
"center_text": null,
"logo": {
"idfs_file": null,
"multiplier": null
},
"background_image": {
"idfs_file": null
},
"foreground_image": {
"idfs_file": null
},
"script": "<script>!function(e,t,a,n,c,s,o){e.GoogleAnalyticsObject=c,e[c]=e[c]||function(){(e[c].q=e[c].q||[]).push(arguments)},e[c].l=1*new Date,s=t.createElement(a),o=t.getElementsByTagName(a)[0],s.async=1,s.src=n,o.parentNode.insertBefore(s,o)}(window,document,\"script\",\"//www.google-analytics.com/analytics.js\",\"ga\"),ga(\"create\",\"UA-xxxxxx-1\",\"auto\"),ga(\"send\",\"pageview\");</script>"
}'
The above request will return a PNG file. The HTTP status code will be
201 Created.
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| data.username | string | Yes | Instagram username. |
| type | string | Yes | Type must be INSTAGRAM |
| dynamic | bool | Yes | Must be true |
Response
On success the API will return a PNG file. The HTTP status code will be 201 Created.
| Status Code | Description |
|---|---|
| 201 | The QR Code successfully generated. |
Error Responses
If there is an error during QR code generate, the API will return an appropriate error response.
| Status Code | Description |
|---|---|
| 400 | Bad Request - Invalid input data. |
| 401 | Unauthorized - Authentication failed. |
| 422 | Unprocessable Entity. |
| 500 | Internal Server Error - An unexpected error. |
iTunes Link
POST /api/generate
Example request:
curl -X POST "https://api.qrstuff.com/api/generate" \
-H "Authorization: Bearer [your_api_key]" \
-H "Content-Type: application/json" \
-d '{
"data": {
"url": "https://itunes.apple.com/album/thriller/159292151"
},
"type": "ITUNES_LINK",
"dynamic": false,
"format": "png",
"size": 512,
"error_correction_level": "L",
"gradient": "diagonal",
"colors": {
"bg": "#FFFFFF",
"fg": "#000000",
"finder": "#000000",
"finder_eye": "#000000",
"alignment_inner": "#000000",
"alignment_outer": "#000000",
"gradient": "#5D4696",
"center_text": "#000000",
"transparent": false
},
"module_shape": "square",
"finder_shape": "square",
"finder_eye_shape": "square",
"alignment_outer_shape": "square",
"alignment_inner_shape": "square",
"center_text": null,
"logo": {
"idfs_file": null,
"multiplier": null
},
"background_image": {
"idfs_file": null
},
"foreground_image": {
"idfs_file": null
},
"script": "<script>!function(e,t,a,n,c,s,o){e.GoogleAnalyticsObject=c,e[c]=e[c]||function(){(e[c].q=e[c].q||[]).push(arguments)},e[c].l=1*new Date,s=t.createElement(a),o=t.getElementsByTagName(a)[0],s.async=1,s.src=n,o.parentNode.insertBefore(s,o)}(window,document,\"script\",\"//www.google-analytics.com/analytics.js\",\"ga\"),ga(\"create\",\"UA-xxxxxx-1\",\"auto\"),ga(\"send\",\"pageview\");</script>"
}'
The above request will return a PNG file. The HTTP status code will be
201 Created.
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| data.url | string | Yes | Valid Itunes link url |
| type | string | Yes | Type must be ITUNES_LINK |
Response
On success the API will return a PNG file. The HTTP status code will be 201 Created.
| Status Code | Description |
|---|---|
| 201 | The QR Code successfully generated. |
Error Responses
If there is an error during QR code generate, the API will return an appropriate error response.
| Status Code | Description |
|---|---|
| 400 | Bad Request - Invalid input data. |
| 401 | Unauthorized - Authentication failed. |
| 422 | Unprocessable Entity. |
| 500 | Internal Server Error - An unexpected error. |
POST /api/generate
Example request:
curl -X POST "https://api.qrstuff.com/api/generate" \
-H "Authorization: Bearer [your_api_key]" \
-H "Content-Type: application/json" \
-d '{
"data": {
"url": "https://www.linkedin.com/in/johndoe"
},
"type": "LINKEDIN",
"dynamic": true,
"format": "png",
"size": 512,
"error_correction_level": "L",
"gradient": "diagonal",
"colors": {
"bg": "#FFFFFF",
"fg": "#000000",
"finder": "#000000",
"finder_eye": "#000000",
"alignment_inner": "#000000",
"alignment_outer": "#000000",
"gradient": "#5D4696",
"center_text": "#000000",
"transparent": false
},
"module_shape": "square",
"finder_shape": "square",
"finder_eye_shape": "square",
"alignment_outer_shape": "square",
"alignment_inner_shape": "square",
"center_text": null,
"logo": {
"idfs_file": null,
"multiplier": null
},
"background_image": {
"idfs_file": null
},
"foreground_image": {
"idfs_file": null
},
"script": "<script>!function(e,t,a,n,c,s,o){e.GoogleAnalyticsObject=c,e[c]=e[c]||function(){(e[c].q=e[c].q||[]).push(arguments)},e[c].l=1*new Date,s=t.createElement(a),o=t.getElementsByTagName(a)[0],s.async=1,s.src=n,o.parentNode.insertBefore(s,o)}(window,document,\"script\",\"//www.google-analytics.com/analytics.js\",\"ga\"),ga(\"create\",\"UA-xxxxxx-1\",\"auto\"),ga(\"send\",\"pageview\");</script>"
}'
The above request will return a PNG file. The HTTP status code will be
201 Created.
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| data.url | url | Yes. | The URL of the LinkedIn profile. Must be a valid URL with a maximum length of 255 characters and the domain must belong to LinkedIn (e.g., linkedin.com). |
| type | string | Yes | Type must be LINKEDIN |
| dynamic | bool | Yes | Must be true |
Response
On success the API will return a PNG file. The HTTP status code will be 201 Created.
| Status Code | Description |
|---|---|
| 201 | The QR Code successfully generated. |
Error Responses
If there is an error during QR code generate, the API will return an appropriate error response.
| Status Code | Description |
|---|---|
| 400 | Bad Request - Invalid input data. |
| 401 | Unauthorized - Authentication failed. |
| 422 | Unprocessable Entity. |
| 500 | Internal Server Error - An unexpected error. |
LinkedIn Share
POST /api/generate
Example request:
curl -X POST "https://api.qrstuff.com/api/generate" \
-H "Authorization: Bearer [your_api_key]" \
-H "Content-Type: application/json" \
-d '{
"data": {
"url": "https://www.linkedin.com/in/johndoe"
},
"type": "LINKEDIN_SHARE",
"dynamic": true,
"format": "png",
"size": 512,
"error_correction_level": "L",
"gradient": "diagonal",
"colors": {
"bg": "#FFFFFF",
"fg": "#000000",
"finder": "#000000",
"finder_eye": "#000000",
"alignment_inner": "#000000",
"alignment_outer": "#000000",
"gradient": "#5D4696",
"center_text": "#000000",
"transparent": false
},
"module_shape": "square",
"finder_shape": "square",
"finder_eye_shape": "square",
"alignment_outer_shape": "square",
"alignment_inner_shape": "square",
"center_text": null,
"logo": {
"idfs_file": null,
"multiplier": null
},
"background_image": {
"idfs_file": null
},
"foreground_image": {
"idfs_file": null
},
"script": "<script>!function(e,t,a,n,c,s,o){e.GoogleAnalyticsObject=c,e[c]=e[c]||function(){(e[c].q=e[c].q||[]).push(arguments)},e[c].l=1*new Date,s=t.createElement(a),o=t.getElementsByTagName(a)[0],s.async=1,s.src=n,o.parentNode.insertBefore(s,o)}(window,document,\"script\",\"//www.google-analytics.com/analytics.js\",\"ga\"),ga(\"create\",\"UA-xxxxxx-1\",\"auto\"),ga(\"send\",\"pageview\");</script>"
}'
The above request will return a PNG file. The HTTP status code will be
201 Created.
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| data.url | url | Yes | The URL of the LinkedIn profile. Must be a valid URL with a maximum length of 255 characters and the domain must belong to LinkedIn (e.g., linkedin.com). |
| type | string | Yes | Type must be LINKEDIN |
| dynamic | bool | Yes | Must be true |
Response
On success the API will return a PNG file. The HTTP status code will be 201 Created.
| Status Code | Description |
|---|---|
| 201 | The QR Code successfully generated. |
Error Responses
If there is an error during QR code generate, the API will return an appropriate error response.
| Status Code | Description |
|---|---|
| 400 | Bad Request - Invalid input data. |
| 401 | Unauthorized - Authentication failed. |
| 422 | Unprocessable Entity. |
| 500 | Internal Server Error - An unexpected error. |
Location
POST /api/generate
Example request:
curl -X POST "https://api.qrstuff.com/api/generate" \
-H "Authorization: Bearer [your_api_key]" \
-H "Content-Type: application/json" \
-d '{
"data": {
"latitude": 40.7128,
"longitude": -74.0060,
"address": "New York, NY",
"mode": "address"
},
"type": "MAPS",
"dynamic": true,
"format": "png",
"size": 512,
"error_correction_level": "L",
"gradient": "diagonal",
"colors": {
"bg": "#FFFFFF",
"fg": "#000000",
"finder": "#000000",
"finder_eye": "#000000",
"alignment_inner": "#000000",
"alignment_outer": "#000000",
"gradient": "#5D4696",
"center_text": "#000000",
"transparent": false
},
"module_shape": "square",
"finder_shape": "square",
"finder_eye_shape": "square",
"alignment_outer_shape": "square",
"alignment_inner_shape": "square",
"center_text": null,
"logo": {
"idfs_file": null,
"multiplier": null
},
"background_image": {
"idfs_file": null
},
"foreground_image": {
"idfs_file": null
},
"script": "<script>!function(e,t,a,n,c,s,o){e.GoogleAnalyticsObject=c,e[c]=e[c]||function(){(e[c].q=e[c].q||[]).push(arguments)},e[c].l=1*new Date,s=t.createElement(a),o=t.getElementsByTagName(a)[0],s.async=1,s.src=n,o.parentNode.insertBefore(s,o)}(window,document,\"script\",\"//www.google-analytics.com/analytics.js\",\"ga\"),ga(\"create\",\"UA-xxxxxx-1\",\"auto\"),ga(\"send\",\"pageview\");</script>"
}'
The above request will return a PNG file. The HTTP status code will be
201 Created.
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| data.latitude | numeric | Yes | The latitude of the location, must be between -90 and 90. |
| data.longitude | numeric | Yes | The longitude of the location, must be between -180 and 180. |
| data.address | string | No | The address of the location, required if mode is set to address |
| data.mode | string | Yes | The mode of input, must be either latlng or address. |
| type | string | Yes | Type must be MAPS |
| dynamic | bool | Yes | Must be true |
Response
On success the API will return a PNG file. The HTTP status code will be 201 Created.
| Status Code | Description |
|---|---|
| 201 | The QR Code successfully generated. |
Error Responses
If there is an error during QR code generate, the API will return an appropriate error response.
| Status Code | Description |
|---|---|
| 400 | Bad Request - Invalid input data. |
| 401 | Unauthorized - Authentication failed. |
| 422 | Unprocessable Entity. |
| 500 | Internal Server Error - An unexpected error. |
Newsletter
POST /api/generate
Example request:
curl -X POST "https://api.qrstuff.com/api/generate" \
-H "Authorization: Bearer [your_api_key]" \
-H "Content-Type: application/json" \
-d '{
"data": {
"subscription_link": "https://getsitecontrol.com/p/e2kjo97e"
},
"type": "NEWSLETTER",
"dynamic": true,
"format": "png",
"size": 512,
"error_correction_level": "L",
"gradient": "diagonal",
"colors": {
"bg": "#FFFFFF",
"fg": "#000000",
"finder": "#000000",
"finder_eye": "#000000",
"alignment_inner": "#000000",
"alignment_outer": "#000000",
"gradient": "#5D4696",
"center_text": "#000000",
"transparent": false
},
"module_shape": "square",
"finder_shape": "square",
"finder_eye_shape": "square",
"alignment_outer_shape": "square",
"alignment_inner_shape": "square",
"center_text": null,
"logo": {
"idfs_file": null,
"multiplier": null
},
"background_image": {
"idfs_file": null
},
"foreground_image": {
"idfs_file": null
}
}'
The above request will return a PNG file. The HTTP status code will be
201 Created.
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| data.subscription_link | string | Yes | The Subscription link. |
| type | string | Yes | Type must be NEWSLETTER |
Response
On success the API will return a PNG file. The HTTP status code will be 201 Created.
| Status Code | Description |
|---|---|
| 201 | The QR Code successfully generated. |
Error Responses
If there is an error during QR code generate, the API will return an appropriate error response.
| Status Code | Description |
|---|---|
| 400 | Bad Request - Invalid input data. |
| 401 | Unauthorized - Authentication failed. |
| 422 | Unprocessable Entity. |
| 500 | Internal Server Error - An unexpected error. |
PayPal Buy
POST /api/generate
Example request:
curl -X POST "https://api.qrstuff.com/api/generate" \
-H "Authorization: Bearer [your_api_key]" \
-H "Content-Type: application/json" \
-d '{
"data": {
"paypalAccountEmailAddress": "howardbright2014@gmail.com",
"itemDescription": "Test",
"itemProductCode": "2342rfff",
"itemValue": "123.45",
"currencyCode": "USD"
},
"type": "PAYPAL_BUY",
"dynamic": true,
"format": "png",
"size": 512,
"error_correction_level": "L",
"gradient": "diagonal",
"colors": {
"bg": "#FFFFFF",
"fg": "#000000",
"finder": "#000000",
"finder_eye": "#000000",
"alignment_inner": "#000000",
"alignment_outer": "#000000",
"gradient": "#5D4696",
"center_text": "#000000",
"transparent": false
},
"module_shape": "square",
"finder_shape": "square",
"finder_eye_shape": "square",
"alignment_outer_shape": "square",
"alignment_inner_shape": "square",
"center_text": null,
"logo": {
"idfs_file": null,
"multiplier": null
},
"background_image": {
"idfs_file": null
},
"foreground_image": {
"idfs_file": null
}
}'
The above request will return a PNG file. The HTTP status code will be
201 Created.
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| data.paypalAccountEmailAddress | string | Yes | Paypal account email address |
| data.itemDescription | string | Yes | Item description |
| data.itemProductCode | string | Yes | Item Code |
| data.itemValue | string | Yes | Item Amount |
| data.currencyCode | string | Yes | Currency Code |
| type | string | Yes | Type must be PAYPAL_BUY |
| dynamic | bool | Yes | Must be true |
Response
On success the API will return a PNG file. The HTTP status code will be 201 Created.
| Status Code | Description |
|---|---|
| 201 | The QR Code successfully generated. |
Error Responses
If there is an error during QR code generate, the API will return an appropriate error response.
| Status Code | Description |
|---|---|
| 400 | Bad Request - Invalid input data. |
| 401 | Unauthorized - Authentication failed. |
| 422 | Unprocessable Entity. |
| 500 | Internal Server Error - An unexpected error. |
PDF File
POST /api/generate
Example request:
curl -X POST "https://api.qrstuff.com/api/generate" \
-H "Authorization: Bearer [your_api_key]" \
-H "Content-Type: application/json" \
-d '{
"data": {
"idfs_file": 101
},
"type": "PDF",
"dynamic": false,
"format": "png",
"size": 512,
"error_correction_level": "L",
"gradient": "diagonal",
"colors": {
"bg": "#FFFFFF",
"fg": "#000000",
"finder": "#000000",
"finder_eye": "#000000",
"alignment_inner": "#000000",
"alignment_outer": "#000000",
"gradient": "#5D4696",
"center_text": "#000000",
"transparent": false
},
"module_shape": "square",
"finder_shape": "square",
"finder_eye_shape": "square",
"alignment_outer_shape": "square",
"alignment_inner_shape": "square",
"center_text": null,
"logo": {
"idfs_file": null,
"multiplier": null
},
"background_image": {
"idfs_file": null
},
"foreground_image": {
"idfs_file": null
},
"script": "<script>!function(e,t,a,n,c,s,o){e.GoogleAnalyticsObject=c,e[c]=e[c]||function(){(e[c].q=e[c].q||[]).push(arguments)},e[c].l=1*new Date,s=t.createElement(a),o=t.getElementsByTagName(a)[0],s.async=1,s.src=n,o.parentNode.insertBefore(s,o)}(window,document,\"script\",\"//www.google-analytics.com/analytics.js\",\"ga\"),ga(\"create\",\"UA-xxxxxx-1\",\"auto\"),ga(\"send\",\"pageview\");</script>"
}'
The above request will return a PNG file. The HTTP status code will be
201 Created.
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| data.idfs_file | int | Yes | PDF file ID |
| type | string | Yes | Type must be PDF |
Response
On success the API will return a PNG file. The HTTP status code will be 201 Created.
| Status Code | Description |
|---|---|
| 201 | The QR Code successfully generated. |
Error Responses
If there is an error during QR code generate, the API will return an appropriate error response.
| Status Code | Description |
|---|---|
| 400 | Bad Request - Invalid input data. |
| 401 | Unauthorized - Authentication failed. |
| 422 | Unprocessable Entity. |
| 500 | Internal Server Error - An unexpected error. |
Phone Number
POST /api/generate
Example request:
curl -X POST "https://api.qrstuff.com/api/generate" \
-H "Authorization: Bearer [your_api_key]" \
-H "Content-Type: application/json" \
-d '{
"data": {
"phone": "+254715023614"
},
"type": "TEL",
"dynamic": false,
"format": "png",
"size": 512,
"error_correction_level": "L",
"gradient": "diagonal",
"colors": {
"bg": "#FFFFFF",
"fg": "#000000",
"finder": "#000000",
"finder_eye": "#000000",
"alignment_inner": "#000000",
"alignment_outer": "#000000",
"gradient": "#5D4696",
"center_text": "#000000",
"transparent": false
},
"module_shape": "square",
"finder_shape": "square",
"finder_eye_shape": "square",
"alignment_outer_shape": "square",
"alignment_inner_shape": "square",
"center_text": null,
"logo": {
"idfs_file": null,
"multiplier": null
},
"background_image": {
"idfs_file": null
},
"foreground_image": {
"idfs_file": null
},
"script": "<script>!function(e,t,a,n,c,s,o){e.GoogleAnalyticsObject=c,e[c]=e[c]||function(){(e[c].q=e[c].q||[]).push(arguments)},e[c].l=1*new Date,s=t.createElement(a),o=t.getElementsByTagName(a)[0],s.async=1,s.src=n,o.parentNode.insertBefore(s,o)}(window,document,\"script\",\"//www.google-analytics.com/analytics.js\",\"ga\"),ga(\"create\",\"UA-xxxxxx-1\",\"auto\"),ga(\"send\",\"pageview\");</script>"
}'
The above request will return a PNG file. The HTTP status code will be
201 Created.
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| data.phone | string | Yes | The phone number. Must be between 1 and 100 characters. |
| type | string | Yes | Type must be TEL |
Response
On success the API will return a PNG file. The HTTP status code will be 201 Created.
| Status Code | Description |
|---|---|
| 201 | The QR Code successfully generated. |
Error Responses
If there is an error during QR code generate, the API will return an appropriate error response.
| Status Code | Description |
|---|---|
| 400 | Bad Request - Invalid input data. |
| 401 | Unauthorized - Authentication failed. |
| 422 | Unprocessable Entity. |
| 500 | Internal Server Error - An unexpected error. |
Plain Text
POST /api/generate
Example request:
curl -X POST "https://api.qrstuff.com/api/generate" \
-H "Authorization: Bearer [your_api_key]" \
-H "Content-Type: application/json" \
-d '{
"data": {
"text": "Hello, World!!"
},
"type": "TEXT",
"dynamic": false,
"format": "png",
"size": 512,
"error_correction_level": "L",
"gradient": "diagonal",
"colors": {
"bg": "#FFFFFF",
"fg": "#000000",
"finder": "#000000",
"finder_eye": "#000000",
"alignment_inner": "#000000",
"alignment_outer": "#000000",
"gradient": "#5D4696",
"center_text": "#000000",
"transparent": false
},
"module_shape": "square",
"finder_shape": "square",
"finder_eye_shape": "square",
"alignment_outer_shape": "square",
"alignment_inner_shape": "square",
"center_text": null,
"logo": {
"idfs_file": null,
"multiplier": null
},
"background_image": {
"idfs_file": null
},
"foreground_image": {
"idfs_file": null
},
"script": "<script>!function(e,t,a,n,c,s,o){e.GoogleAnalyticsObject=c,e[c]=e[c]||function(){(e[c].q=e[c].q||[]).push(arguments)},e[c].l=1*new Date,s=t.createElement(a),o=t.getElementsByTagName(a)[0],s.async=1,s.src=n,o.parentNode.insertBefore(s,o)}(window,document,\"script\",\"//www.google-analytics.com/analytics.js\",\"ga\"),ga(\"create\",\"UA-xxxxxx-1\",\"auto\"),ga(\"send\",\"pageview\");</script>"
}'
The above request will return a PNG file. The HTTP status code will be
201 Created.
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| data.text | string | Yes | Text string |
| type | string | Yes | Type must be TEXT |
Response
On success the API will return a PNG file. The HTTP status code will be 201 Created.
| Status Code | Description |
|---|---|
| 201 | The QR Code successfully generated. |
Error Responses
If there is an error during QR code generate, the API will return an appropriate error response.
| Status Code | Description |
|---|---|
| 400 | Bad Request - Invalid input data. |
| 401 | Unauthorized - Authentication failed. |
| 422 | Unprocessable Entity. |
| 500 | Internal Server Error - An unexpected error. |
SMS Message
POST /api/generate
Example request:
curl -X POST "https://api.qrstuff.com/api/generate" \
-H "Authorization: Bearer [your_api_key]" \
-H "Content-Type: application/json" \
-d '{
"data": {
"phone": "+254715023614",
"message": "https://qrstuff.com"
},
"type": "SMSTO",
"dynamic": false,
"format": "png",
"size": 512,
"error_correction_level": "L",
"gradient": "diagonal",
"colors": {
"bg": "#FFFFFF",
"fg": "#000000",
"finder": "#000000",
"finder_eye": "#000000",
"alignment_inner": "#000000",
"alignment_outer": "#000000",
"gradient": "#5D4696",
"center_text": "#000000",
"transparent": false
},
"module_shape": "square",
"finder_shape": "square",
"finder_eye_shape": "square",
"alignment_outer_shape": "square",
"alignment_inner_shape": "square",
"center_text": null,
"logo": {
"idfs_file": null,
"multiplier": null
},
"background_image": {
"idfs_file": null
},
"foreground_image": {
"idfs_file": null
},
"script": "<script>!function(e,t,a,n,c,s,o){e.GoogleAnalyticsObject=c,e[c]=e[c]||function(){(e[c].q=e[c].q||[]).push(arguments)},e[c].l=1*new Date,s=t.createElement(a),o=t.getElementsByTagName(a)[0],s.async=1,s.src=n,o.parentNode.insertBefore(s,o)}(window,document,\"script\",\"//www.google-analytics.com/analytics.js\",\"ga\"),ga(\"create\",\"UA-xxxxxx-1\",\"auto\"),ga(\"send\",\"pageview\");</script>"
}'
The above request will return a PNG file. The HTTP status code will be
201 Created.
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| data.phone | string | Yes | The phone number to send the SMS to. Must be between 1 and 100 characters. |
| data.message | string | Yes | The message to be sent via SMS. Must be between 1 and 160 characters. |
| type | string | Yes | Type must be SMSTO |
Response
On success the API will return a PNG file. The HTTP status code will be 201 Created.
| Status Code | Description |
|---|---|
| 201 | The QR Code successfully generated. |
Error Responses
If there is an error during QR code generate, the API will return an appropriate error response.
| Status Code | Description |
|---|---|
| 400 | Bad Request - Invalid input data. |
| 401 | Unauthorized - Authentication failed. |
| 422 | Unprocessable Entity. |
| 500 | Internal Server Error - An unexpected error. |
Snapchat
POST /api/generate
Example request:
curl -X POST "https://api.qrstuff.com/api/generate" \
-H "Authorization: Bearer [your_api_key]" \
-H "Content-Type: application/json" \
-d '{
"data": {
"username": "john.doe"
},
"type": "SNAPCHAT",
"dynamic": false,
"format": "png",
"size": 512,
"error_correction_level": "L",
"gradient": "diagonal",
"colors": {
"bg": "#FFFFFF",
"fg": "#000000",
"finder": "#000000",
"finder_eye": "#000000",
"alignment_inner": "#000000",
"alignment_outer": "#000000",
"gradient": "#5D4696",
"center_text": "#000000",
"transparent": false
},
"module_shape": "square",
"finder_shape": "square",
"finder_eye_shape": "square",
"alignment_outer_shape": "square",
"alignment_inner_shape": "square",
"center_text": null,
"logo": {
"idfs_file": null,
"multiplier": null
},
"background_image": {
"idfs_file": null
},
"foreground_image": {
"idfs_file": null
},
"script": "<script>!function(e,t,a,n,c,s,o){e.GoogleAnalyticsObject=c,e[c]=e[c]||function(){(e[c].q=e[c].q||[]).push(arguments)},e[c].l=1*new Date,s=t.createElement(a),o=t.getElementsByTagName(a)[0],s.async=1,s.src=n,o.parentNode.insertBefore(s,o)}(window,document,\"script\",\"//www.google-analytics.com/analytics.js\",\"ga\"),ga(\"create\",\"UA-xxxxxx-1\",\"auto\"),ga(\"send\",\"pageview\");</script>"
}'
The above request will return a PNG file. The HTTP status code will be
201 Created.
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| data.username | string | Yes | The snapchat username |
| type | string | Yes | Type must be SNAPCHAT |
Response
On success the API will return a PNG file. The HTTP status code will be 201 Created.
| Status Code | Description |
|---|---|
| 201 | The QR Code successfully generated. |
Error Responses
If there is an error during QR code generate, the API will return an appropriate error response.
| Status Code | Description |
|---|---|
| 400 | Bad Request - Invalid input data. |
| 401 | Unauthorized - Authentication failed. |
| 422 | Unprocessable Entity. |
| 500 | Internal Server Error - An unexpected error. |
Social Links
POST /api/generate
Example request:
curl -X POST "https://api.qrstuff.com/api/generate" \
-H "Authorization: Bearer [your_api_key]" \
-H "Content-Type: application/json" \
-d '{
"data": {
"heading": "Sample Heading",
"icons": [
"https://example.com",
"https://google.com"
],
"urls": [
"https://card1.com",
"https://card2.com"
],
"theme": "Theme 1"
},
"type": "SOCIAL_LINKS",
"dynamic": true,
"format": "png",
"size": 512,
"error_correction_level": "L",
"gradient": "diagonal",
"colors": {
"bg": "#FFFFFF",
"fg": "#000000",
"finder": "#000000",
"finder_eye": "#000000",
"alignment_inner": "#000000",
"alignment_outer": "#000000",
"gradient": "#5D4696",
"center_text": "#000000",
"transparent": false
},
"module_shape": "square",
"finder_shape": "square",
"finder_eye_shape": "square",
"alignment_outer_shape": "square",
"alignment_inner_shape": "square",
"center_text": null,
"logo": {
"idfs_file": null,
"multiplier": null
},
"background_image": {
"idfs_file": null
},
"foreground_image": {
"idfs_file": null
},
"script": "<script>!function(e,t,a,n,c,s,o){e.GoogleAnalyticsObject=c,e[c]=e[c]||function(){(e[c].q=e[c].q||[]).push(arguments)},e[c].l=1*new Date,s=t.createElement(a),o=t.getElementsByTagName(a)[0],s.async=1,s.src=n,o.parentNode.insertBefore(s,o)}(window,document,\"script\",\"//www.google-analytics.com/analytics.js\",\"ga\"),ga(\"create\",\"UA-xxxxxx-1\",\"auto\"),ga(\"send\",\"pageview\");</script>"
}'
The above request will return a PNG file. The HTTP status code will be
201 Created.
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| data.heading | string | Yes | The heading of the configuration. Must be a string with a maximum length of 255 characters. |
| data.icons | array | No | An array of icon URLs. Can contain up to 50 URLs. |
| data.urls | array | Yes | An array of URLs. Must contain at least 1 and at most 50 URLs. |
| data.theme | string | No | The theme for the configuration. Must be a string with a maximum length of 255 characters. |
| type | string | Yes | Type must be SOCIAL_LINKS |
| dynamic | bool | Yes | Must be true |
Response
On success the API will return a PNG file. The HTTP status code will be 201 Created.
| Status Code | Description |
|---|---|
| 201 | The QR Code successfully generated. |
Error Responses
If there is an error during QR code generate, the API will return an appropriate error response.
| Status Code | Description |
|---|---|
| 400 | Bad Request - Invalid input data. |
| 401 | Unauthorized - Authentication failed. |
| 422 | Unprocessable Entity. |
| 500 | Internal Server Error - An unexpected error. |
Spotify
POST /api/generate
Example request:
curl -X POST "https://api.qrstuff.com/api/generate" \
-H "Authorization: Bearer [your_api_key]" \
-H "Content-Type: application/json" \
-d '{
"data": {
"spotify_link_url": "https://open.spotify.com/episode/0ofz3F59Q6XieFQkT0h2Yb"
},
"type": "SPOTIFY",
"dynamic": false,
"format": "png",
"size": 512,
"error_correction_level": "L",
"gradient": "diagonal",
"colors": {
"bg": "#FFFFFF",
"fg": "#000000",
"finder": "#000000",
"finder_eye": "#000000",
"alignment_inner": "#000000",
"alignment_outer": "#000000",
"gradient": "#5D4696",
"center_text": "#000000",
"transparent": false
},
"module_shape": "square",
"finder_shape": "square",
"finder_eye_shape": "square",
"alignment_outer_shape": "square",
"alignment_inner_shape": "square",
"center_text": null,
"logo": {
"idfs_file": null,
"multiplier": null
},
"background_image": {
"idfs_file": null
},
"foreground_image": {
"idfs_file": null
},
"script": "<script>!function(e,t,a,n,c,s,o){e.GoogleAnalyticsObject=c,e[c]=e[c]||function(){(e[c].q=e[c].q||[]).push(arguments)},e[c].l=1*new Date,s=t.createElement(a),o=t.getElementsByTagName(a)[0],s.async=1,s.src=n,o.parentNode.insertBefore(s,o)}(window,document,\"script\",\"//www.google-analytics.com/analytics.js\",\"ga\"),ga(\"create\",\"UA-xxxxxx-1\",\"auto\"),ga(\"send\",\"pageview\");</script>"
}'
The above request will return a PNG file. The HTTP status code will be
201 Created.
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| data.spotify_link_url | string | Yes | The Spotify link URL |
| type | string | Yes | Type must be SPOTIFY |
Response
On success the API will return a PNG file. The HTTP status code will be 201 Created.
| Status Code | Description |
|---|---|
| 201 | The QR Code successfully generated. |
Error Responses
If there is an error during QR code generate, the API will return an appropriate error response.
| Status Code | Description |
|---|---|
| 400 | Bad Request - Invalid input data. |
| 401 | Unauthorized - Authentication failed. |
| 422 | Unprocessable Entity. |
| 500 | Internal Server Error - An unexpected error. |
Telegram
POST /api/generate
Example request:
curl -X POST "https://api.qrstuff.com/api/generate" \
-H "Authorization: Bearer [your_api_key]" \
-H "Content-Type: application/json" \
-d '{
"data": {
"telegram_url": "https://t.me/mychannel"
},
"type": "TELEGRAM",
"dynamic": false,
"format": "png",
"size": 512,
"error_correction_level": "L",
"gradient": "diagonal",
"colors": {
"bg": "#FFFFFF",
"fg": "#000000",
"finder": "#000000",
"finder_eye": "#000000",
"alignment_inner": "#000000",
"alignment_outer": "#000000",
"gradient": "#5D4696",
"center_text": "#000000",
"transparent": false
},
"module_shape": "square",
"finder_shape": "square",
"finder_eye_shape": "square",
"alignment_outer_shape": "square",
"alignment_inner_shape": "square",
"center_text": null,
"logo": {
"idfs_file": null,
"multiplier": null
},
"background_image": {
"idfs_file": null
},
"foreground_image": {
"idfs_file": null
}
}'
The above request will return a PNG file. The HTTP status code will be
201 Created.
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| data.telegram_url | string | Yes | The Telegram Channel, Group, Profile, Invite, Send Message etc |
| type | string | Yes | Type must be TELEGRAM |
Response
On success the API will return a PNG file. The HTTP status code will be 201 Created.
| Status Code | Description |
|---|---|
| 201 | The QR Code successfully generated. |
Error Responses
If there is an error during QR code generate, the API will return an appropriate error response.
| Status Code | Description |
|---|---|
| 400 | Bad Request - Invalid input data. |
| 401 | Unauthorized - Authentication failed. |
| 422 | Unprocessable Entity. |
| 500 | Internal Server Error - An unexpected error. |
TikTok
POST /api/generate
Example request:
curl -X POST "https://api.qrstuff.com/api/generate" \
-H "Authorization: Bearer [your_api_key]" \
-H "Content-Type: application/json" \
-d '{
"data": {
"tiktok_link_url": "https://open.spotify.com/episode/0ofz3F59Q6XieFQkT0h2Yb"
},
"type": "TIKTOK",
"dynamic": false,
"format": "png",
"size": 512,
"error_correction_level": "L",
"gradient": "diagonal",
"colors": {
"bg": "#FFFFFF",
"fg": "#000000",
"finder": "#000000",
"finder_eye": "#000000",
"alignment_inner": "#000000",
"alignment_outer": "#000000",
"gradient": "#5D4696",
"center_text": "#000000",
"transparent": false
},
"module_shape": "square",
"finder_shape": "square",
"finder_eye_shape": "square",
"alignment_outer_shape": "square",
"alignment_inner_shape": "square",
"center_text": null,
"logo": {
"idfs_file": null,
"multiplier": null
},
"background_image": {
"idfs_file": null
},
"foreground_image": {
"idfs_file": null
},
"script": "<script>!function(e,t,a,n,c,s,o){e.GoogleAnalyticsObject=c,e[c]=e[c]||function(){(e[c].q=e[c].q||[]).push(arguments)},e[c].l=1*new Date,s=t.createElement(a),o=t.getElementsByTagName(a)[0],s.async=1,s.src=n,o.parentNode.insertBefore(s,o)}(window,document,\"script\",\"//www.google-analytics.com/analytics.js\",\"ga\"),ga(\"create\",\"UA-xxxxxx-1\",\"auto\"),ga(\"send\",\"pageview\");</script>"
}'
The above request will return a PNG file. The HTTP status code will be
201 Created.
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| data.tiktok_link_url | string | Yes | The TikTok link URL |
| type | string | Yes | Type must be TIKTOK |
Response
On success the API will return a PNG file. The HTTP status code will be 201 Created.
| Status Code | Description |
|---|---|
| 201 | The QR Code successfully generated. |
Error Responses
If there is an error during QR code generate, the API will return an appropriate error response.
| Status Code | Description |
|---|---|
| 400 | Bad Request - Invalid input data. |
| 401 | Unauthorized - Authentication failed. |
| 422 | Unprocessable Entity. |
| 500 | Internal Server Error - An unexpected error. |
Tilez DBC
POST /api/generate
Example request:
curl -X POST "https://api.qrstuff.com/api/generate" \
-H "Authorization: Bearer [your_api_key]" \
-H "Content-Type: application/json" \
-d '{
"data": {
"card_name": "Hello world",
"layout_type": "Professional"
},
"type": "TILEZ_DBC",
"dynamic": true,
"format": "png",
"size": 512,
"error_correction_level": "L",
"gradient": "diagonal",
"colors": {
"bg": "#FFFFFF",
"fg": "#000000",
"finder": "#000000",
"finder_eye": "#000000",
"alignment_inner": "#000000",
"alignment_outer": "#000000",
"gradient": "#5D4696",
"center_text": "#000000",
"transparent": false
},
"module_shape": "square",
"finder_shape": "square",
"finder_eye_shape": "square",
"alignment_outer_shape": "square",
"alignment_inner_shape": "square",
"center_text": null,
"logo": {
"idfs_file": null,
"multiplier": null
},
"background_image": {
"idfs_file": null
},
"foreground_image": {
"idfs_file": null
}
"script": "<script>!function(e,t,a,n,c,s,o){e.GoogleAnalyticsObject=c,e[c]=e[c]||function(){(e[c].q=e[c].q||[]).push(arguments)},e[c].l=1*new Date,s=t.createElement(a),o=t.getElementsByTagName(a)[0],s.async=1,s.src=n,o.parentNode.insertBefore(s,o)}(window,document,\"script\",\"//www.google-analytics.com/analytics.js\",\"ga\"),ga(\"create\",\"UA-xxxxxx-1\",\"auto\"),ga(\"send\",\"pageview\");</script>"
}'
The above request will return a PNG file. The HTTP status code will be
201 Created.
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| data.card_name | string | Yes | Card Name |
| data.layout_type | string | Yes | Card Layout Type. Must be Personal or Professional |
| type | string | Yes | Type must be TILEZ_DBC |
Response
On success the API will return a PNG file. The HTTP status code will be 201 Created.
| Status Code | Description |
|---|---|
| 201 | The QR Code successfully generated. |
Error Responses
If there is an error during QR code generate, the API will return an appropriate error response.
| Status Code | Description |
|---|---|
| 400 | Bad Request - Invalid input data. |
| 401 | Unauthorized - Authentication failed. |
| 422 | Unprocessable Entity. |
| 500 | Internal Server Error - An unexpected error. |
POST /api/generate
Example request:
curl -X POST "https://api.qrstuff.com/api/generate" \
-H "Authorization: Bearer [your_api_key]" \
-H "Content-Type: application/json" \
-d '{
"data": {
"username": "john.doe"
},
"type": "TWITTER",
"dynamic": true,
"format": "png",
"size": 512,
"error_correction_level": "L",
"gradient": "diagonal",
"colors": {
"bg": "#FFFFFF",
"fg": "#000000",
"finder": "#000000",
"finder_eye": "#000000",
"alignment_inner": "#000000",
"alignment_outer": "#000000",
"gradient": "#5D4696",
"center_text": "#000000",
"transparent": false
},
"module_shape": "square",
"finder_shape": "square",
"finder_eye_shape": "square",
"alignment_outer_shape": "square",
"alignment_inner_shape": "square",
"center_text": null,
"logo": {
"idfs_file": null,
"multiplier": null
},
"background_image": {
"idfs_file": null
},
"foreground_image": {
"idfs_file": null
},
"script": "<script>!function(e,t,a,n,c,s,o){e.GoogleAnalyticsObject=c,e[c]=e[c]||function(){(e[c].q=e[c].q||[]).push(arguments)},e[c].l=1*new Date,s=t.createElement(a),o=t.getElementsByTagName(a)[0],s.async=1,s.src=n,o.parentNode.insertBefore(s,o)}(window,document,\"script\",\"//www.google-analytics.com/analytics.js\",\"ga\"),ga(\"create\",\"UA-xxxxxx-1\",\"auto\"),ga(\"send\",\"pageview\");</script>"
}'
The above request will return a PNG file. The HTTP status code will be
201 Created.
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| data.username | string | Yes | Twitter username. |
| type | string | Yes | Type must be TWITTER |
| dynamic | bool | Yes | Must be true |
Response
On success the API will return a PNG file. The HTTP status code will be 201 Created.
| Status Code | Description |
|---|---|
| 201 | The QR Code successfully generated. |
Error Responses
If there is an error during QR code generate, the API will return an appropriate error response.
| Status Code | Description |
|---|---|
| 400 | Bad Request - Invalid input data. |
| 401 | Unauthorized - Authentication failed. |
| 422 | Unprocessable Entity. |
| 500 | Internal Server Error - An unexpected error. |
Twitter Status
POST /api/generate
Example request:
curl -X POST "https://api.qrstuff.com/api/generate" \
-H "Authorization: Bearer [your_api_key]" \
-H "Content-Type: application/json" \
-d '{
"data": {
"status": "twitter status string"
},
"type": "TWITTER_STATUS",
"dynamic": true,
"format": "png",
"size": 512,
"error_correction_level": "L",
"gradient": "diagonal",
"colors": {
"bg": "#FFFFFF",
"fg": "#000000",
"finder": "#000000",
"finder_eye": "#000000",
"alignment_inner": "#000000",
"alignment_outer": "#000000",
"gradient": "#5D4696",
"center_text": "#000000",
"transparent": false
},
"module_shape": "square",
"finder_shape": "square",
"finder_eye_shape": "square",
"alignment_outer_shape": "square",
"alignment_inner_shape": "square",
"center_text": null,
"logo": {
"idfs_file": null,
"multiplier": null
},
"background_image": {
"idfs_file": null
},
"foreground_image": {
"idfs_file": null
},
"script": "<script>!function(e,t,a,n,c,s,o){e.GoogleAnalyticsObject=c,e[c]=e[c]||function(){(e[c].q=e[c].q||[]).push(arguments)},e[c].l=1*new Date,s=t.createElement(a),o=t.getElementsByTagName(a)[0],s.async=1,s.src=n,o.parentNode.insertBefore(s,o)}(window,document,\"script\",\"//www.google-analytics.com/analytics.js\",\"ga\"),ga(\"create\",\"UA-xxxxxx-1\",\"auto\"),ga(\"send\",\"pageview\");</script>"
}'
The above request will return a PNG file. The HTTP status code will be
201 Created.
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| data.status | string | Yes | Twitter status. |
| type | string | Yes | Type must be TWITTER_STATUS |
| dynamic | bool | Yes | Must be true |
Response
On success the API will return a PNG file. The HTTP status code will be 201 Created.
| Status Code | Description |
|---|---|
| 201 | The QR Code successfully generated. |
Error Responses
If there is an error during QR code generate, the API will return an appropriate error response.
| Status Code | Description |
|---|---|
| 400 | Bad Request - Invalid input data. |
| 401 | Unauthorized - Authentication failed. |
| 422 | Unprocessable Entity. |
| 500 | Internal Server Error - An unexpected error. |
UPI Payments
POST /api/generate
Example request:
curl -X POST "https://api.qrstuff.com/api/generate" \
-H "Authorization: Bearer [your_api_key]" \
-H "Content-Type: application/json" \
-d '{
"data": {
"vpa": "payee@example.com",
"merchant": "Example Merchant",
"amount": 150.00,
"notes": "Payment for services rendered"
},
"type": "UPI",
"dynamic": false,
"format": "png",
"size": 512,
"error_correction_level": "L",
"gradient": "diagonal",
"colors": {
"bg": "#FFFFFF",
"fg": "#000000",
"finder": "#000000",
"finder_eye": "#000000",
"alignment_inner": "#000000",
"alignment_outer": "#000000",
"gradient": "#5D4696",
"center_text": "#000000",
"transparent": false
},
"module_shape": "square",
"finder_shape": "square",
"finder_eye_shape": "square",
"alignment_outer_shape": "square",
"alignment_inner_shape": "square",
"center_text": null,
"logo": {
"idfs_file": null,
"multiplier": null
},
"background_image": {
"idfs_file": null
},
"foreground_image": {
"idfs_file": null
},
"script": "<script>!function(e,t,a,n,c,s,o){e.GoogleAnalyticsObject=c,e[c]=e[c]||function(){(e[c].q=e[c].q||[]).push(arguments)},e[c].l=1*new Date,s=t.createElement(a),o=t.getElementsByTagName(a)[0],s.async=1,s.src=n,o.parentNode.insertBefore(s,o)}(window,document,\"script\",\"//www.google-analytics.com/analytics.js\",\"ga\"),ga(\"create\",\"UA-xxxxxx-1\",\"auto\"),ga(\"send\",\"pageview\");</script>"
}'
The above request will return a PNG file. The HTTP status code will be
201 Created.
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| data.vpa | string | Yes | The Virtual Payment Address (VPA) of the payee. Must be a string with a minimum length of 1 character. |
| data.merchant | string | Yes | The merchant name. Must be a string with a minimum length of 1 character. |
| data.amount | numeric | No | The amount to be paid. Must be a numeric value with a minimum value of 0. |
| data.notes | string | No | Additional notes for the payment. Must be a string with a minimum length of 1 character and a maximum length specified by the application. |
| type | string | Yes | Type must be UPI |
Response
On success the API will return a PNG file. The HTTP status code will be 201 Created.
| Status Code | Description |
|---|---|
| 201 | The QR Code successfully generated. |
Error Responses
If there is an error during QR code generate, the API will return an appropriate error response.
| Status Code | Description |
|---|---|
| 400 | Bad Request - Invalid input data. |
| 401 | Unauthorized - Authentication failed. |
| 422 | Unprocessable Entity. |
| 500 | Internal Server Error - An unexpected error. |
Venmo
POST /api/generate
Example request:
curl -X POST "https://api.qrstuff.com/api/generate" \
-H "Authorization: Bearer [your_api_key]" \
-H "Content-Type: application/json" \
-d '{
"data": {
"recipients": "123 456 7890",
"notes": "Sample text",
"amount": 100
},
"type": "VENMO",
"dynamic": false,
"format": "png",
"size": 512,
"error_correction_level": "L",
"gradient": "diagonal",
"colors": {
"bg": "#FFFFFF",
"fg": "#000000",
"finder": "#000000",
"finder_eye": "#000000",
"alignment_inner": "#000000",
"alignment_outer": "#000000",
"gradient": "#5D4696",
"center_text": "#000000",
"transparent": false
},
"module_shape": "square",
"finder_shape": "square",
"finder_eye_shape": "square",
"alignment_outer_shape": "square",
"alignment_inner_shape": "square",
"center_text": null,
"logo": {
"idfs_file": null,
"multiplier": null
},
"background_image": {
"idfs_file": null
},
"foreground_image": {
"idfs_file": null
},
"script": "<script>!function(e,t,a,n,c,s,o){e.GoogleAnalyticsObject=c,e[c]=e[c]||function(){(e[c].q=e[c].q||[]).push(arguments)},e[c].l=1*new Date,s=t.createElement(a),o=t.getElementsByTagName(a)[0],s.async=1,s.src=n,o.parentNode.insertBefore(s,o)}(window,document,\"script\",\"//www.google-analytics.com/analytics.js\",\"ga\"),ga(\"create\",\"UA-xxxxxx-1\",\"auto\"),ga(\"send\",\"pageview\");</script>"
}'
The above request will return a PNG file. The HTTP status code will be
201 Created.
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| data.recipients | string | Yes | Username or Email or Phone Number |
| data.amount | integer | Yes | Amount |
| data.notes | string | No | Reference Notes |
| type | string | Yes | Type must be VENMO |
Response
On success the API will return a PNG file. The HTTP status code will be 201 Created.
| Status Code | Description |
|---|---|
| 201 | The QR Code successfully generated. |
Error Responses
If there is an error during QR code generate, the API will return an appropriate error response.
| Status Code | Description |
|---|---|
| 400 | Bad Request - Invalid input data. |
| 401 | Unauthorized - Authentication failed. |
| 422 | Unprocessable Entity. |
| 500 | Internal Server Error - An unexpected error. |
Video File
POST /api/generate
Example request:
curl -X POST "https://api.qrstuff.com/api/generate" \
-H "Authorization: Bearer [your_api_key]" \
-H "Content-Type: application/json" \
-d '{
"data": {
"idfs_file": 101
},
"type": "VIDEO",
"dynamic": false,
"format": "png",
"size": 512,
"error_correction_level": "L",
"gradient": "diagonal",
"colors": {
"bg": "#FFFFFF",
"fg": "#000000",
"finder": "#000000",
"finder_eye": "#000000",
"alignment_inner": "#000000",
"alignment_outer": "#000000",
"gradient": "#5D4696",
"center_text": "#000000",
"transparent": false
},
"module_shape": "square",
"finder_shape": "square",
"finder_eye_shape": "square",
"alignment_outer_shape": "square",
"alignment_inner_shape": "square",
"center_text": null,
"logo": {
"idfs_file": null,
"multiplier": null
},
"background_image": {
"idfs_file": null
},
"foreground_image": {
"idfs_file": null
},
"script": "<script>!function(e,t,a,n,c,s,o){e.GoogleAnalyticsObject=c,e[c]=e[c]||function(){(e[c].q=e[c].q||[]).push(arguments)},e[c].l=1*new Date,s=t.createElement(a),o=t.getElementsByTagName(a)[0],s.async=1,s.src=n,o.parentNode.insertBefore(s,o)}(window,document,\"script\",\"//www.google-analytics.com/analytics.js\",\"ga\"),ga(\"create\",\"UA-xxxxxx-1\",\"auto\"),ga(\"send\",\"pageview\");</script>"
}'
The above request will return a PNG file. The HTTP status code will be
201 Created.
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| data.idfs_file | int | Yes | Video File ID. |
| type | string | Yes | Type must be VIDEO |
Response
On success the API will return a PNG file. The HTTP status code will be 201 Created.
| Status Code | Description |
|---|---|
| 201 | The QR Code successfully generated. |
Error Responses
If there is an error during QR code generate, the API will return an appropriate error response.
| Status Code | Description |
|---|---|
| 400 | Bad Request - Invalid input data. |
| 401 | Unauthorized - Authentication failed. |
| 422 | Unprocessable Entity. |
| 500 | Internal Server Error - An unexpected error. |
Vimeo
POST /api/generate
Example request:
curl -X POST "https://api.qrstuff.com/api/generate" \
-H "Authorization: Bearer [your_api_key]" \
-H "Content-Type: application/json" \
-d '{
"data": {
"vimeo_url": "https://vimeo.com/449787858"
},
"type": "VIMEO",
"dynamic": false,
"format": "png",
"size": 512,
"error_correction_level": "L",
"gradient": "diagonal",
"colors": {
"bg": "#FFFFFF",
"fg": "#000000",
"finder": "#000000",
"finder_eye": "#000000",
"alignment_inner": "#000000",
"alignment_outer": "#000000",
"gradient": "#5D4696",
"center_text": "#000000",
"transparent": false
},
"module_shape": "square",
"finder_shape": "square",
"finder_eye_shape": "square",
"alignment_outer_shape": "square",
"alignment_inner_shape": "square",
"center_text": null,
"logo": {
"idfs_file": null,
"multiplier": null
},
"background_image": {
"idfs_file": null
},
"foreground_image": {
"idfs_file": null
}
}'
The above request will return a PNG file. The HTTP status code will be
201 Created.
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| data.vimeo_url | string | Yes | The Vimeo Video, Profile, Group URL |
| type | string | Yes | Type must be VIMEO |
Response
On success the API will return a PNG file. The HTTP status code will be 201 Created.
| Status Code | Description |
|---|---|
| 201 | The QR Code successfully generated. |
Error Responses
If there is an error during QR code generate, the API will return an appropriate error response.
| Status Code | Description |
|---|---|
| 400 | Bad Request - Invalid input data. |
| 401 | Unauthorized - Authentication failed. |
| 422 | Unprocessable Entity. |
| 500 | Internal Server Error - An unexpected error. |
Website URL
POST /api/generate
Example request:
curl -X POST "https://api.qrstuff.com/api/generate" \
-H "Authorization: Bearer [your_api_key]" \
-H "Content-Type: application/json" \
-d '{
"data": {
"url": "https://qrstuff.com"
},
"type": "URL",
"dynamic": false,
"format": "png",
"size": 512,
"error_correction_level": "L",
"gradient": "diagonal",
"colors": {
"bg": "#FFFFFF",
"fg": "#000000",
"finder": "#000000",
"finder_eye": "#000000",
"alignment_inner": "#000000",
"alignment_outer": "#000000",
"gradient": "#5D4696",
"center_text": "#000000",
"transparent": false
},
"module_shape": "square",
"finder_shape": "square",
"finder_eye_shape": "square",
"alignment_outer_shape": "square",
"alignment_inner_shape": "square",
"center_text": null,
"logo": {
"idfs_file": null,
"multiplier": null
},
"background_image": {
"idfs_file": null
},
"foreground_image": {
"idfs_file": null
},
"script": "<script>!function(e,t,a,n,c,s,o){e.GoogleAnalyticsObject=c,e[c]=e[c]||function(){(e[c].q=e[c].q||[]).push(arguments)},e[c].l=1*new Date,s=t.createElement(a),o=t.getElementsByTagName(a)[0],s.async=1,s.src=n,o.parentNode.insertBefore(s,o)}(window,document,\"script\",\"//www.google-analytics.com/analytics.js\",\"ga\"),ga(\"create\",\"UA-xxxxxx-1\",\"auto\"),ga(\"send\",\"pageview\");</script>",
"variants": [
{
"name": "US version URL",
"rules": {
"if": {
"all": [
{
"any": [
{ "field": "geo.country", "op": "eq", "value": "IN" },
{ "field": "geo.country", "op": "eq", "value": "US" }
]
},
{ "field": "time.date", "op": "between", "value": ["2026-01-01", "2026-01-31"] }
]
}
},
"data": {
"url": "https://qrstuff.com/en-us"
}
}
]
}'
The above request will return a PNG file. The HTTP status code will be
201 Created.
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| data.url | string | Yes | Valid url |
| type | string | Yes | Type must be URL |
Response
On success the API will return a PNG file. The HTTP status code will be 201 Created.
| Status Code | Description |
|---|---|
| 201 | The QR Code successfully generated. |
Error Responses
If there is an error during QR code generate, the API will return an appropriate error response.
| Status Code | Description |
|---|---|
| 400 | Bad Request - Invalid input data. |
| 401 | Unauthorized - Authentication failed. |
| 422 | Unprocessable Entity. |
| 500 | Internal Server Error - An unexpected error. |
POST /api/generate
Example request:
curl -X POST "https://api.qrstuff.com/api/generate" \
-H "Authorization: Bearer [your_api_key]" \
-H "Content-Type: application/json" \
-d '{
"data": {
"country_code": "+1",
"number": 1234567890,
"message": "Hello, this is a test message!"
},
"type": "WHATSAPP",
"dynamic": false,
"format": "png",
"size": 512,
"error_correction_level": "L",
"gradient": "diagonal",
"colors": {
"bg": "#FFFFFF",
"fg": "#000000",
"finder": "#000000",
"finder_eye": "#000000",
"alignment_inner": "#000000",
"alignment_outer": "#000000",
"gradient": "#5D4696",
"center_text": "#000000",
"transparent": false
},
"module_shape": "square",
"finder_shape": "square",
"finder_eye_shape": "square",
"alignment_outer_shape": "square",
"alignment_inner_shape": "square",
"center_text": null,
"logo": {
"idfs_file": null,
"multiplier": null
},
"background_image": {
"idfs_file": null
},
"foreground_image": {
"idfs_file": null
},
"script": "<script>!function(e,t,a,n,c,s,o){e.GoogleAnalyticsObject=c,e[c]=e[c]||function(){(e[c].q=e[c].q||[]).push(arguments)},e[c].l=1*new Date,s=t.createElement(a),o=t.getElementsByTagName(a)[0],s.async=1,s.src=n,o.parentNode.insertBefore(s,o)}(window,document,\"script\",\"//www.google-analytics.com/analytics.js\",\"ga\"),ga(\"create\",\"UA-xxxxxx-1\",\"auto\"),ga(\"send\",\"pageview\");</script>"
}'
The above request will return a PNG file. The HTTP status code will be
201 Created.
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| data.country_code | string | Yes | The international calling code (e.g., +1 for the US, +44 for the UK). Must be a string with a maximum length of 15 characters. |
| data.number | numeric | Yes | The phone number to send the SMS to. Must be a numeric value with a maximum of 100 digits and must match the regex pattern /^[1-9]\d{6,14}$/. |
| data.message | string | No | The message to send via SMS. Must be a string with a maximum length of 1024 characters. |
| type | string | Yes | Type must be WHATSAPP |
Response
On success the API will return a PNG file. The HTTP status code will be 201 Created.
| Status Code | Description |
|---|---|
| 201 | The QR Code successfully generated. |
Error Responses
If there is an error during QR code generate, the API will return an appropriate error response.
| Status Code | Description |
|---|---|
| 400 | Bad Request - Invalid input data. |
| 401 | Unauthorized - Authentication failed. |
| 422 | Unprocessable Entity. |
| 500 | Internal Server Error - An unexpected error. |
WiFi Login
POST /api/generate
Example request:
curl -X POST "https://api.qrstuff.com/api/generate" \
-H "Authorization: Bearer [your_api_key]" \
-H "Content-Type: application/json" \
-d '{
"data": {
"ssid": "MyWiFiNetwork",
"visibility": true,
"networkType": "WPA2",
"password": "MyPassword123"
},
"type": "WIFI",
"dynamic": false,
"format": "png",
"size": 512,
"error_correction_level": "L",
"gradient": "diagonal",
"colors": {
"bg": "#FFFFFF",
"fg": "#000000",
"finder": "#000000",
"finder_eye": "#000000",
"alignment_inner": "#000000",
"alignment_outer": "#000000",
"gradient": "#5D4696",
"center_text": "#000000",
"transparent": false
},
"module_shape": "square",
"finder_shape": "square",
"finder_eye_shape": "square",
"alignment_outer_shape": "square",
"alignment_inner_shape": "square",
"center_text": null,
"logo": {
"idfs_file": null,
"multiplier": null
},
"background_image": {
"idfs_file": null
},
"foreground_image": {
"idfs_file": null
},
"script": "<script>!function(e,t,a,n,c,s,o){e.GoogleAnalyticsObject=c,e[c]=e[c]||function(){(e[c].q=e[c].q||[]).push(arguments)},e[c].l=1*new Date,s=t.createElement(a),o=t.getElementsByTagName(a)[0],s.async=1,s.src=n,o.parentNode.insertBefore(s,o)}(window,document,\"script\",\"//www.google-analytics.com/analytics.js\",\"ga\"),ga(\"create\",\"UA-xxxxxx-1\",\"auto\"),ga(\"send\",\"pageview\");</script>"
}'
The above request will return a PNG file. The HTTP status code will be
201 Created.
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| data.ssid | string | Yes | The SSID (Service Set Identifier) of the Wi-Fi network. Must be a string between 1 and 100 characters. |
| data.visibility | boolean | No | Indicates whether the Wi-Fi network is visible or not. |
| data.networkType | string | Yes | The type of network. Must be a string between 1 and 50 characters. |
| data.password | string | No | The password for the Wi-Fi network. Must be a string with a maximum length of 100 characters. |
| type | string | Yes | Type must be WIFI |
Response
On success the API will return a PNG file. The HTTP status code will be 201 Created.
| Status Code | Description |
|---|---|
| 201 | The QR Code successfully generated. |
Error Responses
If there is an error during QR code generate, the API will return an appropriate error response.
| Status Code | Description |
|---|---|
| 400 | Bad Request - Invalid input data. |
| 401 | Unauthorized - Authentication failed. |
| 422 | Unprocessable Entity. |
| 500 | Internal Server Error - An unexpected error. |
Youtube
POST /api/generate
Example request:
curl -X POST "https://api.qrstuff.com/api/generate" \
-H "Authorization: Bearer [your_api_key]" \
-H "Content-Type: application/json" \
-d '{
"data": {
"videoID": "ATr7RrRa_ck",
"url": "https://www.youtube.com/watch?v=ATr7RrRa_ck",
"device_type": "mobile"
},
"type": "YOUTUBE",
"dynamic": false,
"format": "png",
"size": 512,
"error_correction_level": "L",
"gradient": "diagonal",
"colors": {
"bg": "#FFFFFF",
"fg": "#000000",
"finder": "#000000",
"finder_eye": "#000000",
"alignment_inner": "#000000",
"alignment_outer": "#000000",
"gradient": "#5D4696",
"center_text": "#000000",
"transparent": false
},
"module_shape": "square",
"finder_shape": "square",
"finder_eye_shape": "square",
"alignment_outer_shape": "square",
"alignment_inner_shape": "square",
"center_text": null,
"logo": {
"idfs_file": null,
"multiplier": null
},
"background_image": {
"idfs_file": null
},
"foreground_image": {
"idfs_file": null
},
"script": "<script>!function(e,t,a,n,c,s,o){e.GoogleAnalyticsObject=c,e[c]=e[c]||function(){(e[c].q=e[c].q||[]).push(arguments)},e[c].l=1*new Date,s=t.createElement(a),o=t.getElementsByTagName(a)[0],s.async=1,s.src=n,o.parentNode.insertBefore(s,o)}(window,document,\"script\",\"//www.google-analytics.com/analytics.js\",\"ga\"),ga(\"create\",\"UA-xxxxxx-1\",\"auto\"),ga(\"send\",\"pageview\");</script>"
}'
The above request will return a PNG file. The HTTP status code will be
201 Created.
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| data.videoID | string | Optional, Required if url is not provided |
The ID of the YouTube video. Must be a string with a maximum length of 15 characters. |
| data.url | string | Optional, Required if id is not provided |
The URL of the YouTube video. Must be a valid URL with a maximum length of 255 characters and match the specified regex pattern. |
| data.device_type | string | No | The type of device on which to play the video. Must be either mobile or desktop. |
| type | string | Yes | Type must be YOUTUBE |
Response
On success the API will return a PNG file. The HTTP status code will be 201 Created.
| Status Code | Description |
|---|---|
| 201 | The QR Code successfully generated. |
Error Responses
If there is an error during QR code generate, the API will return an appropriate error response.
| Status Code | Description |
|---|---|
| 400 | Bad Request - Invalid input data. |
| 401 | Unauthorized - Authentication failed. |
| 422 | Unprocessable Entity. |
| 500 | Internal Server Error - An unexpected error. |
Zelle Pay
POST /api/generate
Example request:
curl -X POST "https://api.qrstuff.com/api/generate" \
-H "Authorization: Bearer [your_api_key]" \
-H "Content-Type: application/json" \
-d '{
"data": {
"token": "123 456 7890",
"amount": "100",
"memo": "test v",
"username": "johndoe"
},
"type": "ZELLE",
"dynamic": false,
"format": "png",
"size": 512,
"error_correction_level": "L",
"gradient": "diagonal",
"colors": {
"bg": "#FFFFFF",
"fg": "#000000",
"finder": "#000000",
"finder_eye": "#000000",
"alignment_inner": "#000000",
"alignment_outer": "#000000",
"gradient": "#5D4696",
"center_text": "#000000",
"transparent": false
},
"module_shape": "square",
"finder_shape": "square",
"finder_eye_shape": "square",
"alignment_outer_shape": "square",
"alignment_inner_shape": "square",
"center_text": null,
"logo": {
"idfs_file": null,
"multiplier": null
},
"background_image": {
"idfs_file": null
},
"foreground_image": {
"idfs_file": null
},
"script": "<script>!function(e,t,a,n,c,s,o){e.GoogleAnalyticsObject=c,e[c]=e[c]||function(){(e[c].q=e[c].q||[]).push(arguments)},e[c].l=1*new Date,s=t.createElement(a),o=t.getElementsByTagName(a)[0],s.async=1,s.src=n,o.parentNode.insertBefore(s,o)}(window,document,\"script\",\"//www.google-analytics.com/analytics.js\",\"ga\"),ga(\"create\",\"UA-xxxxxx-1\",\"auto\"),ga(\"send\",\"pageview\");</script>"
}'
The above request will return a PNG file. The HTTP status code will be
201 Created.
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| data.token | string | Yes | Email or Phone Number |
| data.amount | integer | Yes | Amount |
| data.memo | string | No | Reference Notes |
| data.username | string | No | Username |
| type | string | Yes | Type must be ZELLE |
Response
On success the API will return a PNG file. The HTTP status code will be 201 Created.
| Status Code | Description |
|---|---|
| 201 | The QR Code successfully generated. |
Error Responses
If there is an error during QR code generate, the API will return an appropriate error response.
| Status Code | Description |
|---|---|
| 400 | Bad Request - Invalid input data. |
| 401 | Unauthorized - Authentication failed. |
| 422 | Unprocessable Entity. |
| 500 | Internal Server Error - An unexpected error. |
Google Meet
POST /api/generate
Example request:
curl -X POST "https://api.qrstuff.com/api/generate" \
-H "Authorization: Bearer [your_api_key]" \
-H "Content-Type: application/json" \
-d '{
"data": {
"meeting_link": "https://meet.google.com/snv-dkme-kqi"
},
"type": "GOOGLE_MEET",
"dynamic": false,
"format": "png",
"size": 512,
"error_correction_level": "L",
"gradient": "diagonal",
"colors": {
"bg": "#FFFFFF",
"fg": "#000000",
"finder": "#000000",
"finder_eye": "#000000",
"alignment_inner": "#000000",
"alignment_outer": "#000000",
"gradient": "#5D4696",
"center_text": "#000000",
"transparent": false
},
"module_shape": "square",
"finder_shape": "square",
"finder_eye_shape": "square",
"alignment_outer_shape": "square",
"alignment_inner_shape": "square",
"center_text": null,
"logo": {
"idfs_file": null,
"multiplier": null
},
"background_image": {
"idfs_file": null
},
"foreground_image": {
"idfs_file": null
},
"script": "<script>!function(e,t,a,n,c,s,o){e.GoogleAnalyticsObject=c,e[c]=e[c]||function(){(e[c].q=e[c].q||[]).push(arguments)},e[c].l=1*new Date,s=t.createElement(a),o=t.getElementsByTagName(a)[0],s.async=1,s.src=n,o.parentNode.insertBefore(s,o)}(window,document,\"script\",\"//www.google-analytics.com/analytics.js\",\"ga\"),ga(\"create\",\"UA-xxxxxx-1\",\"auto\"),ga(\"send\",\"pageview\");</script>"
}'
The above request will return a PNG file. The HTTP status code will be
201 Created.
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| data.url | string | Yes | The URL of the meeting. Must be a valid Google Meet or Zoom meeting URL with a maximum length of 255 characters. |
| type | string | Yes | Type must be GOOGLE_MEET |
Response
On success the API will return a PNG file. The HTTP status code will be 201 Created.
| Status Code | Description |
|---|---|
| 201 | The QR Code successfully generated. |
Error Responses
If there is an error during QR code generate, the API will return an appropriate error response.
| Status Code | Description |
|---|---|
| 400 | Bad Request - Invalid input data. |
| 401 | Unauthorized - Authentication failed. |
| 422 | Unprocessable Entity. |
| 500 | Internal Server Error - An unexpected error. |
Zoom Meeting
POST /api/generate
Example request:
curl -X POST "https://api.qrstuff.com/api/generate" \
-H "Authorization: Bearer [your_api_key]" \
-H "Content-Type: application/json" \
-d '{
"data": {
"meeting_link": "https://docusign.zoom.us/j/94789741497?pwd=OStWL1g2dlI0S3pUcXZGb3BlRi96UT09"
},
"type": "ZOOM",
"dynamic": false,
"format": "png",
"size": 512,
"error_correction_level": "L",
"gradient": "diagonal",
"colors": {
"bg": "#FFFFFF",
"fg": "#000000",
"finder": "#000000",
"finder_eye": "#000000",
"alignment_inner": "#000000",
"alignment_outer": "#000000",
"gradient": "#5D4696",
"center_text": "#000000",
"transparent": false
},
"module_shape": "square",
"finder_shape": "square",
"finder_eye_shape": "square",
"alignment_outer_shape": "square",
"alignment_inner_shape": "square",
"center_text": null,
"logo": {
"idfs_file": null,
"multiplier": null
},
"background_image": {
"idfs_file": null
},
"foreground_image": {
"idfs_file": null
},
"script": "<script>!function(e,t,a,n,c,s,o){e.GoogleAnalyticsObject=c,e[c]=e[c]||function(){(e[c].q=e[c].q||[]).push(arguments)},e[c].l=1*new Date,s=t.createElement(a),o=t.getElementsByTagName(a)[0],s.async=1,s.src=n,o.parentNode.insertBefore(s,o)}(window,document,\"script\",\"//www.google-analytics.com/analytics.js\",\"ga\"),ga(\"create\",\"UA-xxxxxx-1\",\"auto\"),ga(\"send\",\"pageview\");</script>"
}'
The above request will return a PNG file. The HTTP status code will be
201 Created.
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| data.url | string | Yes | The URL of the Zoom meeting. Must be a valid URL with a maximum length of 255 characters and the domain must belong to Zoom (e.g., zoom.us). |
| type | string | Yes | Type must be ZOOM |
Response
On success the API will return a PNG file. The HTTP status code will be 201 Created.
| Status Code | Description |
|---|---|
| 201 | The QR Code successfully generated. |
Error Responses
If there is an error during QR code generate, the API will return an appropriate error response.
| Status Code | Description |
|---|---|
| 400 | Bad Request - Invalid input data. |
| 401 | Unauthorized - Authentication failed. |
| 422 | Unprocessable Entity. |
| 500 | Internal Server Error - An unexpected error. |
Batch Processing
Batch Submit
POST /api/batch/submit
Example request:
curl -X POST "https://api.qrstuff.com/api/batch/submit" \
-H "Authorization: Bearer [your_api_key]" \
-H "Content-Type: application/json" \
-d '{
"data": {
"batch_file_id": 101
},
"batch_name": "API Batch - 01",
"idproject": null
}'
Example Response:
'{
"batch_id": 101
"message": "Your batch file has been successfully submitted, and batch processing will commence shortly."
}'
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| data.batch_file_id | integer | Yes | The Batch file ID |
| batch_name | string | Yes | Relative Batch Name (Max: 255 character) |
| idproject | integer | No | The Project Id (if null then default project) |
Response
On success the API will return a success response. The HTTP status code will be 200 OK.
| Status Code | Description |
|---|---|
| 200 | Success. Your batch file has been successfully submitted, and batch processing will commence shortly. |
Error Responses
If there is an error during Batch Processing, the API will return an appropriate error response.
| Status Code | Description |
|---|---|
| 400 | Bad Request - Invalid input data. |
| 401 | Unauthorized - Authentication failed. |
| 422 | Unprocessable Entity. |
| 500 | Internal Server Error - An unexpected error. |
Batch Update
POST /api/batch/update
Example request:
curl -X POST "https://api.qrstuff.com/api/batch/update" \
-H "Authorization: Bearer [your_api_key]" \
-H "Content-Type: application/json" \
-d '{
"data": {
"batch_file_id": 101
},
"batch_name": "API Batch Update - 01"
}'
Example Response:
'{
"batch_id": 101
"message": "Your batch file has been successfully uploaded, and batch processing will commence shortly."
}'
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| data.batch_file_id | integer | Yes | The Batch file ID |
| batch_name | string | Yes | Relative Batch Name (Max: 255 character) |
Response
On success the API will return a success response. The HTTP status code will be 200 OK.
| Status Code | Description |
|---|---|
| 200 | Success. Your batch file has been successfully uploaded, and batch processing will commence shortly. |
Error Responses
If there is an error during Batch Processing, the API will return an appropriate error response.
| Status Code | Description |
|---|---|
| 400 | Bad Request - Invalid input data. |
| 401 | Unauthorized - Authentication failed. |
| 422 | Unprocessable Entity. |
| 500 | Internal Server Error - An unexpected error. |
Batch Unpack
POST /api/batch/unpack
Example request:
curl -X POST "https://api.qrstuff.com/api/batch/unpack" \
-H "Authorization: Bearer [your_api_key]" \
-H "Content-Type: application/json" \
-d '{
"idqrcode": 17388,
"idproject": null
}'
Example Response:
'{
"message": "The Batch file has been successfully validated, and batch processing will commence shortly."
}'
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| idqrcode | integer | Yes | The Batch (QR Code) Id |
| idproject | integer | No | The Project Id (if null then default project) |
Response
On success the API will return a success response. The HTTP status code will be 200 OK.
| Status Code | Description |
|---|---|
| 200 | Success. QR Code batch item(s) has been successfully unpacked. |
Error Responses
If there is an error during Batch Unpacking, the API will return an appropriate error response.
| Status Code | Description |
|---|---|
| 400 | Bad Request - Invalid input data. |
| 401 | Unauthorized - Authentication failed. |
| 422 | Unprocessable Entity. |
| 500 | Internal Server Error - An unexpected error. |
Batch Sample File
POST /api/batch/sample-file
Example request:
curl -X POST "https://api.qrstuff.com/api/batch/sample-file" \
-H "Authorization: Bearer [your_api_key]" \
-H "Content-Type: application/json" \
-d '{
"types": ["APP_DOWNLOAD", "BITCOIN", "DISCORD", "DROPBOX", "EVENTBRITE", "FACEBOOK", "FACEBOOK_LIKE", "GOOGLE_FORM", "GOOGLE_REVIEW", "INSTAGRAM", "ITUNES_LINK", "LINKEDIN", "LINKEDIN_SHARE", "MAILTO", "MAPS", "MATMSG", "NEWSLETTER", "PAYPAL_BUY", "SMSTO", "SNAPCHAT", "SPOTIFY", "TELEGRAM", "TEL", "TEXT", "TIKTOK", "TILEZ_DBC", "UPI", "URL", "CALENDLY", "VCALENDAR", "VCARD", "VENMO", "VIMEO", "WHATSAPP", "WIFI", "TWITTER", "TWITTER_STATUS", "YOUTUBE", "ZELLE", "ZOOM"]
}'
Example Response:
'{
"fileUrl": "https://qrstuff.s3.eu-west-1.amazonaws.com/api/batch-sample/sample-batch-file.xlsx?X-Amz-Content-Sha256=UNSIGNED-PAYLOAD&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=scaffold%2F20250508%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20250508T061025Z&X-Amz-SignedHeaders=host&X-Amz-Expires=604800&X-Amz-Signature=234e56d42163e92040167a1d2abb7ac30d4eb921c7e56d897d8e9d10063bc09a"
}'
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| types | array | Yes | The QR Code Data Type. Supported data types are: APP_DOWNLOAD, BITCOIN, DISCORD, DROPBOX, EVENTBRITE, FACEBOOK, FACEBOOK_LIKE, GOOGLE_FORM, GOOGLE_REVIEW, GOOGLE_MEET, INSTAGRAM, ITUNES_LINK, LINKEDIN, LINKEDIN_SHARE, MAILTO, MAPS, MATMSG, NEWSLETTER, PAYPAL_BUY, SMSTO, SNAPCHAT, SPOTIFY, TEL, TEXT, TELEGRAM, TIKTOK, TILEZ_DBC, TWITTER, TWITTER_STATUS, UPI, VCALENDAR, VCARD, VENMO, VIMEO, WHATSAPP, WIFI, YOUTUBE, ZELLE, ZOOM |
Response
On success the API will return a sample Excel file URL. The HTTP status code will be 200 OK.
| Status Code | Description |
|---|---|
| 200 | Success. Sample File URL generated. |
Error Responses
If there is an error during sample file generating, the API will return an appropriate error response.
| Status Code | Description |
|---|---|
| 400 | Bad Request - Invalid input data. |
| 401 | Unauthorized - Authentication failed. |
| 403 | Forbidden. |
| 404 | Not Found. |
| 422 | Unprocessable Entity. |
| 500 | Internal Server Error - An unexpected error. |
Batch File Column Header
GET /api/batch/get-file-column-header/{dataType}
Example request:
curl -X GET "https://api.qrstuff.com/api/batch/get-file-column-header/VCARD" \
-H "Authorization: Bearer [your_api_key]" \
Example Response:
'{
"headers": [
"first_name",
"last_name",
"title",
"additional_names",
"name_prefix",
"name_suffix",
"telephone_number",
"cell_phone_number",
"fax_number",
"email",
"organization",
"street",
"city",
"state",
"postcode",
"country",
"url",
"note",
"type",
"name",
"dynamic",
"format",
"size",
"dpi",
"error_correction_level",
"gradient",
"color.bg",
"color.fg",
"color.finder",
"color.finder_eye",
"color.alignment_inner",
"color.alignment_outer",
"color.gradient",
"color.center_text",
"color.transparent",
"module_shape",
"finder_shape",
"finder_eye_shape",
"alignment_outer_shape",
"alignment_inner_shape",
"center_text"
],
"sample_row": [
[
"Kole",
"Jenkins",
"Actuary",
"Spencer",
"Prof.",
"I",
"909.260.1777",
"+14134161975",
"+1.386.594.5558",
"herzog.vernice@hotmail.com",
"Dickinson-Fritsch",
"6838 Kathleen Viaduct",
"Morarmouth",
"West Virginia",
"77640",
"Italy",
"http://www.beatty.org/odit-est-nostrum-ut-nam",
"Nihil molestiae in enim.",
"vcard",
"QRCode Name",
true,
"png",
256,
72,
"H",
"radial",
"#FFFFFF",
"#000000",
"#000000",
"#000000",
"#000000",
"#000000",
"#5D4696",
"#000000",
false,
"square",
"square",
"square",
"square",
"square",
"QRSTUFF"
]
],
"recommended_extension": "csv",
"writer_type": "CSV"
}'
URL Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| dataType | string | Yes | The QR Code Data Type. Supported data types are: APP_DOWNLOAD, BITCOIN, DISCORD, DROPBOX, EVENTBRITE, FACEBOOK, FACEBOOK_LIKE, GOOGLE_FORM, GOOGLE_REVIEW, GOOGLE_MEET, INSTAGRAM, ITUNES_LINK, LINKEDIN, LINKEDIN_SHARE, MAILTO, MAPS, MATMSG, NEWSLETTER, PAYPAL_BUY, SMSTO, SNAPCHAT, SPOTIFY, TEL, TEXT, TELEGRAM, TIKTOK, TILEZ_DBC, TWITTER, TWITTER_STATUS, UPI, VCALENDAR, VCARD, VENMO, VIMEO, WHATSAPP, WIFI, YOUTUBE, ZELLE, ZOOM |
Response
On success the API will return json containing file header & sample data row. The HTTP status code will be 200 OK.
| Status Code | Description |
|---|---|
| 200 | Success. Result fetched successfully. |
Error Responses
If there is an error during getting file header & sample data row, the API will return an appropriate error response.
| Status Code | Description |
|---|---|
| 400 | Bad Request - Invalid input data. |
| 401 | Unauthorized - Authentication failed. |
| 403 | Forbidden. |
| 404 | Not Found. |
| 422 | Unprocessable Entity. |
| 500 | Internal Server Error - An unexpected error. |
Batch Get History
GET /api/batch/history
Example request:
curl -X GET "https://api.qrstuff.com/api/batch/history" \
-H "Authorization: Bearer [your_api_key]" \
Example Response:
'{
"data": [
{
"idqrcode_batch": 101,
"batch_name": "API Batch - 01",
"total_records": 10,
"total_processed": 10,
"job_uuid": "90880973-6196-46cf-8aa7-5d92810eb581",
"status": "completed",
"result": {
"org_file_id": 101,
"total": 10,
"processed": 10,
"skipped": 0,
"errors": []
},
"zip_download_url": "https://qrstuff.s3.eu-west-1.amazonaws.com/batches/results/101/API-Batch-01.zip?X-Amz-Content-Sha256=UNSIGNED-PAYLOAD&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=scaffold%2F20250508%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20250508T061025Z&X-Amz-SignedHeaders=host&X-Amz-Expires=604800&X-Amz-Signature=234e56d42163e92040167a1d2abb7ac30d4eb921c7e56d897d8e9d10063bc09a"
"original_file_name": "API Batch - 01.xlsx",
"org_file_download_url": "https://qrstuff.s3.eu-west-1.amazonaws.com/file/API-Batch-01.xlsx?X-Amz-Content-Sha256=UNSIGNED-PAYLOAD&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=scaffold%2F20250508%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20250508T061025Z&X-Amz-SignedHeaders=host&X-Amz-Expires=604800&X-Amz-Signature=234e56d42163e92040167a1d2abb7ac30d4eb921c7e56d897d8e9d10063bc09a"
"created_at": "2025-07-28T10:41:40.000000Z",
"updated_at": "2025-07-28T10:41:40.000000Z"
},
{
"idqrcode_batch": 102,
"batch_name": "API Batch - 02",
"total_records": 10,
"total_processed": 10,
"job_uuid": "90880973-6196-46cf-8aa7-5d92810eb582",
"status": "completed",
"result": {
"org_file_id": 102,
"total": 10,
"processed": 10,
"skipped": 0,
"errors": []
},
"zip_download_url": "https://qrstuff.s3.eu-west-1.amazonaws.com/batches/results/102/API-Batch-02.zip?X-Amz-Content-Sha256=UNSIGNED-PAYLOAD&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=scaffold%2F20250508%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20250508T061025Z&X-Amz-SignedHeaders=host&X-Amz-Expires=604800&X-Amz-Signature=234e56d42163e92040167a1d2abb7ac30d4eb921c7e56d897d8e9d10063bc09a"
"original_file_name": "API Batch - 02.xlsx",
"org_file_download_url": "https://qrstuff.s3.eu-west-1.amazonaws.com/file/API-Batch-02.xlsx?X-Amz-Content-Sha256=UNSIGNED-PAYLOAD&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=scaffold%2F20250508%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20250508T061025Z&X-Amz-SignedHeaders=host&X-Amz-Expires=604800&X-Amz-Signature=234e56d42163e92040167a1d2abb7ac30d4eb921c7e56d897d8e9d10063bc09a"
"created_at": "2025-07-28T10:41:40.000000Z",
"updated_at": "2025-07-28T10:41:40.000000Z"
},
{
"idqrcode_batch": 103,
"batch_name": "API Batch - 03",
"total_records": 10,
"total_processed": 10,
"job_uuid": "90880973-6196-46cf-8aa7-5d92810eb583",
"status": "completed",
"result": {
"org_file_id": 103,
"total": 10,
"processed": 10,
"skipped": 0,
"errors": []
},
"zip_download_url": "https://qrstuff.s3.eu-west-1.amazonaws.com/batches/results/103/API-Batch-03.zip?X-Amz-Content-Sha256=UNSIGNED-PAYLOAD&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=scaffold%2F20250508%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20250508T061025Z&X-Amz-SignedHeaders=host&X-Amz-Expires=604800&X-Amz-Signature=234e56d42163e92040167a1d2abb7ac30d4eb921c7e56d897d8e9d10063bc09a"
"original_file_name": "API Batch - 03.xlsx",
"org_file_download_url": "https://qrstuff.s3.eu-west-1.amazonaws.com/file/API-Batch-03.xlsx?X-Amz-Content-Sha256=UNSIGNED-PAYLOAD&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=scaffold%2F20250508%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20250508T061025Z&X-Amz-SignedHeaders=host&X-Amz-Expires=604800&X-Amz-Signature=234e56d42163e92040167a1d2abb7ac30d4eb921c7e56d897d8e9d10063bc09a"
"created_at": "2025-07-28T10:41:40.000000Z",
"updated_at": "2025-07-28T10:41:40.000000Z"
},
{
"idqrcode_batch": 104,
"batch_name": "API Batch - 04",
"total_records": 10,
"total_processed": 10,
"job_uuid": "90880973-6196-46cf-8aa7-5d92810eb584",
"status": "completed",
"result": {
"org_file_id": 104,
"total": 10,
"processed": 10,
"skipped": 0,
"errors": []
},
"zip_download_url": "https://qrstuff.s3.eu-west-1.amazonaws.com/batches/results/104/API-Batch-04.zip?X-Amz-Content-Sha256=UNSIGNED-PAYLOAD&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=scaffold%2F20250508%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20250508T061025Z&X-Amz-SignedHeaders=host&X-Amz-Expires=604800&X-Amz-Signature=234e56d42163e92040167a1d2abb7ac30d4eb921c7e56d897d8e9d10063bc09a"
"original_file_name": "API Batch - 04.xlsx",
"org_file_download_url": "https://qrstuff.s3.eu-west-1.amazonaws.com/file/API-Batch-04.xlsx?X-Amz-Content-Sha256=UNSIGNED-PAYLOAD&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=scaffold%2F20250508%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20250508T061025Z&X-Amz-SignedHeaders=host&X-Amz-Expires=604800&X-Amz-Signature=234e56d42163e92040167a1d2abb7ac30d4eb921c7e56d897d8e9d10063bc09a"
"created_at": "2025-07-28T10:41:40.000000Z",
"updated_at": "2025-07-28T10:41:40.000000Z"
},
{
"idqrcode_batch": 105,
"batch_name": "API Batch - 05",
"total_records": 10,
"total_processed": 10,
"job_uuid": "90880973-6196-46cf-8aa7-5d92810eb585",
"status": "completed",
"result": {
"org_file_id": 105,
"total": 10,
"processed": 10,
"skipped": 0,
"errors": []
},
"zip_download_url": "https://qrstuff.s3.eu-west-1.amazonaws.com/batches/results/105/API-Batch-05.zip?X-Amz-Content-Sha256=UNSIGNED-PAYLOAD&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=scaffold%2F20250508%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20250508T061025Z&X-Amz-SignedHeaders=host&X-Amz-Expires=604800&X-Amz-Signature=234e56d42163e92040167a1d2abb7ac30d4eb921c7e56d897d8e9d10063bc09a"
"original_file_name": "API Batch - 05.xlsx",
"org_file_download_url": "https://qrstuff.s3.eu-west-1.amazonaws.com/file/API-Batch-05.xlsx?X-Amz-Content-Sha256=UNSIGNED-PAYLOAD&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=scaffold%2F20250508%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20250508T061025Z&X-Amz-SignedHeaders=host&X-Amz-Expires=604800&X-Amz-Signature=234e56d42163e92040167a1d2abb7ac30d4eb921c7e56d897d8e9d10063bc09a"
"created_at": "2025-07-28T10:41:40.000000Z",
"updated_at": "2025-07-28T10:41:40.000000Z"
}
],
"links": {
"first": "https://api-local.qrstuff.dev/api/batch/history?page=1",
"last": "https://api-local.qrstuff.dev/api/batch/history?page=2",
"prev": null,
"next": "https://api-local.qrstuff.dev/api/batch/history?page=2"
},
"meta": {
"current_page": 1,
"from": 1,
"last_page": 2,
"links": [
{
"url": null,
"label": "« Previous",
"active": false
},
{
"url": "https://api-local.qrstuff.dev/api/batch/history?page=1",
"label": "1",
"active": true
},
{
"url": "https://api-local.qrstuff.dev/api/batch/history?page=2",
"label": "2",
"active": false
},
{
"url": "https://api-local.qrstuff.dev/api/batch/history?page=2",
"label": "Next »",
"active": false
}
],
"path": "https://api-local.qrstuff.dev/api/batch/history",
"per_page": 5,
"to": 5,
"total": 10
}
}'
Response
On success the API will return a JSON object that includes batch process information. The HTTP status code will be 200 OK.
| Status Code | Description |
|---|---|
| 200 | Success. Result fetched successfully. |
Error Responses
If there is an error during request, the API will return an appropriate error response.
| Status Code | Description |
|---|---|
| 400 | Bad Request - Invalid input data. |
| 401 | Unauthorized - Authentication failed. |
| 403 | Forbidden. |
| 404 | Not Found. |
| 422 | Unprocessable Entity. |
| 500 | Internal Server Error - An unexpected error. |
Get Batch Processing Details
GET /api/batch/history/{{batchId}}
Example request:
curl -X GET "https://api.qrstuff.com/api/batch/history/101" \
-H "Authorization: Bearer [your_api_key]" \
Example Response:
'{
"data": {
"idqrcode_batch": 101,
"batch_name": "API Batch - 01",
"total_records": 10,
"total_processed": 10,
"job_uuid": "90880973-6196-46cf-8aa7-5d92810eb581",
"status": "completed",
"result": {
"org_file_id": 101,
"total": 10,
"processed": 10,
"skipped": 0,
"errors": []
},
"zip_download_url": "https://qrstuff.s3.eu-west-1.amazonaws.com/batches/results/101/API-Batch-01.zip?X-Amz-Content-Sha256=UNSIGNED-PAYLOAD&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=scaffold%2F20250508%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20250508T061025Z&X-Amz-SignedHeaders=host&X-Amz-Expires=604800&X-Amz-Signature=234e56d42163e92040167a1d2abb7ac30d4eb921c7e56d897d8e9d10063bc09a"
"original_file_name": "API Batch - 01.xlsx",
"org_file_download_url": "https://qrstuff.s3.eu-west-1.amazonaws.com/file/101/API-Batch-01.xlsx?X-Amz-Content-Sha256=UNSIGNED-PAYLOAD&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=scaffold%2F20250508%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20250508T061025Z&X-Amz-SignedHeaders=host&X-Amz-Expires=604800&X-Amz-Signature=234e56d42163e92040167a1d2abb7ac30d4eb921c7e56d897d8e9d10063bc09a"
"created_at": "2025-07-28T10:41:40.000000Z",
"updated_at": "2025-07-28T10:41:40.000000Z"
}
}'
Response
On success the API will return a JSON object that includes batch process information. The HTTP status code will be 200 OK.
| Status Code | Description |
|---|---|
| 200 | Success. Result fetched successfully. |
Error Responses
If there is an error during request, the API will return an appropriate error response.
| Status Code | Description |
|---|---|
| 400 | Bad Request - Invalid input data. |
| 401 | Unauthorized - Authentication failed. |
| 403 | Forbidden. |
| 404 | Not Found. |
| 422 | Unprocessable Entity. |
| 500 | Internal Server Error - An unexpected error. |
Get Batch Processing Status
GET /api/batch/status/{{batchId}}
Example request:
curl -X GET "https://api.qrstuff.com/api/batch/status/101" \
-H "Authorization: Bearer [your_api_key]" \
Example Response:
'{
"data": {
"idqrcode_batch": 101,
"batch_name": "API Batch - 01",
"total_records": 10,
"total_processed": 5,
"job_uuid": "90880973-6196-46cf-8aa7-5d92810eb581",
"status": "processing",
"result": null,
"zip_download_url": null
"original_file_name": "API Batch - 01.xlsx",
"org_file_download_url": null
"created_at": "2025-07-28T10:41:40.000000Z",
"updated_at": "2025-07-28T10:41:40.000000Z"
}
}'
Response
On success the API will return a JSON object that includes batch process real time status. The HTTP status code will be 200 OK.
| Status Code | Description |
|---|---|
| 200 | Success. Result fetched successfully. |
Error Responses
If there is an error during request, the API will return an appropriate error response.
| Status Code | Description |
|---|---|
| 400 | Bad Request - Invalid input data. |
| 401 | Unauthorized - Authentication failed. |
| 403 | Forbidden. |
| 404 | Not Found. |
| 422 | Unprocessable Entity. |
| 500 | Internal Server Error - An unexpected error. |
Cancel Batch Processing
POST /api/batch/cancel
Example request:
curl -X POST "https://api.qrstuff.com/api/batch/submit" \
-H "Authorization: Bearer [your_api_key]" \
-H "Content-Type: application/json" \
-d '{
"idqrcode_batch": 101
}'
Example Response:
'{
"success": true,
"message": "QR Code batch processing has been successfully cancelled."
}'
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| idqrcode_batch | integer | Yes | The Batch ID |
Response
On success the API will return a success response. The HTTP status code will be 200 OK.
| Status Code | Description |
|---|---|
| 200 | Success. QR Code batch processing has been successfully cancelled. |
Error Responses
If there is an error during Batch Cancellation, the API will return an appropriate error response.
| Status Code | Description |
|---|---|
| 400 | Bad Request - Invalid input data. |
| 401 | Unauthorized - Authentication failed. |
| 422 | Unprocessable Entity. |
| 500 | Internal Server Error - An unexpected error. |
Batch Zip File Download
GET /api/qrcodes/{{qrcode_id}}/zip/download
Example request:
curl -X GET "https://api.qrstuff.com/api/qrcodes/101/zip/download" \
-H "Authorization: Bearer [your_api_key]" \
Example Response:
null
URL Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| qrcode_id | int | Yes | The QR Code ID. |
Response
On success the API will return success. The HTTP status code will be 200 OK.
| Status Code | Description |
|---|---|
| 200 | Success. |
Error Responses
If there is an error during zip file URL generating, the API will return an appropriate error response.
| Status Code | Description |
|---|---|
| 400 | Bad Request - Invalid input data. |
| 401 | Unauthorized - Authentication failed. |
| 403 | Forbidden. |
| 404 | Not Found. |
| 422 | Unprocessable Entity. |
| 500 | Internal Server Error - An unexpected error. |
QR Codes Export
POST /api/batch/export-qrcodes
Example request:
curl -X POST "https://api.qrstuff.com/api/batch/export-qrcodes" \
-H "Authorization: Bearer [your_api_key]" \
-H "Content-Type: application/json" \
-d '{
"qrcode_ids": [101, 102, 103, 104, 105]
}'
Example Response:
'Excel File URL generated'
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| qrcode_ids | array | Yes | QR Code Ids |
Response
On success the API will return true. The HTTP status code will be 200 OK.
| Status Code | Description |
|---|---|
| 200 | Success. Export File URL generated. |
Error Responses
If there is an error during export file generating, the API will return an appropriate error response.
| Status Code | Description |
|---|---|
| 400 | Bad Request - Invalid input data. |
| 401 | Unauthorized - Authentication failed. |
| 403 | Forbidden. |
| 404 | Not Found. |
| 422 | Unprocessable Entity. |
| 500 | Internal Server Error - An unexpected error. |
QR Code
Get Details
GET /api/qrcodes/{id}
Example request:
curl -X GET "https://api.qrstuff.com/api/qrcodes/101" \
-H "Authorization: Bearer [your_api_key]" \
Example Response:
'{
"data": {
"id": 101,
"name": "QR Code 101",
"content": "http://shorturl.qrstuff.com/vdhknr",
"dynamic": true,
"content_type": "TEXT",
"rendering_options": {
"canvasColor": "#FFFFFF",
"moduleShape": "square",
"moduleColor": "#000000",
"finderShape": "square",
"finderEyeShape": "square",
"finderColor": "#000000",
"finderEyeColor": "#000000",
"alignmentOuterShape": "square",
"alignmentInnerShape": "square",
"alignmentOuterColor": "#000000",
"alignmentInnerColor": "#000000",
"logoIDFSFile": null,
"centerText": null,
"centerTextColor": "#000000",
"transparent": false,
"gradientType": null,
"gradientColor": "#000000",
"backgroundImageIDFSFile": null,
"foregroundImageIDFSFile": null
},
"format": "svg",
"metadata": null,
"hits": 100,
"created_at": "2024-06-11T08:39:59+00:00",
"updated_at": "2024-06-11T08:39:59+00:00",
"preview_url": "https://api.qrstuff.com/api/preview/16531/secure?expires=1749636779&signature=46e0e82152ae23606fb429649e33ef5f37c2aa3eabf4dd1c79eb4c05b4ecf40e"
}
}'
URL Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| id | int | Yes | The QR Code ID. |
Response
On success the API will return a qr code details json. The HTTP status code will be 200 OK.
| Status Code | Description |
|---|---|
| 200 | Success. QR code details fetched. |
Error Responses
If there is an error during fetch details, the API will return an appropriate error response.
| Status Code | Description |
|---|---|
| 400 | Bad Request - Invalid input data. |
| 401 | Unauthorized - Authentication failed. |
| 403 | Forbidden. |
| 404 | Not Found. |
| 422 | Unprocessable Entity. |
| 500 | Internal Server Error - An unexpected error. |
Get Preview
GET /api/preview/{id}
Example request:
curl -X GET "https://api.qrstuff.com/api/preview/101" \
-H "Authorization: Bearer [your_api_key]" \
The above request will return a PNG file. The HTTP status code will be
201 Created.
URL Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| id | int | Yes | The QR Code ID. |
Response
On success the API will return a qr code. The HTTP status code will be 200 OK.
| Status Code | Description |
|---|---|
| 200 | Success. QR code fetched. |
Error Responses
If there is an error during preview, the API will return an appropriate error response.
| Status Code | Description |
|---|---|
| 400 | Bad Request - Invalid input data. |
| 401 | Unauthorized - Authentication failed. |
| 403 | Forbidden. |
| 404 | Not Found. |
| 422 | Unprocessable Entity. |
| 500 | Internal Server Error - An unexpected error. |
Get Short URL Details
GET /api/qrcodes/shorturl-details/{{idOrKey}}
Example request:
curl -X GET "https://api.qrstuff.com/api/qrcodes/shorturl-details/101" \
-H "Authorization: Bearer [your_api_key]" \
Example Response:
'{
"data": {
"idclient": 999,
"idqrcode": 1001,
"key": "hello-world",
"url": "https://qrs.ly//hello-world",
"type": "URL",
"hits": 0,
"project": {
"id": 101,
"name": "Default Project"
}
}
}'
URL Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| idOrKey | string | Yes | The QR Code ID or Short URL Key. |
Response
On success the API will return a qr code short url details json. The HTTP status code will be 200 OK.
| Status Code | Description |
|---|---|
| 200 | Success. QR Code Short URL details fetched. |
Error Responses
If there is an error during fetch details, the API will return an appropriate error response.
| Status Code | Description |
|---|---|
| 400 | Bad Request - Invalid input data. |
| 401 | Unauthorized - Authentication failed. |
| 403 | Forbidden. |
| 404 | Not Found. |
| 422 | Unprocessable Entity. |
| 500 | Internal Server Error - An unexpected error. |
Update QR Code Details
PUT /api/qrcodes/{id}
Example request:
curl -X PUT "https://api.qrstuff.com/api/qrcodes/101" \
-H "Authorization: Bearer [your_api_key]" \
-H 'Content-Type: application/json' \
-d '{
"name": "QR Code 101",
"format": "png",
"resolution": 300,
"gradient": "diagonal",
"colors": {
"bg": "#FFFFFF",
"fg": "#000000",
"finder": "#000000",
"finder_eye": "#000000",
"alignment_inner": "#000000",
"alignment_outer": "#000000",
"gradient": "#5D4696",
"center_text": "#000000",
"transparent": false
},
"module_shape": "square",
"finder_shape": "square",
"finder_eye_shape": "square",
"alignment_outer_shape": "square",
"alignment_inner_shape": "square",
"center_text": null,
"logo": {
"idfs_file": null,
"multiplier": null
},
"background_image": {
"idfs_file": null
},
"foreground_image": {
"idfs_file": null
},
"gacampaign": {
"source": "Test source",
"medium": "Test medium",
"content": "Hello World",
"name": "Demo"
},
"metadata": {
"custom_1": "Hello world",
"custom_2": "Hi,there"
},
"script": "<script>!function(e,t,a,n,c,s,o){e.GoogleAnalyticsObject=c,e[c]=e[c]||function(){(e[c].q=e[c].q||[]).push(arguments)},e[c].l=1*new Date,s=t.createElement(a),o=t.getElementsByTagName(a)[0],s.async=1,s.src=n,o.parentNode.insertBefore(s,o)}(window,document,\"script\",\"//www.google-analytics.com/analytics.js\",\"ga\"),ga(\"create\",\"UA-xxxxxx-1\",\"auto\"),ga(\"send\",\"pageview\");</script>"
}'
Example Response:
'{
"data": {
"id": 101,
"name": "QR Code 101",
"content": "http://shorturl.qrstuff.com/vdhknr",
"dynamic": true,
"content_type": "TEXT",
"rendering_options": {
"canvasColor": "#FFFFFF",
"moduleShape": "square",
"moduleColor": "#000000",
"finderShape": "square",
"finderEyeShape": "square",
"finderColor": "#000000",
"finderEyeColor": "#000000",
"alignmentOuterShape": "square",
"alignmentInnerShape": "square",
"alignmentOuterColor": "#000000",
"alignmentInnerColor": "#000000",
"logoIDFSFile": null,
"centerText": null,
"centerTextColor": "#000000",
"transparent": false,
"gradientType": null,
"gradientColor": "#000000",
"backgroundImageIDFSFile": null,
"foregroundImageIDFSFile": null
},
"script": "<script>!function(e,t,a,n,c,s,o){e.GoogleAnalyticsObject=c,e[c]=e[c]||function(){(e[c].q=e[c].q||[]).push(arguments)},e[c].l=1*new Date,s=t.createElement(a),o=t.getElementsByTagName(a)[0],s.async=1,s.src=n,o.parentNode.insertBefore(s,o)}(window,document,\"script\",\"//www.google-analytics.com/analytics.js\",\"ga\"),ga(\"create\",\"UA-xxxxxx-1\",\"auto\"),ga(\"send\",\"pageview\");</script>",
"format": "svg",
"metadata": null,
"created_at": "2024-06-11T08:39:59+00:00",
"updated_at": "2024-06-11T08:39:59+00:00",
"preview_url": "https://api.qrstuff.com/api/preview/16531/secure?expires=1749636779&signature=46e0e82152ae23606fb429649e33ef5f37c2aa3eabf4dd1c79eb4c05b4ecf40e"
}
}'
URL Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| id | int | Yes | The QR Code ID. |
Body Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| name | string | No | Optional. QR Code name/ title |
| format | string | Yes | Qrcode image format. Supported formats are: bmp, dxf, eps, gif, jpg, pdf, png, png8, svg, tiff, webp. Default: png |
| resolution | int | No | Qrcode resolution. Supported values are: 75, 150, 300, 600. Default: 72 |
| gradient | string | No | The QR code gradient type. Supported types are: radial, vertical, diagonal, inverse_diagonal, horizontal. Not supported if the format is DXF. Not supported if the background_image is present. Not supported if the foreground_image is present. Default: null |
| colors.bg | string | No | Background color of the QR code. Must match the regex /^#[0-9a-f]{6}$/i. Default: #ffffff |
| colors.fg | string | No | Foreground color of the QR code. Must match the regex /^#[0-9a-f]{6}$/i. Default: #000000 |
| colors.finder | string | No | Color of the finder pattern. Must match the regex /^#[0-9a-f]{6}$/i. Default: #000000 |
| colors.finder_eye | string | No | Color of the finder pattern eye. Must match the regex /^#[0-9a-f]{6}$/i. Default: #000000 |
| colors.alignment_inner | string | No | Color of the alignment pattern (inner). Must match the regex /^#[0-9a-f]{6}$/i. Default: #000000 |
| colors.alignment_outer | string | No | Color of the alignment pattern (outer).Must match the regex /^#[0-9a-f]{6}$/i. Default: #000000 |
| colors.gradient | string | No | Color of the gradient. Must match the regex /^#[0-9a-f]{6}$/i. Default: null |
| colors.center_text | string | No | Color of the center text. Must match the regex /^#[0-9a-f]{6}$/i. Default: #000000 |
| colors.transparent | bool | No | Indicates if the QR code has transparency. Default: false |
| module_shape | string | No | Shape of the QR code modules. Supported shapes are: square, round, dot, square_outlined, square_rounded_connected, dots_connected, diamond, diamond_rounded, star_4_point, star_4_point_rounded, star_5_point, star_5_point_rounded. Default: square |
| finder_shape | string | No | Shape of the finder pattern. Supported shapes are: square, round, circle, diamond, diamond_rounded, star_4_point, star_4_point_rounded, star_5_point, star_5_point_rounded. Default: square |
| finder_eye_shape | string | No | Shape of the finder pattern eye. Supported shapes are: square, round, circle, dot, square_outlined, square_rounded_outlined, diamond, diamond_rounded, star_4_point, star_4_point_rounded, star_5_point, star_5_point_rounded. Default: square |
| alignment_outer_shape | string | No | Shape of the alignment pattern (outer). Supported shapes are: square, round, circle, dot, square_outlined, square_rounded_outlined, diamond, diamond_rounded, star_4_point, star_4_point_rounded, star_5_point, star_5_point_rounded. Default: square |
| alignment_inner_shape | string | No | Shape of the alignment pattern (inner). Supported shapes are: square, round, dot, square_outlined, diamond, diamond_rounded, star_4_point, star_4_point_rounded, star_5_point, star_5_point_rounded. Default: square |
| center_text | string | No | Text to embed in the QR code. Text length should be Min:1, Max:16. Not supported if the format is DXF. Not supported if logo is present. |
| logo.idfs_file | int | No | ID of the logo file to embed in the QR code. Must be a valid image url or base64-encoded png/jpeg image string. Not supported if the format is DXF. Not supported if center_text is present. Default: null |
| logo.multiplier | float | No | Optional. Used only when a logo is specified. Defines a scale factor for resizing the logo. For example, a value of 1.1 increases the logo size by 10%. Supported range: 0.5 to 1.5. Default: null |
| background_image.idfs_file | int | No | ID of the background image file to use. Must be a valid image url. Not supported if the format is DXF. Not supported if the module_shape is connected. Not supported if the gradient is present. Not supported if the foreground_image is present. Default: null |
| foreground_image.idfs_file | int | No | ID of the foreground image file to use. Must be a valid image url. Not supported if the format is DXF. Not supported if the gradient is present. Not supported if the background_image is present. Default: null |
| require_password | bool | No | Optional. Use true for QR code password protection. Default: false |
| password | string | No | Required if require_password is true. Min:4, Max:128. Default: null |
| password_attempts_limit | int | No | Optional. Password attempts limit. Min:1, Max:6. Default: null |
| password_failure_redirect | bool | No | Optional. Use true for to redirect password failed. Default: null |
| password_failure_url | string | No | Optional. Required if password_failure_redirect is true. Default: null |
| password_failure_message | string | No | Optional. Required if password_failure_redirect is false. Default: null |
| password_note | string | No | Optional. Password note |
| active | bool | No | Optional. Use false to inactive QR Code. Default: true |
| inactive_from | string | No | Optional. Must be in now or schedule_later. Default: now |
| active_after | string | No | Optional. Required if inactive_from is schedule_later. Date format: Y-m-d H:i. Allowed future date. |
| inactive_message | string | No | Optional. The QR Code inactive message. Defult: null |
| inactive_url | url | No | Optional. A valid URL where inactive code will redirect. Max:2048 Defult: null |
| hit_limit_enabled | bool | No | Optional. Use true for to enable QR Code hit limit. Default: false |
| hit_limit | int | No | Optional. The QR Code hit limit. Max:9999999, Default: null |
| hit_limit_message | string | No | Optional. The QR Code hit limit exceeded message. Max:1000 |
| hit_limit_url | url | No | Optional. A valid URL where QR code will redirect once hit limit exceeded. Max:2048 |
| slack_settings | array | No | Optional. An array containing slack setting for the QR code. |
| slack_settings.enabled | bool | No | Optional. Use true for to enable QR Code slack setting. Default: false |
| slack_settings.notify_scans | bool | No | Optional. Use true for to enable QR Code scan notification. Default: false |
| slack_settings.scans_channel | string | No | Require if notify_scans is true . The slack channel name where scan notification sent. Default: null |
| slack_settings.notify_submissions | bool | No | Optional. Use true for to enable QR Code notification on submit. Supported data types are: FORM_SUBMISSION, ATTENDANCE. Default: false |
| slack_settings.submissions_channel | string | No | Require if notify_submissions is true . The slack channel name where submit notification sent. Supported data types are: FORM_SUBMISSION, ATTENDANCE. Default: null |
| gacampaign | array | No | An array containing Google Campaign Tracking for the QR code. Only supported for URL data type. |
| gacampaign.source | string | No | Optional. Google Campaign Source. Max:255. Default: null |
| gacampaign.medium | string | No | Optional. Google Campaign Medium. Max:255. Default: QR Code |
| gacampaign.content | string | No | Optional. Google Campaign Content. Max:255. Default: null |
| gacampaign.name | string | No | Optional. Google Campaign Name. Max:255. Default: null |
| enable_gps_tracking | bool | No | Optional. Use true to enable GPS tracking for QR Code. Allowed when dynamic is true. Default: false |
| metadata | array | No | An array containing metadata for the QR code. |
| script | string | No | Custom pixels script. It must be within <script></script>. |
Response
On success the API will return a qr code updated details json. The HTTP status code will be 200 OK.
| Status Code | Description |
|---|---|
| 200 | Success. QR code details updated. |
Error Responses
If there is an error during update, the API will return an appropriate error response.
| Status Code | Description |
|---|---|
| 400 | Bad Request - Invalid input data. |
| 401 | Unauthorized - Authentication failed. |
| 403 | Forbidden. |
| 404 | Not Found. |
| 422 | Unprocessable Entity. |
| 500 | Internal Server Error - An unexpected error. |
Update QR Code Preview
PUT /api/qrcodes/{id}
Example request:
curl -X PUT "https://api.qrstuff.com/api/qrcodes/101" \
-H "Authorization: Bearer [your_api_key]" \
-H 'Content-Type: application/json' \
-d '{
"name": "QR Code 101",
"format": "png",
"resolution": 300,
"gradient": "diagonal",
"colors": {
"bg": "#FFFFFF",
"fg": "#000000",
"finder": "#000000",
"finder_eye": "#000000",
"alignment_inner": "#000000",
"alignment_outer": "#000000",
"gradient": "#5D4696",
"center_text": "#000000",
"transparent": false
},
"module_shape": "square",
"finder_shape": "square",
"finder_eye_shape": "square",
"alignment_outer_shape": "square",
"alignment_inner_shape": "square",
"center_text": null,
"logo": {
"idfs_file": null,
"multiplier": null
},
"background_image": {
"idfs_file": null
},
"foreground_image": {
"idfs_file": null
},
"gacampaign": {
"source": "Test source",
"medium": "Test medium",
"content": "Hello World",
"name": "Demo"
},
"metadata": {
"custom_1": "Hello world",
"custom_2": "Hi,there"
},
"script": "<script>!function(e,t,a,n,c,s,o){e.GoogleAnalyticsObject=c,e[c]=e[c]||function(){(e[c].q=e[c].q||[]).push(arguments)},e[c].l=1*new Date,s=t.createElement(a),o=t.getElementsByTagName(a)[0],s.async=1,s.src=n,o.parentNode.insertBefore(s,o)}(window,document,\"script\",\"//www.google-analytics.com/analytics.js\",\"ga\"),ga(\"create\",\"UA-xxxxxx-1\",\"auto\"),ga(\"send\",\"pageview\");</script>"
}'
The above request will return a PNG file. The HTTP status code will be
201 Created.
URL Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| id | int | Yes | The QR Code ID. |
Body Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| name | string | No | Optional. QR Code name/ title |
| format | string | Yes | Qrcode image format. Supported formats are: bmp, dxf, eps, gif, jpg, pdf, png, png8, svg, tiff, webp. Default: png |
| resolution | int | No | Qrcode resolution. Supported values are: 75, 150, 300, 600. Default: 72 |
| gradient | string | No | The QR code gradient type. Supported types are: radial, vertical, diagonal, inverse_diagonal, horizontal. Not supported if the format is DXF. Not supported if the background_image is present. Not supported if the foreground_image is present. Default: null |
| colors.bg | string | No | Background color of the QR code. Must match the regex /^#[0-9a-f]{6}$/i. Default: #ffffff |
| colors.fg | string | No | Foreground color of the QR code. Must match the regex /^#[0-9a-f]{6}$/i. Default: #000000 |
| colors.finder | string | No | Color of the finder pattern. Must match the regex /^#[0-9a-f]{6}$/i. Default: #000000 |
| colors.finder_eye | string | No | Color of the finder pattern eye. Must match the regex /^#[0-9a-f]{6}$/i. Default: #000000 |
| colors.alignment_inner | string | No | Color of the alignment pattern (inner). Must match the regex /^#[0-9a-f]{6}$/i. Default: #000000 |
| colors.alignment_outer | string | No | Color of the alignment pattern (outer).Must match the regex /^#[0-9a-f]{6}$/i. Default: #000000 |
| colors.gradient | string | No | Color of the gradient. Must match the regex /^#[0-9a-f]{6}$/i. Default: null |
| colors.center_text | string | No | Color of the center text. Must match the regex /^#[0-9a-f]{6}$/i. Default: #000000 |
| colors.transparent | bool | No | Indicates if the QR code has transparency. Default: false |
| module_shape | string | No | Shape of the QR code modules. Supported shapes are: square, round, dot, square_outlined, square_rounded_connected, dots_connected, diamond, diamond_rounded, star_4_point, star_4_point_rounded, star_5_point, star_5_point_rounded. Default: square |
| finder_shape | string | No | Shape of the finder pattern. Supported shapes are: square, round, circle, diamond, diamond_rounded, star_4_point, star_4_point_rounded, star_5_point, star_5_point_rounded. Default: square |
| finder_eye_shape | string | No | Shape of the finder pattern eye. Supported shapes are: square, round, circle, dot, square_outlined, square_rounded_outlined, diamond, diamond_rounded, star_4_point, star_4_point_rounded, star_5_point, star_5_point_rounded. Default: square |
| alignment_outer_shape | string | No | Shape of the alignment pattern (outer). Supported shapes are: square, round, circle, dot, square_outlined, square_rounded_outlined, diamond, diamond_rounded, star_4_point, star_4_point_rounded, star_5_point, star_5_point_rounded. Default: square |
| alignment_inner_shape | string | No | Shape of the alignment pattern (inner). Supported shapes are: square, round, dot, square_outlined, diamond, diamond_rounded, star_4_point, star_4_point_rounded, star_5_point, star_5_point_rounded. Default: square |
| center_text | string | No | Text to embed in the QR code. Text length should be Min:1, Max:16. Not supported if the format is DXF. Not supported if logo is present. |
| logo.idfs_file | int | No | ID of the logo file to embed in the QR code. Must be a valid image url or base64-encoded png/jpeg image string. Not supported if the format is DXF. Not supported if center_text is present. Default: null |
| logo.multiplier | float | No | Optional. Used only when a logo is specified. Defines a scale factor for resizing the logo. For example, a value of 1.1 increases the logo size by 10%. Supported range: 0.5 to 1.5. Default: null |
| background_image.idfs_file | int | No | ID of the background image file to use. Must be a valid image url. Not supported if the format is DXF. Not supported if the module_shape is connected. Not supported if the gradient is present. Not supported if the foreground_image is present. Default: null |
| foreground_image.idfs_file | int | No | ID of the foreground image file to use. Must be a valid image url. Not supported if the format is DXF. Not supported if the gradient is present. Not supported if the background_image is present. Default: null |
| gacampaign | array | No | An array containing Google Campaign Tracking for the QR code. Only supported for URL data type. |
| gacampaign.source | string | No | Optional. Google Campaign Source. Max:255. Default: null |
| gacampaign.medium | string | No | Optional. Google Campaign Medium. Max:255. Default: QR Code |
| gacampaign.content | string | No | Optional. Google Campaign Content. Max:255. Default: null |
| gacampaign.name | string | No | Optional. Google Campaign Name. Max:255. Default: null |
| enable_gps_tracking | bool | No | Optional. Use true to enable GPS tracking for QR Code. Allowed when dynamic is true. Default: false |
| metadata | array | No | An array containing metadata for the QR code. |
| script | string | No | Custom pixels script. It must be within <script></script>. |
Response
On success the API will return a PNG file. The HTTP status code will be 201 Created.
| Status Code | Description |
|---|---|
| 200 | Success. QR code preview updated. |
Error Responses
If there is an error during preview update, the API will return an appropriate error response.
| Status Code | Description |
|---|---|
| 400 | Bad Request - Invalid input data. |
| 401 | Unauthorized - Authentication failed. |
| 403 | Forbidden. |
| 404 | Not Found. |
| 422 | Unprocessable Entity. |
| 500 | Internal Server Error - An unexpected error. |
Delete QR Code
DELETE /api/qrcodes/{id}
Example request:
curl -X DELETE "https://api.qrstuff.com/api/qrcodes/101" \
-H "Authorization: Bearer [your_api_key]" \
Example Response:
null
URL Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| id | int | Yes | The QR Code ID. |
Response
On success the API will return true. The HTTP status code will be 200 OK.
| Status Code | Description |
|---|---|
| 200 | Success. QR code deleted. |
Error Responses
If there is an error during delete, the API will return an appropriate error response.
| Status Code | Description |
|---|---|
| 400 | Bad Request - Invalid input data. |
| 401 | Unauthorized - Authentication failed. |
| 403 | Forbidden. |
| 404 | Not Found. |
Restore Deleted QR Codes
POST /api/qrcodes/restore
Example request:
curl -X POST "https://api.qrstuff.com/api/qrcodes/restore" \
-H "Authorization: Bearer [your_api_key]" \
-H 'Content-Type: application/json' \
-d '{
"qrcode_ids": [91, 92, 93],
"shorturl_keys": ['abc123']
}'
Example Response:
'{
"message": "QR codes restoration process will commence shortly. A completion notification will be sent via email."
}'
Body Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| qrcode_ids | array | Yes | Required if shorturl_keys is not present. An array of QR Code Ids. |
| shorturl_keys | array | Yes | Required if qrcode_ids is not present. An array of Short URL Keys. |
Response
On success the API will return a JSON object with a status code of 200 Success.
| Status Code | Description |
|---|---|
| 200 | Success. QR Code restored. |
Error Responses
If there is an error during restoration, the API will return an appropriate error response.
| Status Code | Description |
|---|---|
| 401 | Unauthorized - Authentication failed. |
| 403 | Forbidden. |
| 404 | Not Found. |
| 500 | Internal Server Error - An unexpected error. |
Transfer Anonymous QR Codes
POST /api/qrcodes/anonymous-transfer
Example request:
curl -X POST "https://api.qrstuff.com/api/qrcodes/anonymous-transfer" \
-H "Authorization: Bearer [your_api_key]" \
-H 'Content-Type: application/json' \
-d '{
"idproject": 101,
"qrcode_ids": [91, 92, 93],
"shorturl_keys": ['abc123']
}'
Example Response:
'{
"message": "QR codes ownership update process will commence shortly, transferring them to the account owned by John Doe. A completion notification will be sent via email."
}'
Body Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| idproject | int | No | Project Id. default: null |
| qrcode_ids | array | Yes | Required if shorturl_keys is not present. An array of QR Code Ids. |
| shorturl_keys | array | Yes | Required if qrcode_ids is not present. An array of Short URL Keys. |
Response
On success the API will return a JSON object with a status code of 200 Success.
| Status Code | Description |
|---|---|
| 200 | Success. QR Code ownership udpated. |
Error Responses
If there is an error during tranfering ownership, the API will return an appropriate error response.
| Status Code | Description |
|---|---|
| 401 | Unauthorized - Authentication failed. |
| 403 | Forbidden. |
| 404 | Not Found. |
| 500 | Internal Server Error - An unexpected error. |
Print Label Sheet
POST /api/qrcodes/{id}/print-label-sheet
Example request:
curl -X POST "https://api.qrstuff.com/api/qrcodes/{id}/print-label-sheet" \
-H "Authorization: Bearer [your_api_key]" \
-H 'Content-Type: application/json' \
-d '{
"avery_template": "44",
"label_border": false
}'
Example Response:
'PDF file with label sheet'
URL Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| id | int | Yes | QR Code Id |
Body Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| avery_template | int | Yes | Avery template code |
| label_border | bool | No | Use true to add border around QR Code. Default: false |
Response
On success the API will return a PDF file. The HTTP status code will be 200 OK.
| Status Code | Description |
|---|---|
| 200 | Success. PDF file generated. |
Error Responses
If there is an error during generation of PDF, the API will return an appropriate error response.
| Status Code | Description |
|---|---|
| 400 | Bad Request - Invalid input data. |
| 401 | Unauthorized - Authentication failed. |
| 403 | Forbidden. |
| 404 | Not Found. |
| 422 | Unprocessable Entity. |
| 500 | Internal Server Error - An unexpected error. |
QR Code Report
POST /api/qrcodes/{id}/report
Example request:
curl -X POST "https://api.qrstuff.com/api/qrcodes/{id}/report" \
-H "Authorization: Bearer [your_api_key]" \
-H 'Content-Type: application/json' \
-d '{
"email": "john.doe@example.com"
}'
Example Response:
null
URL Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| id | int | Yes | QR Code Id |
Body Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| No | Valid email to get PDF on mail |
Response
On success the API will return true. The HTTP status code will be 200 OK.
| Status Code | Description |
|---|---|
| 200 | Success. Report generated. |
Error Responses
If there is an error during generating report, the API will return an appropriate error response.
| Status Code | Description |
|---|---|
| 400 | Bad Request - Invalid input data. |
| 401 | Unauthorized - Authentication failed. |
| 403 | Forbidden. |
| 404 | Not Found. |
| 422 | Unprocessable Entity. |
| 500 | Internal Server Error - An unexpected error. |
QR Code Analytics
Total Scans
POST /api/analytics/total-scans
Example request:
curl -X POST "https://api.qrstuff.com/api/analytics/total-scans" \
-H "Authorization: Bearer [your_api_key]" \
-d '{
"scope": "qrcode",
"idqrcode": 101,
"start_date": "2025-01-01",
"end_date": "2025-02-01"
}'
Example Response:
'{
"total_scans": 100,
"growth": 100,
"url": "https://api.qrstuff.com/qr/101/daily-scans-chart?end_date=2025-02-01&start_date=2025-01-01&signature=514c75cc6e9f67799fe6d8b2cab3584c589ef1a4ae9f952f99fc05e70b6f3b78"
}'
Body Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| scope | string | Yes | Scope. Must be qrcode |
| idqrcode | int | Yes | QR Code Id |
| start_date | date | No | Optional. Start Date |
| end_date | date | No | Optional. End Date |
Response
On success the API will return a JSON object that includes the total_scans, along with growth data and a daily scan chart. The HTTP status code will be 200 OK.
| Status Code | Description |
|---|---|
| 200 | Success. Result fetched successfully. |
Error Responses
If there is an error during request, the API will return an appropriate error response.
| Status Code | Description |
|---|---|
| 400 | Bad Request - Invalid input data. |
| 401 | Unauthorized - Authentication failed. |
| 422 | Unprocessable Entity. |
| 500 | Internal Server Error - An unexpected error. |
Device Wise Scans
POST /api/analytics/device-wise-scans
Example request:
curl -X POST "https://api.qrstuff.com/api/analytics/device-wise-scans" \
-H "Authorization: Bearer [your_api_key]" \
-d '{
"scope": "qrcode",
"idqrcode": 101,
"start_date": "2025-01-01",
"end_date": "2025-02-01"
}'
Example Response:
'{
"url": "https://api.qrstuff.com/qr/101/device-scans-chart?end_date=2025-02-01&start_date=2025-01-01&signature=514c75cc6e9f67799fe6d8b2cab3584c589ef1a4ae9f952f99fc05e70b6f3b78"
}'
Body Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| scope | string | Yes | Scope. Must be qrcode |
| idqrcode | int | Yes | QR Code Id |
| start_date | date | No | Optional. Start Date |
| end_date | date | No | Optional. End Date |
Response
On success the API will return a JSON object that includes a device wise scan chart. The HTTP status code will be 200 OK.
| Status Code | Description |
|---|---|
| 200 | Success. Result fetched successfully. |
Error Responses
If there is an error during request, the API will return an appropriate error response.
| Status Code | Description |
|---|---|
| 400 | Bad Request - Invalid input data. |
| 401 | Unauthorized - Authentication failed. |
| 422 | Unprocessable Entity. |
| 500 | Internal Server Error - An unexpected error. |
Top Performing Location
POST /api/analytics/top-performing-location
Example request:
curl -X POST "https://api.qrstuff.com/api/analytics/top-performing-location" \
-H "Authorization: Bearer [your_api_key]" \
-d '{
"scope": "qrcode",
"idqrcode": 101,
"start_date": "2025-01-01",
"end_date": "2025-02-01"
}'
Example Response:
'{
"country_code": "US",
"country_name": "United State",
"scans": 100,
"total_scan": 100,
"percentage_of_total": 100
}'
Body Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| scope | string | Yes | Scope. Must be qrcode |
| idqrcoden | int | Yes | QR Code Id |
| start_date | date | No | Optional. Start Date |
| end_date | date | No | Optional. End Date |
Response
On success the API will return a JSON object. The HTTP status code will be 200 OK.
| Status Code | Description |
|---|---|
| 200 | Success. Result fetched successfully. |
Error Responses
If there is an error during request, the API will return an appropriate error response.
| Status Code | Description |
|---|---|
| 400 | Bad Request - Invalid input data. |
| 401 | Unauthorized - Authentication failed. |
| 422 | Unprocessable Entity. |
| 500 | Internal Server Error - An unexpected error. |
Top Performing Date
POST /api/analytics/top-performing-date
Example request:
curl -X POST "https://api.qrstuff.com/api/analytics/top-performing-date" \
-H "Authorization: Bearer [your_api_key]" \
-d '{
"scope": "qrcode",
"idqrcode": 101,
"start_date": "2025-01-01",
"end_date": "2025-02-01"
}'
Example Response:
'{
"date": "2025-01-01",
"scans": 100,
"total_scan": 100,
"percentage_of_total": 100
}'
Body Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| scope | string | Yes | Scope. Must be qrcode |
| idqrcode | int | Yes | QR Code Id |
| start_date | date | No | Optional. Start Date |
| end_date | date | No | Optional. End Date |
Response
On success the API will return a JSON object. The HTTP status code will be 200 OK.
| Status Code | Description |
|---|---|
| 200 | Success. Result fetched successfully. |
Error Responses
If there is an error during request, the API will return an appropriate error response.
| Status Code | Description |
|---|---|
| 400 | Bad Request - Invalid input data. |
| 401 | Unauthorized - Authentication failed. |
| 422 | Unprocessable Entity. |
| 500 | Internal Server Error - An unexpected error. |
Unique Users
POST /api/analytics/unique-users
Example request:
curl -X POST "https://api.qrstuff.com/api/analytics/unique-users" \
-H "Authorization: Bearer [your_api_key]" \
-d '{
"scope": "qrcode",
"idqrcode": 101,
"start_date": "2025-01-01",
"end_date": "2025-02-01"
}'
Example Response:
'{
"current_page": 1,
"data": [
{
"date": "2025-01-01",
"users": "10"
},
{
"date": "2025-01-02",
"users": "20"
},
{
"date": "2025-01-03",
"users": "5"
},
{
"date": "2025-01-04",
"users": "10"
},
{
"date": "2025-01-05",
"users": "15"
},
{
"date": "2025-01-06",
"users": "25"
},
{
"date": "2025-01-07",
"users": "10"
},
{
"date": "2025-01-08",
"users": "20"
},
{
"date": "2025-01-09",
"users": "5"
},
{
"date": "2025-01-10",
"users": "10"
},
{
"date": "2025-01-11",
"users": "15"
},
{
"date": "2025-01-12",
"users": "25"
},
{
"date": "2025-01-13",
"users": "10"
},
{
"date": "2025-01-14",
"users": "20"
},
{
"date": "2025-01-15",
"users": "5"
}
],
"first_page_url": "https://api.qrstuff.com/api/analytics/unique-users?page=1",
"from": 1,
"last_page": 2,
"last_page_url": "https://api.qrstuff.com/api/analytics/unique-users?page=1",
"links": [
{
"url": null,
"label": "« Previous",
"active": false
},
{
"url": "https://api.qrstuff.com/api/analytics/unique-users?page=1",
"label": "1",
"active": true
},
{
"url": "https://api.qrstuff.com/api/analytics/unique-users?page=2",
"label": "2",
"active": false
},
{
"url": "https://api.qrstuff.com/api/analytics/unique-users?page=2",
"label": "Next »",
"active": false
}
],
"next_page_url": "https://api.qrstuff.com/api/analytics/unique-users?page=2",
"path": "https://api.qrstuff.com/api/analytics/unique-users",
"per_page": 15,
"prev_page_url": null,
"to": 15,
"total": 30,
"url": "https://api.qrstuff.com/qr/101/user-scans-chart?end_date=2025-02-01&start_date=2025-01-01&signature=10de41f772e09093daadbe59944f6c5981ddd763d129cebdef2f84d376140e58"
}'
Body Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| scope | string | Yes | Scope. Must be qrcode |
| idqrcoden | int | Yes | QR Code Id |
| start_date | date | No | Optional. Start Date |
| end_date | date | No | Optional. End Date |
Response
On success the API will return a JSON object included with unique user chart URL. The HTTP status code will be 200 OK.
| Status Code | Description |
|---|---|
| 200 | Success. Result fetched successfully. |
Error Responses
If there is an error during request, the API will return an appropriate error response.
| Status Code | Description |
|---|---|
| 400 | Bad Request - Invalid input data. |
| 401 | Unauthorized - Authentication failed. |
| 422 | Unprocessable Entity. |
| 500 | Internal Server Error - An unexpected error. |
Chart- Country Wise Scans
POST /api/analytics/chart
Example request:
curl -X POST "https://api.qrstuff.com/api/analytics/chart" \
-H "Authorization: Bearer [your_api_key]" \
-d '{
"chart_type": "country"
"country": null,
"scope": "qrcode",
"idqrcode": 101,
"start_date": "2025-01-01",
"end_date": "2025-02-01"
}'
Example Response:
'{
"url": "https://api.qrstuff.com/qr/101/country-scans-chart?end_date=2025-02-01&start_date=2025-01-01&signature=96dcd41fe6e1fbc9eb45c3a3eaeea430ab54e7876a653d7c6ea362fb96ce27c4"
}'
Body Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| chart_type | string | Yes | Chart Type . Must be country or region |
| country | string | No | Country Code. Required if chart_type is region. eg. US |
| scope | string | Yes | Scope. Must be qrcode |
| idqrcode | int | Yes | QR Code Id |
| start_date | date | No | Optional. Start Date |
| end_date | date | No | Optional. End Date |
Response
On success the API will return a JSON object included chart URL. The HTTP status code will be 200 OK.
| Status Code | Description |
|---|---|
| 200 | Success. Chart URL generated. |
Error Responses
If there is an error during request, the API will return an appropriate error response.
| Status Code | Description |
|---|---|
| 400 | Bad Request - Invalid input data. |
| 401 | Unauthorized - Authentication failed. |
| 422 | Unprocessable Entity. |
| 500 | Internal Server Error - An unexpected error. |
Chart- Scans by Time of Day
POST /api/analytics/chart
Example request:
curl -X POST "https://api.qrstuff.com/api/analytics/chart" \
-H "Authorization: Bearer [your_api_key]" \
-d '{
"chart_type": "time"
"scope": "qrcode",
"idqrcode": 101,
"start_date": "2025-01-01",
"end_date": "2025-02-01"
}'
Example Response:
'{
"url": "https://api.qrstuff.com/qr/101/scans-chart-by-time-of-day?end_date=2025-02-01&start_date=2025-01-01&signature=32aa4330dcded6c2bdf9f01abfda0c2ddbd5f1606fd1987a3fd1d72fd74356f3"
}'
Body Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| chart_type | string | Yes | Chart Type . Must be time |
| scope | string | Yes | Scope. Must be qrcode |
| idqrcode | int | Yes | QR Code Id |
| start_date | date | No | Optional. Start Date |
| end_date | date | No | Optional. End Date |
Response
On success the API will return a JSON object included chart URL. The HTTP status code will be 200 OK.
| Status Code | Description |
|---|---|
| 200 | Success. Chart URL generated. |
Error Responses
If there is an error during request, the API will return an appropriate error response.
| Status Code | Description |
|---|---|
| 400 | Bad Request - Invalid input data. |
| 401 | Unauthorized - Authentication failed. |
| 422 | Unprocessable Entity. |
| 500 | Internal Server Error - An unexpected error. |
Google sheets
Link Google sheet
POST /api/google-sheet
Example request:
curl -X POST "https://api.qrstuff.com/api/google-sheet" \
-H "Authorization: Bearer [your_api_key]" \
-H "Content-Type: application/x-www-form-urlencoded" \
--data-urlencode 'title=My first google sheet' \
Example Response:
'{
"data": {
"id": 1,
"title": "Test sheet",
"spreadsheet_url": "https://docs.google.com/spreadsheets/d/DKu7xs0/edit?ouid=879766860",
"spreadsheet_id": "iK5Rcs79DKu",
"created_at": "2020-08-01T12:00:28+00:00",
"updated_at": "2020-08-01T06:44:23+00:00"
}
}'
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| title | string | Yes | Google sheet title. Required when spread_sheet_id is missing. |
| spread_sheet_id | string | Yes | Google sheet url. Required when title is missing. |
Response
On success the API will return a JSON object. The HTTP status code will be 201 Created.
| Status Code | Description |
|---|---|
| 201 | Success. Google sheet is linked. |
Error Responses
If there is an error during fetch details, the API will return an appropriate error response.
| Status Code | Description |
|---|---|
| 400 | Bad Request - Invalid input data. |
| 401 | Unauthorized - Authentication failed. |
| 422 | Unprocessable Entity. |
| 500 | Internal Server Error - An unexpected error. |
List Google sheets
GET /api/google-sheet?q=test&page=1
Example request:
curl -X GET "https://api.qrstuff.com/api/projects/q=default&page=1" \
-H "Authorization: Bearer [your_api_key]" \
Example Response:
'{
"data": [
{
"id": 1,
"title": "new test sheet",
"spreadsheet_url": "https://docs.google.com/spreadsheets/d/1_74QYscxWH/edit?ouid=109021694796879766860",
"spreadsheet_id": "1_74QYscxWH",
"created_at": "2024-08-01T07:04:14+00:00",
"updated_at": "2024-08-01T07:04:14+00:00"
},
{
"id": 2,
"title": "My first google sheet",
"spreadsheet_url": "https://docs.google.com/spreadsheets/d/E82vc3F7x5dLQNQ/editac",
"spreadsheet_id": "E82vc3F7x5dLQNQ",
"created_at": "2024-08-01T07:46:15+00:00",
"updated_at": "2024-08-01T07:46:15+00:00"
}
],
"links": {
"first": "https://api.qrstuff.com/api/google-sheet?page=1",
"last": "https://api.qrstuff.com/api/google-sheet?page=4",
"prev": null,
"next": "https://api.qrstuff.com/api/google-sheet?page=2"
},
"meta": {
"current_page": 1,
"from": 1,
"last_page": 25,
"links": [
{
"url": null,
"label": "« Previous",
"active": false
},
{
"url": "https://api.qrstuff.com/api/google-sheet?page=1",
"label": "1",
"active": true
},
{
"url": "https://api.qrstuff.com/api/google-sheet?page=2",
"label": "2",
"active": false
},
{
"url": "https://api.qrstuff.com/api/google-sheet?page=3",
"label": "3",
"active": false
},
{
"url": "https://api.qrstuff.com/api/google-sheet?page=4",
"label": "4",
"active": false
},
{
"url": "https://api.qrstuff.com/api/google-sheet?page=2",
"label": "Next »",
"active": false
}
],
"path": "https://api.qrstuff.com/api/google-sheet",
"per_page": 5,
"to": 5,
"total": 100
}
}'
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| q | string | No | Query Param for search with google sheet title |
| page | int | No | Query Param pagination |
Response
On success the API will return a JSON object of Google sheets. The HTTP status code will be 200 OK.
| Status Code | Description |
|---|---|
| 200 | Success. Google sheets fetched. |
Error Responses
If there is an error during fetch Google sheets list, the API will return an appropriate error response.
| Status Code | Description |
|---|---|
| 400 | Bad Request - Invalid input data. |
| 401 | Unauthorized - Authentication failed. |
| 422 | Unprocessable Entity. |
| 500 | Internal Server Error - An unexpected error. |
Unlink Google sheet
DELETE /api/google-sheet/{id}
Example request:
curl -X DELETE "https://api.qrstuff.com/api/google-sheet/1" \
-H "Authorization: Bearer [your_api_key]" \
Example Response:
null
URL Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| id | int | Yes | The Google sheet ID. |
Response
On success the API will return true. The HTTP status code will be 200 OK.
| Status Code | Description |
|---|---|
| 200 | Success. Google sheet unlinked. |
Error Responses
If there is an error during delete, the API will return an appropriate error response.
| Status Code | Description |
|---|---|
| 400 | Bad Request - Invalid input data. |
| 401 | Unauthorized - Authentication failed. |
| 403 | Forbidden. |
| 404 | Not found. |
| 500 | Internal Server Error - An unexpected error. |
Miscellaneous
Get Slack Connect Url
GET /api/slack-connect-url
Example request:
curl -X GET "https://api.qrstuff.com/api/slack-connect-url" \
-H "Authorization: Bearer [your_api_key]" \
Example Response:
'{
"url": "https://slack.com/oauth/v2/authorize?client_id=44XXXXX839094&redirect_uri=https%3A%2F%2Fapi.qrstuff.com..."
}'
Response
On success the API will return a slack connect url. The HTTP status code will be 200 OK.
| Status Code | Description |
|---|---|
| 200 | Success. Slack connect url fetched. |
Error Responses
If there is an error during fetch details, the API will return an appropriate error response.
| Status Code | Description |
|---|---|
| 401 | Unauthorized - Authentication failed. |
| 500 | Internal Server Error - An unexpected error. |
Get Slack Channels List
GET /api/slack-channels-list
Example request:
curl -X GET "https://api.qrstuff.com/api/slack-channels-list" \
-H "Authorization: Bearer [your_api_key]" \
Example Response:
'[
{
"id": "SCO0001",
"name": "Test channel 1",
"isPrivate": false
},
{
"id": "SCO0002",
"name": "Test channel 2",
"isPrivate": true
}
]'
Response
On success the API will return a list of slack channels. The HTTP status code will be 200 OK.
| Status Code | Description |
|---|---|
| 200 | Success. Slack channel list fetched. |
Error Responses
If there is an error during fetch details, the API will return an appropriate error response.
| Status Code | Description |
|---|---|
| 401 | Unauthorized - Authentication failed. |
| 500 | Internal Server Error - An unexpected error. |
Get Avery Templates List
GET /api/avery-template-list
Example request:
curl -X GET "https://api.qrstuff.com/api/avery-template-list" \
-H "Authorization: Bearer [your_api_key]" \
Example Response:
'{
"22807": {
"paper_size": "letter",
"display_size": "2\" Round",
"shape": "square",
"label_width_mm": 50.8,
"label_height_mm": 50.8,
"labels_in_row": 3,
"labels_in_column": 4,
"left_offset": 15.875,
"bottom_offset": 15.9004,
"horizontal_gap": 15.875,
"vertical_gap": 14.8082,
"title_font_size": 8
},
"8293": {
"paper_size": "letter",
"display_size": "1.5\" Round",
"shape": "square",
"label_width_mm": 38.1,
"label_height_mm": 38.1,
"labels_in_row": 4,
"labels_in_column": 5,
"left_offset": 12.7,
"bottom_offset": 19.05,
"horizontal_gap": 12.7,
"vertical_gap": 12.7,
"title_font_size": 7
}
}'
Response
On success the API will return a list of avery templates. The HTTP status code will be 200 OK.
| Status Code | Description |
|---|---|
| 200 | Success. Avery template list fetched. |
Error Responses
If there is an error during fetch details, the API will return an appropriate error response.
| Status Code | Description |
|---|---|
| 401 | Unauthorized - Authentication failed. |
| 500 | Internal Server Error - An unexpected error. |
Errors
The QRSTUFF API uses the following error codes:
| Error Code | Meaning |
|---|---|
| 400 | Bad Request -- Your request is invalid. |
| 401 | Unauthorized -- Your API key is wrong. |
| 403 | Forbidden -- The kitten requested is hidden for administrators only. |
| 404 | Not Found -- The specified kitten could not be found. |
| 405 | Method Not Allowed -- You tried to access a kitten with an invalid method. |
| 406 | Not Acceptable -- You requested a format that isn't json. |
| 410 | Gone -- The kitten requested has been removed from our servers. |
| 418 | I'm a teapot. |
| 429 | Too Many Requests -- You're requesting too many kittens! Slow down! |
| 500 | Internal Server Error -- We had a problem with our server. Try again later. |
| 503 | Service Unavailable -- We're temporarily offline for maintenance. Please try again later. |