FREE

Referência da API

Gere QR codes via HTTP. Sem chave de API ou autenticação necessária.

Endpoint

GEThttps://qrwing.com/api/qr

Retorna uma imagem diretamente. Todos os parâmetros são passados como argumentos na query string. O CORS está aberto — o endpoint pode ser chamado de qualquer origem.

Início Rápido

# 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" />

Parâmetros

ParâmetroTipoPadrãoDescrição
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.

Tipos de QR Code

Passe type= com um dos valores abaixo. Cada tipo requer seus próprios parâmetros de conteúdo.

urlURL
urlFull URL including https://
textTexto
textPlain text content
emailE-mail
emailEmail address
subjectEmail subject (optional)
bodyEmail body (optional)
phoneTelefone
phonePhone number with country code
smsSMS
phonePhone number
messagePre-filled message (optional)
wifiWiFi
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
locationLocalização
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)
calendarEvento
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)

Exemplos ao Vivo

Clique em qualquer URL para abri-la no seu navegador e ver o QR code gerado.

Resposta

Em caso de sucesso, a API retorna o binário da imagem com o cabeçalho Content-Type apropriado:

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

Em caso de erro, a API retorna JSON com status 400 ou 500:

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

Cache e Limites de Taxa

As respostas incluem Cache-Control: public, max-age=86400 para que as imagens sejam armazenadas em cache por 24 horas por navegadores e CDNs.

A API é gratuita e não tem requisito de autenticação. Pedimos que você evite requisições automatizadas excessivas. Para geração em massa (>1.000 QR codes/dia), por favor entre em contato conosco.

Exemplos de Integração

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);