QR codes
Every link has a QR code, but the default black-on-white square is boring. The QR generator service can produce branded codes with your logo in the centre, custom module shapes, themed eye finders, and an optional label frame underneath.
Generate
curl -X POST https://api.elido.app/v1/qr/generate \
-H "Authorization: Bearer $ELIDO_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"content": "https://s.elido.me/Ab3xQ",
"size": 1024,
"error_correction": "Q",
"formats": ["svg"],
"foreground": "#0f172a",
"background": "#ffffff",
"module_style": "rounded",
"eye_style": "leaf",
"logo_data_url": "https://cdn.example.com/logo.png",
"logo_size_pct": 0.2,
"frame_enabled": true,
"frame_label": "SCAN ME",
"frame_color": "#0f172a"
}' \
--output qr.svgRequest fields
Core
| Field | Type | Default | Notes |
|---|---|---|---|
content | string | required | URL or text to encode |
size | int | 512 | Pixel side length, 256–2048 |
error_correction | enum | M | L / M / Q / H (≈7/15/25/30% recovery) |
formats | string[] | ["png"] | Any subset of ["png", "svg"] |
A logo overlay covers part of the code; bump error_correction to
Q or H so phones can still decode it.
Colors
| Field | Default |
|---|---|
foreground | #0f172a |
background | #ffffff |
eye_border_color | inherits foreground |
eye_pupil_color | inherits foreground |
Shape
| Field | Values | Default |
|---|---|---|
module_style | square, dot, rounded | square |
eye_style | square, rounded, leaf | square |
eye_pupil_style | square, dot | square |
Logo
| Field | Default |
|---|---|
logo_data_url | none — data:image/png;base64,... or https://... |
logo_size_pct | 0.18 (18% of the QR side) |
logo_pad | true — adds a white background pad behind the logo |
Frame
| Field | Default |
|---|---|
frame_enabled | false |
frame_label | none — text up to 32 chars |
frame_color | none |
frame_label_color | none |
Response shape
The shape depends on how many formats you asked for.
One format — raw bytes with the matching content type:
HTTP/1.1 200 OK
Content-Type: image/svg+xml
<svg xmlns="http://www.w3.org/2000/svg" ...>Both formats — JSON with the SVG inline and the PNG base64-encoded:
{
"png": "iVBORw0KGgoAAAANSUh...",
"svg": "<svg xmlns=\"...\">...</svg>"
}Tips
- Print at 2x your final size. Cameras autofocus before they decode — generate at 1024px+ even if you display at 256.
- Use SVG for print. PNG is fine on screen; SVG is what your designer wants for the brochure.
- Test with a phone before shipping. Especially with logo overlays larger than 20% — the QR spec tolerates up to 30% damage at level H, but printers, foils, and dark backgrounds eat into that margin.
Dashboard
Tools → QR Designer has a live preview that renders the same output as the API. Save a design as a workspace preset to reuse the same colors, eye style, and logo across every link.