Schnellstart
Vom API-Schlüssel über asynchrone Tasks und Webhooks bis zum Download.
SpicyAPI bietet asynchrone Tasks für Bilder und Videos sowie Textgenerierung über /v1/chat/completions mit vollständiger Antwort oder Streaming. Mit diesen drei Schritten erzeugen Sie Ihr erstes Ergebnis.
GET /api/v1/models?includeSchema=1&includeExamples=1
# choose an item where enabled && available
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: render-001" \
-d '{
"model": "MODEL_ID_FROM_CATALOG",
"input": { "prompt": "a folded paper lantern, hard side light" }
}'Absenden und Warten mit dem SDK
client.run(payload, options) bündelt im SDK das Absenden und Warten in einem Funktionsaufruf. Intern sind weiterhin mehrere HTTP-Anfragen nötig. Das standardmäßige Polling-Intervall steigt von etwa 2 auf höchstens 10 Sekunden. Bevorzugen Sie im Produktivbetrieb Webhooks und verwenden Sie fertige output.assets[].url direkt.
1. API-Schlüssel anlegen
Erstellen Sie den Schlüssel in der Konsole und speichern Sie ihn serverseitig als SPICY_API_KEY. Er gehört weder in den Browser noch in mobile Apps oder öffentliche Repositories.
2. Task erstellen
Senden Sie model und input an POST /api/v1/jobs/createTask. Die zurückgegebene data.taskId dient danach zum Abfragen, Wiederholen und Herunterladen. Ein angenommener Task kann nicht abgebrochen werden.
3. Ergebnis übernehmen
Verwenden Sie in Produktion primär Webhooks und GET /api/v1/jobs/recordInfo nur als Wiederherstellungs-Polling. Eine Generierung war erst erfolgreich, wenn data.state den Wert succeeded hat.
Laden Sie fertige Ergebnisse direkt über output.assets[].url herunter, ohne API-Schlüssel. expiresAt liegt normalerweise 20 Minuten später, höchstens jedoch am Ende der 14-tägigen Aufbewahrung. Erneutes Polling aktualisiert die URL; download-url bleibt optional.
Die vollständigen Felddefinitionen stehen im OpenAPI-3.1-Vertrag.

