QRCodeForge

Developers

A QR code from one GET request

Put a URL in an <img>, or fetch it from your server. SVG or PNG, every shape, colour and frame the generator has. No key, no account, no watermark.

The simplest call

https://qrcodeforge.com/api/v1/qr.svg?data=https://example.com

PNG, 1024 px, rounded, brand blue

https://qrcodeforge.com/api/v1/qr.png?data=https://example.com&size=1024&body=rounded&eyeFrame=rounded&fg=1d3fbf

Gradient with a banner frame

https://qrcodeforge.com/api/v1/qr.svg?data=https://example.com/menu&gradient=linear&fg=8f1d18&fg2=d9660b&frame=banner&label=SCAN%20ME

Transparent background, WiFi

https://qrcodeforge.com/api/v1/qr.png?data=WIFI%3AT%3AWPA%3BS%3ACafeNet%3BP%3Ahunter2%3B%3B&bg=transparent&body=dot

Endpoints

Two addresses, one set of parameters

GET https://qrcodeforge.com/api/v1/qr.svg?data=…
GET https://qrcodeforge.com/api/v1/qr.png?data=…&size=512

Both answer with the image and permissive CORS, so a browser can use them directly. Responses are cacheable for a day. Errors come back as JSON with a message naming the parameter.

Parameters

Everything the generator can do

PARAMETERDEFAULTVALUES
datarequiredWhat the code contains: a link, text, a WiFi string, a vCard… up to 2000 characters, URL-encoded. text and url are accepted as aliases.
size512PNG width in pixels, 64–2048. Ignored for SVG, which scales to any size.
ecMError correction: L, M, Q, H. Higher survives more damage and leaves room for a logo; H is the most durable.
fg000000Module colour, six hex digits, no hash.
bgffffffBackground colour, six hex digits — or transparent.
gradientnonenone, linear, radial. With linear or radial, fg is the first stop and fg2 the second.
fg2Second gradient colour.
eyesame as fgColour of the three corner eyes.
bodysquaresquare, rounded, extra-rounded, dot, classy, classy-rounded, diamond, leaf, star, hexagon, triangle, heart, cross, sparkle, vertical-bars, horizontal-bars, pixel-gap, fluid, mosaic, tile
eyeFramesquaresquare, rounded, extra-rounded, circle, leaf, octagon, cut-corner, dotted, corner-arcs, shield
eyeBallsquaresquare, rounded, circle, diamond, leaf, star, heart, flower
framenonenone, banner, card, badge, speech-bubble, arrow, ticket, phone, circle
labelText on the frame, up to 40 characters.
labelPositionbottomtop, bottom
frameColorsame as fgFrame colour, six hex digits.

Examples

In a page, in a script

<img src="https://qrcodeforge.com/api/v1/qr.svg?data=https%3A%2F%2Fexample.com&body=rounded"
     width="200" height="200" alt="Scan to open example.com">
curl -o code.png "https://qrcodeforge.com/api/v1/qr.png?data=https%3A%2F%2Fexample.com&size=1024"
const url = new URL('https://qrcodeforge.com/api/v1/qr.svg')
url.searchParams.set('data', 'https://example.com/order/1234')
url.searchParams.set('frame', 'banner')
url.searchParams.set('label', 'ORDER 1234')
const svg = await (await fetch(url)).text()

Fair use

Free, within reason