Build with the Power of QR
Integrate dynamic QR code generation, management, and analytics directly into your applications.
Introduction#
The CraftUrQR API is built on REST principles. We encourage the use of standard HTTP verbs and response codes. All responses are in JSON format.
Authentication#
Authenticate your API requests using your API Key.
You must include the x-api-key header in all requests.
curl -H "x-api-key: YOUR_API_KEY" https://crafturqr.com/api/v1/qr-codesQR Codes#
Manage your QR codes directly via API.
List QR Codes
Retrieve a paginated list of your QR codes.
Query Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| limit | integer | Optional | Number of results to return (default 10) |
| offset | integer | Optional | Number of results to skip (default 0) |
| search | string | Optional | Search by title |
Response Example
Create QR Code
Create a new dynamic QR code.
Request Body
{
"title": "Marketing Campaign",
"target_url": "https://example.com/promo",
"is_direct": false,
"customization": {
"dotsOptions": {
"color": "#4F46E5",
"type": "rounded"
},
"backgroundOptions": {
"color": "#ffffff"
},
"cornersSquareOptions": {
"color": "#4F46E5",
"type": "extra-rounded"
},
"cornersDotOptions": {
"color": "#4F46E5",
"type": "dot"
},
"image": "https://example.com/logo.png",
"imageOptions": {
"hideBackgroundDots": true,
"imageSize": 0.4,
"margin": 10
}
}
}Response Example
Get QR Code
Retrieve details of a specific QR code.
Query Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| id | string | Required | The UUID of the QR code |
Response Example
Update QR Code
Update the target URL or customization of a QR code. Note: Target URL cannot be changed for Static (Direct) QR codes.
Query Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| id | string | Required | The UUID of the QR code |
Request Body
{
"target_url": "https://new-url.com",
"title": "Updated Title",
"customization": {
"dotsOptions": {
"color": "#000000",
"type": "dots"
},
"backgroundOptions": {
"color": "#ffffff"
}
}
}Response Example
Delete QR Code
Permanently delete a QR code.
Query Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| id | string | Required | The UUID of the QR code |
Response Example
Invoices#
Access your billing history and invoices.
List Invoices
Retrieve a list of your past invoices.
Query Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| limit | integer | Optional | Limit results |
| offset | integer | Optional | Skip results |
Response Example
Download Invoice
Download an invoice as a PDF file.
Query Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| id | string | Required | Invoice ID |
Response Example
Subscription#
Check your current plan limits and usage.
Get Subscription Details
Retrieve current plan details and usage metrics.
Response Example
Static QR Codes#
Understanding Direct (Static) vs Dynamic QR Codes.
Static (Direct) QR Codes
Static QR codes encode the target URL directly into the QR pattern. Unlike dynamic QRs, they do not redirect through our servers.
Important Restraints
- ✕Immutable Target: Once created, you cannot change the target URL. The URL is permanently baked into the QR pattern.
- ✕Permanent Type: You cannot convert a Static QR code to a Dynamic one after creation.
- ✓Editable Design: You can still update the customization (colors, shapes, logo) at any time.
Analytics#
Get detailed scan analytics for your QR codes.
Get Analytics
Retrieve aggregated analytics data.
Query Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| qr_id | string | Optional | Filter by specific QR code |
| days | integer | Optional | Number of days (default 30) |