AT-QR API Documentation
Introduction
The AT-QR API allows developers to generate, manage, track, and analyze QR codes programmatically. This documentation provides details on available endpoints, required parameters, and response formats.
Authentication
All API requests require authentication via an API key and user ID passed as GET parameters:
api_key
- Your unique API keyuser_id
- Your user ID
These parameters must be included in every request. Only users with 'business' or 'enterprise' roles can access the API.
Base URL
All endpoints are accessed via:
https://at-qr.com/api.php
Endpoints
Generate QR Code
GET /api.php?action=getQR
Generates a new QR code with the specified parameters.
Parameters
Parameter | Required | Description |
---|---|---|
action | Yes | Must be set to "getQR" |
qr_option | No | Type of QR code ("static" or dynamic) |
options | Yes | Type of data encoded in QR (e.g., "url", "text", etc.) |
data | Yes | The data to encode in the QR code |
custom_color | No | Custom color for QR code (hex format, e.g., "%23000000" for black) |
textAbove | No | Text to display above the QR code |
scans_allowed | No | Number of allowed scans (default: unlimited) |
logo | No | Logo to embed in the QR code |
Example Request
https://at-qr.com/api.php?action=getQR&qr_option=static&user_id=2&options=url&custom_color=%23000000&data=https://example.com&api_key=YOUR_API_KEY&textAbove=Example
Response
200 Success{ "status": "success", "message": "QR Code Created successfully.", "data": { "id": 123, "user_id": 2, "qr_type": "url", "qr_data": "https://example.com", "scans_allowed": "UNLIMITED", "qr_image_path": "https://at-qr.com/qr/qr_123.png", "ip": "192.168.1.1", "created_at": "2023-06-15 14:30:00" } }
Search QR Codes
GET /api.php?action=searchQR
Retrieves a list of QR codes matching search criteria.
Parameters
Parameter | Required | Description |
---|---|---|
action | Yes | Must be set to "searchQR" |
search_term | No | Term to search in QR code data |
sort_term | No | Sorting option ("date_desc", "date_asc", "scans_left_desc", "scans_used_desc") |
offset | No | Pagination offset (default: 0) |
limit | No | Number of results per page (default: 10) |
Example Request
https://at-qr.com/api.php?action=searchQR&user_id=2&api_key=YOUR_API_KEY&search_term=example&sort_term=date_desc&limit=5
Response
200 Success{ "status": "success", "message": "QR codes retrieved successfully.", "data": [ { "id": 123, "qr_image_path": "https://at-qr.com/qr/qr_123.png", "qr_type": "url", "qr_data": "https://example.com", "scans_allowed": "UNLIMITED", "scans_used": 15, "scans_left": "UNLIMITED", "created_at": "2023-06-15 14:30:00" }, ... ] }
Edit QR Code
GET /api.php?action=editQR
Updates an existing QR code with new parameters. Note: Only dynamic QR codes can be edited.
Parameters
Parameter | Required | Description |
---|---|---|
action | Yes | Must be set to "editQR" |
qr_id | Yes | ID of the QR code to edit |
options | Yes | Type of data encoded in QR (e.g., "url", "text", etc.) |
data | Yes | The new data to encode in the QR code |
custom_color | No | Custom color for QR code (hex format) |
textAbove | No | Text to display above the QR code |
scans_allowed | No | Number of allowed scans (default: unlimited) |
logo | No | Logo to embed in the QR code |
qr_option | No | Type of QR code ("static" or dynamic) |
Example Request
https://at-qr.com/api.php?action=editQR&qr_id=123&user_id=2&options=url&data=https://newexample.com&api_key=YOUR_API_KEY
Response
200 Success{ "status": "success", "message": "QR Code Edited successfully.", "data": { "id": 123, "user_id": 2, "qr_type": "url", "qr_data": "https://newexample.com", "scans_allowed": "UNLIMITED", "qr_image_path": "https://at-qr.com/qr/qr_123.png", "ip": "192.168.1.1", "created_at": "2023-06-15 14:30:00" } }
Delete QR Code
GET /api.php?action=deleteQR
Deletes an existing QR code.
Parameters
Parameter | Required | Description |
---|---|---|
action | Yes | Must be set to "deleteQR" |
qr_id | Yes | ID of the QR code to delete |
Example Request
https://at-qr.com/api.php?action=deleteQR&qr_id=123&user_id=2&api_key=YOUR_API_KEY
Response
200 Success{ "status": "success", "message": "QR code deleted successfully." }
QR Analytics
GET /api.php?action=qrAnalytics
Retrieves analytics data for a specific QR code.
Parameters
Parameter | Required | Description |
---|---|---|
action | Yes | Must be set to "qrAnalytics" |
qr_id | Yes | ID of the QR code to get analytics for |
Example Request
https://at-qr.com/api.php?action=qrAnalytics&qr_id=123&user_id=2&api_key=YOUR_API_KEY
Response
200 Success{ "totalScans": 150, "uniqueScanners": 120, "deviceType": "Mobile: 100 | Desktop: 50", "location": "New York, US (50 scans), London, UK (30 scans)", "timeReports": "14h (25 scans), 10h (20 scans)", "osBreakdown": { "Android": 60, "iOS": 40, "Windows": 30, "MacOS": 20 }, "browserBreakdown": { "Chrome": 80, "Safari": 40, "Firefox": 20, "Edge": 10 }, "botDetection": "5.33% suspected bot traffic", "duplicateScanStatus": "Low" }
JavaScript Sample Connection Code
// Generate QR Code
async function generateQRCode() {
const apiUrl = 'https://at-qr.com/api.php';
const params = new URLSearchParams({
action: 'getQR',
qr_option: 'static',
user_id: '2',
options: 'url',
custom_color: '#000000',
data: 'https://example.com',
api_key: 'c9f89dd51e96edbf52cfe04dc9c278dc',
textAbove: 'Example QR',
scans_allowed: 'unlimited'
});
try {
const response = await fetch(`${apiUrl}?${params}`);
const data = await response.json();
console.log('QR Code Generated:', data);
return data;
} catch (error) {
console.error('Error generating QR code:', error);
throw error;
}
}
// Search QR Codes
async function searchQRCodes() {
const apiUrl = 'https://at-qr.com/api.php';
const params = new URLSearchParams({
action: 'searchQR',
user_id: '2',
api_key: 'c9f89dd51e96edbf52cfe04dc9c278dc',
search_term: 'example',
sort_term: 'date_desc',
offset: '0',
limit: '10'
});
try {
const response = await fetch(`${apiUrl}?${params}`);
const data = await response.json();
console.log('QR Codes Found:', data);
return data;
} catch (error) {
console.error('Error searching QR codes:', error);
throw error;
}
}
// Get QR Analytics
async function getQRAnalytics(qrId) {
const apiUrl = 'https://at-qr.com/api.php';
const params = new URLSearchParams({
action: 'qrAnalytics',
user_id: '2',
api_key: 'c9f89dd51e96edbf52cfe04dc9c278dc',
qr_id: qrId
});
try {
const response = await fetch(`${apiUrl}?${params}`);
const data = await response.json();
console.log('QR Analytics:', data);
return data;
} catch (error) {
console.error('Error fetching QR analytics:', error);
throw error;
}
}
// Example usage
generateQRCode().then(qrData => {
// Handle QR code data
return searchQRCodes();
}).then(searchResults => {
// Handle search results
if (searchResults.data.length > 0) {
return getQRAnalytics(searchResults.data[0].id);
}
}).catch(error => {
// Handle error
});
Python Sample Connection Code
import requests
def generate_qr_code():
api_url = "https://at-qr.com/api.php"
params = {
"action": "getQR",
"qr_option": "static",
"user_id": "2",
"options": "url",
"custom_color": "#000000",
"data": "https://example.com",
"api_key": "c9f89dd51e96edbf52cfe04dc9c278dc",
"textAbove": "Example QR",
"scans_allowed": "unlimited"
}
try:
response = requests.get(api_url, params=params)
response.raise_for_status()
data = response.json()
print("QR Code Generated:", data)
return data
except requests.exceptions.RequestException as error:
print("Error generating QR code:", error)
raise
def search_qr_codes():
api_url = "https://at-qr.com/api.php"
params = {
"action": "searchQR",
"user_id": "2",
"api_key": "c9f89dd51e96edbf52cfe04dc9c278dc",
"search_term": "example",
"sort_term": "date_desc",
"offset": "0",
"limit": "10"
}
try:
response = requests.get(api_url, params=params)
response.raise_for_status()
data = response.json()
print("QR Codes Found:", data)
return data
except requests.exceptions.RequestException as error:
print("Error searching QR codes:", error)
raise
def get_qr_analytics(qr_id):
api_url = "https://at-qr.com/api.php"
params = {
"action": "qrAnalytics",
"user_id": "2",
"api_key": "c9f89dd51e96edbf52cfe04dc9c278dc",
"qr_id": qr_id
}
try:
response = requests.get(api_url, params=params)
response.raise_for_status()
data = response.json()
print("QR Analytics:", data)
return data
except requests.exceptions.RequestException as error:
print("Error fetching QR analytics:", error)
raise
# Example usage
if __name__ == "__main__":
qr_data = generate_qr_code()
search_results = search_qr_codes()
if search_results.get('data'):
analytics = get_qr_analytics(search_results['data'][0]['id'])
PHP Sample Connection Code
function generateQRCode() {
$apiUrl = 'https://at-qr.com/api.php';
$params = [
'action' => 'getQR',
'qr_option' => 'static',
'user_id' => '2',
'options' => 'url',
'custom_color' => '#000000',
'data' => 'https://example.com',
'api_key' => 'c9f89dd51e96edbf52cfe04dc9c278dc',
'textAbove' => 'Example QR',
'scans_allowed' => 'unlimited'
];
$url = $apiUrl . '?' . http_build_query($params);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
$response = curl_exec($ch);
if (curl_errno($ch)) {
throw new Exception('cURL Error: ' . curl_error($ch));
}
curl_close($ch);
$data = json_decode($response, true);
if (json_last_error() !== JSON_ERROR_NONE) {
throw new Exception('JSON decode error: ' . json_last_error_msg());
}
echo "QR Code Generated: " . print_r($data, true);
return $data;
}
function searchQRCodes() {
$apiUrl = 'https://at-qr.com/api.php';
$params = [
'action' => 'searchQR',
'user_id' => '2',
'api_key' => 'c9f89dd51e96edbf52cfe04dc9c278dc',
'search_term' => 'example',
'sort_term' => 'date_desc',
'offset' => '0',
'limit' => '10'
];
$url = $apiUrl . '?' . http_build_query($params);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
$response = curl_exec($ch);
if (curl_errno($ch)) {
throw new Exception('cURL Error: ' . curl_error($ch));
}
curl_close($ch);
$data = json_decode($response, true);
if (json_last_error() !== JSON_ERROR_NONE) {
throw new Exception('JSON decode error: ' . json_last_error_msg());
}
echo "QR Codes Found: " . print_r($data, true);
return $data;
}
function getQRAnalytics($qrId) {
$apiUrl = 'https://at-qr.com/api.php';
$params = [
'action' => 'qrAnalytics',
'user_id' => '2',
'api_key' => 'c9f89dd51e96edbf52cfe04dc9c278dc',
'qr_id' => $qrId
];
$url = $apiUrl . '?' . http_build_query($params);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
$response = curl_exec($ch);
if (curl_errno($ch)) {
throw new Exception('cURL Error: ' . curl_error($ch));
}
curl_close($ch);
$data = json_decode($response, true);
if (json_last_error() !== JSON_ERROR_NONE) {
throw new Exception('JSON decode error: ' . json_last_error_msg());
}
echo "QR Analytics: " . print_r($data, true);
return $data;
}
// Example usage
try {
$qrData = generateQRCode();
$searchResults = searchQRCodes();
if (!empty($searchResults['data'])) {
$analytics = getQRAnalytics($searchResults['data'][0]['id']);
}
} catch (Exception $e) {
echo "Error: " . $e->getMessage();
}
Java Sample Connection Code
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
import org.json.JSONObject;
public class QRCodeAPI {
public static JSONObject generateQRCode() throws Exception {
String apiUrl = "https://at-qr.com/api.php";
String params = "action=getQR&qr_option=static&user_id=2&options=url" +
"&custom_color=%23000000&data=https://example.com" +
"&api_key=c9f89dd51e96edbf52cfe04dc9c278dc" +
"&textAbove=Example+QR&scans_allowed=unlimited";
URL url = new URL(apiUrl + "?" + params);
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setRequestMethod("GET");
int responseCode = conn.getResponseCode();
if (responseCode != 200) {
throw new RuntimeException("HTTP error code: " + responseCode);
}
BufferedReader in = new BufferedReader(new InputStreamReader(conn.getInputStream()));
String inputLine;
StringBuilder response = new StringBuilder();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
JSONObject jsonResponse = new JSONObject(response.toString());
System.out.println("QR Code Generated: " + jsonResponse.toString());
return jsonResponse;
}
public static JSONObject searchQRCodes() throws Exception {
String apiUrl = "https://at-qr.com/api.php";
String params = "action=searchQR&user_id=2" +
"&api_key=c9f89dd51e96edbf52cfe04dc9c278dc" +
"&search_term=example&sort_term=date_desc" +
"&offset=0&limit=10";
URL url = new URL(apiUrl + "?" + params);
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setRequestMethod("GET");
int responseCode = conn.getResponseCode();
if (responseCode != 200) {
throw new RuntimeException("HTTP error code: " + responseCode);
}
BufferedReader in = new BufferedReader(new InputStreamReader(conn.getInputStream()));
String inputLine;
StringBuilder response = new StringBuilder();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
JSONObject jsonResponse = new JSONObject(response.toString());
System.out.println("QR Codes Found: " + jsonResponse.toString());
return jsonResponse;
}
public static JSONObject getQRAnalytics(int qrId) throws Exception {
String apiUrl = "https://at-qr.com/api.php";
String params = "action=qrAnalytics&user_id=2" +
"&api_key=c9f89dd51e96edbf52cfe04dc9c278dc" +
"&qr_id=" + qrId;
URL url = new URL(apiUrl + "?" + params);
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setRequestMethod("GET");
int responseCode = conn.getResponseCode();
if (responseCode != 200) {
throw new RuntimeException("HTTP error code: " + responseCode);
}
BufferedReader in = new BufferedReader(new InputStreamReader(conn.getInputStream()));
String inputLine;
StringBuilder response = new StringBuilder();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
JSONObject jsonResponse = new JSONObject(response.toString());
System.out.println("QR Analytics: " + jsonResponse.toString());
return jsonResponse;
}
public static void main(String[] args) {
try {
JSONObject qrData = generateQRCode();
JSONObject searchResults = searchQRCodes();
if (searchResults.has("data") && searchResults.getJSONArray("data").length() > 0) {
int qrId = searchResults.getJSONArray("data").getJSONObject(0).getInt("id");
JSONObject analytics = getQRAnalytics(qrId);
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
C# Sample Connection Code
using System;
using System.Net.Http;
using System.Threading.Tasks;
using Newtonsoft.Json;
class Program
{
static async Task GenerateQRCode()
{
string apiUrl = "https://at-qr.com/api.php";
string queryParams = "?action=getQR&qr_option=static&user_id=2&options=url" +
"&custom_color=%23000000&data=https://example.com" +
"&api_key=c9f89dd51e96edbf52cfe04dc9c278dc" +
"&textAbove=Example QR&scans_allowed=unlimited";
using (HttpClient client = new HttpClient())
{
try
{
HttpResponseMessage response = await client.GetAsync(apiUrl + queryParams);
response.EnsureSuccessStatusCode();
string responseBody = await response.Content.ReadAsStringAsync();
dynamic data = JsonConvert.DeserializeObject(responseBody);
Console.WriteLine("QR Code Generated: " + responseBody);
return data;
}
catch (HttpRequestException e)
{
Console.WriteLine("\nException Caught!");
Console.WriteLine("Message: {0}", e.Message);
throw;
}
}
}
static async Task SearchQRCodes()
{
string apiUrl = "https://at-qr.com/api.php";
string queryParams = "?action=searchQR&user_id=2" +
"&api_key=c9f89dd51e96edbf52cfe04dc9c278dc" +
"&search_term=example&sort_term=date_desc" +
"&offset=0&limit=10";
using (HttpClient client = new HttpClient())
{
try
{
HttpResponseMessage response = await client.GetAsync(apiUrl + queryParams);
response.EnsureSuccessStatusCode();
string responseBody = await response.Content.ReadAsStringAsync();
dynamic data = JsonConvert.DeserializeObject(responseBody);
Console.WriteLine("QR Codes Found: " + responseBody);
return data;
}
catch (HttpRequestException e)
{
Console.WriteLine("\nException Caught!");
Console.WriteLine("Message: {0}", e.Message);
throw;
}
}
}
static async Task GetQRAnalytics(int qrId)
{
string apiUrl = "https://at-qr.com/api.php";
string queryParams = "?action=qrAnalytics&user_id=2" +
"&api_key=c9f89dd51e96edbf52cfe04dc9c278dc" +
"&qr_id=" + qrId;
using (HttpClient client = new HttpClient())
{
try
{
HttpResponseMessage response = await client.GetAsync(apiUrl + queryParams);
response.EnsureSuccessStatusCode();
string responseBody = await response.Content.ReadAsStringAsync();
dynamic data = JsonConvert.DeserializeObject(responseBody);
Console.WriteLine("QR Analytics: " + responseBody);
return data;
}
catch (HttpRequestException e)
{
Console.WriteLine("\nException Caught!");
Console.WriteLine("Message: {0}", e.Message);
throw;
}
}
}
static async Task Main(string[] args)
{
try
{
dynamic qrData = await GenerateQRCode();
dynamic searchResults = await SearchQRCodes();
if (searchResults.data.Count > 0)
{
int qrId = searchResults.data[0].id;
dynamic analytics = await GetQRAnalytics(qrId);
}
}
catch (Exception e)
{
Console.WriteLine(e.Message);
}
}
}
Ruby Sample Connection Code
require 'net/http'
require 'uri'
require 'json'
def generate_qr_code
api_url = 'https://at-qr.com/api.php'
params = {
'action' => 'getQR',
'qr_option' => 'static',
'user_id' => '2',
'options' => 'url',
'custom_color' => '#000000',
'data' => 'https://example.com',
'api_key' => 'c9f89dd51e96edbf52cfe04dc9c278dc',
'textAbove' => 'Example QR',
'scans_allowed' => 'unlimited'
}
uri = URI(api_url)
uri.query = URI.encode_www_form(params)
response = Net::HTTP.get_response(uri)
if response.is_a?(Net::HTTPSuccess)
data = JSON.parse(response.body)
puts "QR Code Generated: #{data}"
data
else
raise "HTTP Error: #{response.code} - #{response.message}"
end
end
def search_qr_codes
api_url = 'https://at-qr.com/api.php'
params = {
'action' => 'searchQR',
'user_id' => '2',
'api_key' => 'c9f89dd51e96edbf52cfe04dc9c278dc',
'search_term' => 'example',
'sort_term' => 'date_desc',
'offset' => '0',
'limit' => '10'
}
uri = URI(api_url)
uri.query = URI.encode_www_form(params)
response = Net::HTTP.get_response(uri)
if response.is_a?(Net::HTTPSuccess)
data = JSON.parse(response.body)
puts "QR Codes Found: #{data}"
data
else
raise "HTTP Error: #{response.code} - #{response.message}"
end
end
def get_qr_analytics(qr_id)
api_url = 'https://at-qr.com/api.php'
params = {
'action' => 'qrAnalytics',
'user_id' => '2',
'api_key' => 'c9f89dd51e96edbf52cfe04dc9c278dc',
'qr_id' => qr_id
}
uri = URI(api_url)
uri.query = URI.encode_www_form(params)
response = Net::HTTP.get_response(uri)
if response.is_a?(Net::HTTPSuccess)
data = JSON.parse(response.body)
puts "QR Analytics: #{data}"
data
else
raise "HTTP Error: #{response.code} - #{response.message}"
end
end
# Example usage
begin
qr_data = generate_qr_code
search_results = search_qr_codes
if search_results['data'] && search_results['data'].any?
analytics = get_qr_analytics(search_results['data'].first['id'])
end
rescue => e
puts "Error: #{e.message}"
end
Go Sample Connection Code
package main
import (
"encoding/json"
"fmt"
"io/ioutil"
"net/http"
"net/url"
)
type QRResponse struct {
Status string `json:"status"`
Message string `json:"message"`
Data interface{} `json:"data"`
}
func generateQRCode() (QRResponse, error) {
apiUrl := "https://at-qr.com/api.php"
params := url.Values{}
params.Add("action", "getQR")
params.Add("qr_option", "static")
params.Add("user_id", "2")
params.Add("options", "url")
params.Add("custom_color", "#000000")
params.Add("data", "https://example.com")
params.Add("api_key", "c9f89dd51e96edbf52cfe04dc9c278dc")
params.Add("textAbove", "Example QR")
params.Add("scans_allowed", "unlimited")
resp, err := http.Get(apiUrl + "?" + params.Encode())
if err != nil {
return QRResponse{}, err
}
defer resp.Body.Close()
body, err := ioutil.ReadAll(resp.Body)
if err != nil {
return QRResponse{}, err
}
var result QRResponse
err = json.Unmarshal(body, &result)
if err != nil {
return QRResponse{}, err
}
fmt.Printf("QR Code Generated: %+v\n", result)
return result, nil
}
func searchQRCodes() (QRResponse, error) {
apiUrl := "https://at-qr.com/api.php"
params := url.Values{}
params.Add("action", "searchQR")
params.Add("user_id", "2")
params.Add("api_key", "c9f89dd51e96edbf52cfe04dc9c278dc")
params.Add("search_term", "example")
params.Add("sort_term", "date_desc")
params.Add("offset", "0")
params.Add("limit", "10")
resp, err := http.Get(apiUrl + "?" + params.Encode())
if err != nil {
return QRResponse{}, err
}
defer resp.Body.Close()
body, err := ioutil.ReadAll(resp.Body)
if err != nil {
return QRResponse{}, err
}
var result QRResponse
err = json.Unmarshal(body, &result)
if err != nil {
return QRResponse{}, err
}
fmt.Printf("QR Codes Found: %+v\n", result)
return result, nil
}
func getQRAnalytics(qrId string) (map[string]interface{}, error) {
apiUrl := "https://at-qr.com/api.php"
params := url.Values{}
params.Add("action", "qrAnalytics")
params.Add("user_id", "2")
params.Add("api_key", "c9f89dd51e96edbf52cfe04dc9c278dc")
params.Add("qr_id", qrId)
resp, err := http.Get(apiUrl + "?" + params.Encode())
if err != nil {
return nil, err
}
defer resp.Body.Close()
body, err := ioutil.ReadAll(resp.Body)
if err != nil {
return nil, err
}
var result map[string]interface{}
err = json.Unmarshal(body, &result)
if err != nil {
return nil, err
}
fmt.Printf("QR Analytics: %+v\n", result)
return result, nil
}
func main() {
qrData, err := generateQRCode()
if err != nil {
fmt.Println("Error:", err)
return
}
searchResults, err := searchQRCodes()
if err != nil {
fmt.Println("Error:", err)
return
}
if data, ok := searchResults.Data.([]interface{}); ok && len(data) > 0 {
if firstItem, ok := data[0].(map[string]interface{}); ok {
if qrId, ok := firstItem["id"].(float64); ok {
analytics, err := getQRAnalytics(fmt.Sprintf("%.0f", qrId))
if err != nil {
fmt.Println("Error:", err)
return
}
_ = analytics // Use analytics data
}
}
}
}
Error Responses
Common error responses include:
- 400 Bad Request - Missing required parameters or invalid input
- 403 Forbidden - Invalid API key, unauthorized user, or attempt to edit static QR code
- 500 Internal Server Error - Database or server error
Example Error Response
403 Forbidden{ "status": "error", "message": "Invalid API Key or User ID" }
Rate Limiting
The API currently does not implement rate limiting, but excessive requests may be throttled.
Terms of Use
By using this API, you agree to use it responsibly and not for malicious purposes. The service provider reserves the right to revoke API access for any reason. You also agree to abide by all Terms and Conditions, Privacy Policies, and Disclaimer of AT-QR for all present and future circumstances.