curl

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": "&laquo; 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 &raquo;",
                "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": "&laquo; 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 &raquo;",
                "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.

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": "&laquo; 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 &raquo;",
            "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
email email 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 be 201 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 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:

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.

Facebook

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.

Instagram

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.

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.

LinkedIn

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.

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.

Twitter

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.

WhatsApp

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": "&laquo; 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 &raquo;",
                "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.

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
email email 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": "&laquo; 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 &raquo;",
            "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

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": "&laquo; 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 &raquo;",
                "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.

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.