FREE

API-Referenz

Generiere QR-Codes über HTTP. Kein API-Schlüssel oder Authentifizierung erforderlich.

Endpunkt

GEThttps://qrwing.com/api/qr

Gibt ein Bild direkt zurück. Alle Parameter werden als Query-String-Argumente übergeben. CORS ist offen – der Endpunkt kann von jedem Ursprung aufgerufen werden.

Schnellstart

# URL QR as PNG (default) https://qrwing.com/api/qr?type=url&url=https://qrwing.com # Blue SVG with dots style https://qrwing.com/api/qr?type=url&url=https://qrwing.com&format=svg&fg=1d4ed8&style=dots # WiFi QR https://qrwing.com/api/qr?type=wifi&ssid=HomeNetwork&password=mypassword&encryption=WPA
# curl curl -o qr.png "https://qrwing.com/api/qr?type=url&url=https://qrwing.com" # HTML img tag <img src="https://qrwing.com/api/qr?type=url&url=https://qrwing.com" alt="QR Code" />

Parameter

ParameterTypStandardBeschreibung
type requiredstringQR code type. See supported types below.
format optionalsvg | png | webppngOutput image format.
size optionalinteger300Output size in pixels (50–2000).
margin optionalinteger4Quiet zone in modules (0–20).
ec optionalL | M | Q | HMError correction level. Higher = more redundancy.
fg optionalhex000000Foreground (dot) color as 6-digit hex (no #).
bg optionalhexffffffBackground color as 6-digit hex (no #).
transparent optionalbooleanfalseTransparent background (SVG/WebP/PNG).
style optionalsquare | dots | roundedsquareDot style.

QR-Code-Typen

Übergib type= mit einem der folgenden Werte. Jeder Typ erfordert eigene Inhaltsparameter.

urlURL
urlFull URL including https://
textText
textPlain text content
emailE-Mail
emailEmail address
subjectEmail subject (optional)
bodyEmail body (optional)
phoneTelefon
phonePhone number with country code
smsSMS
phonePhone number
messagePre-filled message (optional)
wifiWLAN
ssidNetwork name (SSID)
passwordWiFi password
encryptionWPA | WEP | nopass
hiddentrue if network is hidden
vcardvCard
nameFull name (required)
orgOrganization
phonePhone number
emailEmail address
urlWebsite URL
addressStreet address
locationStandort
latLatitude
lngLongitude
querySearch query instead of coordinates
whatsappWhatsApp
phonePhone number with country code (no +)
messagePre-filled message (optional)
telegramTelegram
usernameTelegram username (without @)
messagePre-filled message (optional)
calendarTermin
titleEvent title (required)
startStart datetime ISO 8601
endEnd datetime ISO 8601
locationEvent location
descriptionEvent description
allDaytrue for all-day events
youtubeYouTube
urlYouTube video, channel, or playlist URL
twitterTwitter / X
usernameTwitter/X username (without @)
facebookFacebook
urlFacebook page or profile URL
linkedinLinkedIn
urlLinkedIn profile or page URL
instagramInstagram
usernameInstagram username (without @)
bitcoinBitcoin
addressBitcoin address (required)
amountAmount in BTC (optional)
labelPayment label (optional)
messagePayment message (optional)
zoomZoom
urlFull Zoom meeting URL (preferred)
meetingIdMeeting ID (if no URL)
passwordMeeting password (optional)
appstoreApp Store
iosUrlApple App Store URL
androidUrlGoogle Play Store URL
paypalPayPal
usernamePayPal.me username
amountRequest amount (optional)
currencyCurrency code (optional)

Live-Beispiele

Klicke auf eine URL, um sie in deinem Browser zu öffnen und den generierten QR-Code zu sehen.

Antwort

Bei Erfolg gibt die API den Binärinhalt des Bildes mit dem entsprechenden Content-Type-Header zurück:

FormatContent-Type
pngimage/png
svgimage/svg+xml
webpimage/webp

Bei einem Fehler gibt die API JSON mit einem 400- oder 500-Status zurück:

{"error": "Missing required parameter: type"}

Caching & Ratenlimits

Antworten enthalten Cache-Control: public, max-age=86400, sodass Bilder 24 Stunden lang von Browsern und CDNs gecacht werden.

Die API ist kostenlos und hat keine Authentifizierungsanforderung. Wir bitten darum, übermäßige automatisierte Anfragen zu vermeiden. Für die Massengenerierung (mehr als 1.000 QR-Codes/Tag) kontaktiere uns bitte.

Integrationsbeispiele

HTML

<img src="https://qrwing.com/api/qr?type=url&url=https://qrwing.com&size=200" alt="QR Code" width="200" height="200" />

JavaScript (fetch)

const url = new URL("https://qrwing.com/api/qr"); url.searchParams.set("type", "url"); url.searchParams.set("url", "https://qrwing.com"); url.searchParams.set("format", "svg"); url.searchParams.set("fg", "1d4ed8"); const response = await fetch(url); const svgText = await response.text(); document.getElementById("qr").innerHTML = svgText;

Python

import requests response = requests.get( "https://qrwing.com/api/qr", params={ "type": "url", "url": "https://qrwing.com", "format": "png", "size": 400, "style": "dots", "fg": "7c3aed", } ) with open("qr.png", "wb") as f: f.write(response.content)

PHP

$params = http_build_query([ 'type' => 'url', 'url' => 'https://qrwing.com', 'format' => 'png', 'size' => 300, ]); $img = file_get_contents("https://qrwing.com/api/qr?" . $params); file_put_contents('qr.png', $img);