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, though for anything meant to last, download the image rather than hotlinking at all.
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:
- Download the image instead of hotlinking wherever the code is static. A saved PNG or SVG has no dependency on anyone.
- 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:

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.
- Nothing we run is load-bearing for a static code. A downloaded PNG or SVG is a file on your disk; it does not phone home, and it cannot be deprecated out from under you the way a hotlinked endpoint can.
- 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. A file on your own disk cannot be deprecated, rate-limited or shut down for you.
Try it: free, no signup
Related
- What happens when a QR code service shuts down, Static 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 API, api.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 APIs, Judged 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 generators, The costs that never appear on a pricing page: printed codes that die with a trial, harvested payload data, watermark reprints, and renewal lock-in.