POST /api/qr/ai/generate
Stesso renderer di /api/qr/generate, ma descrivi ciò che vuoi con una frase e il motore sceglie forme, colori e occhi dei marcatori.
L'endpoint IA ha tre varianti: scegli quella che corrisponde alla tua autenticazione.
Marketplace: usi la tua chiave LLM
POST https://api.qr-branding.com/api/qr/ai/generate
curl -X POST https://api.qr-branding.com/api/qr/ai/generate \
-H "Content-Type: application/json" \
-H "X-RapidAPI-Proxy-Secret: <secret>" \
-d '{
"content": "https://yourbrand.com",
"prompt": "art deco gold leaf, geometric chevrons, ivory background",
"llmProvider": "openai",
"llmApiKey": "sk-...",
"creativity": 0.6,
"strictScannability": true,
"stylePreset": "luxury"
}'
Le credenziali LLM le fornisci tu. Il motore convalida la configurazione risultante, applica la garanzia di scansione e genera il QR.
Marketplace: IA gestita, senza chiave LLM
curl -X POST https://api.qr-branding.com/api/qr/ai/generate-managed \
-H "Content-Type: application/json" \
-H "X-RapidAPI-Proxy-Secret: <secret>" \
-d '{
"content": "https://yourbrand.com",
"prompt": "art deco gold leaf, geometric chevrons, ivory background",
"creativity": 0.6,
"strictScannability": true,
"stylePreset": "luxury"
}'
Non servono llmProvider / llmApiKey. Il server usa i propri modelli con una catena di riserva Groq → Gemini → OpenAI. La risposta include "managed": true e la chiamata conta per la quota di IA gestita del tuo piano.
Consumer: chiave LLM lato server
POST https://qr-branding.com/api/qr/ai/generate/server
curl -X POST https://qr-branding.com/api/qr/ai/generate/server \
-H "Content-Type: application/json" \
-d '{
"content": "https://yourbrand.com",
"prompt": "art deco gold leaf, geometric chevrons, ivory background",
"stylePreset": "luxury",
"creativity": 0.6
}'
Non servono llmProvider / llmApiKey. Il server prova nell'ordine Groq (gpt-oss-120b, poi gpt-oss-20b) → OpenAI → Gemini. In caso di successo viene scalato un credito IA dal tuo saldo; in caso di errore non si consuma nessun credito.
Esempi di codice
Corpo della richiesta
| Campo | Tipo | Predefinito | Note |
|---|---|---|---|
content | string | obbligatorio | Cosa codificare (URL / testo). |
prompt | string | obbligatorio | Descrizione in linguaggio naturale, ≤ 10000 caratteri. |
stylePreset | string | luxury | Uno tra minimal artistic corporate playful luxury tech nature. |
creativity | number | 0.5 | 0–1. Influisce sulla temperatura dell'LLM e sull'audacia delle scelte di design. |
strictScannability | boolean | true | Se attivo, il motore corregge in automatico qualsiasi problema di scansionabilità. Se disattivo, mostra un avviso. |
logoUrl | string | — | Inserito al centro, moduli sottostanti liberati, ECC alzato a H. |
logoBase64 | string | — | Come sopra, ma in base64 inline. |
backgroundImageUrl | string | — | Immagine di sfondo tenue (fusa dietro il QR). |
centerText | object | — | { text, color?, backgroundColor?, fontSize? }. Banner che attraversa il QR. |
ctaText | string | — | Didascalia sotto. |
fileFormat | string | png | png jpg svg pdf webp. |
outputWidth | number | 800 | Pixel. |
responseType | string | base64 | base64 o binary. |
L'endpoint marketplace richiede inoltre:
| Campo | Tipo | Note |
|---|---|---|
llmProvider | string | openai anthropic google mistral cohere groq xai deepseek qwen local |
llmApiKey | string | La chiave del tuo provider |
llmModel | string | Facoltativo: per impostazione predefinita, il modello predefinito del provider (vedi /api/qr/ai/providers); è accettato qualsiasi ID di modello offerto dal provider |
Risposta
{
"success": true,
"qrBase64": "iVBORw0KGgo…",
"format": "png",
"contentType": "image/png",
"sizeBytes": 38291,
"generatedConfig": { "moduleShape": "diamond", "finderOuterShape": "octagon", "...": "..." },
"aiExplanation": "Diamond modules and octagonal finders for the geometric art deco feel; gold-on-ivory keeps contrast at 6.4:1.",
"llmProviderUsed": "openai",
"llmModelUsed": "gpt-6-luna"
}
generatedConfig è il QrConfig completo prodotto dall'IA: utile se vuoi portare quella configurazione nella Modalità manuale e ritoccarla a mano.
Vedi anche
- POST /api/qr/generate: l'endpoint di rendering sottostante
- Riferimento QrConfig: l'elenco completo dei parametri tra cui l'IA può scegliere