Elido
Everything Elido does
Pro & Business

Branded QR codes. QR codes that match your brand.

Server-rendered SVG with custom colors, eye shapes, logo overlay, and label frame. PNG for screen, SVG for print. Test with a phone before you ship.

  • Server-rendered SVG — pixel-perfect at any size
  • Custom colors, eye shapes, and logo overlay
  • Dynamic codes — update the destination without reprinting
  • Track every scan with full analytics
QR Designer — elido.app
elido.me/menu
Scan probability 97%
Colors
#6C3AED
#FFFFFF
Eye shape
Logo overlay
Drop PNG or SVG · max 30% width
Error correction
LMQHH auto-selected (logo active)
Export SVG · PNGserver-rendered · no rasterise on client
<5s
Scan-event ingest lag
Unlimited
Dynamic targets (no reprint)
4
Error-correction levels
PNG + SVG
Export formats

Style gallery

Six styles. One designer.

Mix module shapes, eye shapes, colors, logo overlays, and frame labels — every combination is validated against a scan-probability threshold before export. You never ship a QR that won’t scan.

Classic
Black square modules
Rounded
Dot modules, soft corners
Default
Gradient
Purple-to-blue sweep
Dark mode
White on charcoal
Logo embed
Center logo + H correction
H correction
SCAN ME
Framed
Label below the code

Dynamic, not static

Print once. Update forever.

A static QR encodes the destination URL directly — change the URL, reprint everything. Elido QR encodes a short link; the destination is configurable any time from the dashboard or API in under 10 seconds, with no reprinting.

  • Live retargeting
    Redirect an in-print QR to a seasonal campaign page without reprinting.
  • Smart-link logic
    The short link under the QR inherits geo-routing, expiry rules, A/B splits.
  • Sub-5ms scan
    Edge redirects resolve in under 5ms — no scanner timeout waiting for origin.
  • Scan analytics
    Each scan fires a ClickHouse event: country, device, OS, hour-of-day.
Dynamic QR — elido.me/menu
Active
elido.me/menu
QR never changes
Destination history
  1. Jan 2024
    /winter-menu
  2. Mar 2024
    /spring-menu
  3. Jun 2024
    /summer-menuNow
    Updated in 8 seconds from dashboard
Print once. Update the destination forever. No reprint required. No wasted stock.
1,284
Scans today
14
Countries
<5s
Avg. ingest

Export for any medium

Vector for print. Raster for screen.

Export once in the right format. SVG renders losslessly at any DPI so your print shop can rasterise at 300 DPI or 1200 DPI with identical results. PNG ships at 1200 × 1200 px by default, up to 4096 px via API.

Recommended
SVG
.svg
Vector — infinite scale

Print shop, signage, trade-show banners, packaging artwork.

Typical size2 KB
PNG
.png
Raster — 1200 px default, up to 4096 px

Digital screens, email footers, social media posts.

Typical size45 KB
PDF
.pdf
Print-ready — CMYK color space

Litho print, offset press, magazine insertion.

Typical size12 KB

What you can do

  • Logo overlay with auto-padding
  • Square / dot / rounded module styles
  • Square / rounded / leaf eye shapes
  • Frame label up to 32 chars
  • PNG and SVG output

What QR codes actually need to do in production

Free QR generators give you a static image. The features below are why teams with print runs and ongoing campaigns reach for a dynamic, analytics-backed solution instead.

Print-run longevity
01

Dynamic vs static: one QR, infinite destination changes

A static QR code encodes the destination URL directly into the image. Change the URL, reprint everything. A dynamic QR code encodes a short link; the short link's destination is configurable at any time from the dashboard or API. This is the core reason to use Elido QR for anything that touches physical media — packaging, signage, printed materials, event badges. One print run can serve multiple campaigns sequentially. The QR on a bottle of hot sauce ships pointing at a 'learn more' page; after a seasonal promotion launches, you redirect it to the promo page in 10 seconds from the dashboard, no reprint, no waste. The short link under the QR inherits all of Elido's smart-link logic: expiry rules, max-click caps, geo-routing, A/B splits. The physical QR code is just a stable address.

Brand consistency
02

Branded designer: logo, custom colors, error-correction balance

Elido renders QR codes server-side as SVG, then exports to any format. The designer lets you set module color, background color, module shape (square, dot, rounded), eye shape (square, rounded, leaf), and a logo overlay with auto-padding. Logo overlay works by increasing the error-correction level (H — 30% data recovery) so the obscured modules can be reconstructed; the designer shows a live scan-probability indicator as you increase logo size, so you can see where you're trading aesthetics for reliability. Frame labels add up to 32 characters of context text below the QR. Custom color and logo combinations that fail a scan-probability threshold are flagged before export — we don't let you generate a QR that won't scan. SVG export is lossless and print-ready at any DPI; PNG with transparency for screen use.

Large-scale operations
03

Bulk generation API for retail and print production runs

A single call to POST /v1/workspaces/{ws}/qr/bulk accepts up to 100 QR specs per request: destination URL (or existing short link), slug, design template ID, and format. The API returns download URLs for each generated QR code (SVG and PNG), plus the underlying short link data. For retail clients who generate QRs for individual product SKUs, the workflow is: build a CSV with one row per SKU (SKU ID, destination URL, optional slug prefix), run it through the bulk endpoint in batches, download the ZIP of assets. The batch is idempotency-keyed on the slug so re-running a batch after a partial failure doesn't generate duplicates. Rate limit is 200 QR codes per second per workspace on Business. On Pro, the dashboard import supports up to 500 QRs per batch as a CSV upload; beyond that, use the API.

Performance tracking
04

Scan analytics: per-QR, geo, device, time

Every scan on a dynamic QR fires a click event into the same ClickHouse pipeline as short-link clicks. You get the same breakdown: country, city (where IP resolution goes down to city level), device type (phone vs tablet vs desktop — relevant for QRs that should only be scanned on mobile), OS, referrer (the QR scanner app, if it passes one), and hour-of-day. Per-QR analytics surface in the dashboard on the individual QR record; aggregate analytics roll up across the campaign folder. Funnel tracking is available if you've configured a conversion pixel or server-side conversion endpoint: you can trace 'this QR scan led to a Shopify purchase' end-to-end. Scan data exports to the same S3 / BigQuery / Snowflake destinations as short-link click data.

Structured data payloads
05

GS1, vCard, WiFi, and other payload types beyond URLs

Not every QR code points to a URL. Elido supports non-URL payload types in the QR generator: vCard 3.0 and 4.0 (name, org, phone, email, address — generates a downloadable contact on scan), WiFi join (SSID + password encoded in the standard WPA format that iOS and Android recognise natively), plain text, SMS, and email. GS1 Application Identifier payloads for retail supply-chain QRs are supported in the API; the dashboard UI for GS1 is basic — if you're generating GS1-128 or GS1 DataMatrix codes at volume, the API is the right path. For all payload types, dynamic redirect still applies: you encode a short link that resolves to the vCard / WiFi / text payload, which means you can update the payload after printing.

Teams using Elido QR in production

Names are placeholders for now — real customer names land here as case studies are published.

We generate 8,000 QRs per seasonal campaign for in-store POS materials. The bulk API and a 30-minute script replaced what used to be a two-day design-agency round-trip. Dynamic targets mean we stopped reprinting when a landing page URL changed.

R
Retail chain, 400 stores, Central Europe
Head of Digital Marketing

Per-session QRs for 80 breakouts per event. Each one points at the right session recording after the event ends — no reprint, we just update the destination the morning after the talk concludes.

C
Conference operator, 12 events/year, Amsterdam
Event Technology Lead

Menu QRs update seasonally. Previously we re-laminated every table card four times a year. Now we ship one laminated QR per table and update the destination. The scan analytics told us which tables never got scanned — we moved the QR placement and engagement went up.

R
Restaurant group, 35 locations, Berlin
Operations Director

Elido QR vs the alternatives

QR Code Generator (qr-code-generator.com) is a solid free tool for static use. Bitly QR is the natural add-on if you're already on Bitly. The comparison below is honest about where each option stops.

FeatureElido QRQR Code GeneratorBitly QR
Dynamic target re-pointing without reprintYes — short link under the QR, change destination any timeYes on paid plansYes — Bitly link underneath
Branded designer (logo, custom colors)Logo overlay, custom colors, module + eye shape, scan-probability checkLogo and color on paid plans; no scan-probability checkColor only; no logo overlay
Scan analyticsPer-QR: clicks, geo, device, time — same pipeline as link analyticsScan count and geo on paid plansScan analytics via Bitly dashboard
Bulk generation API100 per call, idempotency-keyed, ZIP downloadNo bulk API; dashboard-onlyAPI available; bulk QR not documented
Error-correction level controlL / M / Q / H — designer exposes all four with scan-probability feedbackAuto-selected by the toolNot exposed
Vector export (SVG)SVG lossless at any DPI; PNG via client rasterSVG on paid plans onlyPNG + SVG on paid plans
Historical scan retentionRaw events in ClickHouse; up to 24 monthsAggregated counters; raw data not availableAggregated in Bitly analytics

QR code questions

What do the error-correction levels mean, and how do they affect logo size?

QR error correction runs from L (7% of data recoverable) through M (15%), Q (25%), to H (30%). Higher correction means more redundant data modules — bigger QR code for the same content, but more damage tolerance. Logo overlays obscure modules, so we auto-promote to H when a logo is added. The designer shows a real-time scan-probability estimate as you scale the logo up; we block export if the probability drops below a threshold we consider unreliable (roughly 85%). In practice this caps logo width at around 25-30% of the QR's total width depending on the content density.

What does 'dynamic' mean in practice — one print run, infinite redirects?

Yes. The QR image encodes a short link URL, not the destination directly. The short link's destination is configurable at any time from the dashboard or API. You print once; every subsequent scan hits Elido's edge, which resolves the current destination and redirects in under 5ms. There's no expiry on the short link unless you set one (max_clicks or expires_at), and the QR image itself is just a stable address — it doesn't 'know' the destination has changed.

Can scan events be tied to conversions for attribution?

Yes. A QR scan is a click event in the same ClickHouse pipeline as short-link clicks. If you've configured server-side conversion forwarding (Stripe, Shopify, or custom checkout webhook), Elido can attribute the conversion back to the scan. The click ID is passed as a query parameter to the destination URL; your checkout session should preserve it so the conversion POST includes it. Same setup as link-based conversion attribution.

QR vs deep links for app installs — which should I use?

Both. A QR that points to a universal link / App Link is the right default for mobile-app-targeted campaigns: the OS handles opening the app if installed, or routing to the store if not. The short link under the QR should have mobile deep-link settings configured (Apple-App-Site-Association, assetlinks.json) so the fallback chain is right. Plain QR pointing at a generic URL is fine for web-only destinations; don't add deep-link config if the destination isn't an app.

Do you support GS1, vCard, and WiFi payloads?

vCard (3.0 and 4.0) and WiFi join codes are supported in the dashboard and API. GS1 Application Identifier encoding is API-only for now — the dashboard UI is rudimentary. If you're generating GS1-128 or DataMatrix barcodes for supply-chain use (not standard QR), we'd want to hear the spec; those are different symbologies and require a conversation.

What DPI do I need for print quality?

For shelf-edge labels and small-format print (2cm QR): export SVG and let your print shop rasterise at 300 DPI or higher — SVG is lossless. For trade-show or poster-size QR codes: same SVG; DPI is irrelevant for vector. PNG export is 1200px × 1200px by default, which covers most large-format uses up to roughly A4 at 300 DPI. If you need higher-resolution PNG specifically, use the API's size parameter (up to 4096px).

Do QR codes expire?

The QR image itself never expires — it's just an encoded string. The short link underneath can have an expiry date (expires_at) or a max-click cap (max_clicks); if either triggers, subsequent scans land on a configurable expired-link page rather than a 404. If you want a permanent QR with no expiry, don't set those fields. Expiry is useful for time-limited promotions where you want scans after the end date to show a 'this offer has ended' message rather than a stale landing page.

What's the bulk-generation rate limit and CSV format?

API: 200 QR codes/second on Business, 50/second on Pro. CSV bulk-import via dashboard: up to 500 rows per batch. Required columns: destination_url. Optional: slug, domain, template_id (saved design template), format (png/svg/eps/pdf), size (pixel width for PNG). The import dialog has a template download. For retail-scale volumes (tens of thousands per batch), the API with async job polling is the right path — the dashboard importer blocks until the batch completes.

Ready to try it?

Start on the free plan, upgrade when you need a custom domain.

Branded QR codes — QR codes that don't look like QR codes. · Elido