Skip to the generator
Just Give Me The QR

Prefill links

Open the generator with the fields already filled in. Nothing is downloaded until the person clicks.

How it works

Every generator page reads its own fields from the query string. Send someone to /wifi?ssid=Cafe%20Guest&password=flatwhite and they land on the WiFi generator with both fields filled in and the code already drawn. They still choose whether to download it — a link never triggers a download, and it never sets colours or shapes, which stay with the person making the code.

This is the whole "API". There is no endpoint that returns an image, because there is no server: the QR code is rendered by JavaScript in the visitor’s browser. What you get instead is a stable link format you can build from a spreadsheet, a CMS, a chatbot or a printed instruction.

Notes on values

URL-encode everything. Spaces become %20, ampersands %26, line breaks %0A. Boolean fields such as hidden accept true, 1, yes or on. The home page also accepts type= to preselect a content type without visiting its own page.

Anything you put in a link is visible to whoever sees the link, including a WiFi password. That is a property of links, not of this site, but it is worth remembering before you paste one into a group chat.

A machine-readable description of the same parameters is published as an OpenAPI document, and a plain-text summary for language models at /llms.txt.

Parameters by type

Field names are the query parameters. Aliases are accepted as well.

Link — /

ParameterFieldAliases
urlLinku, link

/?url=…

WiFi — /wifi

ParameterFieldAliases
ssidNetwork name (SSID)s, network
passwordPasswordp, pass
securitySecurity (WPA / WEP / nopass)t, type
hiddenHidden networkh

/wifi?ssid=…&password=…

WhatsApp — /whatsapp

ParameterFieldAliases
phonePhone number with country codenumber, n
messagePre-filled message (optional)text, m

/whatsapp?phone=…&message=…

Contact — /vcard

ParameterFieldAliases
firstFirst namefirstname, fn
lastLast namelastname, ln
orgOrganisation
titleJob titlerole
phoneMobiletel, mobile, cell
workPhoneWork phonework, worktel
emailEmailmail
urlWebsitewebsite
streetStreetaddress, adr
cityCitytown, locality
regionRegionstate, province
postcodePostcodezip, postalcode
countryCountry
noteNote

/vcard?first=…&last=…

Text — /text

ParameterFieldAliases
textTextt, q

/text?text=…

Email — /email

ParameterFieldAliases
toToemail, address, e
subjectSubject (optional)s
bodyMessage (optional)b, message

/email?to=…&subject=…

SMS — /sms

ParameterFieldAliases
phonePhone numbernumber, n
messageMessage (optional)text, body, m

/sms?phone=…&message=…

Phone — /phone

ParameterFieldAliases
phonePhone numbernumber, tel, n

/phone?phone=…

Location — /location

ParameterFieldAliases
latLatitudelatitude
lngLongitudelongitude, lon, long

/location?lat=…&lng=…

Questions people actually ask

Can I get a PNG back from a URL?
No. Nothing is generated on a server. If you need images in bulk, the code is open source — run it yourself.
Can a link set the colours or the logo?
No, on purpose. Only content fields are prefillable, so a link cannot decide how someone else’s code looks.
Will the link format change?
Field names are the ones shown in the form and are meant to be stable. Aliases exist so that short links keep working.
Is there a rate limit?
There is nothing to limit. The pages are static files on a CDN.