Love the ease of creating and managing your QR Codes within your preferred software platform? Learn how you can use our dynamic and static QR Code API and make Beaconstac talk easily with your favorite applications.
API expands to ‘Application Programming Interface’: it allows two standalone applications to talk to each other by functioning as an interface. With Beaconstac’s QR Code API (both dynamic and static), you can integrate your own application or website with ours, and set up QR Code workflows from the specific software application or dashboard you like to work from.
Beaconstac’s QR Code API solution can be integrated into your app to create both dynamic and static QR Codes, track QR Code scans, create QR Codes in bulk, add multiple users, and more.
This is applicable to ANY QR Code you create—regardless of the particular QR Code type or use case—be it vCard QR Codes/QR Digital Business Cards, custom-branded landing page QR Codes with logos, or simply bulk QR Code generation for inventory management and tracking.
NOTE: Beaconstac API is available to all users on the PRO plan and above.
More on Beaconstac’s QR Code API
Beaconstac’s API is organized around REST. Our API has predictable resource-oriented URLs, accepts form-encoded request bodies, returns JSON-encoded responses, and uses standard HTTP response codes, authentication, and verbs.
The Beaconstac API uses an API key to authenticate requests.
Your API key carries many privileges, so be sure to keep it secure! Do not share your API keys in publicly accessible areas such as GitHub, client-side code, and so forth.
NOTE: All API requests must be made over HTTPS. Calls made over plain HTTP will fail. API requests without authentication will also fail.
Should you wish to dive into more detail, view the full documentation for all of Beaconstac’s APIs here:
https://apidocs.beaconstac.com/.
The Beaconstac plan that you have subscribed to will determine the number of API requests you can make:
PLAN | RATE LIMIT | USAGE LIMIT |
Pro | 10
requests/second
| 250K
requests/month
|
Plus | 25 requests/second | 500K
requests/month
|
Business + | 100 requests/second | 2M
requests/month
|
1. Where can I find the API key on the Beaconstac dashboard?
Login to your account on the Beaconstac dashboard.
Find the API section on the dashboard navigation bar that’s on the left.
Copy your API key as well as Organization ID—this will be required for authenticating Beaconstac’s API.
Users need the Organization ID to have multi-user access management functionality in their Beaconstac plan. This is necessary to make organization-specific API requests based on the organizations you have specified in your account.
2. How do I authenticate Beaconstac API on my preferred software platform?
In your application or software tool of choice, add a plain text header field named Authorization. The contents of the header will be Token XXX where XXX is your API Key.
Here’s an example header:
curl -X "GET" "https://api.beaconstac.com/api/2.0/qrcodes/" -H "Authorization: Token Your.API.Key-HERE" -H "Content-Type: application/json"
Once this authentication is added to your app, you can start using Beaconstac API to set up custom QR Code workflows within your app itself.
3. Overview of the APIs supported by Beaconstac
API Type |
Action/Workflows supported |
|
Create QR Code | Create Dynamic QR Code | Create Static QR Code |
|
|
|
QR Code Miscellaneous |
|
|
Analytics |
|
|
Landing Page (Markdown Card) |
|
|
Feedback Form |
|
|
Webhook |
|
|
Place |
|
|
Bulk QR Codes |
|
|
Organization |
|
|
Users |
|
|
Media |
|
|
4. Understanding different Beaconstac API objects
QRCode objects allow you to perform actions on your QR Codes. You can create a QR Code, retrieve or update individual QR Codes, or a list of all your QR Codes.
Field | Type | Description |
id | integer | read only Unique identifier of the QR Code |
name | string | required The name of the QR Code |
view_limit | integer | Limit to the number of times the QR Code can be scanned |
domain | integer | Base domain for the QR Code URL qr.tapnscan.me: 1, qrcodes.pro: 2 Default: 2 |
location_enabled | boolean | Collect GPS analytics from user scanning the QR Code Default:false |
password | boolean | Password to view the contents of the QR Code |
fields_data | object | required if qr_type=1 Fields data for the QR Code |
attributes | Attributes | Attributes data for the QR Code |
qr_type | integer | required QR type (Static: 1, Dynamic: 2) Default: 2 |
organization | integer | required Id of the organization to which the QR Code belongs to |
place | integer | ID of the place where the QR Code is deployed Default:Default place in organization |
maintainer | integer | ID of the user that maintains the QR Code |
url | string | URL of the QR Code |
state | string | read only State of the QR Code (Active: A, Sleeping: S) Default: A |
place_data | list[object] | read only Place data associated with place ID. |
tags | list[integer] | List of associated tag IDs |
tag_data | list[object] | read only Tag data associated with attached tag IDs. |
meta | object | Metadata associated with the QR Code |
additional_params | object | Additional Params to add in the QR Code URL |
created | timestamp | read only Created timestamp of the QR Code |
updated | timestamp | read only Last updated timestamp of the QR Code |
heartbeat | timestamp | read only Timestamp when the QR Code was last detected |
campaign | Campaign | required if qr_type=2 Campaign object associated with the QR Code |
attributes object (these correspond to the design of the QR Code):
Field | Type | Description |
margin | string | Margin to be applied around QR Code Default: 15 |
dotScale | string | Size of each dot [0-1] Default: 0.35 |
backgroundImage | string | URL of background image |
backGroundColor | string | Background color in format #RRGGBB Default: #ffffff |
eyeFrameShape | string | Shape of QR Code eye-frame Default: square Options: square,circle,rounded,left-leaf, right-leaf |
eyeBallShape | string | Shape of QR Code eye-ball Default: square Options: square,circle,rounded,left-leaf,left-diamond,right-diamond |
eyeFrameColor | string | Eye Frame color in format #RRGGBB Default: #000000 |
eyeBallColor | string | Eye Ball color in format #RRGGBB Default: #000000 |
dataPattern | string | QR Code data pattern Default=square Options: square,circle,kite,left-diamond,right-diamond |
colorDark | string | Data Pattern color dark in format #RRGGBB Default: #000000 |
colorLight | string | Data Pattern color light in format #RRGGBB Default: #ffffff |
gradientType | string | QR Code gradient scheme Default: none Options: none,lineaar,radial |
frameStyle | string | QR Code frame Default: none Options: none,banner-top,box-top,box-bottom,banner-bottom,balloon-top,balloon-top |
frameColor | string | Frame color in format #RRGGBB Default: #000000 |
frameText | string | Text to be displayed in frame Default: SCAN ME |
logoImage | string | URL of logo image |
logoScale | string | Size of logo [0.1 - 0.6] Default: 0.15 |
logoCornerRadius | string | Radius of corners of logo Default: 8 |
logoMargin | string | Margin to be applied around logo image Default: 0.15 |
campaign object (these correspond to the campaign associated with dynamic QR Codes—not applicable to static QR Codes):
Field | Type | Description |
id | integer | read only Unique identifier of the Campaign |
name | string | read only Campaign title |
content_type | integer | required Campaign type |
custom_url | string | required if content_type is 1 Custom URL to redirect upon scanning the QR Code |
markdown_card | integer | required if content_type is 2 Markdown Card to display upon scanning the QR Code |
form | integer | required if content_type is 3 Feedback Form to display upon scanning the QR Code |
schedule | integer | required if content_type is 4 Time based campaign setting |
app_links | object | required if content_type is 5 OS based redirecting |
vcard_plus | object | required if content_type is 7 vCard to display upon scanning the QR Code |
social_media | object | required if content_type is 8 Sociaal media page links to display upon scanning the QR Code |
facebook_page | object | required if content_type is 9 Link the QR Code to facilitate engagement with your Facebook page |
coupon | object | required if content_type is 10 Coupon to display upon scanning the QR Code |
business_card | object | required if content_type is 11 Business Card to display upon scanning the QR Code |
object | required if content_type is 13 PDF to display upon scanning the QR Code | |
restaurant_menu | object | required if content_type is 14 Menu to display upon scanning the QR Code |
campaign_active | string | read only Current campaign status |
organization | string | read only Organization the object belongs to |
start_time | timestamp | Specify the time to begin the campaign |
end_time | timestamp | Specify the end time for the campaign |
created | timestamp | read only Created timestamp |
updated | timestamp | read only Last updated timestamp |
In addition to the above, we have more API objects that allow you to make varying requests across Beacontac and the software tools that you use. These include Organizations, BulkQRCode, LandingPage (Markdown Card), User, and more.
To dive into the details of the same, check out our API documentation here: https://apidocs.beaconstac.com/.
Read on for examples of API workflows that allow you to create static and dynamic QR Codes for different QR Code campaign types—or put simply—the specific use case you’re using QR Codes for. It could be a custom URL website QR, a landing page QR, a feedback QR, and so on.
We will look at examples for both kinds of QR Codes: dynamic QR Codes as well as static.
5. Example API Workflow: Creating Dynamic QR Codes
Dynamic QR Codes allow you to edit the encoded content, on the backend, even after they are deployed. They are also tracking-enabled—meaning that you get precise analytics pertaining to the user engagement that they’ve been able to garner.
The behavior of dynamic QR Codes is dependent on their campaign object. The following campaign types are supported for dynamic QR Codes:
Setting up API for creating dynamic QR Codes that direct to a custom URL.
Custom URL
The Custom URL campaign drives users to the specified URL once they scan the QR Code.
content_type : 1
Fields: custom_url
BODY Raw:
{
"name": "Custom URL",
"organization": ,
"qr_type": 2,
"campaign": {
"content_type": 1,
"custom_url": "https://www.beaconstac.com"
},
"location_enabled": false,
"attributes":{
"color":"#2595ff",
"colorDark":"#2595ff",
"margin":80,
"isVCard":false,
"frameText":"BEACONSTAC",
"logoScale":0.1992,
"frameColor":"#2595FF",
"frameStyle":"banner-bottom",
"logoMargin":10,
"dataPattern":"square",
"eyeBallShape":"circle",
"gradientType":"none",
"eyeFrameColor":"#2595FF",
"eyeFrameShape":"rounded"
}
}
#6 Example API Workflow: Creating Static QR Codes
Static QR Codes, as opposed to dynamic QR Codes, do not offer the flexibility to edit the content they link to on the backend once they’re created. They are also not tracking-enabled, meaning that you won’t be able to track scans and other forms of user engagement they receive.
However—for one-off use cases where the content encoded into the QR Code is unlikely to change or usage contexts where tracking is not that important, static QR Codes can be ideal.
Here are the static QR Code types supported by Beaconstac:
Setting up API for creating static QR Codes that direct to a specific website/URL.
BODY Raw
{
"name": "Static Website QR Code",
"organization": ,
"qr_type": 1,
"fields_data": {
"qr_type": 1,
"url": "https://www.beaconstac.com"
},
"attributes":{
"color":"#2595ff",
"colorDark":"#2595ff",
"margin":80,
"isVCard":false,
"frameText":"BEACONSTAC",
"logoImage":"https://d1bqobzsowu5wu.cloudfront.net/15406/36caec11f02d460aad0604fa26799c50",
"logoScale":0.1992,
"frameColor":"#2595FF",
"frameStyle":"banner-bottom",
"logoMargin":10,
"dataPattern":"square",
"eyeBallShape":"circle",
"gradientType":"none",
"eyeFrameColor":"#2595FF",
"eyeFrameShape":"rounded"
}
}
Apart from the workflows that we’ve discussed, Beaconstac API allows you integrate your applications with our dashboard for other QR Code processes as well.
These include pulling out analytics for your QR Code campaigns, bulk-generation of QR Codes, ensuring multi-user access management, uploading media assets for your QR designs as well as the linked content, and more.
Again, to learn more about these and dive deeper, check out our comprehensive API documentation: