×
QR Code API

QR Code API (2.0.0)

Download OpenAPI specification:Download

This page contains the documentation on how to use the QR Code API through API calls.

API Overview

The QR Planet API is organized into focused endpoint groups ("tags") so you can build integrations in a modular way, from QR creation to analytics and campaign operations.

Platform Basics

  • Recommended version: Start new projects with this API v2.
  • Fallback strategy: If a specific feature is still legacy-only, use the matching v1 endpoint temporarily.
  • Authentication model: Most endpoints require Bearer auth; /api/v2/health is the primary exception.
  • Token usage: Use secret keys for server-side write operations and public keys for allowed read scenarios (mostly if used directly in t he browser).
  • Response format: Endpoints return JSON, and list endpoints commonly support page and size.
  • Health check: Use the /api/v2/health endpoint to verify the API is operational if there are any issues with your overall integration.

API Areas (Tags)

  • QR Codes: Core lifecycle management for dynamic QR codes, including create/read/update/delete, downloads, and operational actions.
  • Folders: Organize QR codes at scale and retrieve/reset folder-level statistics for grouped reporting.
  • Analytics: Access scan and redemption insights, including summaries, event-style lists, and reset endpoints where supported.
  • Tags: Add, update, list, and remove labels on QR codes to improve classification, filtering, and workflow automation.
  • Leads: Retrieve leads from landing-page QR campaigns with pagination and export options (CSV/XLSX) for BI or CRM flows.
  • Coupons: Run voucher-based coupon workflows, issue codes programmatically, and track availability, redemption history, and campaign performance.
  • GS1 Digital Link: Create GS1-compatible QR experiences and monitor performance, while managing related code operations through standard QR endpoints.
  • Designer QR Codes: Generate custom styled Designer QR outputs via /qrcodes/CODE/design using colors, marker/pattern options, gradients, logos, and frame/label options.
  • Designer Templates: Browse template catalogs and use template IDs to generate branded designer QR images.
  • Digital Business Cards: Create and manage card profiles, update details, and upload card-related assets (user/logo/background images).

Typical Integration Flow

  • Authenticate once and keep your secret / public token handling in place.
  • Create your resources (for example QR codes, coupons, or business cards).
  • Organize assets with Folders and Tags so filtering and reporting stays manageable.
  • Publish outputs: download plain images, apply custom styles via POST /qrcodes/CODE/design, or generate designer-template variants.
  • Track performance with Analytics, Coupon stats, and Leads exports.
  • Use Dynamic QR codes and optimize over time by updating destinations/content while keeping printed QR codes unchanged.

Postman Support

If you want to test the API via Postman you can open the collection simply by clicking on QR Planet API v2 on Postman.

There is also a Demo Environment that you can choose in Postman (in the top right corner) for playing around. Attention: In this Demo Account Data is being deleted every 24 hours.

Demo Account

You can use the Demo Account Credentials for initial testing:

  • Demo Public API Key: Bearer public:white.qrd.by:730ec:e8518645ea7939ef6dd9b3fe66180d08 and
  • Demo Secret API Key: Bearer secret:white.qrd.by:730ec:61f2027768be9ae6adb52da232944e38
  • Attention: In this Demo Account Data is being deleted every 24 hours.

Authentication

  • All but the /api/v2/health endpoint require authentication.
  • To become authenticated you will need to use either a public, or secret token.
  • You find those tokens when you click on the API menu in the QR Code Portal
  • The secret API key can be used for every endpoint. Use it only in server-to-server communication.
  • The public API key can usually only be used for reading endpoints (GET). It should be used for asynchronous GET requests in the browser (client-server communication via Javascript).

Example to list your QR Codes (secret and public key can be used):

curl -X 'GET' \
  'https://api.qrplanet.com/api/v2/qrcodes?type=URL&page=1&size=50' \
  -H 'accept: application/json' \
  -H 'Authorization: Bearer public:YOURDOMAIN.COM:XXXXXXX:YYYYYYY'

Example to create a QR Code (only secret key can be used):

curl -X 'POST' \
  'https://api.qrplanet.com/api/v2/qrcodes' \
  -H 'accept: application/json' \
  -H 'Authorization: Bearer secret:YOURDOMAIN.COM:XXXXXXX:YYYYYYY' \
  -H 'Content-Type: application/json' \
  -d '{
  "target_url": "https://test.de",
  "slug": "easter-promotion-2"
}'

Example to download a Designer QR Code image with a multicolor template:

curl -X 'POST' \
  'https://api.qrplanet.com/api/v2/qrcodes/easter-promotion-2/download-image/designer?designer_template_id=369cf5e76d8fcd34621860c332047877&format=PNG' \  
  -H 'Authorization: Bearer secret:YOURDOMAIN.COM:XXXXXXX:YYYYYYY'

Example to generate a custom Designer QR code via /design:

curl -X 'POST' \
  'https://api.qrplanet.com/api/v2/qrcodes/easter-promotion-2/design' \
  -H 'accept: image/svg+xml' \
  -H 'Authorization: Bearer secret:YOURDOMAIN.COM:XXXXXXX:YYYYYYY' \
  -H 'Content-Type: application/json' \
  -d '{
  "pattern": "DIAMOND",
  "marker": "CIRCLE",
  "marker_out_color": "#7FE1FF",
  "marker_in_color": "#FFCACA",
  "background_color": "#fbff92",
  "foreground_color": "#0B1974",
  "error_correction_level": "M",
  "size": 10
}'

Code Samples

You can find code samples for the endpoints for a couple of programming languages (Python, PHP, Go, JavaScript (Node.js)) as well as a cURL statement. If your programming language is not listed you can usually easily use a tool like ChatGPT, Claude or Google Gemini to convert the cURL example to your programming language of choice as a starting point.

QR Codes

In this area you find all the API endpoints to manage your QR codes:

  • create, get details, change and delete a QR code
  • list your QR codes
  • get and remove country/language based QR code target urls
  • get and reset statistics of the scans of your QR codes
  • add and remove tags from your QR code
  • download plain and designer images of QR codes
  • generate fully custom Designer QR images via /qrcodes/{code}/design
  • etc.

List QR Codes

Returns a paginated list of QR codes in your account.

Use this endpoint to:

  • List dynamic or static QR codes
  • Filter by type/subtype (URL, WIFI, TEXT, etc.)
  • Filter by title/description/tags/folders
  • Filter by scan count and date ranges

Pagination: uses page and size.

Authorizations:
HTTPBearer
query Parameters
QRCodeType (string) or Type (null) (Type)

Filter by QR code type (exact match) - example: URL

QRCodeSubType (string) or Subtype (null) (Subtype)

Filter by QR code subtype (exact match) - example: QRCodeSubType.URL

Code Like (string) or Code Like (null) (Code Like)

Filter by QR code code (partial match) - example: easter-promotion-2

Medium (string) or Medium (null) (Medium)

Filter by medium (exact match) - example: FLYER

Folder Name (string) or Folder Name (null) (Folder Name)

Filter by folder (exact match) - example: folder1

Tag (string) or Tag (null) (Tag)

Filter by tag (exact match) - example: tag1

Title (string) or Title (null) (Title)

Filter by title (exact match) - example: Easter Promotion 2 2025

Title Like (string) or Title Like (null) (Title Like)

Filter by title (partial match) - example: Easter Promotion

Description (string) or Description (null) (Description)

Filter by description (exact match) - example: Welcome to our Easter Promotion Relaunch 2025

Description Like (string) or Description Like (null) (Description Like)

Filter by description (partial match) - example: Promotion Relaunch

Target Url (string) or Target Url (null) (Target Url)

Filter by target url (exact match) - example: https://test.de

Target Url Like (string) or Target Url Like (null) (Target Url Like)

Filter by target url (partial match) - example: test.de

Scan Count From (string) or Scan Count From (null) (Scan Count From)

Filter number of scans of the QR code from this value (inclusive) - example: 100

Scan Count To (string) or Scan Count To (null) (Scan Count To)

Filter number of scans of the QR code up to this value (inclusive) - example: 200

Unique Visitor Count From (string) or Unique Visitor Count From (null) (Unique Visitor Count From)

Filter number of unique visitors of the QR code from this value (inclusive) - example: 50

Unique Visitor Count To (string) or Unique Visitor Count To (null) (Unique Visitor Count To)

Filter number of unique visitors of the QR code up to this value (inclusive) - example: 100

Notify Email (boolean) or Notify Email (null) (Notify Email)

Filter if the notification for emails is active - example: true

Notify Sms (boolean) or Notify Sms (null) (Notify Sms)

Filter if the notification for emails is active - example: true

Creation At From (string) or Creation At From (null) (Creation At From)

Filter creation date of QR code from this datetime (inclusive) - example: 2025-09-27 00:00:01

Creation At To (string) or Creation At To (null) (Creation At To)

Filter creation date of QR code up to this datetime (inclusive) - example: 2025-09-27 23:59:59

Last Edit At From (string) or Last Edit At From (null) (Last Edit At From)

Filter last edit of QR code from this datetime (inclusive) - example: 2025-09-27 00:00:01

Last Edit At To (string) or Last Edit At To (null) (Last Edit At To)

Filter last edit of QR code up to this datetime (inclusive) - example: 2025-09-27 23:59:59

First Scan At From (string) or First Scan At From (null) (First Scan At From)

Filter first scan of QR code from this datetime (inclusive) - example: 2025-09-27 00:00:01

First Scan At To (string) or First Scan At To (null) (First Scan At To)

Filter first scan of QR code up to this datetime (inclusive) - example: 2025-09-27 23:59:59

Last Scan At From (string) or Last Scan At From (null) (Last Scan At From)

Filter last scan of QR code from this datetime (inclusive) - example: 2025-09-27 00:00:01

Last Scan At To (string) or Last Scan At To (null) (Last Scan At To)

Filter last scan of QR code up to this datetime (inclusive) - example: 2025-09-27 23:59:59

page
integer (Page) >= 1
Default: 1

Page number

size
integer (Size) [ 1 .. 100 ]
Default: 50

Page size

Responses

Request samples

curl \
  -X GET \
  --max-time 10 \
  -H 'Authorization: Bearer public:white.qrd.by:730ec:e8518645ea7939ef6dd9b3fe66180d08' \
  'https://api.qrplanet.com/api/v2/qrcodes?page=1&type=URL'

Response samples

Content type
application/json
{
  • "items": [],
  • "total": 0,
  • "page": 1,
  • "size": 1,
  • "pages": 0
}

Create a QR code

Creates a dynamic or static QR Code.

Be aware that only for dynamic QR codes analytics are available and the target url can be changed later.

You find some common examples below:

Use Case Values
Dynamic: Simplest form of a QR code target_url = https://test.de
Dynamic: With custom slug target_url = https://test.de, slug = easter-promotion-2
Dynamic: Manually setting title and description target_url = https://test.de, title = my title for this qr code, description = my description for this qr code
Dynamic: Password target_url = https://test.de/secret-content, password = password123
Dynamic: Notifications target_url = https://test.de, notify_email = True, notify_sms = True
Static: URL (!) static = True, content = https://mystaticwebsite.com
Static: Phone number static = True, content = +18552700999
Static: SMS static = True, content = SMSTO:+18552700999:This is my sms text message
Static: Email static = True, content = MATMSG:TO:[email protected];SUB:mysubject;BODY:my email message text;;
Static: Wifi static = True, content = WIFI:S:myssid;T:WPA;P:mypassword;;
Static: Bitcoin static = True, content = bitcoin:16sym9PubRco4nekDa2ZC9VYZuSwzSc999?amount=0.1
Static: SEPA static = True, content = DE89 3704 0044 0532 0130 00
Authorizations:
HTTPBearer
Request Body schema: application/json
required
Static (boolean) or Static (null) (Static)
Default: false

Indicates if it should be a static QR code instead of the default dynamic QR code. In case of a dynamic QR code the target url is provided in the field target_url. In case of static QR code the content is stored in field content and is directly encoded into the QR code.

target_url
string (Target Url)

The target url the dynamic QR code redirects to.

content
string (Content)

The actual content of a static QR code like phone number or email address.

Slug (string) or Slug (null) (Slug)

An (optional) custom slug you want to use like easter-promotion-2 which leads to a final Short URL like https://qr.yourdomain.com/easter-promotion-2 (dependent on the domain you are using in your account). If not specified a random alphanumeric hash-value is being used for the Short URL like https://qr.yourdomain.com/ydr39. In the rest of the API you can access the QR code then via this slug in the code path parameter like GET /api/v2/qrcodes/{code}. This is also sometimes referred to as Vanity URL in the frontend UI.

Title (string) or Title (null) (Title)

The title of the target website that is shown when displaying the QR code in the QR code portal. If not specified the title of the target url is going to be used.

Description (string) or Description (null) (Description)

The description of the target website that is shown when displaying the QR code in the QR code portal. If not specified the meta description of the target url is going to be used. The description can also be a JSON string.

Metadata (object) or Metadata (null) (Metadata)

Additional metadata as JSON object. The following reserved keys add the following parameters when forwarded:

Reserved key Meaning
{"origin":"1"} 2-digit country code where QR code was scanned
{"region":"1"} Region where QR code was scanned
{"lang":"1"} Set language on the device from which the QR code was scanned
{"tags":"1"} Tags assigned to the QR code

If this metadata field is used, the description field cannot be used!

Gps (boolean) or Gps (null) (Gps)
Default: false

Indicates if the GPS tracking is active.

Notify Email (boolean) or Notify Email (null) (Notify Email)
Default: false

Indicates that the email notification is active when the QR Code is scanned

Notify Sms (boolean) or Notify Sms (null) (Notify Sms)
Default: false

Indicates that the sms notification is active when the QR Code is scanned

Medium (string) or Medium (null) (Medium)

A medium on which the QR Code will be printed can be specified. There are predefined medias like NEWSPAPER, PRODUCT, FLYER, POSTER, BUSINESS_CARD, PRODUCT_FOLDER, SHOPPING_WINDOW, WEBSITE, TV. However this field can contain any alpha-numeric string e.g. T-Shirt.

Folder Id (string) or Folder Id (null) (Folder Id)

Folder id where the QR code is stored.

Password (string) or Password (null) (Password)

If you add the optional parameter password a user has to type in the correct password before he is being redirected to the target URL.

LocationData (object) or null

Geodata can be transmitted with each QR code. This could be, for example, the company's website address or any location where the QR code is placed. The address parameter is a human-readable address. The lat (latitude) and lng (longitude) parameters are intended for automated processing, such as displaying the location on a map. The image parameter allows you to specify the path to a suitable image.

Responses

Request samples

Content type
application/json
Example

Here you just provide the targt url.

{}

Response samples

Content type
application/json
{}

Delete ALL QR Codes

Deletes ALL QR Codes of this user. Be careful, this operation cannot be undone!

Authorizations:
HTTPBearer
query Parameters
confirm
required
string (Confirm)

Must be 'DELETE_ALL' to confirm. This is a security measure.

Responses

Request samples

curl \
  -X DELETE \
  --max-time 10 \
  -H 'Authorization: Bearer secret:white.qrd.by:730ec:61f2027768be9ae6adb52da232944e38' \
  'https://api.qrplanet.com/api/v2/qrcodes?confirm=DELETE_ALL'

Response samples

Content type
application/json
{
  • "detail": "Invalid authentication token"
}

Get a QR Code

Returns a single QR code by its unique identifier.

Authorizations:
HTTPBearer
path Parameters
code
required
string (Code)

Code that identifies a QR code. Its usually the slug of the QR code that you either provided during QR code creation or that got automatically assigned to if not provided by you. In case of a GS1 QR code its a random hash value. - example: easter-promotion-2

Responses

Request samples

curl \
  -X GET \
  --max-time 10 \
  -H 'Authorization: Bearer public:white.qrd.by:730ec:e8518645ea7939ef6dd9b3fe66180d08' \
  'https://api.qrplanet.com/api/v2/qrcodes/easter-promotion-2'

Response samples

Content type
application/json
{
  • "code": "easter-promotion-2",
  • "static": false,
  • "target_url": "https://test.de",
  • "content": "",
  • "type": "URL",
  • "subtype": "URL",
  • "folder_id": "4711",
  • "folder_name": "folder1",
  • "tags": [
    ],
  • "title": "Easter Promotion 2 2025",
  • "description": "Welcome to our Easter Promotion Relaunch 2025",
  • "scan_count": 12,
  • "unique_visitor_count": 10,
  • "creation_at": "2025-09-01T11:11:11",
  • "gs1_slug": "01/00123456789012",
  • "location": {
    },
  • "geofencing": {
    },
  • "metadata": {
    },
  • "medium": "FLYER",
  • "last_edit_at": "2025-09-15T15:15:15",
  • "first_scan_at": "2025-09-01T11:11:11",
  • "last_scan_at": "2025-09-15T15:15:15"
}

Delete a QR Code

Deletes a QR Code identified by its code.

Authorizations:
HTTPBearer
path Parameters
code
required
string (Code)

Code that identifies a QR code. Its usually the slug of the QR code that you either provided during QR code creation or that got automatically assigned to if not provided by you. In case of a GS1 QR code its a random hash value. - example: easter-promotion-2

Responses

Request samples

curl \
  -X DELETE \
  --max-time 10 \
  -H 'Authorization: Bearer secret:white.qrd.by:730ec:61f2027768be9ae6adb52da232944e38' \
  'https://api.qrplanet.com/api/v2/qrcodes/easter-promotion-2'

Response samples

Content type
application/json
{
  • "detail": "Invalid authentication token"
}

Change certain fields of a QR Code

Change certain fields of a QR Code identified by its code.

Authorizations:
HTTPBearer
path Parameters
code
required
string (Code)

Code that identifies a QR code. Its usually the slug of the QR code that you either provided during QR code creation or that got automatically assigned to if not provided by you. In case of a GS1 QR code its a random hash value. - example: easter-promotion-2

Request Body schema: application/json
required
Target Url (string) or Target Url (null) (Target Url)

The target url the dynamic QR code redirects to.

Title (string) or Title (null) (Title)

The title of the target website that is shown when displaying the QR code in the QR code portal. If not specified the title of the target url is going to be used.

Description (string) or Description (null) (Description)

The description of the target website that is shown when displaying the QR code in the QR code portal. If not specified the meta description of the target url is going to be used. The description can also be a JSON string.

Location (object) or Location (null) (Location)

Geodata can be transmitted with each QR code. This could be, for example, the company's website address or any location where the QR code is placed. The address parameter is a human-readable address. The lat (latitude) and lng (longitude) parameters are intended for automated processing, such as displaying the location on a map. The image parameter allows you to specify the path to a suitable image.

Notify Email (boolean) or Notify Email (null) (Notify Email)
Default: false

Indicates that the email notification is active when the QR Code is scanned

Notify Sms (boolean) or Notify Sms (null) (Notify Sms)
Default: false

Indicates that the sms notification is active when the QR Code is scanned

Medium (string) or Medium (null) (Medium)

A medium on which the QR Code will be printed can be specified. There are predefined medias like NEWSPAPER, PRODUCT, FLYER, POSTER, BUSINESS_CARD, PRODUCT_FOLDER, SHOPPING_WINDOW, WEBSITE, TV. However this field can contain any alpha-numeric string e.g. T-Shirt.

Folder Id (string) or Folder Id (null) (Folder Id)

Folder id where the QR code is stored. To move the QR code to the root folder set this field to "-1"

Password (string) or Password (null) (Password)

If you add the optional parameter password a user has to type in the correct password before he is being redirected to the target URL.

Responses

Request samples

Content type
application/json
{
  • "target_url": "https://test.de",
  • "title": "Easter Promotion 2 2025",
  • "description": "Welcome to our Easter Promotion Relaunch 2025",
  • "location": {
    },
  • "notify_email": false,
  • "notify_sms": false,
  • "medium": "FLYER",
  • "folder_id": "4711",
  • "password": "mysecretpassword"
}

Response samples

Content type
application/json
{
  • "code": "easter-promotion-2",
  • "static": false,
  • "target_url": "https://test.de",
  • "content": "",
  • "type": "URL",
  • "subtype": "URL",
  • "folder_id": "4711",
  • "folder_name": "folder1",
  • "tags": [
    ],
  • "title": "Easter Promotion 2 2025",
  • "description": "Welcome to our Easter Promotion Relaunch 2025",
  • "scan_count": 12,
  • "unique_visitor_count": 10,
  • "creation_at": "2025-09-01T11:11:11",
  • "gs1_slug": "01/00123456789012",
  • "location": {
    },
  • "geofencing": {
    },
  • "metadata": {
    },
  • "medium": "FLYER",
  • "last_edit_at": "2025-09-15T15:15:15",
  • "first_scan_at": "2025-09-01T11:11:11",
  • "last_scan_at": "2025-09-15T15:15:15"
}

Download the image of a QR Code without a Designer QR code template

Download the image of a QR Code in black/white without a Designer QR code template

Authorizations:
HTTPBearer
path Parameters
code
required
string (Code)

Code that identifies a QR code. Its usually the slug of the QR code that you either provided during QR code creation or that got automatically assigned to if not provided by you. In case of a GS1 QR code its a random hash value. - example: easter-promotion-2

query Parameters
ImageFormatBasic (string) or Format (null) (Format)
Default: "PNG"

The format the generated image should have - example: PNG

size
integer (Size) [ 1 .. 30 ]
Default: 10

Size of the image from 1-30 (only relevant for PNG) - example: 30

ErrorCorrectionLevel (string) or Error Correction Level (null) (Error Correction Level)
Default: "L"

The error correction level (L-smallest, M-medium Q-high, H-best) - example: L

padding
integer (Padding) [ 0 .. 30 ]
Default: 4

Padding around the QR code - example: 4

Show Title (boolean) or Show Title (null) (Show Title)
Default: false

Show the title of the QR code below the image - example: false

Responses

Request samples

curl \
  -X GET \
  --max-time 10 \
  -H 'Authorization: Bearer public:white.qrd.by:730ec:e8518645ea7939ef6dd9b3fe66180d08' \
  -o 'qr-code.svg' \
  'https://api.qrplanet.com/api/v2/qrcodes/easter-promotion-2/download-image/basic?format=SVG&padding=5&show_title=True&size=15'

Response samples

Content type
application/json
null

Download the image of a QR Code based on a Designer QR code template

Download the image of a QR Code in the design of a Designer QR code template

Authorizations:
HTTPBearer
path Parameters
code
required
string (Code)

Code that identifies a QR code. Its usually the slug of the QR code that you either provided during QR code creation or that got automatically assigned to if not provided by you. In case of a GS1 QR code its a random hash value. - example: easter-promotion-2

query Parameters
required
Designer Template Id (string) or Designer Template Id (null) (Designer Template Id)

The the designer template you want to use - example: 42f88fb1de80ca479f87942c23ea74be

ImageFormatDesigner (string) or Format (null) (Format)
Default: "SVG"

The format the generated image should have - example: SVG

Responses

Request samples

curl \
  -X GET \
  --max-time 10 \
  -H 'Authorization: Bearer public:white.qrd.by:730ec:e8518645ea7939ef6dd9b3fe66180d08' \
  -o 'qr-code.png' \
  'https://api.qrplanet.com/api/v2/qrcodes/easter-promotion-2/download-image/designer?designer_template_id=42f88fb1de80ca479f87942c23ea74be&format=PNG'

Response samples

Content type
application/json
null

Design a Custom Designer QR Code

Design a custom Designer QR Code by sending optional styling parameters and receiving the rendered output.

Highlights:

  • Pattern and marker customization (including marker-in/marker-out options)
  • Solid and gradient color controls (including radial gradients)
  • Frame and label styling (frame type/color, label text/font/size)
  • Logo controls (logo image data, logo size, logo background behavior)
  • Extra rendering options such as transparency, negative colors, and supersafe mode

Use the examples provided to quickly get started with different design possibilities and see how the parameters affect the QR code's appearance. You can also experiment by mixing and matching parameters to create a unique design that fits your brand or campaign!

You find some common examples below:

Use Case Values
Basic Colored Customization pattern = DIAMOND, marker = CIRCLE, marker_in = CROSS, marker_out_color = #7FE1FF, marker_in_color = #FFCACA, background_color = #fbff92, foreground_color = #0B1974, error_correction_level = M, size = 10
Gradient Application pattern = DEFAULT, enable_gradient = True, use_radial_gradient = True, foreground_color = #000000, gradient_color = #ff0000, background_color = #ffffff, transparent_background = False, size = 12
EAN / Barcode Display pattern = SQUARE-CIRCLE, show_eancode_text = True, include_eancode_image = True, eancode_font_size = 14, foreground_color = #333333, size = 10
Outer Frame with Label outer_frame = SIMPLE-BOTTOM, frame_label = SCAN ME, label_font = UBUNTU-BOLD, frame_color = #4A90E2, label_text_color = #FFFFFF, custom_frame_color = #FF0000, use_custom_label_text_color = True, transparent_background = True, size = 10
Multi-colored Markers use_different_marker_colors = True, use_markers_color = True, marker_top_right_outline = #ff0000, marker_top_right_center = #800000, marker_bottom_left_outline = #0000ff, marker_bottom_left_center = #000080, marker_in_color = #00ff00, marker_out_color = #008000, size = 10
Logo Integration logo_data = data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iaXNvLTg4NTktMSI/Pg0KPCEtLSBHZW5lcmF0b3I6IEFkb2JlIElsbHVzdHJhdG9yIDE5LjAuMCwgU1ZHIEV4cG9ydCBQbHVnLUluIC4gU1ZHIFZlcnNpb246IDYuMDAgQnVpbGQgMCkgIC0tPg0KPHN2ZyB2ZXJzaW9uPSIxLjEiIGlkPSJDYXBhXzEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4Ig0KCSB2aWV3Qm94PSIwIDAgNTEyIDUxMiIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAgNTEyIDUxMjsiIHhtbDpzcGFjZT0icHJlc2VydmUiPg0KPGNpcmNsZSBzdHlsZT0iZmlsbDojRkZEOTNCOyIgY3g9IjI1NiIgY3k9IjI1NiIgcj0iMjU2Ii8+DQo8cGF0aCBzdHlsZT0iZmlsbDojRjRDNTM0OyIgZD0iTTUxMiwyNTZjMCwxNDEuNDQtMTE0LjY0LDI1Ni0yNTYsMjU2Yy04MC40OCwwLTE1Mi4zMi0zNy4xMi0xOTkuMjgtOTUuMjgNCgljNDMuOTIsMzUuNTIsOTkuODQsNTYuNzIsMTYwLjcyLDU2LjcyYzE0MS4zNiwwLDI1Ni0xMTQuNTYsMjU2LTI1NmMwLTYwLjg4LTIxLjItMTE2LjgtNTYuNzItMTYwLjcyDQoJQzQ3NC44LDEwMy42OCw1MTIsMTc1LjUyLDUxMiwyNTZ6Ii8+DQo8Y2lyY2xlIHN0eWxlPSJmaWxsOiMzRTQzNDc7IiBjeD0iMzUwLjE3NiIgY3k9IjIyNS42IiByPSI0MC4xNzYiLz4NCjxlbGxpcHNlIHRyYW5zZm9ybT0ibWF0cml4KC0wLjkxNDEgLTAuNDA1NCAwLjQwNTQgLTAuOTE0MSA2MDcuODQxMSA1NDQuMzE1MykiIHN0eWxlPSJmaWxsOiM1QTVGNjM7IiBjeD0iMzYxLjU2NCIgY3k9IjIwNy43ODciIHJ4PSIxMi4xNiIgcnk9IjcuODcyIi8+DQo8Y2lyY2xlIHN0eWxlPSJmaWxsOiMzRTQzNDc7IiBjeD0iMTYxLjgyNCIgY3k9IjIyNS42IiByPSI0MC4xNzYiLz4NCjxlbGxpcHNlIHRyYW5zZm9ybT0ibWF0cml4KC0wLjkxNDEgLTAuNDA1NCAwLjQwNTQgLTAuOTE0MSAyNDcuMzAwNCA0NjcuOTQ1NykiIHN0eWxlPSJmaWxsOiM1QTVGNjM7IiBjeD0iMTczLjIwNiIgY3k9IjIwNy43ODQiIHJ4PSIxMi4xNiIgcnk9IjcuODcyIi8+DQo8cGF0aCBzdHlsZT0iZmlsbDojM0U0MzQ3OyIgZD0iTTE1MS4xMzYsMzU3LjA1NmMtNC44MzItNC41NDQtNS4wNTYtMTIuMTQ0LTAuNTEyLTE2Ljk2YzQuNTQ0LTQuODE2LDEyLjEyOC01LjA1NiwxNi45Ni0wLjUxMg0KCWM0OS41ODQsNDYuNjcyLDEyNy4yNDgsNDYuNjcyLDE3Ni44MzIsMGM0LjgzMi00LjU0NCwxMi40MTYtNC4zMDQsMTYuOTYsMC41MTJjNC41NDQsNC44MzIsNC4zMiwxMi40MTYtMC41MTIsMTYuOTYNCglDMzAyLjA2NCw0MTIuNDE2LDIwOS45MzYsNDEyLjQxNiwxNTEuMTM2LDM1Ny4wNTZ6Ii8+DQo8Zz4NCjwvZz4NCjxnPg0KPC9nPg0KPGc+DQo8L2c+DQo8Zz4NCjwvZz4NCjxnPg0KPC9nPg0KPGc+DQo8L2c+DQo8Zz4NCjwvZz4NCjxnPg0KPC9nPg0KPGc+DQo8L2c+DQo8Zz4NCjwvZz4NCjxnPg0KPC9nPg0KPGc+DQo8L2c+DQo8Zz4NCjwvZz4NCjxnPg0KPC9nPg0KPGc+DQo8L2c+DQo8L3N2Zz4NCg==, no_logo_background = True, logo_as_background = False, logo_size_percent = 90, size = 10
Multi-Color Configuration use_multiple_colors = True, foreground_color = #2d132c, multicolor_2 = #801336, multicolor_3 = #c72c41, multicolor_4 = #ee4540, size = 10
Authorizations:
HTTPBearer
path Parameters
code
required
string (Code)

Code that identifies a QR code. Its usually the slug of the QR code that you either provided during QR code creation or that got automatically assigned to if not provided by you. In case of a GS1 QR code its a random hash value. - example: easter-promotion-2

Request Body schema: application/json
Any of
Logo Data (string) or Logo Data (null) (Logo Data)

Base64 Data URI of the logo (e.g., data:image/svg+xml;base64,...).

Logo Size Percent (integer) or Logo Size Percent (null) (Logo Size Percent)
Logo As Background (boolean) or Logo As Background (null) (Logo As Background)

Use logo as background

No Logo Background (boolean) or No Logo Background (null) (No Logo Background)

Disable logo background

QRCodePattern (string) or null

Pattern name for QR code. Choose from the list of possible values.

QRCodeMarker (string) or null

Outer marker style (maps to legacy 'marker'). Choose from the list of possible values.

QRCodeMarkerIn (string) or null

Inner marker style. Choose from the list of possible values.

Marker Out Color (string) or Marker Out Color (null) (Marker Out Color)

Outer marker color (hex)

Marker In Color (string) or Marker In Color (null) (Marker In Color)

Inner marker color (hex)

Marker Out Color Cmyk (string) or Marker Out Color Cmyk (null) (Marker Out Color Cmyk)

Outer marker color (CMYK)

Marker In Color Cmyk (string) or Marker In Color Cmyk (null) (Marker In Color Cmyk)

Inner marker color (CMYK)

Enable Gradient (boolean) or Enable Gradient (null) (Enable Gradient)

Enable gradient

Use Radial Gradient (boolean) or Use Radial Gradient (null) (Use Radial Gradient)

Use radial gradient

Gradient Color (string) or Gradient Color (null) (Gradient Color)

Gradient color (hex)

Gradient Color Cmyk (string) or Gradient Color Cmyk (null) (Gradient Color Cmyk)

Gradient color (CMYK)

Use Markers Color (boolean) or Use Markers Color (null) (Use Markers Color)

Use markers color mode

Invert Qr Colors (boolean) or Invert Qr Colors (null) (Invert Qr Colors)

Invert QR colors

Enable Supersafe (boolean) or Enable Supersafe (null) (Enable Supersafe)

Enable supersafe rendering

Show Eancode Text (boolean) or Show Eancode Text (null) (Show Eancode Text)

Show EAN code text

Include Eancode Image (boolean) or Include Eancode Image (null) (Include Eancode Image)

Include EAN as image

Eancode Font Size (integer) or Eancode Font Size (null) (Eancode Font Size)

EAN font size

Use Different Marker Colors (boolean) or Use Different Marker Colors (null) (Use Different Marker Colors)

Use different colors for markers

Marker Top Right Outline (string) or Marker Top Right Outline (null) (Marker Top Right Outline)
Marker Top Right Center (string) or Marker Top Right Center (null) (Marker Top Right Center)
Marker Bottom Left Outline (string) or Marker Bottom Left Outline (null) (Marker Bottom Left Outline)
Marker Bottom Left Center (string) or Marker Bottom Left Center (null) (Marker Bottom Left Center)
Outer Frame (string) or Outer Frame (null) (Outer Frame)

Outer frame template id/name

Custom Frame Color (string) or Custom Frame Color (null) (Custom Frame Color)

Custom frame color (hex)

Frame Color (string) or Frame Color (null) (Frame Color)

Frame color (hex)

Frame Color Cmyk (string) or Frame Color Cmyk (null) (Frame Color Cmyk)

Frame color (CMYK)

Frame Label (string) or Frame Label (null) (Frame Label)

Frame label text

QRCodeLabelFont (string) or null

Label font name. Choose from the list of possible values.

Label Text Size (string) or Label Text Size (null) (Label Text Size)
Use Custom Label Text Color (boolean) or Use Custom Label Text Color (null) (Use Custom Label Text Color)
Label Text Color (string) or Label Text Color (null) (Label Text Color)
Label Text Color Cmyk (string) or Label Text Color Cmyk (null) (Label Text Color Cmyk)
Transparent Code (boolean) or Transparent Code (null) (Transparent Code)

Use transparent code mode

Background Image (string) or Background Image (null) (Background Image)

Background image id

Transparent Background (boolean) or Transparent Background (null) (Transparent Background)

Set background transparent (legacy 'transparent')

Background Color (string) or Background Color (null) (Background Color)

Background color (hex)

Foreground Color (string) or Foreground Color (null) (Foreground Color)

Foreground color (hex)

Background Color Cmyk (string) or Background Color Cmyk (null) (Background Color Cmyk)
Foreground Color Cmyk (string) or Foreground Color Cmyk (null) (Foreground Color Cmyk)
ErrorCorrectionLevel (string) or null

The error correction level (L-smallest, M-medium, Q-high, H-best). Choose from the list of possible values.

Size (integer) or Size (null) (Size)

Module size (4-32)

Use Multiple Colors (boolean) or Use Multiple Colors (null) (Use Multiple Colors)
Multicolor 1 (string) or Multicolor 1 (null) (Multicolor 1)
Multicolor 2 (string) or Multicolor 2 (null) (Multicolor 2)
Multicolor 3 (string) or Multicolor 3 (null) (Multicolor 3)
Multicolor 4 (string) or Multicolor 4 (null) (Multicolor 4)
Multicolor 1 Cmyk (string) or Multicolor 1 Cmyk (null) (Multicolor 1 Cmyk)
Multicolor 2 Cmyk (string) or Multicolor 2 Cmyk (null) (Multicolor 2 Cmyk)
Multicolor 3 Cmyk (string) or Multicolor 3 Cmyk (null) (Multicolor 3 Cmyk)
Multicolor 4 Cmyk (string) or Multicolor 4 Cmyk (null) (Multicolor 4 Cmyk)
Logo Colors Cmyk (string) or Logo Colors Cmyk (null) (Logo Colors Cmyk)
property name*
additional property
any

Responses

Request samples

Content type
application/json
Example

A basic customization with solid background/foreground colors, specific patterns, and custom marker colors.

{
  • "pattern": "DIAMOND",
  • "marker": "CIRCLE",
  • "marker_in": "CROSS",
  • "marker_out_color": "#7FE1FF",
  • "marker_in_color": "#FFCACA",
  • "background_color": "#fbff92",
  • "foreground_color": "#0B1974",
  • "error_correction_level": "M",
  • "size": 10
}

Response samples

Content type
application/json
null

Design a Custom QR Code for Static Content

Design a static QR code without an existing QR code record by sending a target_url or content value, plus optional styling parameters. The rendered SVG is returned as a file response.

Attention: this is a static QR code without analytics and the content cannot be changed later. If you want analytics and the possibility to change the target url later, please use the endpoint /qrcodes/{code}/design and provide an existing QR code code.

You find some common examples below:

Use Case Values
Basic Colored Customization target_url = https://test.de, pattern = DIAMOND, marker = CIRCLE, marker_in = CROSS, marker_out_color = #7FE1FF, marker_in_color = #FFCACA, background_color = #fbff92, foreground_color = #0B1974, error_correction_level = M, size = 10
Gradient Application target_url = https://test.de, pattern = DEFAULT, enable_gradient = True, use_radial_gradient = True, foreground_color = #000000, gradient_color = #ff0000, background_color = #ffffff, transparent_background = False, size = 12
EAN / Barcode Display target_url = https://test.de, pattern = SQUARE-CIRCLE, show_eancode_text = True, include_eancode_image = True, eancode_font_size = 14, foreground_color = #333333, size = 10
Outer Frame with Label target_url = https://test.de, outer_frame = SIMPLE-BOTTOM, frame_label = SCAN ME, label_font = UBUNTU-BOLD, frame_color = #4A90E2, label_text_color = #FFFFFF, custom_frame_color = #FF0000, use_custom_label_text_color = True, transparent_background = True, size = 10
Multi-colored Markers target_url = https://test.de, use_different_marker_colors = True, use_markers_color = True, marker_top_right_outline = #ff0000, marker_top_right_center = #800000, marker_bottom_left_outline = #0000ff, marker_bottom_left_center = #000080, marker_in_color = #00ff00, marker_out_color = #008000, size = 10
Logo Integration target_url = https://test.de, logo_data = data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iaXNvLTg4NTktMSI/Pg0KPCEtLSBHZW5lcmF0b3I6IEFkb2JlIElsbHVzdHJhdG9yIDE5LjAuMCwgU1ZHIEV4cG9ydCBQbHVnLUluIC4gU1ZHIFZlcnNpb246IDYuMDAgQnVpbGQgMCkgIC0tPg0KPHN2ZyB2ZXJzaW9uPSIxLjEiIGlkPSJDYXBhXzEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4Ig0KCSB2aWV3Qm94PSIwIDAgNTEyIDUxMiIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAgNTEyIDUxMjsiIHhtbDpzcGFjZT0icHJlc2VydmUiPg0KPGNpcmNsZSBzdHlsZT0iZmlsbDojRkZEOTNCOyIgY3g9IjI1NiIgY3k9IjI1NiIgcj0iMjU2Ii8+DQo8cGF0aCBzdHlsZT0iZmlsbDojRjRDNTM0OyIgZD0iTTUxMiwyNTZjMCwxNDEuNDQtMTE0LjY0LDI1Ni0yNTYsMjU2Yy04MC40OCwwLTE1Mi4zMi0zNy4xMi0xOTkuMjgtOTUuMjgNCgljNDMuOTIsMzUuNTIsOTkuODQsNTYuNzIsMTYwLjcyLDU2LjcyYzE0MS4zNiwwLDI1Ni0xMTQuNTYsMjU2LTI1NmMwLTYwLjg4LTIxLjItMTE2LjgtNTYuNzItMTYwLjcyDQoJQzQ3NC44LDEwMy42OCw1MTIsMTc1LjUyLDUxMiwyNTZ6Ii8+DQo8Y2lyY2xlIHN0eWxlPSJmaWxsOiMzRTQzNDc7IiBjeD0iMzUwLjE3NiIgY3k9IjIyNS42IiByPSI0MC4xNzYiLz4NCjxlbGxpcHNlIHRyYW5zZm9ybT0ibWF0cml4KC0wLjkxNDEgLTAuNDA1NCAwLjQwNTQgLTAuOTE0MSA2MDcuODQxMSA1NDQuMzE1MykiIHN0eWxlPSJmaWxsOiM1QTVGNjM7IiBjeD0iMzYxLjU2NCIgY3k9IjIwNy43ODciIHJ4PSIxMi4xNiIgcnk9IjcuODcyIi8+DQo8Y2lyY2xlIHN0eWxlPSJmaWxsOiMzRTQzNDc7IiBjeD0iMTYxLjgyNCIgY3k9IjIyNS42IiByPSI0MC4xNzYiLz4NCjxlbGxpcHNlIHRyYW5zZm9ybT0ibWF0cml4KC0wLjkxNDEgLTAuNDA1NCAwLjQwNTQgLTAuOTE0MSAyNDcuMzAwNCA0NjcuOTQ1NykiIHN0eWxlPSJmaWxsOiM1QTVGNjM7IiBjeD0iMTczLjIwNiIgY3k9IjIwNy43ODQiIHJ4PSIxMi4xNiIgcnk9IjcuODcyIi8+DQo8cGF0aCBzdHlsZT0iZmlsbDojM0U0MzQ3OyIgZD0iTTE1MS4xMzYsMzU3LjA1NmMtNC44MzItNC41NDQtNS4wNTYtMTIuMTQ0LTAuNTEyLTE2Ljk2YzQuNTQ0LTQuODE2LDEyLjEyOC01LjA1NiwxNi45Ni0wLjUxMg0KCWM0OS41ODQsNDYuNjcyLDEyNy4yNDgsNDYuNjcyLDE3Ni44MzIsMGM0LjgzMi00LjU0NCwxMi40MTYtNC4zMDQsMTYuOTYsMC41MTJjNC41NDQsNC44MzIsNC4zMiwxMi40MTYtMC41MTIsMTYuOTYNCglDMzAyLjA2NCw0MTIuNDE2LDIwOS45MzYsNDEyLjQxNiwxNTEuMTM2LDM1Ny4wNTZ6Ii8+DQo8Zz4NCjwvZz4NCjxnPg0KPC9nPg0KPGc+DQo8L2c+DQo8Zz4NCjwvZz4NCjxnPg0KPC9nPg0KPGc+DQo8L2c+DQo8Zz4NCjwvZz4NCjxnPg0KPC9nPg0KPGc+DQo8L2c+DQo8Zz4NCjwvZz4NCjxnPg0KPC9nPg0KPGc+DQo8L2c+DQo8Zz4NCjwvZz4NCjxnPg0KPC9nPg0KPGc+DQo8L2c+DQo8L3N2Zz4NCg==, no_logo_background = True, logo_as_background = False, logo_size_percent = 90, size = 10
Multi-Color Configuration target_url = https://test.de, use_multiple_colors = True, foreground_color = #2d132c, multicolor_2 = #801336, multicolor_3 = #c72c41, multicolor_4 = #ee4540, size = 10
Authorizations:
HTTPBearer
Request Body schema: application/json
Any of
Logo Data (string) or Logo Data (null) (Logo Data)

Base64 Data URI of the logo (e.g., data:image/svg+xml;base64,...).

Logo Size Percent (integer) or Logo Size Percent (null) (Logo Size Percent)
Logo As Background (boolean) or Logo As Background (null) (Logo As Background)

Use logo as background

No Logo Background (boolean) or No Logo Background (null) (No Logo Background)

Disable logo background

QRCodePattern (string) or null

Pattern name for QR code. Choose from the list of possible values.

QRCodeMarker (string) or null

Outer marker style (maps to legacy 'marker'). Choose from the list of possible values.

QRCodeMarkerIn (string) or null

Inner marker style. Choose from the list of possible values.

Marker Out Color (string) or Marker Out Color (null) (Marker Out Color)

Outer marker color (hex)

Marker In Color (string) or Marker In Color (null) (Marker In Color)

Inner marker color (hex)

Marker Out Color Cmyk (string) or Marker Out Color Cmyk (null) (Marker Out Color Cmyk)

Outer marker color (CMYK)

Marker In Color Cmyk (string) or Marker In Color Cmyk (null) (Marker In Color Cmyk)

Inner marker color (CMYK)

Enable Gradient (boolean) or Enable Gradient (null) (Enable Gradient)

Enable gradient

Use Radial Gradient (boolean) or Use Radial Gradient (null) (Use Radial Gradient)

Use radial gradient

Gradient Color (string) or Gradient Color (null) (Gradient Color)

Gradient color (hex)

Gradient Color Cmyk (string) or Gradient Color Cmyk (null) (Gradient Color Cmyk)

Gradient color (CMYK)

Use Markers Color (boolean) or Use Markers Color (null) (Use Markers Color)

Use markers color mode

Invert Qr Colors (boolean) or Invert Qr Colors (null) (Invert Qr Colors)

Invert QR colors

Enable Supersafe (boolean) or Enable Supersafe (null) (Enable Supersafe)

Enable supersafe rendering

Show Eancode Text (boolean) or Show Eancode Text (null) (Show Eancode Text)

Show EAN code text

Include Eancode Image (boolean) or Include Eancode Image (null) (Include Eancode Image)

Include EAN as image

Eancode Font Size (integer) or Eancode Font Size (null) (Eancode Font Size)

EAN font size

Use Different Marker Colors (boolean) or Use Different Marker Colors (null) (Use Different Marker Colors)

Use different colors for markers

Marker Top Right Outline (string) or Marker Top Right Outline (null) (Marker Top Right Outline)
Marker Top Right Center (string) or Marker Top Right Center (null) (Marker Top Right Center)
Marker Bottom Left Outline (string) or Marker Bottom Left Outline (null) (Marker Bottom Left Outline)
Marker Bottom Left Center (string) or Marker Bottom Left Center (null) (Marker Bottom Left Center)
Outer Frame (string) or Outer Frame (null) (Outer Frame)

Outer frame template id/name

Custom Frame Color (string) or Custom Frame Color (null) (Custom Frame Color)

Custom frame color (hex)

Frame Color (string) or Frame Color (null) (Frame Color)

Frame color (hex)

Frame Color Cmyk (string) or Frame Color Cmyk (null) (Frame Color Cmyk)

Frame color (CMYK)

Frame Label (string) or Frame Label (null) (Frame Label)

Frame label text

QRCodeLabelFont (string) or null

Label font name. Choose from the list of possible values.

Label Text Size (string) or Label Text Size (null) (Label Text Size)
Use Custom Label Text Color (boolean) or Use Custom Label Text Color (null) (Use Custom Label Text Color)
Label Text Color (string) or Label Text Color (null) (Label Text Color)
Label Text Color Cmyk (string) or Label Text Color Cmyk (null) (Label Text Color Cmyk)
Transparent Code (boolean) or Transparent Code (null) (Transparent Code)

Use transparent code mode

Background Image (string) or Background Image (null) (Background Image)

Background image id

Transparent Background (boolean) or Transparent Background (null) (Transparent Background)

Set background transparent (legacy 'transparent')

Background Color (string) or Background Color (null) (Background Color)

Background color (hex)

Foreground Color (string) or Foreground Color (null) (Foreground Color)

Foreground color (hex)

Background Color Cmyk (string) or Background Color Cmyk (null) (Background Color Cmyk)
Foreground Color Cmyk (string) or Foreground Color Cmyk (null) (Foreground Color Cmyk)
ErrorCorrectionLevel (string) or null

The error correction level (L-smallest, M-medium, Q-high, H-best). Choose from the list of possible values.

Size (integer) or Size (null) (Size)

Module size (4-32)

Use Multiple Colors (boolean) or Use Multiple Colors (null) (Use Multiple Colors)
Multicolor 1 (string) or Multicolor 1 (null) (Multicolor 1)
Multicolor 2 (string) or Multicolor 2 (null) (Multicolor 2)
Multicolor 3 (string) or Multicolor 3 (null) (Multicolor 3)
Multicolor 4 (string) or Multicolor 4 (null) (Multicolor 4)
Multicolor 1 Cmyk (string) or Multicolor 1 Cmyk (null) (Multicolor 1 Cmyk)
Multicolor 2 Cmyk (string) or Multicolor 2 Cmyk (null) (Multicolor 2 Cmyk)
Multicolor 3 Cmyk (string) or Multicolor 3 Cmyk (null) (Multicolor 3 Cmyk)
Multicolor 4 Cmyk (string) or Multicolor 4 Cmyk (null) (Multicolor 4 Cmyk)
Logo Colors Cmyk (string) or Logo Colors Cmyk (null) (Logo Colors Cmyk)
Target Url (string) or Target Url (null) (Target Url)

Target URL to encode in the generated QR code.

Content (string) or Content (null) (Content)

Plain text content to encode in the generated QR code.

property name*
additional property
any

Responses

Request samples

Content type
application/json
Example

A basic customization with solid background/foreground colors, specific patterns, and custom marker colors.

{
  • "target_url": "https://test.de",
  • "pattern": "DIAMOND",
  • "marker": "CIRCLE",
  • "marker_in": "CROSS",
  • "marker_out_color": "#7FE1FF",
  • "marker_in_color": "#FFCACA",
  • "background_color": "#fbff92",
  • "foreground_color": "#0B1974",
  • "error_correction_level": "M",
  • "size": 10
}

Response samples

Content type
application/json
null

Get the statistics of a QR Code

Get the QR Code statistics identified by its code.

Authorizations:
HTTPBearer
path Parameters
code
required
string (Code)

Code that identifies a QR code. Its usually the slug of the QR code that you either provided during QR code creation or that got automatically assigned to if not provided by you. In case of a GS1 QR code its a random hash value. - example: easter-promotion-2

query Parameters
Country Code (string) or Country Code (null) (Country Code)

Filter by country code (exact match) - example: DE

Scan Date From (string) or Scan Date From (null) (Scan Date From)

Filter scans of QR code from this date (inclusive) - example: 2025-09-27

Scan Date To (string) or Scan Date To (null) (Scan Date To)

Filter scans of QR code up to this date (inclusive) - example: 2025-09-30

DateRelativeRange (string) or Scan Date Relative Range (null) (Scan Date Relative Range)

Filter scans of QR code via a relative day range selector

SortOrder (string) or Sort Order (null) (Sort Order)

Sort the result by scan date ascending or descending

page
integer (Page) >= 1
Default: 1
size
integer (Size) [ 1 .. 100 ]
Default: 50

Responses

Request samples

curl \
  -X GET \
  --max-time 10 \
  -H 'Authorization: Bearer public:white.qrd.by:730ec:e8518645ea7939ef6dd9b3fe66180d08' \
  'https://api.qrplanet.com/api/v2/qrcodes/easter-promotion-2/stats?scan_date_from=2025-01-01'

Response samples

Content type
application/json
{
  • "summary": {
    },
  • "items": [
    ],
  • "page": 0,
  • "size": 0,
  • "total": 0,
  • "pages": 0
}

Resets the statistics of a QR Code

Resets the QR Code statistics identified by its code.

Authorizations:
HTTPBearer
path Parameters
code
required
string (Code)

Code that identifies a QR code. Its usually the slug of the QR code that you either provided during QR code creation or that got automatically assigned to if not provided by you. In case of a GS1 QR code its a random hash value. - example: easter-promotion-2

Responses

Request samples

curl \
  -X POST \
  --max-time 10 \
  -H 'Authorization: Bearer secret:white.qrd.by:730ec:61f2027768be9ae6adb52da232944e38' \
  'https://api.qrplanet.com/api/v2/qrcodes/easter-promotion-2/stats/reset'

Response samples

Content type
application/json
{
  • "detail": "Invalid authentication token"
}

Get the tags of a QR Code

Get the tags that have been assigned to a QR code.

Authorizations:
HTTPBearer
path Parameters
code
required
string (Code)

Code that identifies a QR code. Its usually the slug of the QR code that you either provided during QR code creation or that got automatically assigned to if not provided by you. In case of a GS1 QR code its a random hash value. - example: easter-promotion-2

Responses

Request samples

curl \
  -X GET \
  --max-time 10 \
  -H 'Authorization: Bearer secret:white.qrd.by:730ec:61f2027768be9ae6adb52da232944e38' \
  'https://api.qrplanet.com/api/v2/qrcodes/easter-promotion-2/tags'

Response samples

Content type
application/json
{
  • "code": "easter-promotion-2",
  • "tags": [
    ]
}

Change the tags of a QR Code

Change the tags of a QR Code identified by its code.

Authorizations:
HTTPBearer
path Parameters
code
required
string (Code)

Code that identifies a QR code. Its usually the slug of the QR code that you either provided during QR code creation or that got automatically assigned to if not provided by you. In case of a GS1 QR code its a random hash value. - example: easter-promotion-2

Request Body schema: application/json
required
tags_to_add
Array of strings (Tags To Add)

Tags to add to the QR code.

tags_to_remove
Array of strings (Tags To Remove)

Tags to remove from the QR code.

Responses

Request samples

Content type
application/json
{
  • "tags_to_add": [
    ],
  • "tags_to_remove": [
    ]
}

Response samples

Content type
application/json
{
  • "code": "easter-promotion-2",
  • "tags": [
    ]
}

Remove all tags of a QR Code

Remove all the tags of a QR Code identified by its code.

Authorizations:
HTTPBearer
path Parameters
code
required
string (Code)

Code that identifies a QR code. Its usually the slug of the QR code that you either provided during QR code creation or that got automatically assigned to if not provided by you. In case of a GS1 QR code its a random hash value. - example: easter-promotion-2

Responses

Request samples

curl \
  -X DELETE \
  --max-time 10 \
  -H 'Authorization: Bearer secret:white.qrd.by:730ec:61f2027768be9ae6adb52da232944e38' \
  'https://api.qrplanet.com/api/v2/qrcodes/easter-promotion-2/tags'

Response samples

Content type
application/json
{
  • "detail": "Invalid authentication token"
}

Add a country-specific target to a QR Code

Add a country specific target URL to a QR code identified by its code. If the QR code gets scanned in a specific country then the user gets forwarded to this target url.

Authorizations:
HTTPBearer
path Parameters
code
required
string (Code)

Code that identifies a QR code. Its usually the slug of the QR code that you either provided during QR code creation or that got automatically assigned to if not provided by you. In case of a GS1 QR code its a random hash value. - example: easter-promotion-2

Request Body schema: application/json
required
country_code
string (Country Code)

2-letter country code

target_url
string (Target Url)

The target url the dynamic QR code redirects to.

Responses

Request samples

Content type
application/json
{}

Response samples

Content type
application/json
{
  • "code": "easter-promotion-2",
  • "country_code": "IT",
  • "target_url": "https://test.de"
}

Remove a country-specific target of a QR Code

Remove a country specific target URL to a QR code identified by its code.

Authorizations:
HTTPBearer
path Parameters
code
required
string (Code)

Code that identifies a QR code. Its usually the slug of the QR code that you either provided during QR code creation or that got automatically assigned to if not provided by you. In case of a GS1 QR code its a random hash value. - example: easter-promotion-2

country_code
required
string (Country Code)

2-letter country code - example: IT

Responses

Request samples

curl \
  -X DELETE \
  --max-time 10 \
  -H 'Authorization: Bearer secret:white.qrd.by:730ec:61f2027768be9ae6adb52da232944e38' \
  'https://api.qrplanet.com/api/v2/qrcodes/easter-promotion-2/countries/IT'

Response samples

Content type
application/json
{
  • "detail": "Invalid authentication token"
}

Add a language-specific target to a QR Code

Add a language-specific target URL to a QR code identified by its code. If the QR code gets scanned with a device in a certain language then the user gets forwarded to this target url.

Authorizations:
HTTPBearer
path Parameters
code
required
string (Code)

Code that identifies a QR code. Its usually the slug of the QR code that you either provided during QR code creation or that got automatically assigned to if not provided by you. In case of a GS1 QR code its a random hash value. - example: easter-promotion-2

Request Body schema: application/json
required
language_code
string (Language Code)

2-letter language code

target_url
string (Target Url)

The target url the dynamic QR code redirects to.

Responses

Request samples

Content type
application/json
{}

Response samples

Content type
application/json
{
  • "code": "easter-promotion-2",
  • "language_code": "IT",
  • "target_url": "https://test.de"
}

Remove a language-specific target of a QR Code

Remove a language-specific target URL to a QR code identified by its code.

Authorizations:
HTTPBearer
path Parameters
code
required
string (Code)

Code that identifies a QR code. Its usually the slug of the QR code that you either provided during QR code creation or that got automatically assigned to if not provided by you. In case of a GS1 QR code its a random hash value. - example: easter-promotion-2

language_code
required
string (Language Code)

2-letter language code - example: IT

Responses

Request samples

curl \
  -X DELETE \
  --max-time 10 \
  -H 'Authorization: Bearer secret:white.qrd.by:730ec:61f2027768be9ae6adb52da232944e38' \
  'https://api.qrplanet.com/api/v2/qrcodes/easter-promotion-2/languages/IT'

Response samples

Content type
application/json
{
  • "detail": "Invalid authentication token"
}

Add a geo-location-specific target to a QR Code

Add a geo-location-specific target URL to a QR code identified by its code. If the QR code gets scanned with that specific location then the user gets forwarded to this target url. If you set the MULTI_GEO or MULTI_GEO_CLOSEST type when creating the Geofenced QR Code with the API, you can add geofence rules.

Authorizations:
HTTPBearer
path Parameters
code
required
string (Code)

Code that identifies a QR code. Its usually the slug of the QR code that you either provided during QR code creation or that got automatically assigned to if not provided by you. In case of a GS1 QR code its a random hash value. - example: easter-promotion-2

Request Body schema: application/json
required
Lat (number) or Lat (null) (Lat)

Latitude coordinate

Lng (number) or Lng (null) (Lng)

Longitude coordinate

Radius (integer) or Radius (null) (Radius)

the maximal allowed radius (in m) around the lng/lat position the user is allowed to be. Assume a radius of at least 100m to account for any measurement inaccuracies.

Address (string) or Address (null) (Address)

Address for the geo-fenced target. This is optional additional information you can provide. From a technical standpoint only the lat and lng are being used.

target_url
string (Target Url)

The target url the dynamic QR code redirects to.

description
string (Description)

Description you want to add.

Responses

Request samples

Content type
application/json
{
  • "lat": 40.758,
  • "lng": -73.9855,
  • "radius": 250,
  • "address": "Times Square, New York, NY 10036, USA",
  • "target_url": "https://test.de",
  • "description": "My description"
}

Response samples

Content type
application/json
{
  • "code": "easter-promotion-2",
  • "id": "4711",
  • "lat": 40.758,
  • "lng": -73.9855,
  • "radius": 250,
  • "address": "Times Square, New York, NY 10036, USA",
  • "target_url": "https://test.de",
  • "description": "My description"
}

Remove a geo-location-specific target of a QR Code

Remove a geofence (lat, lng, radius)-specific target URL to a QR code identified by its code.

Authorizations:
HTTPBearer
path Parameters
code
required
string (Code)

Code that identifies a QR code. Its usually the slug of the QR code that you either provided during QR code creation or that got automatically assigned to if not provided by you. In case of a GS1 QR code its a random hash value. - example: easter-promotion-2

geofence_id
required
string (Geofence Id)

Geofence target rule ID.

Responses

Request samples

curl \
  -X DELETE \
  --max-time 10 \
  -H 'Authorization: Bearer secret:white.qrd.by:730ec:61f2027768be9ae6adb52da232944e38' \
  'https://api.qrplanet.com/api/v2/qrcodes/easter-promotion-2/geofences/xyz123'

Response samples

Content type
application/json
{
  • "detail": "Invalid authentication token"
}

Add a geo-region-specific target to a QR Code

Add a geo-region-specific target URL to a QR code identified by its code. If the QR code gets scanned with that specific location then the user gets forwarded to this target url. If you set the MULTI_REGION type when creating the Geofenced QR Code with the API, you can add rules to match against regions as well.

Authorizations:
HTTPBearer
path Parameters
code
required
string (Code)

Code that identifies a QR code. Its usually the slug of the QR code that you either provided during QR code creation or that got automatically assigned to if not provided by you. In case of a GS1 QR code its a random hash value. - example: easter-promotion-2

Request Body schema: application/json
required
region
string (Region)

Region that triggers a redirect to a specific target URL.

target_url
string (Target Url)

The target url the dynamic QR code redirects to.

Responses

Request samples

Content type
application/json
{}

Response samples

Content type
application/json
{
  • "code": "easter-promotion-2",
  • "id": "4711",
  • "region": "Texas",
  • "target_url": "https://test.de"
}

Remove a geo-region-specific target of a QR Code

Remove a georegion-specific target URL to a QR code identified by its code.

Authorizations:
HTTPBearer
path Parameters
code
required
string (Code)

Code that identifies a QR code. Its usually the slug of the QR code that you either provided during QR code creation or that got automatically assigned to if not provided by you. In case of a GS1 QR code its a random hash value. - example: easter-promotion-2

georegion_id
required
string (Georegion Id)

Geo Region target rule ID.

Responses

Request samples

curl \
  -X DELETE \
  --max-time 10 \
  -H 'Authorization: Bearer secret:white.qrd.by:730ec:61f2027768be9ae6adb52da232944e38' \
  'https://api.qrplanet.com/api/v2/qrcodes/easter-promotion-2/georegion/4711'

Response samples

Content type
application/json
{
  • "detail": "Invalid authentication token"
}

Get the leads of a landingpage.

Get the ledas of a landingpage

Authorizations:
HTTPBearer
path Parameters
code
required
string (Code)

Code that identifies a QR code. Its usually the slug of the QR code that you either provided during QR code creation or that got automatically assigned to if not provided by you. In case of a GS1 QR code its a random hash value. - example: easter-promotion-2

query Parameters
Referrer (string) or Referrer (null) (Referrer)

The referrer you want to filter by - example: https://yourdomain.com/your-landingpage

LeadExportFormat (string) or Format (null) (Format)
Default: "JSON"

The format the lead list should have. The pagination only applies to JSON. For CSV and XLSX the whole list is returned. - example: JSON

Csv Delimiter (string) or Csv Delimiter (null) (Csv Delimiter)
Default: ","

In case of a CSV export (format=CSV): the csv delimiter between the values. Usually the delimiter is , (US), ; (Europe), | (machine 2 machine) or TAB for tabulator. - example: ;

DecimalSeparator (string) or Csv Decimal Separator (null) (Csv Decimal Separator)
Default: "."

In case of a CSV export (format=CSV): decimal separator for numeric values. Use . (default, US, API/machine-friendly) or , (common in Europe). - example: ,

page
integer (Page) >= 1
Default: 1

Page number

size
integer (Size) [ 1 .. 100 ]
Default: 50

Page size

Responses

Request samples

curl \
  -X GET \
  --max-time 10 \
  -H 'Authorization: Bearer secret:white.qrd.by:730ec:61f2027768be9ae6adb52da232944e38' \
  'https://api.qrplanet.com/api/v2/qrcodes/easter-promotion-2/leads?format=JSON&page=1'

Response samples

Content type
application/json
{
  • "items": [],
  • "total": 0,
  • "page": 1,
  • "size": 1,
  • "pages": 0
}

Change the type of a QR Code

Change the type and target url of the QR Code identified by its code.

Authorizations:
HTTPBearer
path Parameters
code
required
string (Code)

Code that identifies a QR code. Its usually the slug of the QR code that you either provided during QR code creation or that got automatically assigned to if not provided by you. In case of a GS1 QR code its a random hash value. - example: easter-promotion-2

Request Body schema: application/json
required
type
string (Type)
Default: "URL"
Enum: "URL" "BUSINESS_CARD" "PRODUCT" "OPENIMMO" "COUPON" "PLAIN" "POSTER" "SYNC" "LEAD" "SOCIAL" "TRACING"

This is the QR Code type (default is URL). Allowed values: ['URL', 'BUSINESS_CARD', 'PRODUCT', 'OPENIMMO', 'COUPON', 'PLAIN', 'POSTER', 'SYNC', 'LEAD', 'SOCIAL', 'TRACING']

target_url
string (Target Url)

The target url the dynamic QR code redirects to.

Responses

Request samples

Content type
application/json
{}

Response samples

Content type
application/json
{}

Designer QR Codes

In this area you find all the API endpoints to build and generate your own custom Designer QR code designs.

  • Design a QR code: POST /qrcodes/{code}/design
  • Optional styling inputs include pattern/marker types, solid and gradient colors, frame/label options, and logo options
  • Alterntively you can use ready-to-use designer QR code templates: POST /qrcodes/{code}/download-image/designer with optional designer_template_id for template-based designs

Design a Custom Designer QR Code

Design a custom Designer QR Code by sending optional styling parameters and receiving the rendered output.

Highlights:

  • Pattern and marker customization (including marker-in/marker-out options)
  • Solid and gradient color controls (including radial gradients)
  • Frame and label styling (frame type/color, label text/font/size)
  • Logo controls (logo image data, logo size, logo background behavior)
  • Extra rendering options such as transparency, negative colors, and supersafe mode

Use the examples provided to quickly get started with different design possibilities and see how the parameters affect the QR code's appearance. You can also experiment by mixing and matching parameters to create a unique design that fits your brand or campaign!

You find some common examples below:

Use Case Values
Basic Colored Customization pattern = DIAMOND, marker = CIRCLE, marker_in = CROSS, marker_out_color = #7FE1FF, marker_in_color = #FFCACA, background_color = #fbff92, foreground_color = #0B1974, error_correction_level = M, size = 10
Gradient Application pattern = DEFAULT, enable_gradient = True, use_radial_gradient = True, foreground_color = #000000, gradient_color = #ff0000, background_color = #ffffff, transparent_background = False, size = 12
EAN / Barcode Display pattern = SQUARE-CIRCLE, show_eancode_text = True, include_eancode_image = True, eancode_font_size = 14, foreground_color = #333333, size = 10
Outer Frame with Label outer_frame = SIMPLE-BOTTOM, frame_label = SCAN ME, label_font = UBUNTU-BOLD, frame_color = #4A90E2, label_text_color = #FFFFFF, custom_frame_color = #FF0000, use_custom_label_text_color = True, transparent_background = True, size = 10
Multi-colored Markers use_different_marker_colors = True, use_markers_color = True, marker_top_right_outline = #ff0000, marker_top_right_center = #800000, marker_bottom_left_outline = #0000ff, marker_bottom_left_center = #000080, marker_in_color = #00ff00, marker_out_color = #008000, size = 10
Logo Integration logo_data = data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iaXNvLTg4NTktMSI/Pg0KPCEtLSBHZW5lcmF0b3I6IEFkb2JlIElsbHVzdHJhdG9yIDE5LjAuMCwgU1ZHIEV4cG9ydCBQbHVnLUluIC4gU1ZHIFZlcnNpb246IDYuMDAgQnVpbGQgMCkgIC0tPg0KPHN2ZyB2ZXJzaW9uPSIxLjEiIGlkPSJDYXBhXzEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4Ig0KCSB2aWV3Qm94PSIwIDAgNTEyIDUxMiIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAgNTEyIDUxMjsiIHhtbDpzcGFjZT0icHJlc2VydmUiPg0KPGNpcmNsZSBzdHlsZT0iZmlsbDojRkZEOTNCOyIgY3g9IjI1NiIgY3k9IjI1NiIgcj0iMjU2Ii8+DQo8cGF0aCBzdHlsZT0iZmlsbDojRjRDNTM0OyIgZD0iTTUxMiwyNTZjMCwxNDEuNDQtMTE0LjY0LDI1Ni0yNTYsMjU2Yy04MC40OCwwLTE1Mi4zMi0zNy4xMi0xOTkuMjgtOTUuMjgNCgljNDMuOTIsMzUuNTIsOTkuODQsNTYuNzIsMTYwLjcyLDU2LjcyYzE0MS4zNiwwLDI1Ni0xMTQuNTYsMjU2LTI1NmMwLTYwLjg4LTIxLjItMTE2LjgtNTYuNzItMTYwLjcyDQoJQzQ3NC44LDEwMy42OCw1MTIsMTc1LjUyLDUxMiwyNTZ6Ii8+DQo8Y2lyY2xlIHN0eWxlPSJmaWxsOiMzRTQzNDc7IiBjeD0iMzUwLjE3NiIgY3k9IjIyNS42IiByPSI0MC4xNzYiLz4NCjxlbGxpcHNlIHRyYW5zZm9ybT0ibWF0cml4KC0wLjkxNDEgLTAuNDA1NCAwLjQwNTQgLTAuOTE0MSA2MDcuODQxMSA1NDQuMzE1MykiIHN0eWxlPSJmaWxsOiM1QTVGNjM7IiBjeD0iMzYxLjU2NCIgY3k9IjIwNy43ODciIHJ4PSIxMi4xNiIgcnk9IjcuODcyIi8+DQo8Y2lyY2xlIHN0eWxlPSJmaWxsOiMzRTQzNDc7IiBjeD0iMTYxLjgyNCIgY3k9IjIyNS42IiByPSI0MC4xNzYiLz4NCjxlbGxpcHNlIHRyYW5zZm9ybT0ibWF0cml4KC0wLjkxNDEgLTAuNDA1NCAwLjQwNTQgLTAuOTE0MSAyNDcuMzAwNCA0NjcuOTQ1NykiIHN0eWxlPSJmaWxsOiM1QTVGNjM7IiBjeD0iMTczLjIwNiIgY3k9IjIwNy43ODQiIHJ4PSIxMi4xNiIgcnk9IjcuODcyIi8+DQo8cGF0aCBzdHlsZT0iZmlsbDojM0U0MzQ3OyIgZD0iTTE1MS4xMzYsMzU3LjA1NmMtNC44MzItNC41NDQtNS4wNTYtMTIuMTQ0LTAuNTEyLTE2Ljk2YzQuNTQ0LTQuODE2LDEyLjEyOC01LjA1NiwxNi45Ni0wLjUxMg0KCWM0OS41ODQsNDYuNjcyLDEyNy4yNDgsNDYuNjcyLDE3Ni44MzIsMGM0LjgzMi00LjU0NCwxMi40MTYtNC4zMDQsMTYuOTYsMC41MTJjNC41NDQsNC44MzIsNC4zMiwxMi40MTYtMC41MTIsMTYuOTYNCglDMzAyLjA2NCw0MTIuNDE2LDIwOS45MzYsNDEyLjQxNiwxNTEuMTM2LDM1Ny4wNTZ6Ii8+DQo8Zz4NCjwvZz4NCjxnPg0KPC9nPg0KPGc+DQo8L2c+DQo8Zz4NCjwvZz4NCjxnPg0KPC9nPg0KPGc+DQo8L2c+DQo8Zz4NCjwvZz4NCjxnPg0KPC9nPg0KPGc+DQo8L2c+DQo8Zz4NCjwvZz4NCjxnPg0KPC9nPg0KPGc+DQo8L2c+DQo8Zz4NCjwvZz4NCjxnPg0KPC9nPg0KPGc+DQo8L2c+DQo8L3N2Zz4NCg==, no_logo_background = True, logo_as_background = False, logo_size_percent = 90, size = 10
Multi-Color Configuration use_multiple_colors = True, foreground_color = #2d132c, multicolor_2 = #801336, multicolor_3 = #c72c41, multicolor_4 = #ee4540, size = 10
Authorizations:
HTTPBearer
path Parameters
code
required
string (Code)

Code that identifies a QR code. Its usually the slug of the QR code that you either provided during QR code creation or that got automatically assigned to if not provided by you. In case of a GS1 QR code its a random hash value. - example: easter-promotion-2

Request Body schema: application/json
Any of
Logo Data (string) or Logo Data (null) (Logo Data)

Base64 Data URI of the logo (e.g., data:image/svg+xml;base64,...).

Logo Size Percent (integer) or Logo Size Percent (null) (Logo Size Percent)
Logo As Background (boolean) or Logo As Background (null) (Logo As Background)

Use logo as background

No Logo Background (boolean) or No Logo Background (null) (No Logo Background)

Disable logo background

QRCodePattern (string) or null

Pattern name for QR code. Choose from the list of possible values.

QRCodeMarker (string) or null

Outer marker style (maps to legacy 'marker'). Choose from the list of possible values.

QRCodeMarkerIn (string) or null

Inner marker style. Choose from the list of possible values.

Marker Out Color (string) or Marker Out Color (null) (Marker Out Color)

Outer marker color (hex)

Marker In Color (string) or Marker In Color (null) (Marker In Color)

Inner marker color (hex)

Marker Out Color Cmyk (string) or Marker Out Color Cmyk (null) (Marker Out Color Cmyk)

Outer marker color (CMYK)

Marker In Color Cmyk (string) or Marker In Color Cmyk (null) (Marker In Color Cmyk)

Inner marker color (CMYK)

Enable Gradient (boolean) or Enable Gradient (null) (Enable Gradient)

Enable gradient

Use Radial Gradient (boolean) or Use Radial Gradient (null) (Use Radial Gradient)

Use radial gradient

Gradient Color (string) or Gradient Color (null) (Gradient Color)

Gradient color (hex)

Gradient Color Cmyk (string) or Gradient Color Cmyk (null) (Gradient Color Cmyk)

Gradient color (CMYK)

Use Markers Color (boolean) or Use Markers Color (null) (Use Markers Color)

Use markers color mode

Invert Qr Colors (boolean) or Invert Qr Colors (null) (Invert Qr Colors)

Invert QR colors

Enable Supersafe (boolean) or Enable Supersafe (null) (Enable Supersafe)

Enable supersafe rendering

Show Eancode Text (boolean) or Show Eancode Text (null) (Show Eancode Text)

Show EAN code text

Include Eancode Image (boolean) or Include Eancode Image (null) (Include Eancode Image)

Include EAN as image

Eancode Font Size (integer) or Eancode Font Size (null) (Eancode Font Size)

EAN font size

Use Different Marker Colors (boolean) or Use Different Marker Colors (null) (Use Different Marker Colors)

Use different colors for markers

Marker Top Right Outline (string) or Marker Top Right Outline (null) (Marker Top Right Outline)
Marker Top Right Center (string) or Marker Top Right Center (null) (Marker Top Right Center)
Marker Bottom Left Outline (string) or Marker Bottom Left Outline (null) (Marker Bottom Left Outline)
Marker Bottom Left Center (string) or Marker Bottom Left Center (null) (Marker Bottom Left Center)
Outer Frame (string) or Outer Frame (null) (Outer Frame)

Outer frame template id/name

Custom Frame Color (string) or Custom Frame Color (null) (Custom Frame Color)

Custom frame color (hex)

Frame Color (string) or Frame Color (null) (Frame Color)

Frame color (hex)

Frame Color Cmyk (string) or Frame Color Cmyk (null) (Frame Color Cmyk)

Frame color (CMYK)

Frame Label (string) or Frame Label (null) (Frame Label)

Frame label text

QRCodeLabelFont (string) or null

Label font name. Choose from the list of possible values.

Label Text Size (string) or Label Text Size (null) (Label Text Size)
Use Custom Label Text Color (boolean) or Use Custom Label Text Color (null) (Use Custom Label Text Color)
Label Text Color (string) or Label Text Color (null) (Label Text Color)
Label Text Color Cmyk (string) or Label Text Color Cmyk (null) (Label Text Color Cmyk)
Transparent Code (boolean) or Transparent Code (null) (Transparent Code)

Use transparent code mode

Background Image (string) or Background Image (null) (Background Image)

Background image id

Transparent Background (boolean) or Transparent Background (null) (Transparent Background)

Set background transparent (legacy 'transparent')

Background Color (string) or Background Color (null) (Background Color)

Background color (hex)

Foreground Color (string) or Foreground Color (null) (Foreground Color)

Foreground color (hex)

Background Color Cmyk (string) or Background Color Cmyk (null) (Background Color Cmyk)
Foreground Color Cmyk (string) or Foreground Color Cmyk (null) (Foreground Color Cmyk)
ErrorCorrectionLevel (string) or null

The error correction level (L-smallest, M-medium, Q-high, H-best). Choose from the list of possible values.

Size (integer) or Size (null) (Size)

Module size (4-32)

Use Multiple Colors (boolean) or Use Multiple Colors (null) (Use Multiple Colors)
Multicolor 1 (string) or Multicolor 1 (null) (Multicolor 1)
Multicolor 2 (string) or Multicolor 2 (null) (Multicolor 2)
Multicolor 3 (string) or Multicolor 3 (null) (Multicolor 3)
Multicolor 4 (string) or Multicolor 4 (null) (Multicolor 4)
Multicolor 1 Cmyk (string) or Multicolor 1 Cmyk (null) (Multicolor 1 Cmyk)
Multicolor 2 Cmyk (string) or Multicolor 2 Cmyk (null) (Multicolor 2 Cmyk)
Multicolor 3 Cmyk (string) or Multicolor 3 Cmyk (null) (Multicolor 3 Cmyk)
Multicolor 4 Cmyk (string) or Multicolor 4 Cmyk (null) (Multicolor 4 Cmyk)
Logo Colors Cmyk (string) or Logo Colors Cmyk (null) (Logo Colors Cmyk)
property name*
additional property
any

Responses

Request samples

Content type
application/json
Example

A basic customization with solid background/foreground colors, specific patterns, and custom marker colors.

{
  • "pattern": "DIAMOND",
  • "marker": "CIRCLE",
  • "marker_in": "CROSS",
  • "marker_out_color": "#7FE1FF",
  • "marker_in_color": "#FFCACA",
  • "background_color": "#fbff92",
  • "foreground_color": "#0B1974",
  • "error_correction_level": "M",
  • "size": 10
}

Response samples

Content type
application/json
null

Design a Custom QR Code for Static Content

Design a static QR code without an existing QR code record by sending a target_url or content value, plus optional styling parameters. The rendered SVG is returned as a file response.

Attention: this is a static QR code without analytics and the content cannot be changed later. If you want analytics and the possibility to change the target url later, please use the endpoint /qrcodes/{code}/design and provide an existing QR code code.

You find some common examples below:

Use Case Values
Basic Colored Customization target_url = https://test.de, pattern = DIAMOND, marker = CIRCLE, marker_in = CROSS, marker_out_color = #7FE1FF, marker_in_color = #FFCACA, background_color = #fbff92, foreground_color = #0B1974, error_correction_level = M, size = 10
Gradient Application target_url = https://test.de, pattern = DEFAULT, enable_gradient = True, use_radial_gradient = True, foreground_color = #000000, gradient_color = #ff0000, background_color = #ffffff, transparent_background = False, size = 12
EAN / Barcode Display target_url = https://test.de, pattern = SQUARE-CIRCLE, show_eancode_text = True, include_eancode_image = True, eancode_font_size = 14, foreground_color = #333333, size = 10
Outer Frame with Label target_url = https://test.de, outer_frame = SIMPLE-BOTTOM, frame_label = SCAN ME, label_font = UBUNTU-BOLD, frame_color = #4A90E2, label_text_color = #FFFFFF, custom_frame_color = #FF0000, use_custom_label_text_color = True, transparent_background = True, size = 10
Multi-colored Markers target_url = https://test.de, use_different_marker_colors = True, use_markers_color = True, marker_top_right_outline = #ff0000, marker_top_right_center = #800000, marker_bottom_left_outline = #0000ff, marker_bottom_left_center = #000080, marker_in_color = #00ff00, marker_out_color = #008000, size = 10
Logo Integration target_url = https://test.de, logo_data = data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iaXNvLTg4NTktMSI/Pg0KPCEtLSBHZW5lcmF0b3I6IEFkb2JlIElsbHVzdHJhdG9yIDE5LjAuMCwgU1ZHIEV4cG9ydCBQbHVnLUluIC4gU1ZHIFZlcnNpb246IDYuMDAgQnVpbGQgMCkgIC0tPg0KPHN2ZyB2ZXJzaW9uPSIxLjEiIGlkPSJDYXBhXzEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4Ig0KCSB2aWV3Qm94PSIwIDAgNTEyIDUxMiIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAgNTEyIDUxMjsiIHhtbDpzcGFjZT0icHJlc2VydmUiPg0KPGNpcmNsZSBzdHlsZT0iZmlsbDojRkZEOTNCOyIgY3g9IjI1NiIgY3k9IjI1NiIgcj0iMjU2Ii8+DQo8cGF0aCBzdHlsZT0iZmlsbDojRjRDNTM0OyIgZD0iTTUxMiwyNTZjMCwxNDEuNDQtMTE0LjY0LDI1Ni0yNTYsMjU2Yy04MC40OCwwLTE1Mi4zMi0zNy4xMi0xOTkuMjgtOTUuMjgNCgljNDMuOTIsMzUuNTIsOTkuODQsNTYuNzIsMTYwLjcyLDU2LjcyYzE0MS4zNiwwLDI1Ni0xMTQuNTYsMjU2LTI1NmMwLTYwLjg4LTIxLjItMTE2LjgtNTYuNzItMTYwLjcyDQoJQzQ3NC44LDEwMy42OCw1MTIsMTc1LjUyLDUxMiwyNTZ6Ii8+DQo8Y2lyY2xlIHN0eWxlPSJmaWxsOiMzRTQzNDc7IiBjeD0iMzUwLjE3NiIgY3k9IjIyNS42IiByPSI0MC4xNzYiLz4NCjxlbGxpcHNlIHRyYW5zZm9ybT0ibWF0cml4KC0wLjkxNDEgLTAuNDA1NCAwLjQwNTQgLTAuOTE0MSA2MDcuODQxMSA1NDQuMzE1MykiIHN0eWxlPSJmaWxsOiM1QTVGNjM7IiBjeD0iMzYxLjU2NCIgY3k9IjIwNy43ODciIHJ4PSIxMi4xNiIgcnk9IjcuODcyIi8+DQo8Y2lyY2xlIHN0eWxlPSJmaWxsOiMzRTQzNDc7IiBjeD0iMTYxLjgyNCIgY3k9IjIyNS42IiByPSI0MC4xNzYiLz4NCjxlbGxpcHNlIHRyYW5zZm9ybT0ibWF0cml4KC0wLjkxNDEgLTAuNDA1NCAwLjQwNTQgLTAuOTE0MSAyNDcuMzAwNCA0NjcuOTQ1NykiIHN0eWxlPSJmaWxsOiM1QTVGNjM7IiBjeD0iMTczLjIwNiIgY3k9IjIwNy43ODQiIHJ4PSIxMi4xNiIgcnk9IjcuODcyIi8+DQo8cGF0aCBzdHlsZT0iZmlsbDojM0U0MzQ3OyIgZD0iTTE1MS4xMzYsMzU3LjA1NmMtNC44MzItNC41NDQtNS4wNTYtMTIuMTQ0LTAuNTEyLTE2Ljk2YzQuNTQ0LTQuODE2LDEyLjEyOC01LjA1NiwxNi45Ni0wLjUxMg0KCWM0OS41ODQsNDYuNjcyLDEyNy4yNDgsNDYuNjcyLDE3Ni44MzIsMGM0LjgzMi00LjU0NCwxMi40MTYtNC4zMDQsMTYuOTYsMC41MTJjNC41NDQsNC44MzIsNC4zMiwxMi40MTYtMC41MTIsMTYuOTYNCglDMzAyLjA2NCw0MTIuNDE2LDIwOS45MzYsNDEyLjQxNiwxNTEuMTM2LDM1Ny4wNTZ6Ii8+DQo8Zz4NCjwvZz4NCjxnPg0KPC9nPg0KPGc+DQo8L2c+DQo8Zz4NCjwvZz4NCjxnPg0KPC9nPg0KPGc+DQo8L2c+DQo8Zz4NCjwvZz4NCjxnPg0KPC9nPg0KPGc+DQo8L2c+DQo8Zz4NCjwvZz4NCjxnPg0KPC9nPg0KPGc+DQo8L2c+DQo8Zz4NCjwvZz4NCjxnPg0KPC9nPg0KPGc+DQo8L2c+DQo8L3N2Zz4NCg==, no_logo_background = True, logo_as_background = False, logo_size_percent = 90, size = 10
Multi-Color Configuration target_url = https://test.de, use_multiple_colors = True, foreground_color = #2d132c, multicolor_2 = #801336, multicolor_3 = #c72c41, multicolor_4 = #ee4540, size = 10
Authorizations:
HTTPBearer
Request Body schema: application/json
Any of
Logo Data (string) or Logo Data (null) (Logo Data)

Base64 Data URI of the logo (e.g., data:image/svg+xml;base64,...).

Logo Size Percent (integer) or Logo Size Percent (null) (Logo Size Percent)
Logo As Background (boolean) or Logo As Background (null) (Logo As Background)

Use logo as background

No Logo Background (boolean) or No Logo Background (null) (No Logo Background)

Disable logo background

QRCodePattern (string) or null

Pattern name for QR code. Choose from the list of possible values.

QRCodeMarker (string) or null

Outer marker style (maps to legacy 'marker'). Choose from the list of possible values.

QRCodeMarkerIn (string) or null

Inner marker style. Choose from the list of possible values.

Marker Out Color (string) or Marker Out Color (null) (Marker Out Color)

Outer marker color (hex)

Marker In Color (string) or Marker In Color (null) (Marker In Color)

Inner marker color (hex)

Marker Out Color Cmyk (string) or Marker Out Color Cmyk (null) (Marker Out Color Cmyk)

Outer marker color (CMYK)

Marker In Color Cmyk (string) or Marker In Color Cmyk (null) (Marker In Color Cmyk)

Inner marker color (CMYK)

Enable Gradient (boolean) or Enable Gradient (null) (Enable Gradient)

Enable gradient

Use Radial Gradient (boolean) or Use Radial Gradient (null) (Use Radial Gradient)

Use radial gradient

Gradient Color (string) or Gradient Color (null) (Gradient Color)

Gradient color (hex)

Gradient Color Cmyk (string) or Gradient Color Cmyk (null) (Gradient Color Cmyk)

Gradient color (CMYK)

Use Markers Color (boolean) or Use Markers Color (null) (Use Markers Color)

Use markers color mode

Invert Qr Colors (boolean) or Invert Qr Colors (null) (Invert Qr Colors)

Invert QR colors

Enable Supersafe (boolean) or Enable Supersafe (null) (Enable Supersafe)

Enable supersafe rendering

Show Eancode Text (boolean) or Show Eancode Text (null) (Show Eancode Text)

Show EAN code text

Include Eancode Image (boolean) or Include Eancode Image (null) (Include Eancode Image)

Include EAN as image

Eancode Font Size (integer) or Eancode Font Size (null) (Eancode Font Size)

EAN font size

Use Different Marker Colors (boolean) or Use Different Marker Colors (null) (Use Different Marker Colors)

Use different colors for markers

Marker Top Right Outline (string) or Marker Top Right Outline (null) (Marker Top Right Outline)
Marker Top Right Center (string) or Marker Top Right Center (null) (Marker Top Right Center)
Marker Bottom Left Outline (string) or Marker Bottom Left Outline (null) (Marker Bottom Left Outline)
Marker Bottom Left Center (string) or Marker Bottom Left Center (null) (Marker Bottom Left Center)
Outer Frame (string) or Outer Frame (null) (Outer Frame)

Outer frame template id/name

Custom Frame Color (string) or Custom Frame Color (null) (Custom Frame Color)

Custom frame color (hex)

Frame Color (string) or Frame Color (null) (Frame Color)

Frame color (hex)

Frame Color Cmyk (string) or Frame Color Cmyk (null) (Frame Color Cmyk)

Frame color (CMYK)

Frame Label (string) or Frame Label (null) (Frame Label)

Frame label text

QRCodeLabelFont (string) or null

Label font name. Choose from the list of possible values.

Label Text Size (string) or Label Text Size (null) (Label Text Size)
Use Custom Label Text Color (boolean) or Use Custom Label Text Color (null) (Use Custom Label Text Color)
Label Text Color (string) or Label Text Color (null) (Label Text Color)
Label Text Color Cmyk (string) or Label Text Color Cmyk (null) (Label Text Color Cmyk)
Transparent Code (boolean) or Transparent Code (null) (Transparent Code)

Use transparent code mode

Background Image (string) or Background Image (null) (Background Image)

Background image id

Transparent Background (boolean) or Transparent Background (null) (Transparent Background)

Set background transparent (legacy 'transparent')

Background Color (string) or Background Color (null) (Background Color)

Background color (hex)

Foreground Color (string) or Foreground Color (null) (Foreground Color)

Foreground color (hex)

Background Color Cmyk (string) or Background Color Cmyk (null) (Background Color Cmyk)
Foreground Color Cmyk (string) or Foreground Color Cmyk (null) (Foreground Color Cmyk)
ErrorCorrectionLevel (string) or null

The error correction level (L-smallest, M-medium, Q-high, H-best). Choose from the list of possible values.

Size (integer) or Size (null) (Size)

Module size (4-32)

Use Multiple Colors (boolean) or Use Multiple Colors (null) (Use Multiple Colors)
Multicolor 1 (string) or Multicolor 1 (null) (Multicolor 1)
Multicolor 2 (string) or Multicolor 2 (null) (Multicolor 2)
Multicolor 3 (string) or Multicolor 3 (null) (Multicolor 3)
Multicolor 4 (string) or Multicolor 4 (null) (Multicolor 4)
Multicolor 1 Cmyk (string) or Multicolor 1 Cmyk (null) (Multicolor 1 Cmyk)
Multicolor 2 Cmyk (string) or Multicolor 2 Cmyk (null) (Multicolor 2 Cmyk)
Multicolor 3 Cmyk (string) or Multicolor 3 Cmyk (null) (Multicolor 3 Cmyk)
Multicolor 4 Cmyk (string) or Multicolor 4 Cmyk (null) (Multicolor 4 Cmyk)
Logo Colors Cmyk (string) or Logo Colors Cmyk (null) (Logo Colors Cmyk)
Target Url (string) or Target Url (null) (Target Url)

Target URL to encode in the generated QR code.

Content (string) or Content (null) (Content)

Plain text content to encode in the generated QR code.

property name*
additional property
any

Responses

Request samples

Content type
application/json
Example

A basic customization with solid background/foreground colors, specific patterns, and custom marker colors.

{
  • "target_url": "https://test.de",
  • "pattern": "DIAMOND",
  • "marker": "CIRCLE",
  • "marker_in": "CROSS",
  • "marker_out_color": "#7FE1FF",
  • "marker_in_color": "#FFCACA",
  • "background_color": "#fbff92",
  • "foreground_color": "#0B1974",
  • "error_correction_level": "M",
  • "size": 10
}

Response samples

Content type
application/json
null

Designer Templates

The Designer Templates API lets you browse and retrieve QR Designer templates that can be used to generate Designer QR codes (see /download-image/designer).

  • Discover production-ready styles quickly: list templates with pagination to browse all available options in your account
  • Validate before rollout: retrieve a template by id to inspect metadata and preview URL before using it in campaigns
  • Apply templates at render time: combine template ids with the Designer download endpoint to generate branded QR outputs on demand
  • Use custom design when needed: switch to POST /qrcodes/{code}/design if your brand requirements exceed template capabilities

If you need fully custom styling instead of template-based output, use the Custom Designer QR endpoint (POST /qrcodes/{code}/design) as an alternative.

Download the image of a QR Code based on a Designer QR code template

Download the image of a QR Code in the design of a Designer QR code template

Authorizations:
HTTPBearer
path Parameters
code
required
string (Code)

Code that identifies a QR code. Its usually the slug of the QR code that you either provided during QR code creation or that got automatically assigned to if not provided by you. In case of a GS1 QR code its a random hash value. - example: easter-promotion-2

query Parameters
required
Designer Template Id (string) or Designer Template Id (null) (Designer Template Id)

The the designer template you want to use - example: 42f88fb1de80ca479f87942c23ea74be

ImageFormatDesigner (string) or Format (null) (Format)
Default: "SVG"

The format the generated image should have - example: SVG

Responses

Request samples

curl \
  -X GET \
  --max-time 10 \
  -H 'Authorization: Bearer public:white.qrd.by:730ec:e8518645ea7939ef6dd9b3fe66180d08' \
  -o 'qr-code.png' \
  'https://api.qrplanet.com/api/v2/qrcodes/easter-promotion-2/download-image/designer?designer_template_id=42f88fb1de80ca479f87942c23ea74be&format=PNG'

Response samples

Content type
application/json
null

List Designer Templates

Returns a paginated list of your Designer Templates to be used to generate Designer QR codes in /download-image/designer.

Authorizations:
HTTPBearer
query Parameters
page
integer (Page) >= 1
Default: 1

Page number

size
integer (Size) [ 1 .. 100 ]
Default: 50

Page size

Responses

Request samples

curl \
  -X GET \
  --max-time 10 \
  -H 'Authorization: Bearer secret:white.qrd.by:730ec:61f2027768be9ae6adb52da232944e38' \
  'https://api.qrplanet.com/api/v2/designer-templates?page=1'

Response samples

Content type
application/json
{
  • "items": [
    ],
  • "total": 0,
  • "page": 1,
  • "size": 1,
  • "pages": 0
}

Get a designer template

Returns a single designer template by its unique identifier.

Authorizations:
HTTPBearer
path Parameters
designer_template_id
required
string (Designer Template Id)

Unique identifier of a designer template. - example: 42f88fb1de80ca479f87942c23ea74be

Responses

Request samples

curl \
  -X GET \
  --max-time 10 \
  -H 'Authorization: Bearer secret:white.qrd.by:730ec:61f2027768be9ae6adb52da232944e38' \
  'https://api.qrplanet.com/api/v2/designer-templates/12345'

Response samples

Content type
application/json
{
  • "id": "42f88fb1de80ca479f87942c23ea74be",
  • "name": "Spotify",
  • "type": "USER",
  • "label": "Spotify",
  • "allow_to_render": true,
  • "sample_url": false
}

Folders

In this area you find all the API endpoints to manage your QR code folders:

  • create, delete and list your folders
  • get and reset statistics of your QR code folders.

List Folders

Returns a paginated list of your folders.

Authorizations:
HTTPBearer
query Parameters
type
string (FolderType)
Enum: "QR_CODE" "LANDING_PAGE"

- example: QR_CODE

page
integer (Page) >= 1
Default: 1

Page number

size
integer (Size) [ 1 .. 100 ]
Default: 50

Page size

Responses

Request samples

curl \
  -X GET \
  --max-time 10 \
  -H 'Authorization: Bearer secret:white.qrd.by:730ec:61f2027768be9ae6adb52da232944e38' \
  'https://api.qrplanet.com/api/v2/folders?page=1&type=QR_CODE'

Response samples

Content type
application/json
{
  • "items": [
    ],
  • "total": 0,
  • "page": 1,
  • "size": 1,
  • "pages": 0
}

Create a Folder

Create a folder to house either your QR codes or Landing Pages.

Authorizations:
HTTPBearer
Request Body schema: application/json
required
name
string (Name)

Name of a folder.

type
string (FolderType)
Enum: "QR_CODE" "LANDING_PAGE"

Type of a folder.

Parent Id (string) or Parent Id (null) (Parent Id)

Unique identifier of the parent folder.

Responses

Request samples

Content type
application/json
{
  • "name": "XMAS Promotion",
  • "type": "QR_CODE",
  • "parent_id": "12345"
}

Response samples

Content type
application/json
{
  • "id": "12345",
  • "name": "XMAS Promotion",
  • "type": "QR_CODE",
  • "parent_id": "12345"
}

Get a folder

Returns a single folder by its unique identifier.

Authorizations:
HTTPBearer
path Parameters
folder_id
required
string (Folder Id)

Unique identifier of a folder. - example: 12345

Responses

Request samples

curl \
  -X GET \
  --max-time 10 \
  -H 'Authorization: Bearer secret:white.qrd.by:730ec:61f2027768be9ae6adb52da232944e38' \
  -H 'Content-Type: application/json' \
  'https://api.qrplanet.com/api/v2/folders/12345'

Response samples

Content type
application/json
{
  • "id": "12345",
  • "name": "XMAS Promotion",
  • "type": "QR_CODE",
  • "parent_id": "12345",
  • "has_subfolders": true,
  • "is_archived": false
}

Delete a folder

Deletes a folder.

Authorizations:
HTTPBearer
path Parameters
folder_id
required
string (Folder Id)

Unique identifier of a folder. - example: 12345

Responses

Request samples

curl \
  -X DELETE \
  --max-time 10 \
  -H 'Authorization: Bearer secret:white.qrd.by:730ec:61f2027768be9ae6adb52da232944e38' \
  'https://api.qrplanet.com/api/v2/folders/12345'

Response samples

Content type
application/json
{
  • "detail": "Invalid authentication token"
}

Get the statistics of a folder

Get the folder statistics identified by its folder id.

Authorizations:
HTTPBearer
path Parameters
folder_id
required
string (Folder Id)

Unique identifier of a folder. - example: 12345

query Parameters
Country Code (string) or Country Code (null) (Country Code)

Filter by country code (exact match) - example: DE

Scan Date From (string) or Scan Date From (null) (Scan Date From)

Filter scans of QR codes in folder from this date (inclusive) - example: 2025-09-27

Scan Date To (string) or Scan Date To (null) (Scan Date To)

Filter scans of QR codes in folder up to this date (inclusive) - example: 2025-09-30

DateRelativeRange (string) or Scan Date Relative Range (null) (Scan Date Relative Range)

Filter scans of QR codes in the folder via a relative day range selector

SortOrder (string) or Sort Order (null) (Sort Order)

Sort the result by scan date ascending or descending

page
integer (Page) >= 1
Default: 1
size
integer (Size) [ 1 .. 100 ]
Default: 50

Responses

Request samples

curl \
  -X GET \
  --max-time 10 \
  -H 'Authorization: Bearer secret:white.qrd.by:730ec:61f2027768be9ae6adb52da232944e38' \
  'https://api.qrplanet.com/api/v2/folders/12345/stats?sort_order=DESC'

Response samples

Content type
application/json
{
  • "id": "12345",
  • "name": "XMAS Promotion",
  • "first_scan_at": "2025-09-15 15:22:09",
  • "last_scan_at": "2025-09-15 15:22:09",
  • "days_between_first_and_last_scan": 12,
  • "scan_count": 12,
  • "scan_count_per_day_first_last": 12.3
}

Resets the statistics of a folder

Resets the QR Code statistics of all QR codes in a folder.

Authorizations:
HTTPBearer
path Parameters
folder_id
required
string (Folder Id)

Unique identifier of a folder. - example: 12345

Responses

Request samples

curl \
  -X POST \
  --max-time 10 \
  -H 'Authorization: Bearer secret:white.qrd.by:730ec:61f2027768be9ae6adb52da232944e38' \
  'https://api.qrplanet.com/api/v2/folders/12345/stats/reset'

Response samples

Content type
application/json
{
  • "detail": "Invalid authentication token"
}

Geo Fencing

Geofencing is a technique that uses a user's GPS location (country, language, etc.) to trigger a location-based action.

For example, a user receives a notification when they are within a specific area (geofence).

A geofencing QR code is a type of QR code that redirects the user to a specific URL based on their GPS location. You can define these geofences using GPS coordinates, within which the user must be to be redirected to a particular URL.

The user must always give their consent before their GPS location is transmitted. If no GPS location is received, a default URL can be set to which the user will be redirected.

To list all the already created Geofencing rules you can get this information from the regular GET QR code endpoint.

Add a country-specific target to a QR Code

Add a country specific target URL to a QR code identified by its code. If the QR code gets scanned in a specific country then the user gets forwarded to this target url.

Authorizations:
HTTPBearer
path Parameters
code
required
string (Code)

Code that identifies a QR code. Its usually the slug of the QR code that you either provided during QR code creation or that got automatically assigned to if not provided by you. In case of a GS1 QR code its a random hash value. - example: easter-promotion-2

Request Body schema: application/json
required
country_code
string (Country Code)

2-letter country code

target_url
string (Target Url)

The target url the dynamic QR code redirects to.

Responses

Request samples

Content type
application/json
{}

Response samples

Content type
application/json
{
  • "code": "easter-promotion-2",
  • "country_code": "IT",
  • "target_url": "https://test.de"
}

Remove a country-specific target of a QR Code

Remove a country specific target URL to a QR code identified by its code.

Authorizations:
HTTPBearer
path Parameters
code
required
string (Code)

Code that identifies a QR code. Its usually the slug of the QR code that you either provided during QR code creation or that got automatically assigned to if not provided by you. In case of a GS1 QR code its a random hash value. - example: easter-promotion-2

country_code
required
string (Country Code)

2-letter country code - example: IT

Responses

Request samples

curl \
  -X DELETE \
  --max-time 10 \
  -H 'Authorization: Bearer secret:white.qrd.by:730ec:61f2027768be9ae6adb52da232944e38' \
  'https://api.qrplanet.com/api/v2/qrcodes/easter-promotion-2/countries/IT'

Response samples

Content type
application/json
{
  • "detail": "Invalid authentication token"
}

Add a language-specific target to a QR Code

Add a language-specific target URL to a QR code identified by its code. If the QR code gets scanned with a device in a certain language then the user gets forwarded to this target url.

Authorizations:
HTTPBearer
path Parameters
code
required
string (Code)

Code that identifies a QR code. Its usually the slug of the QR code that you either provided during QR code creation or that got automatically assigned to if not provided by you. In case of a GS1 QR code its a random hash value. - example: easter-promotion-2

Request Body schema: application/json
required
language_code
string (Language Code)

2-letter language code

target_url
string (Target Url)

The target url the dynamic QR code redirects to.

Responses

Request samples

Content type
application/json
{}

Response samples

Content type
application/json
{
  • "code": "easter-promotion-2",
  • "language_code": "IT",
  • "target_url": "https://test.de"
}

Remove a language-specific target of a QR Code

Remove a language-specific target URL to a QR code identified by its code.

Authorizations:
HTTPBearer
path Parameters
code
required
string (Code)

Code that identifies a QR code. Its usually the slug of the QR code that you either provided during QR code creation or that got automatically assigned to if not provided by you. In case of a GS1 QR code its a random hash value. - example: easter-promotion-2

language_code
required
string (Language Code)

2-letter language code - example: IT

Responses

Request samples

curl \
  -X DELETE \
  --max-time 10 \
  -H 'Authorization: Bearer secret:white.qrd.by:730ec:61f2027768be9ae6adb52da232944e38' \
  'https://api.qrplanet.com/api/v2/qrcodes/easter-promotion-2/languages/IT'

Response samples

Content type
application/json
{
  • "detail": "Invalid authentication token"
}

Add a geo-location-specific target to a QR Code

Add a geo-location-specific target URL to a QR code identified by its code. If the QR code gets scanned with that specific location then the user gets forwarded to this target url. If you set the MULTI_GEO or MULTI_GEO_CLOSEST type when creating the Geofenced QR Code with the API, you can add geofence rules.

Authorizations:
HTTPBearer
path Parameters
code
required
string (Code)

Code that identifies a QR code. Its usually the slug of the QR code that you either provided during QR code creation or that got automatically assigned to if not provided by you. In case of a GS1 QR code its a random hash value. - example: easter-promotion-2

Request Body schema: application/json
required
Lat (number) or Lat (null) (Lat)

Latitude coordinate

Lng (number) or Lng (null) (Lng)

Longitude coordinate

Radius (integer) or Radius (null) (Radius)

the maximal allowed radius (in m) around the lng/lat position the user is allowed to be. Assume a radius of at least 100m to account for any measurement inaccuracies.

Address (string) or Address (null) (Address)

Address for the geo-fenced target. This is optional additional information you can provide. From a technical standpoint only the lat and lng are being used.

target_url
string (Target Url)

The target url the dynamic QR code redirects to.

description
string (Description)

Description you want to add.

Responses

Request samples

Content type
application/json
{
  • "lat": 40.758,
  • "lng": -73.9855,
  • "radius": 250,
  • "address": "Times Square, New York, NY 10036, USA",
  • "target_url": "https://test.de",
  • "description": "My description"
}

Response samples

Content type
application/json
{
  • "code": "easter-promotion-2",
  • "id": "4711",
  • "lat": 40.758,
  • "lng": -73.9855,
  • "radius": 250,
  • "address": "Times Square, New York, NY 10036, USA",
  • "target_url": "https://test.de",
  • "description": "My description"
}

Remove a geo-location-specific target of a QR Code

Remove a geofence (lat, lng, radius)-specific target URL to a QR code identified by its code.

Authorizations:
HTTPBearer
path Parameters
code
required
string (Code)

Code that identifies a QR code. Its usually the slug of the QR code that you either provided during QR code creation or that got automatically assigned to if not provided by you. In case of a GS1 QR code its a random hash value. - example: easter-promotion-2

geofence_id
required
string (Geofence Id)

Geofence target rule ID.

Responses

Request samples

curl \
  -X DELETE \
  --max-time 10 \
  -H 'Authorization: Bearer secret:white.qrd.by:730ec:61f2027768be9ae6adb52da232944e38' \
  'https://api.qrplanet.com/api/v2/qrcodes/easter-promotion-2/geofences/xyz123'

Response samples

Content type
application/json
{
  • "detail": "Invalid authentication token"
}

Add a geo-region-specific target to a QR Code

Add a geo-region-specific target URL to a QR code identified by its code. If the QR code gets scanned with that specific location then the user gets forwarded to this target url. If you set the MULTI_REGION type when creating the Geofenced QR Code with the API, you can add rules to match against regions as well.

Authorizations:
HTTPBearer
path Parameters
code
required
string (Code)

Code that identifies a QR code. Its usually the slug of the QR code that you either provided during QR code creation or that got automatically assigned to if not provided by you. In case of a GS1 QR code its a random hash value. - example: easter-promotion-2

Request Body schema: application/json
required
region
string (Region)

Region that triggers a redirect to a specific target URL.

target_url
string (Target Url)

The target url the dynamic QR code redirects to.

Responses

Request samples

Content type
application/json
{}

Response samples

Content type
application/json
{
  • "code": "easter-promotion-2",
  • "id": "4711",
  • "region": "Texas",
  • "target_url": "https://test.de"
}

Remove a geo-region-specific target of a QR Code

Remove a georegion-specific target URL to a QR code identified by its code.

Authorizations:
HTTPBearer
path Parameters
code
required
string (Code)

Code that identifies a QR code. Its usually the slug of the QR code that you either provided during QR code creation or that got automatically assigned to if not provided by you. In case of a GS1 QR code its a random hash value. - example: easter-promotion-2

georegion_id
required
string (Georegion Id)

Geo Region target rule ID.

Responses

Request samples

curl \
  -X DELETE \
  --max-time 10 \
  -H 'Authorization: Bearer secret:white.qrd.by:730ec:61f2027768be9ae6adb52da232944e38' \
  'https://api.qrplanet.com/api/v2/qrcodes/easter-promotion-2/georegion/4711'

Response samples

Content type
application/json
{
  • "detail": "Invalid authentication token"
}

Coupons

The Coupons API (v2) lets you manage and operate QR-based coupon campaigns programmatically: you can list all coupons in your account with simple pagination (page, size), issue a new voucher for a specific coupon code (optionally assigning it to an issuing group and setting a ttl so unredeemed vouchers expire and are deleted), and retrieve both issue stats (how many vouchers exist, how many are issued/available/redeemed, plus first/last redemption timestamps) and redemption logs as a paginated feed for reporting and audits. All endpoints are secured via HTTP Bearer authentication.

  • List coupons (paginated): fetch coupons in your account using page + size
  • Issue a voucher: generate a unique voucher_code for a given coupon code, with optional group and ttl
  • Use ready-to-display URLs: get the coupon landing/redemption URL plus QR image URLs for redemption and immediate redemption
  • Monitor availability: retrieve totals, issued/available counts, redeemed counts, and first/last redemption times
  • Review redemptions (paginated): pull redemption statistics/logs with page + size for analytics and reconciliation

List Coupons

Returns a paginated list of Coupons in your account.

Pagination: uses page and size.

Authorizations:
HTTPBearer
query Parameters
page
integer (Page) >= 1
Default: 1

Page number

size
integer (Size) [ 1 .. 100 ]
Default: 50

Page size

Responses

Request samples

curl \
  -X GET \
  --max-time 10 \
  -H 'Authorization: Bearer secret:white.qrd.by:730ec:61f2027768be9ae6adb52da232944e38' \
  'https://api.qrplanet.com/api/v2/coupons?page=1'

Response samples

Content type
application/json
{}

Issue a voucher for a coupon

Returns an issued voucher for a coupon.

Authorizations:
HTTPBearer
path Parameters
code
required
string (Code)

Code that identifies a QR code of a Coupon. Its usually the slug of the QR code that you either provided during QR code creation or that got automatically assigned to if not provided by you. - example: easter-promotion-coupon

Request Body schema: application/json
required
Group (string) or Group (null) (Group)

The issue group that is being used for the issuing of this voucher.

Ttl (integer) or Ttl (null) (Ttl)

If the optional ttl (time to live) parameter is set, the issue date of the voucher will expire after ttl days, when the voucher has not been redeemed. When the voucher has expired, he will be deleted.

Responses

Request samples

Content type
application/json
{
  • "group": "group4711",
  • "ttl": 14
}

Response samples

Content type
application/json
{}

Get the Coupon Issue Statistics

Returns the issue statistics of a Coupon.

Authorizations:
HTTPBearer
path Parameters
code
required
string (Code)

Code that identifies a QR code of a Coupon. Its usually the slug of the QR code that you either provided during QR code creation or that got automatically assigned to if not provided by you. - example: easter-promotion-coupon

Responses

Request samples

curl \
  -X GET \
  --max-time 10 \
  -H 'Authorization: Bearer secret:white.qrd.by:730ec:61f2027768be9ae6adb52da232944e38' \
  'https://api.qrplanet.com/api/v2/coupons/easter-promotion-coupon/stats'

Response samples

Content type
application/json
{
  • "code": "easter-promotion-coupon",
  • "title": "My Coupon Code",
  • "total_vouchers": 1000,
  • "issued_vouchers": 150,
  • "available_vouchers": 850,
  • "redeemed_vouchers": 15,
  • "first_redemption_at": "2025-09-01T11:11:11",
  • "last_redemption_at": "2025-09-15T15:15:15"
}

Get the Coupon Redemption/Redeem Statistics

Returns the redemption statistics of a Coupon.

Authorizations:
HTTPBearer
path Parameters
code
required
string (Code)

Code that identifies a QR code of a Coupon. Its usually the slug of the QR code that you either provided during QR code creation or that got automatically assigned to if not provided by you. - example: easter-promotion-coupon

query Parameters
page
integer (Page) >= 1
Default: 1

Page number

size
integer (Size) [ 1 .. 100 ]
Default: 50

Page size

Responses

Request samples

curl \
  -X GET \
  --max-time 10 \
  -H 'Authorization: Bearer secret:white.qrd.by:730ec:61f2027768be9ae6adb52da232944e38' \
  'https://api.qrplanet.com/api/v2/coupons/easter-promotion-coupon/redemptions?page=1'

Response samples

Content type
application/json
{
  • "items": [
    ],
  • "total": 0,
  • "page": 1,
  • "size": 1,
  • "pages": 0
}

Download the image of a QR Code without a Designer QR code template

Download the image of a QR Code in black/white without a Designer QR code template

Authorizations:
HTTPBearer
path Parameters
code
required
string (Code)

Code that identifies a QR code. Its usually the slug of the QR code that you either provided during QR code creation or that got automatically assigned to if not provided by you. In case of a GS1 QR code its a random hash value. - example: easter-promotion-2

query Parameters
ImageFormatBasic (string) or Format (null) (Format)
Default: "PNG"

The format the generated image should have - example: PNG

size
integer (Size) [ 1 .. 30 ]
Default: 10

Size of the image from 1-30 (only relevant for PNG) - example: 30

ErrorCorrectionLevel (string) or Error Correction Level (null) (Error Correction Level)
Default: "L"

The error correction level (L-smallest, M-medium Q-high, H-best) - example: L

padding
integer (Padding) [ 0 .. 30 ]
Default: 4

Padding around the QR code - example: 4

Show Title (boolean) or Show Title (null) (Show Title)
Default: false

Show the title of the QR code below the image - example: false

Responses

Request samples

curl \
  -X GET \
  --max-time 10 \
  -H 'Authorization: Bearer public:white.qrd.by:730ec:e8518645ea7939ef6dd9b3fe66180d08' \
  -o 'qr-code.svg' \
  'https://api.qrplanet.com/api/v2/qrcodes/easter-promotion-2/download-image/basic?format=SVG&padding=5&show_title=True&size=15'

Response samples

Content type
application/json
null

Download the image of a QR Code based on a Designer QR code template

Download the image of a QR Code in the design of a Designer QR code template

Authorizations:
HTTPBearer
path Parameters
code
required
string (Code)

Code that identifies a QR code. Its usually the slug of the QR code that you either provided during QR code creation or that got automatically assigned to if not provided by you. In case of a GS1 QR code its a random hash value. - example: easter-promotion-2

query Parameters
required
Designer Template Id (string) or Designer Template Id (null) (Designer Template Id)

The the designer template you want to use - example: 42f88fb1de80ca479f87942c23ea74be

ImageFormatDesigner (string) or Format (null) (Format)
Default: "SVG"

The format the generated image should have - example: SVG

Responses

Request samples

curl \
  -X GET \
  --max-time 10 \
  -H 'Authorization: Bearer public:white.qrd.by:730ec:e8518645ea7939ef6dd9b3fe66180d08' \
  -o 'qr-code.png' \
  'https://api.qrplanet.com/api/v2/qrcodes/easter-promotion-2/download-image/designer?designer_template_id=42f88fb1de80ca479f87942c23ea74be&format=PNG'

Response samples

Content type
application/json
null

Create a GS1 Digital Link QR Code

Creates a GS1 Digital Link QR Code.

Authorizations:
HTTPBearer
Request Body schema: application/json
required
Primary Key Ai (string) or Primary Key Ai (null) (Primary Key Ai)
Default: "01"

The primary key application identifier (AI) you want to use. This is basically the type of primary key you want to use. Its usually the type GTIN which is expressed via 01.

  • Full list of Application Identifiers (AI).
  • You can basically use all Application Identifiers that are marked with Primary key in a GS1 Digital Link URI: Yes. You find this information when you click on a specific AI in the list and jump into the detail view.
primary_key_value
string (Primary Key Value)

The primary key value you want to use (as specified in the primary_key_ai). Its usually the concrete GTIN.

default_target_url
string (Default Target Url)

The default target url the GS1 Digital Link QR code redirects to. This is the default url that is going to be used if there is no match of a specific language/linktype Rule (see the Rules endpoint).

Title (string) or Title (null) (Title)

A title that is shown in the list of QR Codes, so you can spot quickly what this GS1 Digital Link is about. You can enter the name of the product here as an example.

Description (string) or Description (null) (Description)

A description for the GS1 Digital Link. This is just an additional information to be stored.

Cpv Variant (string) or Cpv Variant (null) (Cpv Variant)

Consumer Product Variant (AI 22). Example: color/size/variant.

Batch Number (string) or Batch Number (null) (Batch Number)

Lot/batch number (AI 10).

Serial Number (string) or Serial Number (null) (Serial Number)

Serial number (AI 21).

Folder Id (string) or Folder Id (null) (Folder Id)

Folder you want the GS1 Digital Link QR Code to be created in.

Array of Data Attributes (objects) or Data Attributes (null) (Data Attributes)

Additional GS1 Application Identifiers (AI) placed in the query part of the Digital Link (e.g. expiry date AI 17).

Typical Data Attributes:

Data Attribute (AI) Additional Information
11 Production date (YYMMDD)
17 Expiry Date (YYMMDD)

Full list of Application Identifiers (AI)

Responses

Request samples

Content type
application/json
{
  • "primary_key_ai": "01",
  • "primary_key_value": "5449000297280",
  • "title": "Coca-Cola Original Taste 500 ml Bottle",
  • "description": "Soda. Pop. Soft drink. Sparkling beverage. Carbonated drink. Whatever you call it, nothing compares to the refreshing, crisp taste of Coca‑Cola, the delicious soda you know and love.",
  • "cpv_variant": "blue",
  • "batch_number": "batch-2026-37",
  • "serial_number": "sn-999abc",
  • "folder_id": "12345",
  • "data_attributes": [
    ]
}

Response samples

Content type
application/json
{}

List Rules of a GS1 Digital Link

Returns a paginated list of Rules of a GS1 Digital Link.

Authorizations:
HTTPBearer
path Parameters
code
required
string (Code)

Code that identifies a QR code of a GS1 Digital Link. Its got automatically assigned during creation. - example: 913e39f179f883d36c2eb6f99ac20b99

query Parameters
page
integer (Page) >= 1
Default: 1

Page number

size
integer (Size) [ 1 .. 100 ]
Default: 50

Page size

Responses

Request samples

curl \
  -X GET \
  --max-time 10 \
  -H 'Authorization: Bearer public:white.qrd.by:730ec:e8518645ea7939ef6dd9b3fe66180d08' \
  'https://api.qrplanet.com/api/v2/gs1-digital-link/913e39f179f883d36c2eb6f99ac20b99/rules?page=1'

Response samples

Content type
application/json
{}

Create a Rule for a GS1 Digital Link QR Code

This API call adds a rule to a GS1 Digital Link QR Code based on LinkTypes/Languages.

The following logic applies for Rules:

  • If a Rule matches then the user gets redirected to the target_url that is specified in that Rule.
  • If no Rule matches then the default_target_url from the creation of the GS1 Digital Link QR Code is going to be used.

Example - The following Rules are specified:

  • Rule A: gs1:pip/de -> Link to German Coca Cola Product Page
  • Rule B: gs1:pip/NO_LANGUAGE (=all other languages) -> Link to international Coca Cola Product Page
  • Rule C: gs1:faqs/es, pt -> Link to Spanish FAQ (Frequently Asked Questions) Page
  • Rule D: gs1:relatedVideo/de -> Link to German YouTue Video about the Coca Cola Bottle

User with the following combination of requested LinkType and Browser Language scans the GS1 Digital Link:

⬇️-LinkType / Browser-Language-➡️ DE EN ES
gs1:pip Rule A matches Rule B matches Rule B matches
gs1:relatedVideo Rule D matches No Rule matches -> Default Target URL No Rule matches -> Default Target URL
gs1:faqs No Rule matches -> Default Target URL No Rule matches -> Default Target URL Rule C matches
gs1:careersInfo No Rule matches -> Default Target URL No Rule matches -> Default Target URL No Rule matches -> Default Target URL
Authorizations:
HTTPBearer
path Parameters
code
required
string (Code)

Code that identifies a QR code of a GS1 Digital Link. Its got automatically assigned during creation. - example: 913e39f179f883d36c2eb6f99ac20b99

Request Body schema: application/json
required
languages
Array of strings (Languages)

Languages where this Rule should be applied to. Languages are encoded in ISO 639-1 format with 2 characters (e.g. en, de, es, etc.).

If you don't specify a language then this rule is going to be used if no specific language rule for this LinkType is found (catchall).

linktypes
Array of strings (Linktypes)

LinkType where this RUle should be applied to. The following LinkTypes are possible:

LinkType Name
gs1:activityIdeas Activity Ideas
gs1:allergenInfo Allergen Information
gs1:appDownload App Download
gs1:brandHomepageClinical Brand Homepage Clinical
gs1:brandHomepagePatient Brand Homepage Patient
gs1:careersInfo Careers Information
gs1:certificationInfo Certification Information
gs1:consumerHandlingStorageInfo Consumer Handling and Storage Information
gs1:defaultLink Default Link
gs1:defaultLinkMulti Default Link Multi
gs1:epcis EPCIS
gs1:epil Electronic Patient Information Leaflet
gs1:eventsInfo Events Information
gs1:faqs FAQs
gs1:handledBy Handled By
gs1:hasRetailers Has Retailers
gs1:homepage Homepage
gs1:ingredientsInfo Ingredients Information
gs1:instructions Instructions
gs1:jws JSON Web Signature
gs1:leaveReview Leave a Review
gs1:locationInfo Location Information
gs1:logisticsInfo Logistics Information
gs1:loyaltyProgram Loyalty Program
gs1:masterData Master Data
gs1:menuInfo Menu Information
gs1:nutritionalInfo Nutritional Information
gs1:openingHoursInfo Opening Hours Information
gs1:paymentLink Payment Link
gs1:pip Product Information Page
gs1:promotion Promotion
gs1:purchaseSuppliesOrAccessories Purchase Supplies or Accessories
gs1:quickStartGuide Quick Start Guide
gs1:recallStatus Recall Status
gs1:recipeInfo Recipe Information
gs1:registerProduct Register Product
gs1:registryEntry Registry Entry
gs1:relatedImage Related Image
gs1:relatedVideo Related Video
gs1:review Review
gs1:safetyInfo Safety Information
gs1:scheduleTime Schedule Time
gs1:serviceInfo Service Information
gs1:smartLabel SmartLabel
gs1:smpc Summary Product Characteristics
gs1:socialMedia Social Media
gs1:statisticInfo Statistic Information
gs1:subscribe Subscribe
gs1:support Support
gs1:sustainabilityInfo Sustainability Information
gs1:traceability Traceability
gs1:tutorial Tutorial
gs1:userAgreement User Agreement
gs1:verificationService Verification Service
gs1:whatsInTheBox What's In The Box
target_url
string (Target Url)

This is the URL that a user is going to be redirected to if the Rule matches. Eg. for a product information in german.

Responses

Request samples

Content type
application/json
{}

Response samples

Content type
application/json
{
  • "code": "913e39f179f883d36c2eb6f99ac20b99",
  • "languages": [
    ],
  • "linktypes": [
    ]
}

Delete all Rules of a GS1 Digital Link

Deletes all Rules of a GS1 Digital Link identified by its code.

Authorizations:
HTTPBearer
path Parameters
code
required
string (Code)

Code that identifies a QR code of a GS1 Digital Link. Its got automatically assigned during creation. - example: 913e39f179f883d36c2eb6f99ac20b99

Responses

Request samples

curl \
  -X DELETE \
  --max-time 10 \
  -H 'Authorization: Bearer secret:white.qrd.by:730ec:61f2027768be9ae6adb52da232944e38' \
  -H 'Content-Type: application/json' \
  --data-raw '{}' \
  'https://api.qrplanet.com/api/v2/gs1-digital-link/913e39f179f883d36c2eb6f99ac20b99/rules'

Response samples

Content type
application/json
{
  • "detail": "Invalid authentication token"
}

Analytics

The Analytics API gives you access to scan and redemption insights across QR codes, folders, and coupons. You can fetch summary statistics, detailed event lists, and reset counters where supported.

  • QR Code stats: get scan summary + paginated scan events for a QR code (GET /qrcodes/{code}/stats)
  • Reset QR Code stats: reset scan counters for a QR code (POST /qrcodes/{code}/stats/reset)
  • Folder stats: get aggregate scan stats for all QR codes in a folder (GET /folders/{folder_id}/stats)
  • Reset Folder stats: reset scan counters for a folder (POST /folders/{folder_id}/stats/reset)
  • Coupon issue stats: totals/issued/available/redeemed + first/last redemption (GET /coupons/{code}/stats)
  • Coupon redemption logs: paginated redemption events for a coupon (GET /coupons/{code}/redemptions)

Most stats endpoints support filtering by country and date ranges where applicable.

Get the statistics of a QR Code

Get the QR Code statistics identified by its code.

Authorizations:
HTTPBearer
path Parameters
code
required
string (Code)

Code that identifies a QR code. Its usually the slug of the QR code that you either provided during QR code creation or that got automatically assigned to if not provided by you. In case of a GS1 QR code its a random hash value. - example: easter-promotion-2

query Parameters
Country Code (string) or Country Code (null) (Country Code)

Filter by country code (exact match) - example: DE

Scan Date From (string) or Scan Date From (null) (Scan Date From)

Filter scans of QR code from this date (inclusive) - example: 2025-09-27

Scan Date To (string) or Scan Date To (null) (Scan Date To)

Filter scans of QR code up to this date (inclusive) - example: 2025-09-30

DateRelativeRange (string) or Scan Date Relative Range (null) (Scan Date Relative Range)

Filter scans of QR code via a relative day range selector

SortOrder (string) or Sort Order (null) (Sort Order)

Sort the result by scan date ascending or descending

page
integer (Page) >= 1
Default: 1
size
integer (Size) [ 1 .. 100 ]
Default: 50

Responses

Request samples

curl \
  -X GET \
  --max-time 10 \
  -H 'Authorization: Bearer public:white.qrd.by:730ec:e8518645ea7939ef6dd9b3fe66180d08' \
  'https://api.qrplanet.com/api/v2/qrcodes/easter-promotion-2/stats?scan_date_from=2025-01-01'

Response samples

Content type
application/json
{
  • "summary": {
    },
  • "items": [
    ],
  • "page": 0,
  • "size": 0,
  • "total": 0,
  • "pages": 0
}

Resets the statistics of a QR Code

Resets the QR Code statistics identified by its code.

Authorizations:
HTTPBearer
path Parameters
code
required
string (Code)

Code that identifies a QR code. Its usually the slug of the QR code that you either provided during QR code creation or that got automatically assigned to if not provided by you. In case of a GS1 QR code its a random hash value. - example: easter-promotion-2

Responses

Request samples

curl \
  -X POST \
  --max-time 10 \
  -H 'Authorization: Bearer secret:white.qrd.by:730ec:61f2027768be9ae6adb52da232944e38' \
  'https://api.qrplanet.com/api/v2/qrcodes/easter-promotion-2/stats/reset'

Response samples

Content type
application/json
{
  • "detail": "Invalid authentication token"
}

Get the statistics of a folder

Get the folder statistics identified by its folder id.

Authorizations:
HTTPBearer
path Parameters
folder_id
required
string (Folder Id)

Unique identifier of a folder. - example: 12345

query Parameters
Country Code (string) or Country Code (null) (Country Code)

Filter by country code (exact match) - example: DE

Scan Date From (string) or Scan Date From (null) (Scan Date From)

Filter scans of QR codes in folder from this date (inclusive) - example: 2025-09-27

Scan Date To (string) or Scan Date To (null) (Scan Date To)

Filter scans of QR codes in folder up to this date (inclusive) - example: 2025-09-30

DateRelativeRange (string) or Scan Date Relative Range (null) (Scan Date Relative Range)

Filter scans of QR codes in the folder via a relative day range selector

SortOrder (string) or Sort Order (null) (Sort Order)

Sort the result by scan date ascending or descending

page
integer (Page) >= 1
Default: 1
size
integer (Size) [ 1 .. 100 ]
Default: 50

Responses

Request samples

curl \
  -X GET \
  --max-time 10 \
  -H 'Authorization: Bearer secret:white.qrd.by:730ec:61f2027768be9ae6adb52da232944e38' \
  'https://api.qrplanet.com/api/v2/folders/12345/stats?sort_order=DESC'

Response samples

Content type
application/json
{
  • "id": "12345",
  • "name": "XMAS Promotion",
  • "first_scan_at": "2025-09-15 15:22:09",
  • "last_scan_at": "2025-09-15 15:22:09",
  • "days_between_first_and_last_scan": 12,
  • "scan_count": 12,
  • "scan_count_per_day_first_last": 12.3
}

Resets the statistics of a folder

Resets the QR Code statistics of all QR codes in a folder.

Authorizations:
HTTPBearer
path Parameters
folder_id
required
string (Folder Id)

Unique identifier of a folder. - example: 12345

Responses

Request samples

curl \
  -X POST \
  --max-time 10 \
  -H 'Authorization: Bearer secret:white.qrd.by:730ec:61f2027768be9ae6adb52da232944e38' \
  'https://api.qrplanet.com/api/v2/folders/12345/stats/reset'

Response samples

Content type
application/json
{
  • "detail": "Invalid authentication token"
}

Get the Coupon Issue Statistics

Returns the issue statistics of a Coupon.

Authorizations:
HTTPBearer
path Parameters
code
required
string (Code)

Code that identifies a QR code of a Coupon. Its usually the slug of the QR code that you either provided during QR code creation or that got automatically assigned to if not provided by you. - example: easter-promotion-coupon

Responses

Request samples

curl \
  -X GET \
  --max-time 10 \
  -H 'Authorization: Bearer secret:white.qrd.by:730ec:61f2027768be9ae6adb52da232944e38' \
  'https://api.qrplanet.com/api/v2/coupons/easter-promotion-coupon/stats'

Response samples

Content type
application/json
{
  • "code": "easter-promotion-coupon",
  • "title": "My Coupon Code",
  • "total_vouchers": 1000,
  • "issued_vouchers": 150,
  • "available_vouchers": 850,
  • "redeemed_vouchers": 15,
  • "first_redemption_at": "2025-09-01T11:11:11",
  • "last_redemption_at": "2025-09-15T15:15:15"
}

Get the Coupon Redemption/Redeem Statistics

Returns the redemption statistics of a Coupon.

Authorizations:
HTTPBearer
path Parameters
code
required
string (Code)

Code that identifies a QR code of a Coupon. Its usually the slug of the QR code that you either provided during QR code creation or that got automatically assigned to if not provided by you. - example: easter-promotion-coupon

query Parameters
page
integer (Page) >= 1
Default: 1

Page number

size
integer (Size) [ 1 .. 100 ]
Default: 50

Page size

Responses

Request samples

curl \
  -X GET \
  --max-time 10 \
  -H 'Authorization: Bearer secret:white.qrd.by:730ec:61f2027768be9ae6adb52da232944e38' \
  'https://api.qrplanet.com/api/v2/coupons/easter-promotion-coupon/redemptions?page=1'

Response samples

Content type
application/json
{
  • "items": [
    ],
  • "total": 0,
  • "page": 1,
  • "size": 1,
  • "pages": 0
}

Tags

The Tags API lets you manage tag labels for individual QR codes.

  • Get tags: list all tags assigned to a QR code (GET /qrcodes/{code}/tags)
  • Change tags: add/remove tags in a single request (PATCH /qrcodes/{code}/tags)
  • Delete tags: remove all tags from a QR code (DELETE /qrcodes/{code}/tags)

Get the tags of a QR Code

Get the tags that have been assigned to a QR code.

Authorizations:
HTTPBearer
path Parameters
code
required
string (Code)

Code that identifies a QR code. Its usually the slug of the QR code that you either provided during QR code creation or that got automatically assigned to if not provided by you. In case of a GS1 QR code its a random hash value. - example: easter-promotion-2

Responses

Request samples

curl \
  -X GET \
  --max-time 10 \
  -H 'Authorization: Bearer secret:white.qrd.by:730ec:61f2027768be9ae6adb52da232944e38' \
  'https://api.qrplanet.com/api/v2/qrcodes/easter-promotion-2/tags'

Response samples

Content type
application/json
{
  • "code": "easter-promotion-2",
  • "tags": [
    ]
}

Change the tags of a QR Code

Change the tags of a QR Code identified by its code.

Authorizations:
HTTPBearer
path Parameters
code
required
string (Code)

Code that identifies a QR code. Its usually the slug of the QR code that you either provided during QR code creation or that got automatically assigned to if not provided by you. In case of a GS1 QR code its a random hash value. - example: easter-promotion-2

Request Body schema: application/json
required
tags_to_add
Array of strings (Tags To Add)

Tags to add to the QR code.

tags_to_remove
Array of strings (Tags To Remove)

Tags to remove from the QR code.

Responses

Request samples

Content type
application/json
{
  • "tags_to_add": [
    ],
  • "tags_to_remove": [
    ]
}

Response samples

Content type
application/json
{
  • "code": "easter-promotion-2",
  • "tags": [
    ]
}

Remove all tags of a QR Code

Remove all the tags of a QR Code identified by its code.

Authorizations:
HTTPBearer
path Parameters
code
required
string (Code)

Code that identifies a QR code. Its usually the slug of the QR code that you either provided during QR code creation or that got automatically assigned to if not provided by you. In case of a GS1 QR code its a random hash value. - example: easter-promotion-2

Responses

Request samples

curl \
  -X DELETE \
  --max-time 10 \
  -H 'Authorization: Bearer secret:white.qrd.by:730ec:61f2027768be9ae6adb52da232944e38' \
  'https://api.qrplanet.com/api/v2/qrcodes/easter-promotion-2/tags'

Response samples

Content type
application/json
{
  • "detail": "Invalid authentication token"
}

Leads

The Leads API lets you fetch leads collected by landing page QR codes. You can retrieve a paginated list of leads or export the full dataset as CSV/XLSX.

  • Get leads: list leads for a landing page QR code (GET /qrcodes/{code}/leads)
  • Filter by referrer: restrict leads to a specific referrer URL
  • Export formats: JSON (paginated), CSV, or XLSX (full export)
  • CSV options: custom delimiter and decimal separator

Get the leads of a landingpage.

Get the ledas of a landingpage

Authorizations:
HTTPBearer
path Parameters
code
required
string (Code)

Code that identifies a QR code. Its usually the slug of the QR code that you either provided during QR code creation or that got automatically assigned to if not provided by you. In case of a GS1 QR code its a random hash value. - example: easter-promotion-2

query Parameters
Referrer (string) or Referrer (null) (Referrer)

The referrer you want to filter by - example: https://yourdomain.com/your-landingpage

LeadExportFormat (string) or Format (null) (Format)
Default: "JSON"

The format the lead list should have. The pagination only applies to JSON. For CSV and XLSX the whole list is returned. - example: JSON

Csv Delimiter (string) or Csv Delimiter (null) (Csv Delimiter)
Default: ","

In case of a CSV export (format=CSV): the csv delimiter between the values. Usually the delimiter is , (US), ; (Europe), | (machine 2 machine) or TAB for tabulator. - example: ;

DecimalSeparator (string) or Csv Decimal Separator (null) (Csv Decimal Separator)
Default: "."

In case of a CSV export (format=CSV): decimal separator for numeric values. Use . (default, US, API/machine-friendly) or , (common in Europe). - example: ,

page
integer (Page) >= 1
Default: 1

Page number

size
integer (Size) [ 1 .. 100 ]
Default: 50

Page size

Responses

Request samples

curl \
  -X GET \
  --max-time 10 \
  -H 'Authorization: Bearer secret:white.qrd.by:730ec:61f2027768be9ae6adb52da232944e38' \
  'https://api.qrplanet.com/api/v2/qrcodes/easter-promotion-2/leads?format=JSON&page=1'

Response samples

Content type
application/json
{
  • "items": [],
  • "total": 0,
  • "page": 1,
  • "size": 1,
  • "pages": 0
}

Digital Business Cards

The Digital Business Cards API lets you manage your digital business cards and related assets.

  • List cards (paginated): fetch all Digital Business Cards in your account (GET /business-cards)
  • Get card: retrieve a single card by code (GET /business-cards/{code})
  • Create card: create a new Digital Business Card (POST /business-cards)
  • Update card: change selected fields (PATCH /business-cards/{code})
  • Upload images: upload user, logo, or background image (POST /business-cards/{code}/images/{kind})
  • Delete card: remove a card (DELETE /business-cards/{code})

List Digital Business Cards

Returns a paginated list of Digital Business Cards in your account.

Pagination: uses page and size.

Authorizations:
HTTPBearer
query Parameters
page
integer (Page) >= 1
Default: 1

Page number

size
integer (Size) [ 1 .. 100 ]
Default: 50

Page size

Responses

Request samples

curl \
  -X GET \
  --max-time 10 \
  -H 'Authorization: Bearer secret:white.qrd.by:730ec:61f2027768be9ae6adb52da232944e38' \
  'https://api.qrplanet.com/api/v2/business-cards?page=1'

Response samples

Content type
application/json
{
  • "items": [
    ],
  • "total": 0,
  • "page": 1,
  • "size": 1,
  • "pages": 0
}

Create a Digital Business Card

Creates a Digital Business Card.

Authorizations:
HTTPBearer
Request Body schema: application/json
required
Slug (string) or Slug (null) (Slug)

An (optional) custom slug you want to use like doe-john which leads to a final Short URL like https://qr.yourdomain.com/doe-john (dependent on the domain you are using in your account). If not specified a combination of first and last name is being used for the Short URL. In the rest of the API you can access the Digital Business Card then via this slug in the code path parameter like GET /api/v2/business-cards/{code}. This is also sometimes referred to as Vanity URL in the frontend UI.

BusinessCardMode (string) or null
Default: "BCARD"

The mode of the business card. It can be either a Business Card (BCARD) or a VCARD.

Folder Id (string) or Folder Id (null) (Folder Id)

The id of the folder you want the business card to be in (optional).

  • For a Business Card (BCARD) the folder needs to have the type LANDING_PAGE
  • For a VCARD the folder needs to have the type QR_CODE.
Template Code (string) or Template Code (null) (Template Code)

The code of the Digital Business Card you want to use as a template for the created/updated Digital Business Card (optional).

first_name
string (First Name)

The first name of the business card.

last_name
string (Last Name)

The first name of the business card.

Job (string) or Job (null) (Job)

The job of the business card (bcard job).

Role (string) or Role (null) (Role)

The role of the business card (bcard role).

Company (string) or Company (null) (Company)

The company name of the business card.

Company Url (string) or Company Url (null) (Company Url)

The URL of the website of the business card.

Department (string) or Department (null) (Department)

The department of the business card.

Email (string) or Email (null) (Email)

The email of the business card.

Email Private (string) or Email Private (null) (Email Private)

The private email of the business card.

Street (string) or Street (null) (Street)

The street of the business card.

Zip (string) or Zip (null) (Zip)

The ZIP code of the business card.

City (string) or City (null) (City)

The city of the business card.

Country Code (string) or Country Code (null) (Country Code)

The country code of the business card.

State (string) or State (null) (State)

The state of the business card.

Responses

Request samples

Content type
application/json
{
  • "slug": "doe-john",
  • "mode": "BCARD",
  • "folder_id": "BCARD",
  • "template_code": "abc123",
  • "first_name": "John",
  • "last_name": "Doe",
  • "job": "Software Engineer",
  • "role": "Backend Developer",
  • "company": "Your Company Inc",
  • "company_url": "https://yourcompany.com",
  • "department": "IT",
  • "email": "[email protected]",
  • "email_private": "[email protected]",
  • "street": "Times Square 1",
  • "zip": "10036",
  • "city": "New York",
  • "country_code": "USA",
  • "state": "NY"
}

Response samples

Content type
application/json
{}

Get a Digital Business Card

Returns a single Digital Business Card by its unique identifier.

Authorizations:
HTTPBearer
path Parameters
code
required
string (Code)

Code that identifies a QR code of a Business Card. Its usually the slug of the QR code that you either provided during QR code creation or that got automatically assigned to if not provided by you. - example: doe-john

Responses

Request samples

curl \
  -X GET \
  --max-time 10 \
  -H 'Authorization: Bearer public:white.qrd.by:730ec:e8518645ea7939ef6dd9b3fe66180d08' \
  'https://api.qrplanet.com/api/v2/bcards/doe-john'

Response samples

Content type
application/json
{}

Change certain fields of a Digital Business Card

Change certain fields of a Digital Business Card identified by its code.

Authorizations:
HTTPBearer
path Parameters
code
required
string (Code)

Code that identifies a QR code of a Business Card. Its usually the slug of the QR code that you either provided during QR code creation or that got automatically assigned to if not provided by you. - example: doe-john

Request Body schema: application/json
required
Folder Id (string) or Folder Id (null) (Folder Id)

The id of the folder you want the business card to be in (optional).

  • For a Business Card (BCARD) the folder needs to have the type LANDING_PAGE
  • For a VCARD the folder needs to have the type QR_CODE.
Template Code (string) or Template Code (null) (Template Code)

The code of the Digital Business Card you want to use as a template for the created/updated Digital Business Card (optional).

First Name (string) or First Name (null) (First Name)

The first name of the business card.

Last Name (string) or Last Name (null) (Last Name)

The first name of the business card.

Job (string) or Job (null) (Job)

The job of the business card (bcard job).

Role (string) or Role (null) (Role)

The role of the business card (bcard role).

Company (string) or Company (null) (Company)

The company name of the business card.

Company Url (string) or Company Url (null) (Company Url)

The URL of the website of the business card.

Department (string) or Department (null) (Department)

The department of the business card.

Email (string) or Email (null) (Email)

The email of the business card.

Email Private (string) or Email Private (null) (Email Private)

The private email of the business card.

Street (string) or Street (null) (Street)

The street of the business card.

Zip (string) or Zip (null) (Zip)

The ZIP code of the business card.

City (string) or City (null) (City)

The city of the business card.

Country Code (string) or Country Code (null) (Country Code)

The country code of the business card.

State (string) or State (null) (State)

The state of the business card.

Responses

Request samples

Content type
application/json
{
  • "folder_id": "BCARD",
  • "template_code": "abc123",
  • "first_name": "John",
  • "last_name": "Doe",
  • "job": "Software Engineer",
  • "role": "Backend Developer",
  • "company": "Your Company Inc",
  • "company_url": "https://yourcompany.com",
  • "department": "IT",
  • "email": "[email protected]",
  • "email_private": "[email protected]",
  • "street": "Times Square 1",
  • "zip": "10036",
  • "city": "New York",
  • "country_code": "USA",
  • "state": "NY"
}

Response samples

Content type
application/json
{}

Delete a Digital Business Card

Delete a Digital Business Card identified by its code.

Authorizations:
HTTPBearer
path Parameters
code
required
string (Code)

Code that identifies a QR code of a Business Card. Its usually the slug of the QR code that you either provided during QR code creation or that got automatically assigned to if not provided by you. - example: doe-john

Responses

Request samples

curl \
  -X DELETE \
  --max-time 10 \
  -H 'Authorization: Bearer secret:white.qrd.by:730ec:61f2027768be9ae6adb52da232944e38' \
  'https://api.qrplanet.com/api/v2/business-cards/doe-john'

Response samples

Content type
application/json
{
  • "detail": "Invalid authentication token"
}

Upload an image for a Digital Business Card

Uploads an image for an existing Digital Business Card. Can be a user image, logo image or background image (kind). Only JPEG, PNG, and GIF images are supported.

cURL:

CODE="YOUR_CODE"
API_KEY="YOUR_SECRET_API_KEY"

curl -X POST   "https://api.qrplanet.com/api/v2/business-cards/${CODE}/images/USER"   -H "Authorization: Bearer ${API_KEY}"   -F "[email protected];type=image/jpeg;filename=user.jpg"

PHP:

<?php

$code = "YOUR_CODE";
$apiKey = "YOUR_SECRET_API_KEY";

$target_url = "https://api.qrplanet.com/api/v2/business-cards/$code/images/USER";

$fname = 'avatar.jpg';

if (!file_exists($fname)) {
    echo "The file $fname does not exist. Current dir: " . getcwd();
    die;
}

$cfile = new CURLFile(realpath($fname), 'image/jpeg', 'user.jpg');

$post = array(
    'image' => $cfile
);

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $target_url);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $post);
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
    "Authorization: Bearer $apiKey"
));

$result = curl_exec($ch);

if ($result === FALSE) {
    echo "Upload error: " . curl_error($ch);
    curl_close($ch);
} else {
    $http_code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
    curl_close($ch);
    echo "HTTP $http_code
Result:
$result";
}

Python:

import os
import requests

# -------------------------
# CONFIG
# -------------------------
code = "YOUR_CODE"
api_key = "YOUR_SECRET_API_KEY"

target_url = f"https://api.qrplanet.com/api/v2/business-cards/{code}/images/USER"

fname = "avatar.jpg"

# -------------------------
# CHECK FILE
# -------------------------
if not os.path.isfile(fname):
    print(f"The file {fname} does not exist. Current dir: {os.getcwd()}")
    raise SystemExit(1)

# -------------------------
# MULTIPART UPLOAD
# -------------------------
with open(fname, "rb") as f:
    files = {
        "image": ("user.jpg", f, "image/jpeg")  # matches PHP CURLFile
    }

    headers = {
        "Authorization": f"Bearer {api_key}"
    }

    response = requests.post(target_url, files=files, headers=headers)

# -------------------------
# RESULT
# -------------------------
print("HTTP", response.status_code)
print("Result:")
print(response.text)
Authorizations:
HTTPBearer
path Parameters
code
required
string (Code)

Code that identifies a QR code of a Business Card. Its usually the slug of the QR code that you either provided during QR code creation or that got automatically assigned to if not provided by you. - example: doe-john

kind
required
string (ImageKind)
Enum: "USER" "LOGO" "BACKGROUND"

Kind of image you want to upload (USER, LOGO, BACKGROUND) - example: USER

Request Body schema: multipart/form-data
required
image
required
string <binary> (Image)

Responses

Response samples

Content type
application/json
{}

Default

Health check

Call this endpoint to check if the API is healthy

Responses

Response samples

Content type
application/json
{
  • "status": "ok"
}

This website uses necessary cookies to ensure that our website is ideally usable. We do not use cookies that process personal data without your prior consent. Read our Cookie Policy