×
QR Code API

QR Code API (2.0.0)

Download OpenAPI specification:Download

This is the API documentation summary of the QR Planet API.

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

API v2 versus API v1

It is recommended to use the v2 API for all new projects.

However, not all endpoints are already available in v2.

Therefore, if you need endpoints that are not available yet please use the v1 version for that area in the meantime.

Examples of areas that are not yet in the v2 API:

  • GS1 QR codes
  • Custom variables

You can find the v1 API docs in the QR Code Portal in the menu API.

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'

Code Samples

You can find code samples for the endpoints for a couple of programming languages (Python, PHP, Go) as well as a cURL statement. If your programming language is not listed you can usually easily use a tool like ChatGPT 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
  • 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 (string) or Folder (null) (Folder)

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:YOURDOMAIN.COM:XXXXXXX:YYYYYYY' \
  '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:YOURDOMAIN.COM:XXXXXXX:YYYYYYY' \
  '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:YOURDOMAIN.COM:XXXXXXX:YYYYYYY' \
  '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:YOURDOMAIN.COM:XXXXXXX:YYYYYYY' \
  '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.

Responses

Request samples

Content type
application/json
{}

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, M, Q, H) - 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:YOURDOMAIN.COM:XXXXXXX:YYYYYYY' \
  '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:YOURDOMAIN.COM:XXXXXXX:YYYYYYY' \
  '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

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

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

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

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

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

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

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": 0,
  • "lng": 0,
  • "radius": 0,
  • "address": "string",
  • "target_url": "https://test.de",
  • "description": "string"
}

Response samples

Content type
application/json
{
  • "code": "easter-promotion-2",
  • "id": "4711",
  • "lat": 0,
  • "lng": 0,
  • "radius": 0,
  • "address": "string",
  • "target_url": "https://test.de",
  • "description": "string"
}

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

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": "string",
  • "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

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

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
{}

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

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

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

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

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

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

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

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": 0,
  • "lng": 0,
  • "radius": 0,
  • "address": "string",
  • "target_url": "https://test.de",
  • "description": "string"
}

Response samples

Content type
application/json
{
  • "code": "easter-promotion-2",
  • "id": "4711",
  • "lat": 0,
  • "lng": 0,
  • "radius": 0,
  • "address": "string",
  • "target_url": "https://test.de",
  • "description": "string"
}

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

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": "string",
  • "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

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:YOURDOMAIN.COM:XXXXXXX:YYYYYYY' \
  'https://api.qrplanet.com/api/v2/coupons'

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:YOURDOMAIN.COM:XXXXXXX:YYYYYYY' \
  '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:YOURDOMAIN.COM:XXXXXXX:YYYYYYY' \
  'https://api.qrplanet.com/api/v2/coupons/easter-promotion-coupon/redemptions'

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, M, Q, H) - 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:YOURDOMAIN.COM:XXXXXXX:YYYYYYY' \
  '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:YOURDOMAIN.COM:XXXXXXX:YYYYYYY' \
  '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:YOURDOMAIN.COM:XXXXXXX:YYYYYYY' \
  'https://api.qrplanet.com/api/v2/gs1-digital-link/913e39f179f883d36c2eb6f99ac20b99/rules'

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:YOURDOMAIN.COM:XXXXXXX:YYYYYYY' \
  -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"
}

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).

  • List templates (paginated): get all templates available in your account with page/size
  • Get template by id: fetch a single template with metadata and a sample preview URL

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:YOURDOMAIN.COM:XXXXXXX:YYYYYYY' \
  '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

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

Response samples

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

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

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

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

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

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:YOURDOMAIN.COM:XXXXXXX:YYYYYYY' \
  '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:YOURDOMAIN.COM:XXXXXXX:YYYYYYY' \
  'https://api.qrplanet.com/api/v2/coupons/easter-promotion-coupon/redemptions'

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

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

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

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:YOURDOMAIN.COM:XXXXXXX:YYYYYYY' \
  '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:YOURDOMAIN.COM:XXXXXXX:YYYYYYY' \
  '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:YOURDOMAIN.COM:XXXXXXX:YYYYYYY' \
  '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