Saltar al contenido

Visión general de la API

El motor se publica como una API HTTP pequeña. Hay dos formas de autenticarse.

Dos canales

1. RapidAPI Marketplace (clientes existentes)

Llama a https://api.qr-branding.com con tu proxy secret de RapidAPI. Los endpoints de IA usan tu propia clave del LLM, o el endpoint gestionado, que no necesita ninguna. Nada cambia respecto a cómo funcionaba la Signet QR API original.

2. Paquetes de créditos para consumidores (nuevo)

Compra un paquete en /pricing. Tus endpoints de IA usan claves de LLM del servidor (Groq / Gemini / OpenAI) y los créditos se descuentan por cada generación correcta. El editor web consume este canal de forma transparente.

Endpoints

MétodoRutaPara qué sirve
POST/api/qr/generateRenderiza un QR a partir de un QrConfig explícito.
POST/api/qr/ai/generateIA de Marketplace: aportas tu propia clave del LLM.
POST/api/qr/ai/generate-managedIA gestionada de Marketplace: no hace falta clave del LLM.
POST/api/qr/ai/generate/serverIA para consumidores: clave del LLM del servidor, descuenta créditos.
GET/api/qr/templatesLista las 118 plantillas predefinidas (opcionalmente ?category=…).
POST/api/qr/templates/{templateId}Renderiza un QR a partir del id de una plantilla, con ajustes opcionales.
POST/api/qr/content/wifiUtilidad: construye la cadena de contenido de un QR WiFi.
POST/api/qr/content/vcardUtilidad: construye la cadena de contenido de una vCard.
POST/api/qr/content/geoUtilidad: construye la cadena de contenido de una geolocalización.
GET/api/qr/ai/providersLista los proveedores de LLM y modelos admitidos.
GET/api/pingComprobación de estado (anónima).

Cabeceras de autenticación

RapidAPI

X-RapidAPI-Proxy-Secret: <secret>

BFF interno (sitio para consumidores)

X-Internal-Service-Secret: <secret>
X-Internal-Customer-Id:    <customer id>
X-Internal-Ts:             <unix seconds>
X-Internal-Signature:      <HMAC-SHA256(signing-key, "{customerId}.{ts}")>

TTL antirrepetición: 60 segundos. Las usa internamente el frontend de Next.js; nunca tendrás que ponerlas a mano.

Formato de error

Toda respuesta que no sea 2xx tiene una forma estable:

{
  "success": false,
  "error": "Content length (5000) exceeds maximum allowed (4296 characters).",
  "code": "CONTENT_TOO_LONG",
  "field": "content"
}

field aparece cuando el fallo apunta a una entrada concreta.

Límites de peticiones

NivelPor minutoNotas
RapidAPI general60documentación, ping, utilidades
RapidAPI generación30/api/qr/generate
RapidAPI IA15llamadas a LLM externos
Consumidor general120por id de cliente
Consumidor generación60por id de cliente
Consumidor IA30por id de cliente

También hay topes globales por minuto para proteger el nivel gratuito de Azure. Si alcanzas uno, recibes un 429 con la cabecera Retry-After.

Formatos de salida

png (por defecto, en base64), jpg, svg, pdf, webp. Usa "responseType": "binary" para descargar el archivo directamente en lugar de recibir base64 dentro del JSON.