Get started with QR Factory API

QR Factory API enables you to harness the power of QR code. A flexible, open, and globally accepted standard to quick and easy share information. The API provides endpoint for you to integrate into your solutions and more.

This section can help you get acquainted with the API.
Quick links:

About the QR Factory API

The QR Factory API can be used to programmatically create QR Code. The objective of the QR Factory API is to grown by adding additional levels of access for developers to be able to scale with their needs and to enhance user experience. Recently, we released the QR Factory API v1.0.0. The API includes a modern foundation, new and advanced features, and quick onboarding and access. The following three tabs explain the different versions and access levels of the QR Factory API, what's new with the latest version, and which QR Code you can create using the API.

Getting Access

Step one: Sign up for a RapidAPI account

Signing up for a RapidAPI account is quick and easy! Just click on the button below, login or create a new account, and you can start exploring and testing on the QR Code Factory API.

QR Code Factory on RapidAPI

When you subscribe to a plan, RapidAPI will provide you a set of credentials that you will use to authenticate all requests to the API.

Step two: Save your API's Key and Host and keep them secure

Once you have access and have subscribed to a plan, you will be able to find the following credentials within your subscription:

API Key and Host: You will use these to authenticate the request that require X-RapidAPI-Key and X-RapidAPI-Host HTTP Header.

Please note: Your keys and tokens are yours and yours only.

It is important that you store these credentials in your password management system or key vault when using them in your application.

Step three: Make your first request

What’s next? Let’s make your first request to the API!

We have guides, tutorials, exmaples, and code to help you get started. The following section will help you to start, but there are also other important resources page to help you.

Make your first request

API Guide

Accessing the QR Code Factory API requires a set of authentication credentials, also known as Key and Host, that you must pass with each request in the HTTP Header. These credentials are generated by RapidAPI and are required by the endpoint that you are using.

In addition to keys and host necessary to make API requests, you will also be enabled to access certain features depending on your Plan.

At this time, there are four different access Plans from which you can choose:

  • Basic plan
  • Pro plan
  • Ultra plan
  • Mega plan
To learn more about what each of these access levels provides, please visit the Pricing and Plans API page.

Endpoint

Authentication

The payload of your QR Code is never stored in any way during your request. The payload you send is sent via secured HTTPS, transformed in a QR Code of your choice and sent back as response, without any caching.

The way we ensure this data is secured for developers and users alike is through authentication.

API Keys Authentication

To connect the API to a project or application, you must have an API key to authenticate your request. Creating an app within RapidAPI generates an API key (X-RapidAPI-Key) specific to that application. You can view analytics based on the API calls you make using this app key.

Please note:

You must have an application on the RapidAPI Developer Dashboard to access an API key. By default, an application will be created when you sign up. If you delete the application you must re-create at least one application.

Performing a request

Now that you have subscribed to an API plan, from RapidAPI Endpoint tab you can test the API endpoint directly in the browser by changing the input for the endpoint. Once you make a request to the API by using the Test Endpoint button, you will also see the response directly in the browser.

Once you find an API you want to integrating into an application, simply switch back to the Request Snippet tab. Now, select the programing language your app is using and copy the code snippet right into your app.

See the examples below on how to use it in your implementation. Complete schema is available on Schema specification page.
* Some sections outside the scope of this example have been omitted

jQuery
cURL
Axios
C#
jQuery
cURL
Axios
C#

Roadmap

These are the key feature we're planning to add.
By the time being these are not fixed planned or scheduled ideas, but rather ideas that needed to be further explored, refined and validated from our Clients.
Let us know what you think of what we have in store for QR Code Factory.

  • Upload your images and just reference them to use as Background and Logo images.
  • Static QR Code: create your own QR that never changes, whereas you can change its value.
  • Any Custom Payloads you will suggest.

Custom Payload

Is possible to submit a request for a custom payload for your specific needs and use it in your API calls. The specification for the custom payload can be inherited from an existing Payload.
For example you can create a new Payload that inherit from the Text and, while keeping the existing fields such as message, add your own fields. The Custom Payload specification must as well describe how the payload will be managed by the QR rendered.

Warning

Do not use your Custom Payload before have contacted us to agree for a custom development, test, and release.

See the examples below on how to use it in your implementation. Complete schema is available on Schema specification page.
* Some sections outside the scope of this example have been omitted

Base Text
Custom Text
Base Text
Custom Text

Outputs

The API generates three different categories of output:

  • Images are common resources and they are best used when you don't need to scale them out of their original size.
  • SVG is a vector image format and is best used when you need to scale it on different sizes.
  • ASCII is a set of characters. You can use this code on specific devices (terminals) that don't support images or vectors.
Not all the Output options support advanced Features such as Background color, or Logo image.

Tip

If you have a special Output requirements, please contact us for further information.

QR Settings

The settings allows you to choose how the QR Code will be rendered.

Error Correction Capability

QR Code has error correction capability to restore data if the code is dirty or damaged. Four error correction levels are available for users to choose according to the operating environment. Raising this level improves error correction capability but also increases the amount of data QR Code size.


Accepted values:

  • L (approximately 7%)
  • M (approximately 15%)
  • Q (approximately 25%)
  • H (approximately 30%)

Error Correction Capability

Extended Channel Interpretation (ECI) is an extension to the communication protocol that is used to transmit data from a bar code reader to a host when a bar code symbol is scanned. It enables the application software to receive additional information about the intended interpretation of the message contained within the barcode symbol and even details about the scan itself.


Accepted values:

  • DEFAULT
  • ISO8859_1
  • ISO8859_2
  • UTF8

See the examples below on how to use it in your implementation. Complete schema is available on Schema specification page.
* Some sections outside the scope of this example have been omitted

Settings
Settings

Image Formats

This output option allow you to render the code into the most common image formats.
Images Output support all the Features.

  • Background image
  • Logo for Images

See the examples below on how to use it in your implementation. Complete schema is available on Schema specification page.
* Some sections outside the scope of this example have been omitted

PNG
JPEG
GIF
BMP
TGA
PNG
JPEG
GIF
BMP
TGA

SVG Format

This output option allow you to render the code into vector graphic image.
SVG Output support only the following Features.

  • Logo for SVG

See the examples below on how to use it in your implementation. Complete schema is available on Schema specification page.
* Some sections outside the scope of this example have been omitted

SVG
SVG

ASCII Format

This output option allow you to render the code into ASCII text.
ASCII Output does not support any colors nor any of the Features.

See the examples below on how to use it in your implementation. Complete schema is available on Schema specification page.
* Some sections outside the scope of this example have been omitted

ASCII
ASCII

Features

These Features are available only for selected Output formats.

Logo schema differ when used with Images or SVG. Please look at the following Schemas for more details.

Logo for Images capabilities
  • Automatic image type detection
  • Field embedding is evaluated only for SVG Logo
Logo for SVG capabilities
  • Need to specify the type of image for field imageType accepted values
    • PNG raster image
    • SVG vector image as the SVG output itself
  • Field embedding defines if the logo shall be natively embedded

The images must be included as reference to stored image, even if the image is a vector image (vector images are applicable only for Logo).
* There is a on ongoing plan to additionally allow image reference. More info here

See the examples below on how to use it in your implementation. Complete schema is available on Schema specification page.
* Some sections outside the scope of this example have been omitted

Background Image
Logo for Images
Logo for SVG
Background Image
Logo for Images
Logo for SVG

Payloads

QR code can only encode a text, but if this string has a special format, most 1  QR code scanners will perform a predefined action.
We implemented the payload objects. These are easy-to-use objects, which check your data for invalid inputs and create the fitting payload strings for you.

Note

Keep in mind, that all payload types stand and fall with the commitment between QR encoders and QR scanner apps. Special payload types aren't defined in the QR code standard (ISO/IEC 18004). Most of the QR code scanner apps are able to interpret the payload types described on this page. But in a real world application you should test your QR codes against the scanners your users will use.

Plain text

When to use it?

To share a simple text message

Notes

-

See the examples below on how to use it in your implementation. Complete schema is available on Schema specification page.
* Some sections outside the scope of this example have been omitted

Message
Message

Geo Location

When to use it?

To share a location. You can choose between the geo-format and Google Maps links.

Notes

To use the geo-format the QR scanner app must support this tag. Most scanners do so. But if you want to be 100% on the safe side, choose Google Maps format because this generates a Google Maps (web-)link which can be interpreted by nearly any QR code scanner.

See the examples below on how to use it in your implementation. Complete schema is available on Schema specification page.
* Some sections outside the scope of this example have been omitted

Geo Location
Geo Location

Calendar

When to use it?

To place an event to the user's calendar application.

Notes

The fields description and location are optional. To place an event to Apple users you should use ICAL instead of UNIVERSAL as encoding.

See the examples below on how to use it in your implementation. Complete schema is available on Schema specification page.
* Some sections outside the scope of this example have been omitted

Calendar
Calendar

Contact

When to use it?

To share contact data/business cards. A QR code with this payload type will add the contact data to the user's address book.

Notes

Supported formats are: vCard 2.1, vCard 3.0, vCard 4.0 and MeCard. Choose the format which fits your needs. The field addressOrder specifies in which format the address is rendered. The two options are:

  • Default is address format used in European countries and others.

    Name Surname
    Street Number
    ZIP, City
    Country

  • Reversed is address format used in North America countries and others.

    Name Surname
    Number Street
    City, ZIP
    Country

See the examples below on how to use it in your implementation. Complete schema is available on Schema specification page.
* Some sections outside the scope of this example have been omitted

Contact
Contact

WhatsApp Message

When to use it?

To share your WhatApp pre-composed WhatsApp messages. Once scanned, the QR code opens a WhatsApp chat with the given message.

Notes

When adding value to field number, WhatsApp will open with the message for the specified Contact. If the recipient number does not exist in your contact list, WhatsApp will show an error message.

See the examples below on how to use it in your implementation. Complete schema is available on Schema specification page.
* Some sections outside the scope of this example have been omitted

WA Message
WA Message to Contact
WA Message
WA Message to Contact

SMS

When to use it?

To compose a SMS message.

Notes

If you want to create the message including text or just let the QR code open the messaging app with the given phonenumber.

See the examples below on how to use it in your implementation. Complete schema is available on Schema specification page.
* Some sections outside the scope of this example have been omitted

SMS
SMS

WiFi

When to use it?

To share WiFi credentials. Good for meetings, house partys, and public spots.

Notes

WPA also includes not only WPA but also WPA2.
Widest compatibility when set escapeHexStrings to false, because if SSID/password are provided in HEX style ([A-F0-9] and will be escaped, the QR code may become unreadable by Apple devices.

See the examples below on how to use it in your implementation. Complete schema is available on Schema specification page.
* Some sections outside the scope of this example have been omitted

WiFi WPA/WPA2
WiFi No Password
WiFi WPA/WPA2
WiFi No Password

Bitcoin Address

When to use it?

To share Bitcoin addresses or initiate payments.

Notes

To share only the crypto currency address without any amount of coins, set the variable amount to null or remove it from the payload.

See the examples below on how to use it in your implementation. Complete schema is available on Schema specification page.
* Some sections outside the scope of this example have been omitted

Bitcoin Address
Bitcoin Address

Bitcoin Cash Address

When to use it?

To share Bitcoin Cash addresses or initiate payments.

Notes

To share only the crypto currency address without any amount of coins, set the variable amount to null or remove it from the payload.

See the examples below on how to use it in your implementation. Complete schema is available on Schema specification page.
* Some sections outside the scope of this example have been omitted

Bitcoin Cash Address
Bitcoin Cash Address

Litecoin Address

When to use it?

To share Litecoin addresses or initiate payments.

Notes

To share only the crypto currency address without any amount of coins, set the variable amount to null or remove it from the payload.

See the examples below on how to use it in your implementation. Complete schema is available on Schema specification page.
* Some sections outside the scope of this example have been omitted

Litecoin Address
Litecoin Address

Monero Transaction

When to use it?

It opens the user's Monero client/app and prefills its dialog with the given data. Either to pass only the Monero address or to add complete payment/transaction details.

Notes

-

See the examples below on how to use it in your implementation. Complete schema is available on Schema specification page.
* Some sections outside the scope of this example have been omitted

Monero Transaction
Monero Transaction

Girocode Transaction

When to use it?

To share payment contact information and/or bank transfer data. The Girocode is an European standard and supports SEPA payments.

Notes

As per official specification QR codes with Girocode payloads have to be generated with ECC-Level M (15%).

See the examples below on how to use it in your implementation. Complete schema is available on Schema specification page.
* Some sections outside the scope of this example have been omitted

Girocode Transaction
Girocode Transaction

Swiss Pay Rechnung

When to use it?

To open a banking app for bank transfers. Mostly common in Switzerland, it will be part of the new QR-Rechnung (former Einzahlungsschein).

Notes

  • Official specification: Swiss QR codes have to be generated with ECC-Level M (15%).

  • Official specification: a Swiss cross logo is automatically drawn on the code with a size of ~14%.

See the examples below on how to use it in your implementation. Complete schema is available on Schema specification page.
* Some sections outside the scope of this example have been omitted

Swiss Pay Rechnung
Swiss Pay Rechnung

Images storage

Accessing the Images Storage API requires a set of authentication credentials, also known as Key and Host, that you must pass with each request in the HTTP Header. These credentials are generated by RapidAPI and are required by the endpoint that you are using.

In addition to keys and host necessary to make API requests, you will also be enabled to access certain features depending on your Plan.

At this time, there are four different access Plans from which you can choose:

  • Basic plan
  • Pro plan
  • Ultra plan
  • Mega plan
To learn more about what each of these access levels provides, please visit the Pricing and Plans API page.

Upload

Performing a request

Upload one or more images via a PUT request in multipart/form-data

When you upload more than one file at the time, if you reach your upload limit, the remaining fields will be marked as Failed and the whole operation as Partially successful.

See the examples below on how to use it in your implementation. Complete schema is available on Schema specification page.
* Some sections outside the scope of this example have been omitted

Request
Response
Request
Response

Download

Download one image via a get request specifying the file name in the query parameter name

If you try to download a non existing file, your response will be a 404 Not Found.

See the examples below on how to use it in your implementation. Complete schema is available on Schema specification page.
* Some sections outside the scope of this example have been omitted

Request
Request

List

List files associated with your account via a GET request without parameters.

See the examples below on how to use it in your implementation. Complete schema is available on Schema specification page.
* Some sections outside the scope of this example have been omitted

Request
Response
Request
Response

Delete

Delete files in your storage sending a DELETE request, with the name of the file specified in the query parameter name

You can specify more than one file by chaining more than one name in the request query.

When you delete more than one file at the time, if the file does not exist it will be marked as Failed and the whole operation as Partially successful.

Warning

Files are deleted permanently, it will not be possible to recover them after being deleted.

See the examples below on how to use it in your implementation. Complete schema is available on Schema specification page.
* Some sections outside the scope of this example have been omitted

Request
Response
Request
Response