Developers & agents
QR codes in n8n, Zapier and Make
In n8n, Zapier or Make, a plain HTTP request step against https://useqr.app/api/v1/qr?data=... is the whole integration: the API is keyless, so there is no credential to configure and workflows stay shareable as templates. Set the response to file for a PNG attachment, or add format=base64 when the platform prefers a string.
The whole integration is one node
Every automation platform has an HTTP request step, and that step is all you need:
GET https://useqr.app/api/v1/qr?data={{payload}}&size=1024
No connector to install, and (the part that actually matters on these platforms) no credential to configure. Credential setup is where automation recipes die: a workflow that needs an API key cannot be shared as a template without every recipient signing up somewhere first. A keyless call makes the workflow self-contained: export it, share it, import it, it runs.
Platform-agnostic settings that cover n8n, Zapier and Make alike:
| Need | Setting |
|---|---|
| PNG as a file/attachment | set the HTTP step's response handling to file/binary |
| A string field instead | add format=base64 (or format=svg for markup) |
| The image in an email body | skip the download, reference the URL in an <img> tag |
Payload with &, spaces, # |
URL-encode the variable before inserting it |
That third row is the quiet optimisation: because output is deterministic and cached immutably, embedding the URL directly is often better than moving bytes through the workflow at all.
Recipes
Form submission → QR → email attachment. Trigger on the form, HTTP-get
/api/v1/qr?data={{ticket_url}}&size=1024 as a file, attach to the confirmation
email. The classic for event tickets and registrations.
Spreadsheet row → typed code. New row with an SSID and password → HTTP-get
/api/v1/wifi?ssid={{ssid}}&password={{pass}}&security=WPA → write the file to
Drive/S3. The typed endpoints handle
escaping rules that
break hand-assembled payloads: same for UPI,
vCard, calendar and the other typed builders.
Sheet → codes in bulk. Aggregate rows into a JSON array and POST once to
/api/v1/qr/batch with "output": "url", up to 1,000 items per call, and each
item comes back with a stable image URL to write into a results column. Per-item
failures return a fix without failing the batch, so one bad row does not kill the
run (batch details).
Webhook → QR → chat. Deploy pipeline or alert webhook → build a URL for the
relevant link → post https://useqr.app/q/{{encoded}}.png into the Slack/Teams
message. Chat clients render the image; phones in the room scan it.
Inbound image → decode. The reverse direction: an email attachment or uploaded
image → POST the bytes to /api/v1/decode → route on the decoded text. Useful for
returns and check-in flows (decode details).
Failure handling
Two practical behaviours to build in. First, an empty variable: if {{payload}}
resolves to nothing the API returns a 400, as application/problem+json with a
fix field, so the error your workflow logs actually says what to change. Add a
filter step so empty rows skip generation instead. Second, do not add a retry-limit
worry: the endpoint is an idempotent GET with no quota, so re-running a failed
workflow re-fetches identical bytes harmlessly.
One honest boundary: these workflows produce static codes. If the automation requirement is "and then track how many people scanned it", that needs UTM parameters on the destination or a dynamic QR platform, the image API cannot count scans, and neither can anyone else's.
FAQ
How do I generate a QR code in n8n?
Add an HTTP Request node with GET https://useqr.app/api/v1/qr?data={{your field}}&size=1024 and set the response format to file. No credential is needed, so the node works immediately and the workflow exports cleanly as a template.
How do I attach a QR code to an email in Zapier?
Generate it in an HTTP/webhook action against the keyless API, output as a file, then map that file into the email step's attachment field. For inline display, reference the image URL directly in the email's HTML instead.
Can Make generate QR codes without a paid app?
Yes, the generic HTTP module calling https://useqr.app/api/v1/qr does it with no app, no key and no per-call cost. Add format=base64 if a later module needs the image as a text field.
How do I make QR codes for every row of a spreadsheet automatically?
Aggregate the rows and POST them as items to https://useqr.app/api/v1/qr/batch with output url, up to 1,000 per call. Write each returned URL back to its row; failed rows return their own error and fix without stopping the batch.
Try it: free, no signup
Related
- A free QR code API with no key, UseQR's REST API needs no signup, no API key and no SDK. GET /api/v1/qr?data=hello returns a PNG. The shortest form is /q/hello.png, which drops straight…
- Bulk QR generation at scale, Generating hundreds to millions of QR codes: the batch API and its limits, local generation with worker pools, determinism as a caching strategy, and manifests.
- Using QR codes from an AI agent, The integration ladder for agents that need QR codes (from a bare markdown image URL through the keyless API to MCP tools), and the API design that lets agents self-correct.
- Decode a QR code programmatically, Read QR codes from images in code: POST bytes or a URL to the keyless decode API, or decode locally with zxing-cpp, zbar or pyzbar. Snippets included.