API Documentation

Getting Started
Welcome to the uqr.ai API! Use our REST API to create, manage, and customize dynamic QR codes programmatically.
Create dynamic QR codes with custom designs
Track scans with real-time analytics
Update QR code destinations without reprinting
Customize colors, logos, and styles

Quick Start

1
Get your API key

Sign up or log in to generate your API key from the dashboard.

2
Make your first request

Use the API key to authenticate and create your first QR code.

3
Integrate and scale

Build powerful QR code features into your applications.

Authentication
All API requests require authentication using your API key.

Include your API key in the x-api-key header:

curl -H "x-api-key: YOUR_API_KEY" https://uqr.ai/api/v1/qr-codes

Or use the Authorization header with Bearer token:

curl -H "Authorization: Bearer YOUR_API_KEY" https://uqr.ai/api/v1/qr-codes
Base URL
https://uqr.ai/api/v1
Endpoints
Available API endpoints for managing QR codes
Design Options
Customize the appearance of your QR codes

Full Options Schema

{
  "options": {
    "width": 1080,
    "height": 1080,
    "margin": 0,
    "image": "https://example.com/logo.png",
    
    "qrOptions": {
      "errorCorrectionLevel": "Q"  // L, M, Q, H
    },
    
    "dotsOptions": {
      "type": "square",
      "color": "#000000",
      "gradient": null
    },
    
    "backgroundOptions": {
      "color": "#ffffff"
    },
    
    "cornersSquareOptions": {
      "type": "square",
      "color": "#000000"
    },
    
    "cornersDotOptions": {
      "type": "square",
      "color": "#000000"
    },
    
    "imageOptions": {
      "hideBackgroundDots": true,
      "imageSize": 0.4,
      "margin": 0
    },
    
    "frameOptions": {
      "enabled": false,
      "type": "bottom",
      "text": "Scan Me",
      "backgroundColor": "#ffffff",
      "textColor": "#000000",
      "fontSize": 16
    }
  }
}

Design Examples

Professional Blue
{
  "dotsOptions": { "type": "rounded", "color": "#1e40af" },
  "cornersSquareOptions": { "type": "extra-rounded", "color": "#1e3a8a" },
  "backgroundOptions": { "color": "#eff6ff" }
}
Modern Gradient
{
  "dotsOptions": {
    "type": "dots",
    "gradient": {
      "colorStops": [
        { "offset": 0, "color": "#ec4899" },
        { "offset": 1, "color": "#8b5cf6" }
      ]
    }
  },
  "cornersSquareOptions": { "type": "dot", "color": "#8b5cf6" }
}
With Frame
{
  "dotsOptions": { "type": "rounded", "color": "#000000" },
  "frameOptions": {
    "enabled": true,
    "type": "bottom",
    "text": "SCAN ME",
    "backgroundColor": "#f1f5f9",
    "textColor": "#334155",
    "fontSize": 18
  }
}
With Logo
{
  "image": "https://example.com/logo.png",
  "dotsOptions": { "type": "rounded", "color": "#000000" },
  "imageOptions": {
    "hideBackgroundDots": true,
    "imageSize": 0.3,
    "margin": 5
  },
  "qrOptions": { "errorCorrectionLevel": "H" }
}

Dot Styles

squaredotsroundedextra-roundedclassyclassy-rounded

Corner Styles

squaredotextra-rounded
Common Fields
Fields available for all QR types
FieldDB TypeRequiredDescription
type_idBIGINTQR type identifier (1-21)
nameTEXT-QR code display name
short_link_domainTEXT-Domain for the short link (e.g. uqr.sh). Defaults to system default if not specified
optionsJSONB-Design options object
folderUUID-Folder ID for organization
template_idUUID-Design template ID
themeJSONB-Theme configuration for landing pages
Premium fields (require subscription)
Fields requiring a premium subscription
FieldDB TypeDescription
short_idTEXTCustom short ID (e.g., "my-brand")
link_passwordTEXTPassword to protect QR access
password_enabledBOOLEANEnable password protection
expires_atTIMESTAMPTZExpiration date (ISO 8601)
expiration_enabledBOOLEANEnable expiration
expired_redirect_urlTEXTRedirect URL after expiration
scan_limitINTEGERMaximum scans allowed
scan_limit_reached_urlTEXTRedirect URL after limit reached
watermarkN/ASet to false to remove watermark
Response Fields
Fields returned when creating or fetching QR codes
FieldDB TypeDescription
short_idTEXTShort ID for URL
short_link_domainTEXTDomain used for the short link (e.g. uqr.sh)
short_urlN/AFull scannable URL
imageTEXTURL to generated QR code image
image_statusN/AImage processing status
image_base64N/ABase64 encoded image (initial only)
QR Code Types
Use these type_id values when creating QR codes
Error Codes
Possible error responses from the API
401
missing_api_key

No API key provided in the request

401
invalid_api_key

The provided API key is invalid

401
api_key_inactive

The API key has been deactivated

403
premium_required

The requested feature requires a premium subscription

400
validation_error

Invalid request parameters

404
not_found

The requested resource was not found

500
database_error

A database error occurred

500
server_error

An unexpected server error occurred