LinQR (2.0)

Download OpenAPI specification:Download

This is LinQR QR Code API documentation. This API allows you to generate custom, visually attractive QR Codes. The cloud infrastructure guarantees high availability and autoscalability of the service. You can generate hundreds of thousands of images this way and use them however you like.

We realize that your API use case may require custom solutions, and perhaps we lack functionality that is very important to you. In that case feel free to write an email to our support and tell us about it. We have repeatedly added new functions of our service directly after the requests of our users.

General remarks:

  • maximum request size is fixed at 32MB.
  • request timeout is fixed at 180 seconds.

Authentication

The LinQR offers two authentication schemes for accessing API. The first method is based on the OAuth2.0 protocol, where clients obtain client credentials for secure and direct access. Alternatively, you can authenticate through RapidAPI, a proxy service that handles authentication on behalf of the client. RapidAPI simplifies the process by acting as an intermediary between the client and LinQR's API.

To ensure optimal performance and efficiency, it is recommended to use the preferred OAuth2.0 scheme. This method provides secure and direct access to LinQR's API resources. While the alternative authentication scheme through RapidAPI is available, it may introduce additional latency or dependencies that could impact the overall speed and responsiveness of your API requests. Therefore, to maximize speed and reliability, it is advisable to utilize the direct authentication method provided by LinQR.

LinQR Gateway

The LinQR API implements OAuth 2.0's client credentials flow as its default authentication method. To utilize this secure approach, you need to register your application at the Console and grant it the necessary permissions. Depending on your requirements, you can create multiple applications with varying access levels or a single application with extensive permissions (scopes). However, please note that the requested permissions are subject to the limitations of your current subscription level.

Upon successful registration, you will receive a client_id and client_secret. These credentials will be essential in generating an access token, which will serve as your means of communication with LinQR Workers.

The client credentials flow adheres to a standard protocol, and various libraries implementing this method are available in different programming languages. By providing your client_id and client_secret, all the authentication magic happens transparently, allowing you to concentrate on utilizing LinQR API's functionality seamlessly.

With this authorization method, you can expect minimal response times and gain access to all the functionalities available within the LinQR API. Enjoy a secure and efficient experience while integrating LinQR into your applications.

Security Scheme Type: OAuth2
Flow type: clientCredentials
Token URL: https://api.linqr.app/oauth/token
Scopes:
  • textqrcode:create -

    Generate a QR Code that contains textual content, such as a URL or other text string.

  • anyqrcode:create -

    Generate a QR Code with content of any type, such as a vCard, map pin, or other specific formats available in LinQR.

  • autoqrcode:create -

    Generate a QR Code with content of type that is inferred from the API call payload.

  • batchqrcode:create -

    Generate multiple QR codes in a batch.

  • image:create -

    Upload new images to the LinQR cloud storage.

  • image:list -

    Retrieve a list of images that have been uploaded to the LinQR cloud storage.

  • image:delete -

    Delete images that have been previously uploaded to the LinQR cloud storage.

RapidAPI

The connection to LinQR can be made through a RapidAPI proxy. RapidAPI is a service that manages the use of API and keys while being an API load balancer. Access is granted on a subscription basis. LinQR subscriptions have different plans: BASIC, PRO, ULTRA and MEGA. They differ in the number of available functionalities and can be adjusted to the expected level of service usage. After registering at the RapidAPI, you can generate a key that will be used to authorize the client in the LinQR. More details on usage limits or pricing can be found directly on the LinQR listing at the RapidAPI Hub.

If you do not find a plan tailored to your needs in RapidAPI, contact us directly: we can prepare a custom subscription plan according to your needs.

Connect on RapidAPI

Security Scheme Type: API Key
Header parameter name: X-RapidAPI-Key

Single QR Code

Endpoints from the Single QR Code group allow you to generate one image containing a QR Code of any type per single query. Code specification for each endpoint in the group can be transfered in two ways:

  • classical POST request, which is used when all the data needed to generate the code is representable in the text form (Content-Type: application/json)
  • multipart POST request, which is used when in addition to the text representable data, binary data is sent, i.e. an image placed in the center of the QR Code (Content-Type: multipart/form-data)

In order to correctly encode the code payload, you have to choose the suitable endpoint or the /qrcode, which is able to automatically recognize a requested data type.

Text QR Code

This endpoint allows you to create a QR Code containing any text, in particular, an URL that may redirect the user to the website. After QR code is scanned, website will be displayed to the user.

Authorizations:
LinQR GatewayRapidAPI
Request Body schema:
required
data
required
string

data property allows you to specify the text stored in the QR Code.

object

image property allows you to set parameters of a custom image (e.g. your company logo, icon etc.) placed in the center of the generated QR Code.

object
Default: {"module":{"color":"#000","shape":"default"},"inner_eye":{"shape":"default"},"outer_eye":{"shape":"default"},"background":{}}

style property allows you to select the appearance parameters of the modules and eyes of the generated QR Code.

All color specifications can be defined via:

  • CSS3 name: Black, azure, ...
  • hex value: 0x000, #FFFFFF, 7fffd4, ...
  • RGB/RGBA strings: rgb(255, 255, 255), rgba(255, 255, 255, 0.5), ...
  • HSL strings: hsl(270, 60%, 70%), hsl(270, 60%, 70%, .5), ...

Color values can be obtained from any online color picker like developer.mozilla.org.

object

size property allows you to set the values that define the sizes of the generated QR Code.

object

output property allows you to specify the name and extension (type) of the file returned by the API

Responses

Request samples

Content type
{
  • "data": "string",
  • "image": {
    },
  • "style": {
    },
  • "size": {
    },
  • "output": {
    }
}

Response samples

Content type
application/json
{
  • "detail": "string"
}

Email QR Code

This endpoint allows the creation of a QR Code allowing the user to quickly send an email. The code contains an appropriately encoded message template. After scanning, the device starts the e-mail client with pre-filled specified fields.

Authorizations:
LinQR GatewayRapidAPI
Request Body schema:
required
required
object

data property allows you to specify the e-mail template stored in the QR Code.

object

image property allows you to set parameters of a custom image (e.g. your company logo, icon etc.) placed in the center of the generated QR Code.

object
Default: {"module":{"color":"#000","shape":"default"},"inner_eye":{"shape":"default"},"outer_eye":{"shape":"default"},"background":{}}

style property allows you to select the appearance parameters of the modules and eyes of the generated QR Code.

All color specifications can be defined via:

  • CSS3 name: Black, azure, ...
  • hex value: 0x000, #FFFFFF, 7fffd4, ...
  • RGB/RGBA strings: rgb(255, 255, 255), rgba(255, 255, 255, 0.5), ...
  • HSL strings: hsl(270, 60%, 70%), hsl(270, 60%, 70%, .5), ...

Color values can be obtained from any online color picker like developer.mozilla.org.

object

size property allows you to set the values that define the sizes of the generated QR Code.

object

output property allows you to specify the name and extension (type) of the file returned by the API

Responses

Request samples

Content type
{
  • "data": {
    },
  • "image": {
    },
  • "style": {
    },
  • "size": {
    },
  • "output": {
    }
}

Response samples

Content type
application/json
{
  • "detail": "string"
}

WiFi QR Code

This endpoint allows you to create a QR Code that allows user to quickly connect to a WiFi network. The code contains properly encoded network credentials. After scanning, the device can automatically connect to the network without having to enter the password manually.

Authorizations:
LinQR GatewayRapidAPI
Request Body schema:
required
required
object

data property allows you to specify specify the WiFi access point credentials stored in the QR Code.

object

image property allows you to set parameters of a custom image (e.g. your company logo, icon etc.) placed in the center of the generated QR Code.

object
Default: {"module":{"color":"#000","shape":"default"},"inner_eye":{"shape":"default"},"outer_eye":{"shape":"default"},"background":{}}

style property allows you to select the appearance parameters of the modules and eyes of the generated QR Code.

All color specifications can be defined via:

  • CSS3 name: Black, azure, ...
  • hex value: 0x000, #FFFFFF, 7fffd4, ...
  • RGB/RGBA strings: rgb(255, 255, 255), rgba(255, 255, 255, 0.5), ...
  • HSL strings: hsl(270, 60%, 70%), hsl(270, 60%, 70%, .5), ...

Color values can be obtained from any online color picker like developer.mozilla.org.

object

size property allows you to set the values that define the sizes of the generated QR Code.

object

output property allows you to specify the name and extension (type) of the file returned by the API

Responses

Request samples

Content type
{
  • "data": {
    },
  • "image": {
    },
  • "style": {
    },
  • "size": {
    },
  • "output": {
    }
}

Response samples

Content type
application/json
{
  • "detail": "string"
}

Contact QR Code

This endpoint allows you to create a QR Code that allows user to quickly add contact information to the phone book. The code contains an appropriately encoded electronic business card. After scanning, the device prompts to save the contact in the phone book.

Authorizations:
LinQR GatewayRapidAPI
Request Body schema:
required
required
VCardData (object) or MeCardData (object)
object

image property allows you to set parameters of a custom image (e.g. your company logo, icon etc.) placed in the center of the generated QR Code.

object
Default: {"module":{"color":"#000","shape":"default"},"inner_eye":{"shape":"default"},"outer_eye":{"shape":"default"},"background":{}}

style property allows you to select the appearance parameters of the modules and eyes of the generated QR Code.

All color specifications can be defined via:

  • CSS3 name: Black, azure, ...
  • hex value: 0x000, #FFFFFF, 7fffd4, ...
  • RGB/RGBA strings: rgb(255, 255, 255), rgba(255, 255, 255, 0.5), ...
  • HSL strings: hsl(270, 60%, 70%), hsl(270, 60%, 70%, .5), ...

Color values can be obtained from any online color picker like developer.mozilla.org.

object

size property allows you to set the values that define the sizes of the generated QR Code.

object

output property allows you to specify the name and extension (type) of the file returned by the API

Responses

Request samples

Content type
{
  • "data": {
    },
  • "image": {
    },
  • "style": {
    },
  • "size": {
    },
  • "output": {
    }
}

Response samples

Content type
application/json
{
  • "detail": "string"
}

Cryptocurrency payment QR Code

This endpoint allows you to create a QR Code that allows user to make a quick cryptocurrency transfer. The code contains appropriately encoded data for the payment. After scanning the code, the cryptocurrency wallet application asks user to perform the transfer without rewriting all necessary data.

Authorizations:
LinQR GatewayRapidAPI
Request Body schema:
required
required
object

data property allows you to specify cryptocurrency payment parameters.

object

image property allows you to set parameters of a custom image (e.g. your company logo, icon etc.) placed in the center of the generated QR Code.

object
Default: {"module":{"color":"#000","shape":"default"},"inner_eye":{"shape":"default"},"outer_eye":{"shape":"default"},"background":{}}

style property allows you to select the appearance parameters of the modules and eyes of the generated QR Code.

All color specifications can be defined via:

  • CSS3 name: Black, azure, ...
  • hex value: 0x000, #FFFFFF, 7fffd4, ...
  • RGB/RGBA strings: rgb(255, 255, 255), rgba(255, 255, 255, 0.5), ...
  • HSL strings: hsl(270, 60%, 70%), hsl(270, 60%, 70%, .5), ...

Color values can be obtained from any online color picker like developer.mozilla.org.

object

size property allows you to set the values that define the sizes of the generated QR Code.

object

output property allows you to specify the name and extension (type) of the file returned by the API

Responses

Request samples

Content type
{
  • "data": {
    },
  • "image": {
    },
  • "style": {
    },
  • "size": {
    },
  • "output": {
    }
}

Response samples

Content type
application/json
{
  • "detail": "string"
}

Telephone QR Code

This endpoint allows you to create a QR Code that allows user to make quick telephone call. The code contains appropriately encoded telephone number. After scanning the code, device dialer is invoked with prefilled phone number. To make a call, the user only needs to press the green phone key.

Authorizations:
LinQR GatewayRapidAPI
Request Body schema:
required
required
object

data property allows you to specify telephone number called.

object

image property allows you to set parameters of a custom image (e.g. your company logo, icon etc.) placed in the center of the generated QR Code.

object
Default: {"module":{"color":"#000","shape":"default"},"inner_eye":{"shape":"default"},"outer_eye":{"shape":"default"},"background":{}}

style property allows you to select the appearance parameters of the modules and eyes of the generated QR Code.

All color specifications can be defined via:

  • CSS3 name: Black, azure, ...
  • hex value: 0x000, #FFFFFF, 7fffd4, ...
  • RGB/RGBA strings: rgb(255, 255, 255), rgba(255, 255, 255, 0.5), ...
  • HSL strings: hsl(270, 60%, 70%), hsl(270, 60%, 70%, .5), ...

Color values can be obtained from any online color picker like developer.mozilla.org.

object

size property allows you to set the values that define the sizes of the generated QR Code.

object

output property allows you to specify the name and extension (type) of the file returned by the API

Responses

Request samples

Content type
{
  • "data": {
    },
  • "image": {
    },
  • "style": {
    },
  • "size": {
    },
  • "output": {
    }
}

Response samples

Content type
application/json
{
  • "detail": "string"
}

SMS QR Code

This endpoint allows you to create a QR Code that allows user to quickly send SMS. The code contains appropriately encoded recipient number and message template. After scanning the code, device message application is invoked with prefilled phone number and text, ready to be sent. To send a SMS, the user only needs to press Send button.

Authorizations:
LinQR GatewayRapidAPI
Request Body schema:
required
required
object

data property allows you to specify SMS template.

object

image property allows you to set parameters of a custom image (e.g. your company logo, icon etc.) placed in the center of the generated QR Code.

object
Default: {"module":{"color":"#000","shape":"default"},"inner_eye":{"shape":"default"},"outer_eye":{"shape":"default"},"background":{}}

style property allows you to select the appearance parameters of the modules and eyes of the generated QR Code.

All color specifications can be defined via:

  • CSS3 name: Black, azure, ...
  • hex value: 0x000, #FFFFFF, 7fffd4, ...
  • RGB/RGBA strings: rgb(255, 255, 255), rgba(255, 255, 255, 0.5), ...
  • HSL strings: hsl(270, 60%, 70%), hsl(270, 60%, 70%, .5), ...

Color values can be obtained from any online color picker like developer.mozilla.org.

object

size property allows you to set the values that define the sizes of the generated QR Code.

object

output property allows you to specify the name and extension (type) of the file returned by the API

Responses

Request samples

Content type
{
  • "data": {
    },
  • "image": {
    },
  • "style": {
    },
  • "size": {
    },
  • "output": {
    }
}

Response samples

Content type
application/json
{
  • "detail": "string"
}

Geolocation QR Code

This endpoint allows you to create a QR Code that allows to share location with the user. The code contains appropriately encoded geographic coordinates. After scanning the code, device maps application is invoked, pointing to the selected location (address).

Authorizations:
LinQR GatewayRapidAPI
Request Body schema:
required
required
object

data property allows you to specify geographic location (map pin).

object

image property allows you to set parameters of a custom image (e.g. your company logo, icon etc.) placed in the center of the generated QR Code.

object
Default: {"module":{"color":"#000","shape":"default"},"inner_eye":{"shape":"default"},"outer_eye":{"shape":"default"},"background":{}}

style property allows you to select the appearance parameters of the modules and eyes of the generated QR Code.

All color specifications can be defined via:

  • CSS3 name: Black, azure, ...
  • hex value: 0x000, #FFFFFF, 7fffd4, ...
  • RGB/RGBA strings: rgb(255, 255, 255), rgba(255, 255, 255, 0.5), ...
  • HSL strings: hsl(270, 60%, 70%), hsl(270, 60%, 70%, .5), ...

Color values can be obtained from any online color picker like developer.mozilla.org.

object

size property allows you to set the values that define the sizes of the generated QR Code.

object

output property allows you to specify the name and extension (type) of the file returned by the API

Responses

Request samples

Content type
{
  • "data": {
    },
  • "image": {
    },
  • "style": {
    },
  • "size": {
    },
  • "output": {
    }
}

Response samples

Content type
application/json
{
  • "detail": "string"
}

Arbitrary data type QR Code

This endpoint aggregates the functionality of all other endpoints in the group. The data type in the data field is recognized automatically and the data is encoded in an appropriate way.

Authorizations:
LinQR GatewayRapidAPI
Request Body schema:
required
required
TextData (string) or WiFiData (object) or EmailData (object) or ContactData (any) or CryptoPaymentData (object) or PhoneData (object) or SMSData (object) or GeolocationData (object)

data property allows you to specify the data stored in the QR Code.

object

image property allows you to set parameters of a custom image (e.g. your company logo, icon etc.) placed in the center of the generated QR Code.

object
Default: {"module":{"color":"#000","shape":"default"},"inner_eye":{"shape":"default"},"outer_eye":{"shape":"default"},"background":{}}

style property allows you to select the appearance parameters of the modules and eyes of the generated QR Code.

All color specifications can be defined via:

  • CSS3 name: Black, azure, ...
  • hex value: 0x000, #FFFFFF, 7fffd4, ...
  • RGB/RGBA strings: rgb(255, 255, 255), rgba(255, 255, 255, 0.5), ...
  • HSL strings: hsl(270, 60%, 70%), hsl(270, 60%, 70%, .5), ...

Color values can be obtained from any online color picker like developer.mozilla.org.

object

size property allows you to set the values that define the sizes of the generated QR Code.

object

output property allows you to specify the name and extension (type) of the file returned by the API

Responses

Request samples

Content type
{
  • "data": "string",
  • "image": {
    },
  • "style": {
    },
  • "size": {
    },
  • "output": {
    }
}

Response samples

Content type
application/json
{
  • "detail": "string"
}

Multiple QR Codes

Endpoints from the group of the Multiple QR Codes allow you to generate single file archive containing multiple specified codes. Endpoints accept any data type accepted by Single QR Code group endpoints and automatically detects its suitable encoding. Thanks to the caching mechanisms and single connection, generation of similar (in data or appearance parameters) code batches is significantly faster than sending single requests per single code.

QR Code Batch

This endpoint allows you to generate an archive containing multiple QR Codes with a single request. The endpoint response is the archive containing the generated image files and items.json file which is a record of the specifications of each of the files in the archive.

Authorizations:
LinQR GatewayRapidAPI
Request Body schema: application/json
required
required
Array of objects

items property allows you to specify an array of QR Codes to generate. The elements of the array must be valid objects analogous to those required for single code generation.

object
Default: {"filename":"qrcodes","format":"zip"}

output property allows you to specify the name and extension (type) of the file returned by the API

Responses

Request samples

Content type
application/json
{
  • "items": [
    ],
  • "output": {
    }
}

Response samples

Content type
application/json
{
  • "detail": [
    ]
}

Image management

Endpoints from the Image management group allow you to perform operations related to images hosted by the LinQR API infrastructure. Those images may be used as 'badge' placed in the center of generated QR Codes (refer to the image.uri parameter of generation endpoints). This method of hosting images placed on QR Codes is preferred in the case of a large number of queries and significantly reduces API response time due to the use of cache and quick data transfer between LinQR machines.

List all images

This endpoint allows you to list images hosted in the LinQR storage. If there are no images hosted, an empty array is returned.

Authorizations:
LinQR GatewayRapidAPI

Responses

Request samples

CURL *hnd = curl_easy_init();

curl_easy_setopt(hnd, CURLOPT_CUSTOMREQUEST, "GET");
curl_easy_setopt(hnd, CURLOPT_WRITEDATA, stdout);
curl_easy_setopt(hnd, CURLOPT_URL, "https://qrcode3.p.rapidapi.com/images");

struct curl_slist *headers = NULL;
headers = curl_slist_append(headers, "accept: application/json");
headers = curl_slist_append(headers, "X-RapidAPI-Key: YOUR_KEY");
curl_easy_setopt(hnd, CURLOPT_HTTPHEADER, headers);

CURLcode ret = curl_easy_perform(hnd);

Response samples

Content type
application/json
[
  • {
    }
]

Upload image

This endpoint allows you to upload images to LinQR storage. In the response, metadata of the submitted image is sent, including the identifier used by other endpoints from the Image management group for image identification.

Authorizations:
LinQR GatewayRapidAPI
Request Body schema: multipart/form-data
required
image
required
string <binary>

Binary file to be uploaded into LinQR storage. Maximum single file size is 1MiB (1,048,576 bytes).

Responses

Request samples

CURL *hnd = curl_easy_init();

curl_easy_setopt(hnd, CURLOPT_CUSTOMREQUEST, "POST");
curl_easy_setopt(hnd, CURLOPT_WRITEDATA, stdout);
curl_easy_setopt(hnd, CURLOPT_URL, "https://qrcode3.p.rapidapi.com/images");

struct curl_slist *headers = NULL;
headers = curl_slist_append(headers, "accept: application/json");
headers = curl_slist_append(headers, "content-type: multipart/form-data; boundary=---011000010111000001101001");
headers = curl_slist_append(headers, "X-RapidAPI-Key: YOUR_KEY");
curl_easy_setopt(hnd, CURLOPT_HTTPHEADER, headers);

curl_easy_setopt(hnd, CURLOPT_POSTFIELDS, "-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"image\"\r\n\r\n\"YOUR_FILE_CONTENT\"\r\n-----011000010111000001101001--\r\n");

CURLcode ret = curl_easy_perform(hnd);

Response samples

Content type
application/json
{
  • "id": "b550f00b-c9b2-4352-8769-679bc504cf42",
  • "source": "example.png",
  • "size": 13212,
  • "created": "2019-08-24T14:15:22Z"
}

Delete image

This endpoint allows you to delete images hosted in the LinQR storage.

Authorizations:
LinQR GatewayRapidAPI
path Parameters
id
required
string <uuid4>

Responses

Request samples

CURL *hnd = curl_easy_init();

curl_easy_setopt(hnd, CURLOPT_CUSTOMREQUEST, "DELETE");
curl_easy_setopt(hnd, CURLOPT_WRITEDATA, stdout);
curl_easy_setopt(hnd, CURLOPT_URL, "https://qrcode3.p.rapidapi.com/images/YOUR_IMAGE_ID");

struct curl_slist *headers = NULL;
headers = curl_slist_append(headers, "accept: application/json");
headers = curl_slist_append(headers, "X-RapidAPI-Key: YOUR_KEY");
curl_easy_setopt(hnd, CURLOPT_HTTPHEADER, headers);

CURLcode ret = curl_easy_perform(hnd);

Response samples

Content type
application/json
{
  • "detail": "string"
}

List image

This endpoint allows you to list single image hosted in the LinQR storage.

Authorizations:
LinQR GatewayRapidAPI
path Parameters
id
required
string <uuid4>

Responses

Request samples

CURL *hnd = curl_easy_init();

curl_easy_setopt(hnd, CURLOPT_CUSTOMREQUEST, "GET");
curl_easy_setopt(hnd, CURLOPT_WRITEDATA, stdout);
curl_easy_setopt(hnd, CURLOPT_URL, "https://qrcode3.p.rapidapi.com/images/YOUR_IMAGE_ID");

struct curl_slist *headers = NULL;
headers = curl_slist_append(headers, "accept: application/json");
headers = curl_slist_append(headers, "X-RapidAPI-Key: YOUR_KEY");
curl_easy_setopt(hnd, CURLOPT_HTTPHEADER, headers);

CURLcode ret = curl_easy_perform(hnd);

Response samples

Content type
application/json
{
  • "id": "b550f00b-c9b2-4352-8769-679bc504cf42",
  • "source": "example.png",
  • "size": 13212,
  • "created": "2019-08-24T14:15:22Z"
}