Tieni la chiave API sul server
Non esporre mai una chiave SpicyAPI nel codice del browser, in un bundle mobile, in un prompt, nei log o in un output visibile a un agent. Invia le richieste da un backend che controlli tu.
Integrazioni
Usa chiamate compatibili con OpenAI per chat e roleplay, oppure l’API delle attività per immagini, video e audio. Scegli un modello, conserva la chiave sul server e segui il percorso adatto al risultato che vuoi.
Scegli la tua strada
Parti da dove lavori già. Ogni strada porta agli stessi modelli, agli stessi prezzi.
Guida rapida in 5 minuti
Crea un’attività, conserva il suo ID, poi recupera il file finito. Lo stesso schema vale per ogni modello di immagini, video e audio.
Confronta l’attività, gli input accettati, le regole sui contenuti, la disponibilità attuale e il prezzo.
Sostituisci l’ID del modello e l’input di esempio con i campi esatti indicati nella pagina di quel modello. Non tirare mai a indovinare i parametri partendo da un altro modello.
HTTP 202 significa che l’attività è stata accettata, non che la generazione è finita; il codice applicativo dentro la struttura della risposta resta code: 200. Conserva subito data.taskId; estimatedCost è l’importo bloccato per questa attività.
queued e running sono ancora in corso; succeeded, failed ed expired sono finali. Smetti di interrogare a qualsiasi stato finale, invece di aspettare solo il successo.
curl -X POST https://api.spicyapi.ai/api/v1/jobs/createTask \
-H "Authorization: Bearer $SPICY_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: order-8814-render-1" \
-d '{
"model": "alibaba/z-image-turbo/text-to-image",
"input": { "prompt": "A ceramic teapot on a linen cloth, soft window light" }
}'alibaba/z-image-turbo/text-to-image è un endpoint reale da testo a immagine. Per un altro modello multimediale, usa il suo ID esatto e il suo schema.
{
"code": 200,
"msg": "success",
"data": {
"taskId": "job_01k...",
"state": "queued"
},
"request_id": "req_01k..."
}Esempio di risposta abbreviato. Sostituisci ID e URL illustrativi con i valori della tua risposta.
curl 'https://api.spicyapi.ai/api/v1/jobs/recordInfo?taskId=job_01k...' \
-H "Authorization: Bearer $SPICY_API_KEY"{
"code": 200,
"data": {
"taskId": "job_01k...",
"state": "succeeded",
"output": {
"assets": [{
"key": "tasks/.../output.png",
"url": "https://example.com/result.png?signature=FROM_RESPONSE",
"expiresAt": "2026-10-07T12:20:00Z",
"mime": "image/png"
}]
},
"settled": true
}
}Esempio di risposta abbreviato. Sostituisci ID e URL illustrativi con i valori della tua risposta.
# Copy data.output.assets[0].url from the task response
curl -L -o result.png "URL_FROM_TASK_RESPONSE"Scarica data.output.assets[0].url direttamente, senza chiave API. Gli URL durano normalmente 20 minuti; rileggi l’attività per un nuovo URL e copia i file da conservare nel tuo archivio. Se il file è pending, ripeti la lettura finché l’URL non è pronto.
Elenco
Scegli lo strumento che usi già. Ogni scheda apre la sua guida alla configurazione.
Sicurezza lato server
Queste tre regole coprono una chiave trapelata, un addebito duplicato e un’attività persa. Sono il minimo prima di andare in produzione.
Non esporre mai una chiave SpicyAPI nel codice del browser, in un bundle mobile, in un prompt, nei log o in un output visibile a un agent. Invia le richieste da un backend che controlli tu.
Invia una Idempotency-Key stabile a ogni richiesta di creazione. Quando l’esito di rete è incerto, ripeti la stessa unità di lavoro con la stessa chiave: così non ti ritrovi mai con due attività fatturabili.
Salva il taskId restituito e usa un webhook firmato oppure controlli di stato con un limite. Un’attività accettata parte e non può essere annullata. Le attività fallite o scadute di norma non vengono addebitate. Alcuni modelli addebitano i rifiuti dei contenuti come indicato nella loro pagina; verifica queste condizioni prima dell’invio.
Documentazione API