Skip to content
UseQR
ESC

Jump to

MOVEOPEN50 places

Developers & agents

Free QR code APIs compared

Three free QR APIs are worth knowing: goqr.me's qrserver (keyless, long-established, has a decode endpoint), QuickChart (open source, self-hostable, rate-limited hosted tier) and UseQR (keyless, adds verify, batch and MCP). Google Charts' QR API was deprecated in 2012 and no longer works, so migrate anything still calling it.

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

The field

"Free QR code API" means four different things in practice: a keyless HTTP endpoint (goqr.me, UseQR), an open-source service you can also self-host (QuickChart), a free tier on a paid product (most dynamic-QR platforms), and a dead API that tutorials still cite (Google Charts). This page covers the first three and the ghost.

UseQR goqr.me / qrserver QuickChart Google Charts
Auth none none none on hosted tier n/a
Example useqr.app/q/hello.png api.qrserver.com/v1/create-qr-code/?data=hello&size=300x300 quickchart.io/qr?text=hello deprecated
Formats PNG, SVG, SVG Tiny, JSON, base64 PNG, GIF, JPEG, SVG, EPS PNG, SVG, base64 n/a
Max size 4,096 px 1,000 × 1,000 px documented documented limits vary n/a
Decode endpoint yes (POST /api/v1/decode) yes (/v1/read-qr-code/) no n/a
Verify endpoint yes (GET /api/v1/verify) no no n/a
Batch endpoint yes (≤ 1,000 items) no no n/a
Styling 8 module styles, 5 eye styles, colours, gradients colour, margin colour, margin, EC level n/a
Open source no no yes, self-hostable n/a
Rate limits no published quota documented limits vary hosted tier rate-limited, paid plans for volume n/a

The ghost: Google Charts

chart.googleapis.com/chart?cht=qr&... appears in an enormous number of Stack Overflow answers and older tutorials. The Infographics API that served it was deprecated in 2012 and has since been switched off. If a codebase you maintain still builds those URLs, it is shipping broken images; any of the three live APIs above is a drop-in replacement. The general failure mode (a QR service disappearing and taking printed codes with it) is covered in what happens when a QR service shuts down.

Where each one is the right choice

qrserver (goqr.me) has been serving keyless QR images for well over a decade, which is a genuine argument: longevity is the thing you cannot benchmark. It also has a decode endpoint. Its ceiling is styling (colour and margin, essentially) and the 1,000 px size cap, which is below the 300 DPI floor for prints larger than about 8 cm. A fuller head-to-head is at UseQR vs qrserver.

QuickChart is the right answer when you want one service for charts and QR codes, or when self-hosting matters and you want a small, single-purpose service rather than a full toolkit. The hosted community instance is rate-limited with paid tiers for volume: read their current docs for the numbers rather than trusting a blog post.

UseQR is the newest of the three: worth saying plainly, since uptime history is the one dimension where new services cannot compete. What it adds over both: verify (render → decode → report, so you can prove a styled code scans), batch generation up to 1,000 items per call, typed payload endpoints (WiFi, UPI, PIX, EPC, vCard) validated against the real specs, an MCP server for AI agents, and application/problem+json errors that include a corrected call. The full parameter reference is on the keyless API page. On shutdown risk it makes no special claim: the mitigation is the same one that applies to every API in this table: download the image rather than hotlinking, and static codes stop depending on anyone.

What none of them give you

Scan analytics and editable destinations require dynamic QR codes, which require accounts, persistence and (eventually) money. No keyless API offers them, honestly including ours, if you need them, see when a paid platform is worth it.

Choosing

  • Longest track record, basic styling: qrserver.
  • Charts and QR from one self-hostable service: QuickChart.
  • Styling, verification, batch, typed payloads, agent integration: UseQR.
  • Anything still calling Google Charts: migrate today.

FAQ

Is there a completely free QR code API with no key?

Yes, several. goqr.me's qrserver and UseQR both serve QR images from a plain GET request with no signup, no API key and no watermark. QuickChart's hosted tier is also keyless but rate-limited.

Does the Google Charts QR API still work?

No. The Infographics API behind cht=qr was deprecated in 2012 and has since been switched off. Code that still builds chart.googleapis.com QR URLs returns errors, not images.

Which free QR API can decode images?

qrserver has a read-qr-code endpoint and UseQR has POST /api/v1/decode, which accepts raw bytes, a multipart file or a JSON url field. UseQR additionally offers a verify endpoint that renders a code and decodes it back.

Are free QR APIs safe to rely on in production?

The risks are shutdown and rate limiting, not the QR codes themselves, static codes keep working even if the generator dies. The durable mitigation is to generate images ahead of time and serve them yourself, so a hotlink is never in the critical path.

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…
  • Generate a QR code with curl, curl -o qr.png \"https://useqr.app/q/hello.png\" is the whole thing. No key, no auth header, no SDK. Add query parameters for size, format and…
  • 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.
  • Agent-safe API design, Lessons from building a keyless API that AI agents use unattended: forgiving aliases, errors that teach, determinism, and why auth is the first thing to question.