The QR Igniter REST API provides programmatic access to all platform features. The API follows RESTful conventions and uses JSON for request/response bodies.
The fields below are accepted on POST /qr-codes and PUT /qr-codes/{id}, and are returned in the QR code resource. All are optional — omitting them reproduces the classic black-on-white square QR code.
Shape & Colour
Field
Type
Allowed Values
Description
module_shape
string
square | dots | rounded | extra-rounded | classy
Shape of the QR data modules
eye_frame_shape
string
square | rounded | extra-rounded | circle
Shape of the finder-pattern (eye) frames
eye_dot_shape
string
square | rounded | extra-rounded | circle
Shape of the finder-pattern centre dots
eye_color
string
Hex colour, e.g. #D8481A
Colour of the eyes (defaults to foreground colour)
gradient_type
string
none | vertical | horizontal | diagonal | radial
Gradient applied to the QR foreground
gradient_end_color
string
Hex colour, e.g. #F7931E
End colour of the gradient (start is foreground_color)
transparent_background
boolean
true | false
Render with a transparent background
quiet_zone
integer
0–10
Quiet-zone margin in modules
output_format
string
png | svg | eps | pdf
Default output format for the generated image
Frame
Field
Type
Allowed Values
Description
frame_style
string
none | border | scan_me
Decorative frame around the QR code
frame_text
string
Max 24 characters
Call-to-action text (used by scan_me style)
frame_color
string
Hex colour, e.g. #081422
Frame colour
frame_thickness
integer
1–12
Frame thickness in module units
Logo Embedding
Field
Type
Allowed Values
Description
embed_logo
boolean
true | false
Embed a logo in the QR code centre
custom_logo_path
string
Max 255 characters
Path to a custom logo (falls back to the brand logo)
logo_size_percent
integer
10–35
Logo size as a percentage of the QR code
logo_punchout
boolean
true | false
Clear the modules behind the logo (white rounded box) so larger logos stay scannable
Interim Selector & Resolver Links
Field
Type
Allowed Values
Description
interim_selector_enabled
boolean
true | false
Show the interim selector page on scan (multiple destinations)
icon_type
string
heroicon | emoji
Resolver-link icon type (per interim selector link)
icon
string
Heroicon name or emoji glyph
Resolver-link icon (per interim selector link)
Admin-panel-only fields
Interim selector links (including icon_type / icon) and the interim_theme branding JSON (brand → campaign → QR code cascade) are managed via the admin panel — they are not accepted by the QR code create/update endpoints. The resolver's JSON response exposes the resolved links (with icon_type) and theme at scan time.
Interactive API Documentation
OpenAPI Specification — Planned
A published OpenAPI (Swagger) specification is planned. Until then, this page is the authoritative API reference.
Code Examples
PHP (Laravel)
<?php
use Illuminate\Support\Facades\Http;
// Get API token
$response = Http::post('https://api.qrigniter.com/api/v1/auth/token', [
'email' => 'user@example.com',
'password' => 'password',
]);
$token = $response->json('data.token');
// Create a QR code
$response = Http::withToken($token)
->post('https://api.qrigniter.com/api/v1/qr-codes', [
'campaign_id' => 1,
'gtin' => '09506000134352',
'batch_number' => 'BATCH001',
'destination_url' => 'https://example.com/product',
]);
$qrCode = $response->json('data');