Skip to content
UseQR
ESC

↑↓ MOVE↵ OPEN48 PLACES

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.

View as MarkdownPaste this page into any AI assistant — it is plain, portable Markdown.

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

  • A free QR code API with no keyUseQR'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 scaleGenerating 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 agentThe 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 programmaticallyRead 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.