urlu

Automate QR Codes and Short Links with the urlu API

Scenario-based patterns for scripts, CI, and internal tools—no API keys, CORS enabled.

Updated: 2026-08-08 · 9 min read

API overview

urlu QR (/api/qr) and shorten (/api/shorten) endpoints need no API key, and responses include CORS headers. Call them from servers, browsers, or edge functions alike.

The QR API is stateless: each request returns PNG or SVG bytes—use `<img src>` or curl --output. Only the shorten API persists link records.

Recommended: shorten, then QR

1) POST /api/shorten with {"url":"…","slug":"optional"}. 2) Put shortUrl in GET /api/qr?data=…&size=512 to download PNG.

This keeps QR payloads small and aligns click stats with the short link. Parameter tables and curl samples live on /docs.

Batch generation

Loop a URL list in your script and call /api/qr for each row. There is no hard rate limit, but spacing bursts is courteous.

Use response=json to receive a data-URL JSON payload—handy for previews in bots or mobile apps.

Errors and limits

QR payload max is 2,953 bytes (413 if exceeded). Document-sized content rarely hits this for URL QR codes.

Errors look like {"error":{"code","message","details?"}}; 422 validation_failed includes field reasons in details.

If you proxy urlu from your own server, validate that user-supplied targets are http/https only.

← All guides