Skip to content
UseQR
ESC

Jump to

MOVEOPEN50 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 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.