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
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
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
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
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
SVG Format
This output option allow you to render the code into vector graphic image.
SVG Output support only the following 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 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
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
Link to website
When to use it?
To share links and websites URLs
Notes
If you a domain (without http:// or https://) is given, it will be prefixed url with http://.
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
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
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
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
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
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
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
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 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
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
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
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
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
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
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
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
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