Documentación
Integra el generador de códigos QR directamente en tus aplicaciones. La API es completamente gratuita, rápida y no requiere registro ni autenticación.
https://qr.losperris.devEndpoint
Envía una solicitud POST con un cuerpo en formato JSON al siguiente endpoint. La respuesta será el archivo de imagen binario directamente.
/api/qr/generateconst response = await fetch('/api/qr/generate', {
method: 'POST',
headers: {
'Content-Type': 'application/json'\n },
body: JSON.stringify({
text: 'https://losperris.dev',
width: 1000,
type: 'png'\n })
});
const blob = await response.blob();Parámetros
Todos los parámetros se envían en el cuerpo de la solicitud como JSON. Solo text es obligatorio.
| Atributo | Tipo | Descripción |
|---|---|---|
text* | string | El contenido del código QR. URL, texto, etc. (Máx: 2000 caracteres) |
width | number | Tamaño en píxeles. Defecto: 300. (Mín: 100, Máx: 4000) |
margin | number | Grosor del margen. Defecto: 4. (Mín: 0, Máx: 10) |
type | string | Formato: png, jpg, webp |
{
"text": "https://losperris.dev"\n}{
"text": "https://losperris.dev",
"width": 1000,
"margin": 4,
"type": "png"\n}Colores y Estilos
Personaliza la apariencia visual del código QR cambiando los colores y la forma de los módulos.
| Atributo | Tipo | Descripción |
|---|---|---|
colorDark | string (hex) | Color de los módulos. Defecto: #000000 |
colorLight | string (hex) | Color de fondo. Defecto: #ffffff |
dotStyle | string | Puntos: square, rounded, dots |
eyeStyle | string | Ojos: square, rounded, dots |
eyeColor | string (hex) | Color exclusivo para los ojos. |
{
"text": "https://losperris.dev",
"colorDark": "#22c55e",
"colorLight": "#080a08",
"dotStyle": "rounded",
"eyeStyle": "rounded",
"eyeColor": "#22c55e"\n}Gradientes
Aplica un gradiente dinámico sobre el código QR. Esto anula por completo el parámetro colorDark.
| Atributo | Tipo | Descripción |
|---|---|---|
gradientType | string | Estilo: linear o none |
gradientColor1 | string (hex) | Color inicial (desde arriba) |
gradientColor2 | string (hex) | Color final (hacia abajo) |
{
"text": "https://losperris.dev",
"gradientType": "linear",
"gradientColor1": "#22c55e",
"gradientColor2": "#0ea5e9"\n}Logo e Imagen Central
Incrusta tu logo de marca en el centro del código QR proporcionando una URL pública a una imagen web.
| Atributo | Tipo | Descripción |
|---|---|---|
logoUrl | string (url) | URL pública a la imagen (PNG, JPG, WEBP). |
logoFile | string (base64) | Imagen en formato base64. Alternativa a logoUrl. |
{
"text": "https://losperris.dev",
"logoUrl": "https://losperris.dev/logo.png"\n}Estructura de Respuesta
Si la solicitud es exitosa, la API NO responde con JSON, sino que devuelve el archivo de imagen directamente en el cuerpo de la respuesta.
HTTP/1.1 200 OK
Content-Type: image/png
Content-Disposition: attachment; filename="qr.png"
<Binary Image Data Stream...>Rate Limit
Para garantizar la disponibilidad del servicio gratuito, la API está protegida por un límite de peticiones estricto.
{
"error": "Too Many Requests",
"message": "Has superado el límite de generación de códigos QR. Por favor, espera un minuto."
}Gestión de Errores
En caso de error de validación o fallo interno, la API responde con un objeto JSON descriptivo.
| Código HTTP | Significado |
|---|---|
| 400 | Parámetros inválidos o faltantes. |
| 429 | Demasiadas peticiones (Rate Limit). |
| 500 | Error interno del servidor. |
{
"error": "Validation Error",
"details": [
{
"message": "text is required",
"path": ["text"]
}
]\n}