Create a QR code
curl --request POST \
--url https://biq.li/api/v1/qr \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"title": "<string>",
"payload": {
"long_url": "<string>",
"text": "<string>",
"phone": "<string>",
"message": "<string>",
"ssid": "<string>",
"password": "<string>",
"first_name": "<string>",
"last_name": "<string>",
"organization": "<string>",
"fax": "<string>",
"email": "jsmith@example.com",
"subject": "<string>",
"website": "<string>",
"socials": {
"youtube": "<string>",
"x": "<string>",
"instagram": "<string>",
"tiktok": "<string>",
"linkedin": "<string>"
},
"title": "<string>",
"description": "<string>",
"location": "<string>",
"url": "<string>",
"start": "2023-11-07T05:31:56Z",
"end": "2023-11-07T05:31:56Z",
"app_store_url": "<string>",
"google_play_url": "<string>",
"fallback_url": "<string>"
},
"qr_config": {
"matrixColor": "<string>",
"eyeFrameColor": "<string>",
"eyeColor": "<string>",
"applyGradientToAll": true,
"applyEyeFrameGradientToEye": true,
"showLogo": true
},
"utm": "<string>",
"activates_at": "2023-11-07T05:31:56Z",
"expires_at": "2023-11-07T05:31:56Z",
"geo_rules": [
{
"key": "<string>",
"value": "<string>"
}
],
"device_rules": [
{
"key": "<string>",
"value": "<string>"
}
],
"platform_rules": [
{
"key": "<string>",
"value": "<string>"
}
],
"exp_clicks_rule": {},
"tag_ids": [
"<string>"
]
}
'import requests
url = "https://biq.li/api/v1/qr"
payload = {
"title": "<string>",
"payload": {
"long_url": "<string>",
"text": "<string>",
"phone": "<string>",
"message": "<string>",
"ssid": "<string>",
"password": "<string>",
"first_name": "<string>",
"last_name": "<string>",
"organization": "<string>",
"fax": "<string>",
"email": "jsmith@example.com",
"subject": "<string>",
"website": "<string>",
"socials": {
"youtube": "<string>",
"x": "<string>",
"instagram": "<string>",
"tiktok": "<string>",
"linkedin": "<string>"
},
"title": "<string>",
"description": "<string>",
"location": "<string>",
"url": "<string>",
"start": "2023-11-07T05:31:56Z",
"end": "2023-11-07T05:31:56Z",
"app_store_url": "<string>",
"google_play_url": "<string>",
"fallback_url": "<string>"
},
"qr_config": {
"matrixColor": "<string>",
"eyeFrameColor": "<string>",
"eyeColor": "<string>",
"applyGradientToAll": True,
"applyEyeFrameGradientToEye": True,
"showLogo": True
},
"utm": "<string>",
"activates_at": "2023-11-07T05:31:56Z",
"expires_at": "2023-11-07T05:31:56Z",
"geo_rules": [
{
"key": "<string>",
"value": "<string>"
}
],
"device_rules": [
{
"key": "<string>",
"value": "<string>"
}
],
"platform_rules": [
{
"key": "<string>",
"value": "<string>"
}
],
"exp_clicks_rule": {},
"tag_ids": ["<string>"]
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
title: '<string>',
payload: {
long_url: '<string>',
text: '<string>',
phone: '<string>',
message: '<string>',
ssid: '<string>',
password: '<string>',
first_name: '<string>',
last_name: '<string>',
organization: '<string>',
fax: '<string>',
email: 'jsmith@example.com',
subject: '<string>',
website: '<string>',
socials: {
youtube: '<string>',
x: '<string>',
instagram: '<string>',
tiktok: '<string>',
linkedin: '<string>'
},
title: '<string>',
description: '<string>',
location: '<string>',
url: '<string>',
start: '2023-11-07T05:31:56Z',
end: '2023-11-07T05:31:56Z',
app_store_url: '<string>',
google_play_url: '<string>',
fallback_url: '<string>'
},
qr_config: {
matrixColor: '<string>',
eyeFrameColor: '<string>',
eyeColor: '<string>',
applyGradientToAll: true,
applyEyeFrameGradientToEye: true,
showLogo: true
},
utm: '<string>',
activates_at: '2023-11-07T05:31:56Z',
expires_at: '2023-11-07T05:31:56Z',
geo_rules: [{key: '<string>', value: '<string>'}],
device_rules: [{key: '<string>', value: '<string>'}],
platform_rules: [{key: '<string>', value: '<string>'}],
exp_clicks_rule: {},
tag_ids: ['<string>']
})
};
fetch('https://biq.li/api/v1/qr', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://biq.li/api/v1/qr",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'title' => '<string>',
'payload' => [
'long_url' => '<string>',
'text' => '<string>',
'phone' => '<string>',
'message' => '<string>',
'ssid' => '<string>',
'password' => '<string>',
'first_name' => '<string>',
'last_name' => '<string>',
'organization' => '<string>',
'fax' => '<string>',
'email' => 'jsmith@example.com',
'subject' => '<string>',
'website' => '<string>',
'socials' => [
'youtube' => '<string>',
'x' => '<string>',
'instagram' => '<string>',
'tiktok' => '<string>',
'linkedin' => '<string>'
],
'title' => '<string>',
'description' => '<string>',
'location' => '<string>',
'url' => '<string>',
'start' => '2023-11-07T05:31:56Z',
'end' => '2023-11-07T05:31:56Z',
'app_store_url' => '<string>',
'google_play_url' => '<string>',
'fallback_url' => '<string>'
],
'qr_config' => [
'matrixColor' => '<string>',
'eyeFrameColor' => '<string>',
'eyeColor' => '<string>',
'applyGradientToAll' => true,
'applyEyeFrameGradientToEye' => true,
'showLogo' => true
],
'utm' => '<string>',
'activates_at' => '2023-11-07T05:31:56Z',
'expires_at' => '2023-11-07T05:31:56Z',
'geo_rules' => [
[
'key' => '<string>',
'value' => '<string>'
]
],
'device_rules' => [
[
'key' => '<string>',
'value' => '<string>'
]
],
'platform_rules' => [
[
'key' => '<string>',
'value' => '<string>'
]
],
'exp_clicks_rule' => [
],
'tag_ids' => [
'<string>'
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://biq.li/api/v1/qr"
payload := strings.NewReader("{\n \"title\": \"<string>\",\n \"payload\": {\n \"long_url\": \"<string>\",\n \"text\": \"<string>\",\n \"phone\": \"<string>\",\n \"message\": \"<string>\",\n \"ssid\": \"<string>\",\n \"password\": \"<string>\",\n \"first_name\": \"<string>\",\n \"last_name\": \"<string>\",\n \"organization\": \"<string>\",\n \"fax\": \"<string>\",\n \"email\": \"jsmith@example.com\",\n \"subject\": \"<string>\",\n \"website\": \"<string>\",\n \"socials\": {\n \"youtube\": \"<string>\",\n \"x\": \"<string>\",\n \"instagram\": \"<string>\",\n \"tiktok\": \"<string>\",\n \"linkedin\": \"<string>\"\n },\n \"title\": \"<string>\",\n \"description\": \"<string>\",\n \"location\": \"<string>\",\n \"url\": \"<string>\",\n \"start\": \"2023-11-07T05:31:56Z\",\n \"end\": \"2023-11-07T05:31:56Z\",\n \"app_store_url\": \"<string>\",\n \"google_play_url\": \"<string>\",\n \"fallback_url\": \"<string>\"\n },\n \"qr_config\": {\n \"matrixColor\": \"<string>\",\n \"eyeFrameColor\": \"<string>\",\n \"eyeColor\": \"<string>\",\n \"applyGradientToAll\": true,\n \"applyEyeFrameGradientToEye\": true,\n \"showLogo\": true\n },\n \"utm\": \"<string>\",\n \"activates_at\": \"2023-11-07T05:31:56Z\",\n \"expires_at\": \"2023-11-07T05:31:56Z\",\n \"geo_rules\": [\n {\n \"key\": \"<string>\",\n \"value\": \"<string>\"\n }\n ],\n \"device_rules\": [\n {\n \"key\": \"<string>\",\n \"value\": \"<string>\"\n }\n ],\n \"platform_rules\": [\n {\n \"key\": \"<string>\",\n \"value\": \"<string>\"\n }\n ],\n \"exp_clicks_rule\": {},\n \"tag_ids\": [\n \"<string>\"\n ]\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://biq.li/api/v1/qr")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"title\": \"<string>\",\n \"payload\": {\n \"long_url\": \"<string>\",\n \"text\": \"<string>\",\n \"phone\": \"<string>\",\n \"message\": \"<string>\",\n \"ssid\": \"<string>\",\n \"password\": \"<string>\",\n \"first_name\": \"<string>\",\n \"last_name\": \"<string>\",\n \"organization\": \"<string>\",\n \"fax\": \"<string>\",\n \"email\": \"jsmith@example.com\",\n \"subject\": \"<string>\",\n \"website\": \"<string>\",\n \"socials\": {\n \"youtube\": \"<string>\",\n \"x\": \"<string>\",\n \"instagram\": \"<string>\",\n \"tiktok\": \"<string>\",\n \"linkedin\": \"<string>\"\n },\n \"title\": \"<string>\",\n \"description\": \"<string>\",\n \"location\": \"<string>\",\n \"url\": \"<string>\",\n \"start\": \"2023-11-07T05:31:56Z\",\n \"end\": \"2023-11-07T05:31:56Z\",\n \"app_store_url\": \"<string>\",\n \"google_play_url\": \"<string>\",\n \"fallback_url\": \"<string>\"\n },\n \"qr_config\": {\n \"matrixColor\": \"<string>\",\n \"eyeFrameColor\": \"<string>\",\n \"eyeColor\": \"<string>\",\n \"applyGradientToAll\": true,\n \"applyEyeFrameGradientToEye\": true,\n \"showLogo\": true\n },\n \"utm\": \"<string>\",\n \"activates_at\": \"2023-11-07T05:31:56Z\",\n \"expires_at\": \"2023-11-07T05:31:56Z\",\n \"geo_rules\": [\n {\n \"key\": \"<string>\",\n \"value\": \"<string>\"\n }\n ],\n \"device_rules\": [\n {\n \"key\": \"<string>\",\n \"value\": \"<string>\"\n }\n ],\n \"platform_rules\": [\n {\n \"key\": \"<string>\",\n \"value\": \"<string>\"\n }\n ],\n \"exp_clicks_rule\": {},\n \"tag_ids\": [\n \"<string>\"\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://biq.li/api/v1/qr")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"title\": \"<string>\",\n \"payload\": {\n \"long_url\": \"<string>\",\n \"text\": \"<string>\",\n \"phone\": \"<string>\",\n \"message\": \"<string>\",\n \"ssid\": \"<string>\",\n \"password\": \"<string>\",\n \"first_name\": \"<string>\",\n \"last_name\": \"<string>\",\n \"organization\": \"<string>\",\n \"fax\": \"<string>\",\n \"email\": \"jsmith@example.com\",\n \"subject\": \"<string>\",\n \"website\": \"<string>\",\n \"socials\": {\n \"youtube\": \"<string>\",\n \"x\": \"<string>\",\n \"instagram\": \"<string>\",\n \"tiktok\": \"<string>\",\n \"linkedin\": \"<string>\"\n },\n \"title\": \"<string>\",\n \"description\": \"<string>\",\n \"location\": \"<string>\",\n \"url\": \"<string>\",\n \"start\": \"2023-11-07T05:31:56Z\",\n \"end\": \"2023-11-07T05:31:56Z\",\n \"app_store_url\": \"<string>\",\n \"google_play_url\": \"<string>\",\n \"fallback_url\": \"<string>\"\n },\n \"qr_config\": {\n \"matrixColor\": \"<string>\",\n \"eyeFrameColor\": \"<string>\",\n \"eyeColor\": \"<string>\",\n \"applyGradientToAll\": true,\n \"applyEyeFrameGradientToEye\": true,\n \"showLogo\": true\n },\n \"utm\": \"<string>\",\n \"activates_at\": \"2023-11-07T05:31:56Z\",\n \"expires_at\": \"2023-11-07T05:31:56Z\",\n \"geo_rules\": [\n {\n \"key\": \"<string>\",\n \"value\": \"<string>\"\n }\n ],\n \"device_rules\": [\n {\n \"key\": \"<string>\",\n \"value\": \"<string>\"\n }\n ],\n \"platform_rules\": [\n {\n \"key\": \"<string>\",\n \"value\": \"<string>\"\n }\n ],\n \"exp_clicks_rule\": {},\n \"tag_ids\": [\n \"<string>\"\n ]\n}"
response = http.request(request)
puts response.read_body{
"qr_code": {
"id": "<string>",
"type": "static",
"content_type": "text",
"title": "<string>",
"payload": {
"long_url": "<string>",
"text": "<string>",
"phone": "<string>",
"message": "<string>",
"ssid": "<string>",
"encryption": "none",
"password": "<string>",
"first_name": "<string>",
"last_name": "<string>",
"organization": "<string>",
"fax": "<string>",
"email": "jsmith@example.com",
"subject": "<string>",
"website": "<string>",
"socials": {
"youtube": "<string>",
"x": "<string>",
"instagram": "<string>",
"tiktok": "<string>",
"linkedin": "<string>"
},
"title": "<string>",
"description": "<string>",
"location": "<string>",
"url": "<string>",
"start": "2023-11-07T05:31:56Z",
"end": "2023-11-07T05:31:56Z",
"app_store_url": "<string>",
"google_play_url": "<string>",
"fallback_url": "<string>"
},
"scan_value": "<string>",
"qr_config": {
"matrixColor": "<string>",
"eyeFrameColor": "<string>",
"eyeColor": "<string>",
"matrixColorMode": "flat",
"matrixGradient": {
"colorOne": "#214687",
"colorTwo": "#44C8DE",
"angle": "0deg",
"midpoint": 50
},
"eyeFrameColorMode": "flat",
"eyeFrameGradient": {
"colorOne": "#214687",
"colorTwo": "#44C8DE",
"angle": "0deg",
"midpoint": 50
},
"eyeColorMode": "flat",
"eyeGradient": {
"colorOne": "#214687",
"colorTwo": "#44C8DE",
"angle": "0deg",
"midpoint": 50
},
"applyGradientToAll": true,
"applyEyeFrameGradientToEye": true,
"matrixStyle": "square",
"eyeFrameStyle": "square",
"eyeStyle": "square",
"showLogo": true
},
"geo_rules": [
{
"key": "<string>",
"value": "<string>"
}
],
"device_rules": [
{
"key": "<string>",
"value": "<string>"
}
],
"platform_rules": [
{
"key": "<string>",
"value": "<string>"
}
],
"tag_ids": [
"<string>"
],
"clicks_count": 1,
"safety_status": "clear",
"utm": "<string>",
"activates_at": "2023-11-07T05:31:56Z",
"expires_at": "2023-11-07T05:31:56Z",
"exp_clicks_rule": {},
"clicked_at": "2023-11-07T05:31:56Z",
"created_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z"
},
"status": "success"
}{
"error": {
"code": "invalid_token",
"message": "<string>",
"details": {}
},
"request_id": "<string>"
}{
"error": {
"code": "invalid_token",
"message": "<string>",
"details": {}
},
"request_id": "<string>"
}{
"error": {
"code": "invalid_token",
"message": "<string>",
"details": {}
},
"request_id": "<string>"
}{
"error": {
"code": "invalid_token",
"message": "<string>",
"details": {}
},
"request_id": "<string>"
}{
"error": {
"code": "invalid_token",
"message": "<string>",
"details": {}
},
"request_id": "<string>"
}QR codes
Create a QR code
Create a standalone static or dynamic QR code with a validated design.
POST
/
v1
/
qr
Create a QR code
curl --request POST \
--url https://biq.li/api/v1/qr \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"title": "<string>",
"payload": {
"long_url": "<string>",
"text": "<string>",
"phone": "<string>",
"message": "<string>",
"ssid": "<string>",
"password": "<string>",
"first_name": "<string>",
"last_name": "<string>",
"organization": "<string>",
"fax": "<string>",
"email": "jsmith@example.com",
"subject": "<string>",
"website": "<string>",
"socials": {
"youtube": "<string>",
"x": "<string>",
"instagram": "<string>",
"tiktok": "<string>",
"linkedin": "<string>"
},
"title": "<string>",
"description": "<string>",
"location": "<string>",
"url": "<string>",
"start": "2023-11-07T05:31:56Z",
"end": "2023-11-07T05:31:56Z",
"app_store_url": "<string>",
"google_play_url": "<string>",
"fallback_url": "<string>"
},
"qr_config": {
"matrixColor": "<string>",
"eyeFrameColor": "<string>",
"eyeColor": "<string>",
"applyGradientToAll": true,
"applyEyeFrameGradientToEye": true,
"showLogo": true
},
"utm": "<string>",
"activates_at": "2023-11-07T05:31:56Z",
"expires_at": "2023-11-07T05:31:56Z",
"geo_rules": [
{
"key": "<string>",
"value": "<string>"
}
],
"device_rules": [
{
"key": "<string>",
"value": "<string>"
}
],
"platform_rules": [
{
"key": "<string>",
"value": "<string>"
}
],
"exp_clicks_rule": {},
"tag_ids": [
"<string>"
]
}
'import requests
url = "https://biq.li/api/v1/qr"
payload = {
"title": "<string>",
"payload": {
"long_url": "<string>",
"text": "<string>",
"phone": "<string>",
"message": "<string>",
"ssid": "<string>",
"password": "<string>",
"first_name": "<string>",
"last_name": "<string>",
"organization": "<string>",
"fax": "<string>",
"email": "jsmith@example.com",
"subject": "<string>",
"website": "<string>",
"socials": {
"youtube": "<string>",
"x": "<string>",
"instagram": "<string>",
"tiktok": "<string>",
"linkedin": "<string>"
},
"title": "<string>",
"description": "<string>",
"location": "<string>",
"url": "<string>",
"start": "2023-11-07T05:31:56Z",
"end": "2023-11-07T05:31:56Z",
"app_store_url": "<string>",
"google_play_url": "<string>",
"fallback_url": "<string>"
},
"qr_config": {
"matrixColor": "<string>",
"eyeFrameColor": "<string>",
"eyeColor": "<string>",
"applyGradientToAll": True,
"applyEyeFrameGradientToEye": True,
"showLogo": True
},
"utm": "<string>",
"activates_at": "2023-11-07T05:31:56Z",
"expires_at": "2023-11-07T05:31:56Z",
"geo_rules": [
{
"key": "<string>",
"value": "<string>"
}
],
"device_rules": [
{
"key": "<string>",
"value": "<string>"
}
],
"platform_rules": [
{
"key": "<string>",
"value": "<string>"
}
],
"exp_clicks_rule": {},
"tag_ids": ["<string>"]
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
title: '<string>',
payload: {
long_url: '<string>',
text: '<string>',
phone: '<string>',
message: '<string>',
ssid: '<string>',
password: '<string>',
first_name: '<string>',
last_name: '<string>',
organization: '<string>',
fax: '<string>',
email: 'jsmith@example.com',
subject: '<string>',
website: '<string>',
socials: {
youtube: '<string>',
x: '<string>',
instagram: '<string>',
tiktok: '<string>',
linkedin: '<string>'
},
title: '<string>',
description: '<string>',
location: '<string>',
url: '<string>',
start: '2023-11-07T05:31:56Z',
end: '2023-11-07T05:31:56Z',
app_store_url: '<string>',
google_play_url: '<string>',
fallback_url: '<string>'
},
qr_config: {
matrixColor: '<string>',
eyeFrameColor: '<string>',
eyeColor: '<string>',
applyGradientToAll: true,
applyEyeFrameGradientToEye: true,
showLogo: true
},
utm: '<string>',
activates_at: '2023-11-07T05:31:56Z',
expires_at: '2023-11-07T05:31:56Z',
geo_rules: [{key: '<string>', value: '<string>'}],
device_rules: [{key: '<string>', value: '<string>'}],
platform_rules: [{key: '<string>', value: '<string>'}],
exp_clicks_rule: {},
tag_ids: ['<string>']
})
};
fetch('https://biq.li/api/v1/qr', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://biq.li/api/v1/qr",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'title' => '<string>',
'payload' => [
'long_url' => '<string>',
'text' => '<string>',
'phone' => '<string>',
'message' => '<string>',
'ssid' => '<string>',
'password' => '<string>',
'first_name' => '<string>',
'last_name' => '<string>',
'organization' => '<string>',
'fax' => '<string>',
'email' => 'jsmith@example.com',
'subject' => '<string>',
'website' => '<string>',
'socials' => [
'youtube' => '<string>',
'x' => '<string>',
'instagram' => '<string>',
'tiktok' => '<string>',
'linkedin' => '<string>'
],
'title' => '<string>',
'description' => '<string>',
'location' => '<string>',
'url' => '<string>',
'start' => '2023-11-07T05:31:56Z',
'end' => '2023-11-07T05:31:56Z',
'app_store_url' => '<string>',
'google_play_url' => '<string>',
'fallback_url' => '<string>'
],
'qr_config' => [
'matrixColor' => '<string>',
'eyeFrameColor' => '<string>',
'eyeColor' => '<string>',
'applyGradientToAll' => true,
'applyEyeFrameGradientToEye' => true,
'showLogo' => true
],
'utm' => '<string>',
'activates_at' => '2023-11-07T05:31:56Z',
'expires_at' => '2023-11-07T05:31:56Z',
'geo_rules' => [
[
'key' => '<string>',
'value' => '<string>'
]
],
'device_rules' => [
[
'key' => '<string>',
'value' => '<string>'
]
],
'platform_rules' => [
[
'key' => '<string>',
'value' => '<string>'
]
],
'exp_clicks_rule' => [
],
'tag_ids' => [
'<string>'
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://biq.li/api/v1/qr"
payload := strings.NewReader("{\n \"title\": \"<string>\",\n \"payload\": {\n \"long_url\": \"<string>\",\n \"text\": \"<string>\",\n \"phone\": \"<string>\",\n \"message\": \"<string>\",\n \"ssid\": \"<string>\",\n \"password\": \"<string>\",\n \"first_name\": \"<string>\",\n \"last_name\": \"<string>\",\n \"organization\": \"<string>\",\n \"fax\": \"<string>\",\n \"email\": \"jsmith@example.com\",\n \"subject\": \"<string>\",\n \"website\": \"<string>\",\n \"socials\": {\n \"youtube\": \"<string>\",\n \"x\": \"<string>\",\n \"instagram\": \"<string>\",\n \"tiktok\": \"<string>\",\n \"linkedin\": \"<string>\"\n },\n \"title\": \"<string>\",\n \"description\": \"<string>\",\n \"location\": \"<string>\",\n \"url\": \"<string>\",\n \"start\": \"2023-11-07T05:31:56Z\",\n \"end\": \"2023-11-07T05:31:56Z\",\n \"app_store_url\": \"<string>\",\n \"google_play_url\": \"<string>\",\n \"fallback_url\": \"<string>\"\n },\n \"qr_config\": {\n \"matrixColor\": \"<string>\",\n \"eyeFrameColor\": \"<string>\",\n \"eyeColor\": \"<string>\",\n \"applyGradientToAll\": true,\n \"applyEyeFrameGradientToEye\": true,\n \"showLogo\": true\n },\n \"utm\": \"<string>\",\n \"activates_at\": \"2023-11-07T05:31:56Z\",\n \"expires_at\": \"2023-11-07T05:31:56Z\",\n \"geo_rules\": [\n {\n \"key\": \"<string>\",\n \"value\": \"<string>\"\n }\n ],\n \"device_rules\": [\n {\n \"key\": \"<string>\",\n \"value\": \"<string>\"\n }\n ],\n \"platform_rules\": [\n {\n \"key\": \"<string>\",\n \"value\": \"<string>\"\n }\n ],\n \"exp_clicks_rule\": {},\n \"tag_ids\": [\n \"<string>\"\n ]\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://biq.li/api/v1/qr")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"title\": \"<string>\",\n \"payload\": {\n \"long_url\": \"<string>\",\n \"text\": \"<string>\",\n \"phone\": \"<string>\",\n \"message\": \"<string>\",\n \"ssid\": \"<string>\",\n \"password\": \"<string>\",\n \"first_name\": \"<string>\",\n \"last_name\": \"<string>\",\n \"organization\": \"<string>\",\n \"fax\": \"<string>\",\n \"email\": \"jsmith@example.com\",\n \"subject\": \"<string>\",\n \"website\": \"<string>\",\n \"socials\": {\n \"youtube\": \"<string>\",\n \"x\": \"<string>\",\n \"instagram\": \"<string>\",\n \"tiktok\": \"<string>\",\n \"linkedin\": \"<string>\"\n },\n \"title\": \"<string>\",\n \"description\": \"<string>\",\n \"location\": \"<string>\",\n \"url\": \"<string>\",\n \"start\": \"2023-11-07T05:31:56Z\",\n \"end\": \"2023-11-07T05:31:56Z\",\n \"app_store_url\": \"<string>\",\n \"google_play_url\": \"<string>\",\n \"fallback_url\": \"<string>\"\n },\n \"qr_config\": {\n \"matrixColor\": \"<string>\",\n \"eyeFrameColor\": \"<string>\",\n \"eyeColor\": \"<string>\",\n \"applyGradientToAll\": true,\n \"applyEyeFrameGradientToEye\": true,\n \"showLogo\": true\n },\n \"utm\": \"<string>\",\n \"activates_at\": \"2023-11-07T05:31:56Z\",\n \"expires_at\": \"2023-11-07T05:31:56Z\",\n \"geo_rules\": [\n {\n \"key\": \"<string>\",\n \"value\": \"<string>\"\n }\n ],\n \"device_rules\": [\n {\n \"key\": \"<string>\",\n \"value\": \"<string>\"\n }\n ],\n \"platform_rules\": [\n {\n \"key\": \"<string>\",\n \"value\": \"<string>\"\n }\n ],\n \"exp_clicks_rule\": {},\n \"tag_ids\": [\n \"<string>\"\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://biq.li/api/v1/qr")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"title\": \"<string>\",\n \"payload\": {\n \"long_url\": \"<string>\",\n \"text\": \"<string>\",\n \"phone\": \"<string>\",\n \"message\": \"<string>\",\n \"ssid\": \"<string>\",\n \"password\": \"<string>\",\n \"first_name\": \"<string>\",\n \"last_name\": \"<string>\",\n \"organization\": \"<string>\",\n \"fax\": \"<string>\",\n \"email\": \"jsmith@example.com\",\n \"subject\": \"<string>\",\n \"website\": \"<string>\",\n \"socials\": {\n \"youtube\": \"<string>\",\n \"x\": \"<string>\",\n \"instagram\": \"<string>\",\n \"tiktok\": \"<string>\",\n \"linkedin\": \"<string>\"\n },\n \"title\": \"<string>\",\n \"description\": \"<string>\",\n \"location\": \"<string>\",\n \"url\": \"<string>\",\n \"start\": \"2023-11-07T05:31:56Z\",\n \"end\": \"2023-11-07T05:31:56Z\",\n \"app_store_url\": \"<string>\",\n \"google_play_url\": \"<string>\",\n \"fallback_url\": \"<string>\"\n },\n \"qr_config\": {\n \"matrixColor\": \"<string>\",\n \"eyeFrameColor\": \"<string>\",\n \"eyeColor\": \"<string>\",\n \"applyGradientToAll\": true,\n \"applyEyeFrameGradientToEye\": true,\n \"showLogo\": true\n },\n \"utm\": \"<string>\",\n \"activates_at\": \"2023-11-07T05:31:56Z\",\n \"expires_at\": \"2023-11-07T05:31:56Z\",\n \"geo_rules\": [\n {\n \"key\": \"<string>\",\n \"value\": \"<string>\"\n }\n ],\n \"device_rules\": [\n {\n \"key\": \"<string>\",\n \"value\": \"<string>\"\n }\n ],\n \"platform_rules\": [\n {\n \"key\": \"<string>\",\n \"value\": \"<string>\"\n }\n ],\n \"exp_clicks_rule\": {},\n \"tag_ids\": [\n \"<string>\"\n ]\n}"
response = http.request(request)
puts response.read_body{
"qr_code": {
"id": "<string>",
"type": "static",
"content_type": "text",
"title": "<string>",
"payload": {
"long_url": "<string>",
"text": "<string>",
"phone": "<string>",
"message": "<string>",
"ssid": "<string>",
"encryption": "none",
"password": "<string>",
"first_name": "<string>",
"last_name": "<string>",
"organization": "<string>",
"fax": "<string>",
"email": "jsmith@example.com",
"subject": "<string>",
"website": "<string>",
"socials": {
"youtube": "<string>",
"x": "<string>",
"instagram": "<string>",
"tiktok": "<string>",
"linkedin": "<string>"
},
"title": "<string>",
"description": "<string>",
"location": "<string>",
"url": "<string>",
"start": "2023-11-07T05:31:56Z",
"end": "2023-11-07T05:31:56Z",
"app_store_url": "<string>",
"google_play_url": "<string>",
"fallback_url": "<string>"
},
"scan_value": "<string>",
"qr_config": {
"matrixColor": "<string>",
"eyeFrameColor": "<string>",
"eyeColor": "<string>",
"matrixColorMode": "flat",
"matrixGradient": {
"colorOne": "#214687",
"colorTwo": "#44C8DE",
"angle": "0deg",
"midpoint": 50
},
"eyeFrameColorMode": "flat",
"eyeFrameGradient": {
"colorOne": "#214687",
"colorTwo": "#44C8DE",
"angle": "0deg",
"midpoint": 50
},
"eyeColorMode": "flat",
"eyeGradient": {
"colorOne": "#214687",
"colorTwo": "#44C8DE",
"angle": "0deg",
"midpoint": 50
},
"applyGradientToAll": true,
"applyEyeFrameGradientToEye": true,
"matrixStyle": "square",
"eyeFrameStyle": "square",
"eyeStyle": "square",
"showLogo": true
},
"geo_rules": [
{
"key": "<string>",
"value": "<string>"
}
],
"device_rules": [
{
"key": "<string>",
"value": "<string>"
}
],
"platform_rules": [
{
"key": "<string>",
"value": "<string>"
}
],
"tag_ids": [
"<string>"
],
"clicks_count": 1,
"safety_status": "clear",
"utm": "<string>",
"activates_at": "2023-11-07T05:31:56Z",
"expires_at": "2023-11-07T05:31:56Z",
"exp_clicks_rule": {},
"clicked_at": "2023-11-07T05:31:56Z",
"created_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z"
},
"status": "success"
}{
"error": {
"code": "invalid_token",
"message": "<string>",
"details": {}
},
"request_id": "<string>"
}{
"error": {
"code": "invalid_token",
"message": "<string>",
"details": {}
},
"request_id": "<string>"
}{
"error": {
"code": "invalid_token",
"message": "<string>",
"details": {}
},
"request_id": "<string>"
}{
"error": {
"code": "invalid_token",
"message": "<string>",
"details": {}
},
"request_id": "<string>"
}{
"error": {
"code": "invalid_token",
"message": "<string>",
"details": {}
},
"request_id": "<string>"
}Create a QR code in the workspace bound to your API key. You do not send a workspace ID.
The vCard
Authentication and permissions
POST /v1/qr requires QR codes: Write (qr_codes.create). A non-empty tag_ids array also requires Tags: Read (tags.view).
Authorization: Bearer biqli_your_workspace_api_key
Accept: application/json
Content-Type: application/json
Minimal dynamic link
curl --request POST \
--url https://biq.li/api/v1/qr \
--header 'Authorization: Bearer biqli_your_workspace_api_key' \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--data '{
"type": "dynamic",
"content_type": "link",
"title": "Product QR",
"payload": {
"long_url": "https://example.com/product"
}
}'
type, content_type, title, and payload are required. A dynamic QR encodes a stable Biqli tracking URL, so you can update its destination later. A static QR directly encodes its content and cannot use dynamic routing features.
Supported content
| Type | content_type | Payload |
|---|---|---|
| Static | text | text is required, maximum 300 characters. |
| Static | sms | phone is required; message is optional, maximum 160 characters. |
| Static | wifi | ssid is required. encryption is none, WEP, WPA, WPA2, or WPA3; secured networks require password. |
| Static | vcard | Supply at least one contact field: first_name, last_name, organization, phone, fax, email, website, or a supported social handle. |
| Static | event | title and start are required. Optional fields are end, description, location, and url; end cannot precede start. |
| Dynamic | link | long_url is required. |
| Dynamic | email | email is required; subject and message are optional. |
| Dynamic | phone | phone is required. |
| Dynamic | sms | phone is required; message is optional. |
| Dynamic | vcard | Uses the same contact fields as static vCard. |
| Dynamic | application | Supply at least one of app_store_url, google_play_url, or fallback_url. |
| Dynamic | whatsapp | phone is required; message is optional. |
socials object accepts youtube, x, instagram, tiktok, and linkedin. The public API does not upload vCard avatars.
Optional dynamic behavior
| Field | Applies to |
|---|---|
activates_at, expires_at | All dynamic QR codes. Use ISO 8601 timestamps. |
exp_clicks_rule | All dynamic QR codes. key is the maximum scan count and value is an optional redirect URL. |
utm | Dynamic link, application, and whatsapp. Send an encoded query string such as utm_source=poster&utm_campaign=launch. |
geo_rules, device_rules, platform_rules | Dynamic link and application. Each item has key and destination value. |
tag_ids | Static and dynamic QR codes. Send workspace biq_tag_... IDs. |
Styling
Send the optionalqr_config object to control matrix, eye-frame, and eye styles, flat colors, gradients, gradient inheritance, and the default Biqli logo. See Style a QR code for every field and precedence rule.
{
"qr_config": {
"matrixStyle": "dots",
"matrixColorMode": "gradient",
"matrixGradient": {
"colorOne": "#214687",
"colorTwo": "#44C8DE",
"angle": "45deg",
"midpoint": 50
},
"applyGradientToAll": true,
"eyeFrameStyle": "rounded-square",
"eyeStyle": "circle",
"showLogo": true
}
}
Response
Success returns201 Created with a complete qr_code resource and a biq_qr_... ID. scan_value contains the directly encoded value for static QR codes or the stable Biqli URL for dynamic QR codes.
Validation failures return 422 validation_error. Unsafe destinations use the standard URL-safety response. Quota or plan restrictions return 403; hiding the default logo without the required plan returns upgrade_required.
Shared API behavior
Authentication is workspace-scoped; see Authentication. Errors use the standard envelope and request IDs described in Errors, and requests are subject to Rate limits.Authorizations
A workspace API key beginning with biqli_.
Body
application/json
Available options:
static, dynamic Available options:
text, link, email, phone, sms, wifi, vcard, event, application, whatsapp Maximum string length:
255Fields must match content_type. See Create a QR code for required combinations.
Show child attributes
Show child attributes
Public QR design. applyGradientToAll gives the matrix gradient precedence over both eye sections. Otherwise applyEyeFrameGradientToEye gives the eye-frame gradient precedence over the eye center. Custom logos are not supported.
Show child attributes
Show child attributes
Maximum string length:
2000Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Maximum array length:
100
