# QR Code Generator (qr.gshaw.ca) > Makes a QR code from text or a URL and returns it as SVG or PNG. Free, no key, no sign-up. A person can use the page at https://qr.gshaw.ca/. An agent or a script calls the API below. ## Endpoints - `GET /qr.svg?text=https%3A%2F%2Flandnav.app` - `GET /qr.png?text=https%3A%2F%2Flandnav.app&size=512` - `GET /` without `Accept: text/html`: this usage as JSON. ## Parameters - `text`: Required. The text or URL to encode, URL-encoded. Up to about 2,900 bytes at ecc=L, less at higher levels. - `ecc`: Optional. Error correction: L, M (default), Q or H. Higher survives more damage and makes a denser code. - `size`: PNG only. Width and height in pixels, 64 to 2048, default 1024. The PNG is exactly this size. - `download`: Optional. Any value makes the answer a download with a file name made from the text. ## Notes - Output: Black on white with the standard 4-module quiet zone. SVG scales without blurring and suits web pages and print. PNG is 1-bit. - Errors: 400 with JSON { error } when text is missing or too long, or ecc or size is out of range. - Privacy: The API sees the text in the request and keeps nothing: no logs, no storage, no analytics. The page at / makes codes in the browser and sends nothing. - Auth: None. CORS is open, so a browser can call this directly. - Caching: An answer never changes for the same request, so it is cacheable for a year. - Terms: Free, unsupported, not for volume, and as is. Send a User-Agent that names your app. - Source: https://github.com/gshaw/qr