Visão geral da API
O motor é publicado como uma pequena API HTTP. Há duas formas de autenticação.
Dois canais
1. RapidAPI Marketplace (clientes atuais)
Chame https://api.qr-branding.com com o seu proxy secret da RapidAPI. Os endpoints de IA usam a sua própria chave de LLM, ou o endpoint gerenciado, que não precisa de nenhuma. Nada muda em relação a como funcionava a Signet QR API original.
2. Pacotes de créditos para consumidores (novo)
Compre um pacote em /pricing. Os seus endpoints de IA usam chaves de LLM do servidor (Groq / Gemini / OpenAI), e os créditos são descontados a cada geração bem-sucedida. O editor do front-end usa este canal de forma transparente.
Endpoints
| Método | Rota | Finalidade |
|---|---|---|
POST | /api/qr/generate | Renderiza um QR a partir de um QrConfig explícito. |
POST | /api/qr/ai/generate | IA do marketplace — traga a sua própria chave de LLM. |
POST | /api/qr/ai/generate-managed | IA gerenciada do marketplace — não precisa de chave de LLM. |
POST | /api/qr/ai/generate/server | IA para consumidores — chave de LLM do servidor, com desconto de créditos. |
GET | /api/qr/templates | Lista os 118 modelos prontos (opcionalmente ?category=…). |
POST | /api/qr/templates/{templateId} | Renderiza um QR com um id de modelo e substituições opcionais. |
POST | /api/qr/content/wifi | Auxiliar: monta o texto do conteúdo de um QR de Wi-Fi. |
POST | /api/qr/content/vcard | Auxiliar: monta o texto do conteúdo de um vCard. |
POST | /api/qr/content/geo | Auxiliar: monta o texto do conteúdo de uma geolocalização. |
GET | /api/qr/ai/providers | Lista os provedores de LLM e modelos suportados. |
GET | /api/ping | Verificação de saúde (anônima). |
Cabeçalhos de autenticação
RapidAPI
X-RapidAPI-Proxy-Secret: <secret>
BFF interno (site 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 antirreplay: 60 segundos. Usado internamente pelo front-end Next.js — você nunca vai defini-los à mão.
Formato dos erros
Toda resposta não 2xx tem um formato estável:
{
"success": false,
"error": "Content length (5000) exceeds maximum allowed (4296 characters).",
"code": "CONTENT_TOO_LONG",
"field": "content"
}
field é preenchido quando a falha aponta para uma entrada específica.
Limites de requisições
| Nível | Por minuto | Observações |
|---|---|---|
| RapidAPI geral | 60 | docs, ping, auxiliares |
| RapidAPI geração | 30 | /api/qr/generate |
| RapidAPI IA | 15 | chamadas a LLMs externos |
| Consumidor geral | 120 | por id de cliente |
| Consumidor geração | 60 | por id de cliente |
| Consumidor IA | 30 | por id de cliente |
Também existem tetos globais por minuto para proteger o plano gratuito do Azure. Se você atingir um deles, recebe um 429 com o cabeçalho Retry-After.
Formatos de saída
png (padrão, base64), jpg, svg, pdf, webp. Defina "responseType": "binary" para baixar o arquivo diretamente, em vez de receber base64 no JSON.