n8n-nodes-openqr
v0.2.1
Published
n8n community node for OpenQR: generate QR codes and manage dynamic (editable) QR codes with scan analytics. https://openqr.uk
Maintainers
Readme
n8n-nodes-openqr
An n8n community node for OpenQR — generate QR codes and manage dynamic (editable) QR codes with scan analytics, straight from your workflows.
OpenQR is a free, open-source QR generator with a paid dynamic-code / API / MCP layer. This node wraps the public REST API so you can mint codes, re-point them, batch-create them, and pull scan analytics without writing HTTP nodes by hand.
Installation
From the n8n UI (recommended)
- Go to Settings → Community Nodes.
- Select Install.
- Enter
n8n-nodes-openqrand confirm.
Manually (self-hosted)
npm install n8n-nodes-openqrThen restart n8n. (See the n8n community-node docs for details.)
Credentials
- Create a free OpenQR API key at https://openqr.uk/api (sign in with a magic link, then mint a key — it starts with
oqr_). - In n8n, add a new OpenQR API credential and paste the key.
- The credential authenticates by sending
Authorization: Bearer <your key>. Its connection test hitsGET /v1/dynamic, so a green test means the key works.
Leave Base URL as https://openqr.uk unless you're pointing at a self-hosted or staging instance.
Operations
QR Code
- Generate — render a static QR code (
POST /v1/qr) as SVG or PNG and write it to a binary property. Options:data(text/URL, max 2000 chars),format,size(64–2048),margin(0–16), foreground/background hex colours, and an optional savedtheme.
Dynamic Code
A dynamic code is a re-pointable short link on oqr.to that you can encode once and edit forever.
- Create (
POST /v1/dynamic) —destination(public http(s) URL), optionallabel, optionaltheme. - Create Many (
POST /v1/dynamic/bulk) — up to 200 codes at once, each with adestinationand optionallabel, plus an optionalthemeapplied to all. - Get Many (
GET /v1/dynamic) — list your codes (limit1–500, default 200). - Update (
PATCH /v1/dynamic/{id}) — re-point (destination), rename (label), re-slug (slug), settags, file under afolder_id, or restyle with atheme. - Delete (
DELETE /v1/dynamic/{id}). - Get Scans (
GET /v1/dynamic/{id}/scans) — scan totals plus by-country / by-device / by-referrer breakdowns over adayswindow (1–365, default 30).
Folder
- Create / Get Many / Rename / Delete (
/v1/folders). Deleting a folder un-files its codes; it doesn't delete them.
Theme
- Create / Get Many / Delete (
/v1/themes). Create takes anameand astyleJSON object (fgColor,bgColor,dotType,gradient,logo,frame,margin, …).
Example: re-point a campaign QR
- OpenQR → Dynamic Code → Create with
destination: https://example.com/launch→ encodeshort_urlin your print run. - Later, OpenQR → Dynamic Code → Update with the saved
Code IDand a newdestination. The printed QR now points somewhere new — no reprint. - OpenQR → Dynamic Code → Get Scans to chart engagement.
Compatibility
Built against n8n-workflow 2.x using the declarative routing API. Requires Node.js ≥ 20.15 (the n8n baseline).
Development
npm install
npm run build # tsc → dist + copies the node icon
npm run lintPublishing
This package is published to npm as n8n-nodes-openqr. Publishing requires Sam's npm token (npm login / NPM_TOKEN) — the agent does not publish. To release:
npm version <patch|minor|major>
npm publish --access publicLicense
MIT — the same license as OpenQR. See LICENSE.
