·5 min read

How to Generate QR Codes with an API (No Libraries Needed)

Skip the dependency bloat. Generate QR codes in PNG or SVG with a single HTTP request — from any language, any framework.

Every developer hits this at some point: you need a QR code for a receipt, a ticket, a deep link, or a product label. You reach for a library — and suddenly you're managing native dependencies, fighting build pipelines, or bloating your bundle size for a feature that should be trivial.

There's a simpler way. A QR code API lets you generate codes with a single HTTP request. No installs, no build issues, no maintenance. Here's how.

Why Use an API Instead of a Library?

Libraries like qrcode (Node) or python-qrcode work fine for simple cases. But they come with trade-offs:

  • Native dependencies — some QR libraries rely on image processing binaries that complicate Docker builds and CI/CD
  • Bundle size — adding a QR library to a frontend app means shipping extra kilobytes to every user
  • Maintenance — you own the dependency updates, security patches, and version conflicts

An API call offloads all of that. You send a request, you get an image. The server handles rendering, encoding, and output format.

Generating a QR Code in One Request

With the API Snap QR Code endpoint, you can generate a QR code with a single GET request:

curl "https://api-snap.com/api/qr?data=https://example.com&size=400&format=png" \
  -H "Authorization: Bearer snp_your_api_key" \
  -o qr.png

That's it. You get back a PNG image. Want SVG instead? Change format=svg.

Parameters You Can Customize

  • data — the content to encode (URL, text, vCard, Wi-Fi config — anything)
  • size — output dimensions in pixels (e.g., 200, 400, 800)
  • formatpng or svg

Real-World Examples

Node.js / Express — Generate a QR Code for a Checkout Receipt

const res = await fetch(
  `https://api-snap.com/api/qr?data=${encodeURIComponent(receiptUrl)}&size=300&format=png`,
  { headers: { Authorization: "Bearer " + process.env.SNAPAPI_KEY } }
);
const qrBuffer = Buffer.from(await res.arrayBuffer());
// Attach qrBuffer to the email or PDF receipt

Python — QR Code for Event Tickets

import requests

resp = requests.get(
    "https://api-snap.com/api/qr",
    params={"data": ticket_url, "size": 400, "format": "png"},
    headers={"Authorization": f"Bearer {SNAPAPI_KEY}"},
)
with open("ticket_qr.png", "wb") as f:
    f.write(resp.content)

Frontend — Inline QR Code Display

Since the endpoint returns an image, you can use it directly as an img src in your HTML or React component (via a backend proxy to keep your API key private).

When to Scale Up

The free tier gives you 100 API calls per month — plenty for prototyping and low-volume use. If you're generating QR codes for every order in an e-commerce app, the Pro plan at $29/mo handles up to 50,000 calls, and the Business plan scales to 500,000.

Key Takeaways

  • QR code generation doesn't need a library — a single API call is simpler and more portable
  • Works from any language: Node, Python, Go, Ruby, PHP, or plain curl
  • Choose PNG for raster use (emails, PDFs) or SVG for crisp rendering at any size
  • Get a free API key and try it in under a minute

Ready to try it?

Get your free API key and start building in under a minute.