POST /api/qr/generate
Genera un código QR a partir de una configuración explícita. Es el endpoint principal de renderizado: tanto la interfaz del editor como el endpoint de IA acaban pasando por él.
Petición
Content-Type: application/json o multipart/form-data (para subir el logo o el fondo como binario).
Forma del cuerpo: un objeto QrConfig.
Ejemplo mínimo:
Subida multipart (logo como archivo)
curl -X POST https://api.qr-branding.com/api/qr/generate \
-H "X-RapidAPI-Proxy-Secret: <secret>" \
-F 'config={"content":"https://yourbrand.com","logoSizePercent":18,"eccLevel":"H"}' \
-F "logoFile=@./brand-mark.png"
El campo config es una cadena con JSON codificado. logoFile y backgroundFile son partes binarias (PNG / JPG / GIF / BMP / WebP de hasta 10 MB).
Respuesta (modo base64, por defecto)
{
"success": true,
"qrBase64": "iVBORw0KGgoAAAANSUhEUgAA…",
"format": "png",
"contentType": "image/png",
"sizeBytes": 38291
}
Respuesta (modo binario)
{ "responseType": "binary" }
Devuelve los bytes del archivo tal cual, con el Content-Type correspondiente y Content-Disposition: attachment; filename="qrcode.png".
Validación
El motor ejecuta el proceso completo de la garantía de escaneo. Motivos de rechazo habituales:
| Código | Significado | Solución |
|---|---|---|
CONTENT_TOO_LONG | Cadena codificada > 4296 caracteres | Acórtala o usa un acortador de URL |
LOW_CONTRAST | Primer plano frente a fondo < 4:1 | Elige un primer plano más oscuro o un fondo más claro |
LOGO_TOO_LARGE | logoSizePercent > 25 con ECC < H | Sube a H o reduce el logo |
INVALID_HEX | El color no es #RGB, #RRGGBB ni #RRGGBBAA | Corrige el color |
INVALID_LLM_MODEL | Solo en el endpoint de IA | Consulta el modo IA |
Véase también
- Referencia de QrConfig: todos los parámetros admitidos
- POST /api/qr/ai/generate: el mismo motor, con la configuración generada por IA