FREE

Referencia de la API

Genera códigos QR vía HTTP. No se requiere clave de API ni autenticación.

Endpoint

GEThttps://qrwing.com/api/qr

Devuelve una imagen directamente. Todos los parámetros se pasan como argumentos de cadena de consulta. CORS está abierto — el endpoint puede ser llamado desde cualquier origen.

Inicio 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ámetroTipoPredeterminadoDescripción
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 Código QR

Pasa type= con uno de los valores a continuación. Cada tipo requiere sus propios parámetros de contenido.

urlURL
urlFull URL including https://
textTexto
textPlain text content
emailCorreo
emailEmail address
subjectEmail subject (optional)
bodyEmail body (optional)
phoneTeléfono
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
locationUbicación
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)

Ejemplos en Vivo

Haz clic en cualquier URL para abrirla en tu navegador y ver el código QR generado.

Respuesta

En caso de éxito, la API devuelve el binario de la imagen con el encabezado Content-Type apropiado:

FormatoTipo de Contenido
pngimage/png
svgimage/svg+xml
webpimage/webp

En caso de error, la API devuelve JSON con un estado 400 o 500:

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

Caché y Límites de Velocidad

Las respuestas incluyen Cache-Control: public, max-age=86400 para que las imágenes se almacenen en caché durante 24 horas por los navegadores y CDNs.

La API es gratuita y no tiene requisito de autenticación. Te pedimos que evites solicitudes automatizadas excesivas. Para generación masiva (>1.000 códigos QR/día), por favor contáctanos.

Ejemplos de Integración

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