Skip to content
UseQR
ESC

↑↓ MOVE↵ OPEN48 PLACES

Comparison

UseQR vs the Google Charts QR API

You cannot choose the Google Charts QR API — Google deprecated it in 2012 and shut it down in March 2019, breaking every embed that still called it. If you are maintaining code that used it, the migration is a one-line URL swap to a keyless replacement such as UseQR's API, which is also MIT-licensed and self-hostable.

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

A comparison with a service that no longer exists

For years, the standard free answer to "generate a QR code from a URL" was Google's Chart API:

https://chart.googleapis.com/chart?cht=qr&chs=300x300&chl=hello

It was keyless, reliable, backed by Google, and embedded in an enormous number of wikis, dashboards, email templates and Stack Overflow answers. Google deprecated the Image Charts API in 2012 and finally switched it off in March 2019 — a seven-year sunset, which is generous by any standard. The embeds broke anyway, because embeds are exactly the kind of code nobody revisits. Broken QR images from that shutdown were still being found in production systems years later.

This page exists because people still search for the comparison. The honest version is: there is nothing left to compare against, and that fact is the most useful thing on the page.

The lesson, stated plainly

If a free service backed by Google with a seven-year deprecation window still broke half the internet's QR embeds on its way out, then any hotlinked image endpoint is a dependency you should think about before printing or embedding. This is the same mechanism that kills dynamic QR codes when a vendor folds — the full anatomy is in what happens when a QR service shuts down.

Two mitigations actually work:

  1. Download the image instead of hotlinking wherever the code is static. A saved PNG or SVG has no dependency on anyone.
  2. If you must hotlink, prefer an endpoint you could replace or run yourself. An open source generator can outlive its host because anyone can redeploy it.

The migration

If you are maintaining something that still constructs Chart API URLs, the swap is mechanical:

# Before (dead since March 2019)
https://chart.googleapis.com/chart?cht=qr&chs=300x300&chl=hello%20world

# After
https://useqr.app/api/v1/qr?data=hello%20world&size=300

Or the shortest form, which drops straight into markdown:

![QR code](https://useqr.app/q/hello.png)

Differences worth knowing while porting: chs=300x300 becomes size=300 (codes are square, one number suffices); chl becomes data, still URL-encoded; error correction moves from chld=L|M|Q|H to ec=L|M|Q|H. The API docs cover SVG and PDF output, typed payload endpoints and the batch call, and there is a curl walkthrough if you are scripting the sweep. After a bulk find-and-replace, verify a sample decodes — the encoding defaults differ slightly between generators, and checking costs seconds.

Are we not just the next Google Charts?

The fair question. Three honest answers:

  • Static codes you downloaded are immune. Most UseQR use is a downloaded file, not a hotlink; nothing that happens to us affects those.
  • The generator is MIT-licensed. If useqr.app vanished, the source does not, and anyone can redeploy the same API under their own domain. Google's endpoint was proprietary; when it died, it died.
  • We have no track record yet, and pretending otherwise would undercut the whole page. If your embed must survive a decade untouched, download the image — advice we give even though it removes our API from your stack.

FAQ

Why did my Google Charts QR codes stop working?

Google deprecated the Image Charts API in 2012 and shut it down in March 2019. Any image tag or script still requesting chart.googleapis.com QR images has been broken since then and must be pointed at a replacement API.

What is the closest replacement for the Google Charts QR API?

Any keyless GET-a-PNG endpoint. Swap the base URL and rename chs to size and chl to data. UseQR's api/v1/qr endpoint follows the same shape and also offers SVG, PDF and batch output without a key.

Did printed QR codes from Google Charts stop working too?

No. A printed or downloaded static code contains the data in the pattern itself and never calls the API again. Only live embeds — pages requesting the image at view time — broke when the endpoint went away.

How do I avoid this happening with another QR API?

Download the image rather than hotlinking wherever possible, and prefer open-source endpoints you could self-host. A dependency you can redeploy yourself cannot be shut down for you.

Try it — free, no signup

  • What happens when a QR code service shuts downStatic codes are unaffected — they contain the destination directly. Dynamic codes stop resolving the moment the provider's redirect stops, and every…
  • UseQR vs the qrserver / goqr.me APIapi.qrserver.com is the long-standing free QR API and it works well for plain PNGs. UseQR adds SVG and PDF output, typed payload builders with real spec…
  • The best QR code APIsJudged on auth friction, formats, verification, and machine-readability — comparing UseQR, qrserver and QuickChart, with an honest note on track record and SLAs.
  • The hidden costs of free QR code generatorsThe costs that never appear on a pricing page — printed codes that die with a trial, harvested payload data, watermark reprints, and renewal lock-in.