Skip to content
UseQR

Comparison

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 validation, decode-verification, an MCP server, and errors that return a corrected call — all still keyless.

What qrserver does well

api.qrserver.com/v1/create-qr-code/?data=X&size=300x300 has been the default answer to "free QR API" for over a decade. It is keyless, reliable, and the URL is short enough to type from memory. That last point matters more than it sounds — it is why the endpoint is so widely known.

If you need a plain PNG from a URL and nothing more, it is a perfectly good choice and we would not tell you otherwise.

Where UseQR differs

qrserver UseQR
API key none none
PNG yes yes
SVG limited yes
PDF no yes
Module matrix as JSON no yes (format=json)
Module and eye styling no yes
Typed payload builders no 28 types, spec-validated
Decode-verify endpoint no yes
Decode an image yes yes
Batch endpoint no yes, 100 per call
OpenAPI document no 3.1, no security schemes
MCP server no yes
llms.txt no yes, plus llms-full.txt
Errors plain text problem+json with a fix field
Open source no MIT

The shortest call

https://useqr.app/q/hello.png

Path-style so it drops straight into markdown:

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

We also accept qrserver's parameter names — data, size including the 300x300 form, color, bgcolor, ecc, qzone — so a call written for qrserver mostly works against us unchanged.

Typed payloads are the real difference

/api/v1/wifi?ssid=CafeGuest&password=espresso&security=WPA
/api/v1/upi?pa=merchant@upi&pn=Chai%20Point&am=120.00
/api/v1/epc?name=Red%20Cross&iban=BE72000000001616&amount=12.00

These validate against the actual specifications — the WiFi escaping rules, the NPCI VPA pattern, the IBAN mod-97 checksum — so you get an error with a fix rather than a code that generates cleanly and fails at the bank.

Building these payloads by hand is where most integrations go wrong.

Errors that teach

{
  "title": "Invalid parameter",
  "detail": "size 9000 is out of range",
  "field": "size",
  "fix": "choose between 64 and 4096 pixels, e.g. size=1024"
}

For an agent, the fix field is the difference between succeeding on the second attempt and giving up.

What we do not have

qrserver has more than a decade of uptime history and is embedded in a great deal of existing code. We are newer. If you are choosing an API to hardcode into something you will not touch for ten years, that track record is a real consideration — though ours is MIT-licensed, so you can also just self-host it and depend on nobody.

FAQ

Is api.qrserver.com still the best free QR API?

It is still an excellent choice for plain PNG output and has a long track record. UseQR adds SVG and PDF, typed payload builders, verification, batch and an MCP server, also without a key.

Can I switch from qrserver to UseQR without changing my code?

Mostly. We accept qrserver's parameter names including data, size in the 300x300 form, color, bgcolor, ecc and qzone.

Does UseQR require an API key?

No. There is no signup, no key and no quota, and the OpenAPI document declares no security schemes so it imports as a GPT Action with authentication set to None.

Which is better for AI agents?

UseQR — it publishes llms.txt, an OpenAPI 3.1 document and an MCP server, and every error carries a corrected call in a fix field.