Trzymaj klucz API na serwerze
Nigdy nie ujawniaj klucza SpicyAPI w kodzie przeglądarki, w paczce aplikacji mobilnej, w promptach, logach ani w wyniku widocznym dla agenta. Wysyłaj żądania z backendu, który sam kontrolujesz.
Integracje
Do czatu i odgrywania ról używaj wywołań zgodnych z OpenAI, a do obrazów, wideo i audio — API zadań. Wybierz model, przechowuj klucz na serwerze i przejdź do ścieżki odpowiedniej dla wyniku.
Wybierz swoją drogę
Zacznij tam, gdzie już pracujesz. Każda droga prowadzi do tych samych modeli w tych samych cenach.
Szybki start w 5 minut
Utwórz zadanie, zapisz jego ID i odbierz gotowy plik. Ten sam schemat działa dla każdego modelu obrazu, wideo i dźwięku.
Porównaj dopasowanie do zadania, przyjmowane wejścia, zasady dotyczące treści, bieżącą dostępność i cenę.
Zastąp przykładowy identyfikator modelu i dane wejściowe dokładnymi polami podanymi na stronie wybranego modelu. Nie zgaduj parametrów na podstawie innego modelu.
HTTP 202 oznacza, że zadanie zostało przyjęte, a nie że generowanie się zakończyło; kod aplikacyjny w odpowiedzi to nadal code: 200. Od razu zapisz data.taskId; estimatedCost to kwota zarezerwowana na to zadanie.
queued i running są wciąż w toku; succeeded, failed i expired są końcowe. Przerwij odpytywanie przy każdym stanie końcowym, zamiast czekać wyłącznie na powodzenie.
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 to rzeczywisty endpoint tekst–obraz. Dla innego modelu multimedialnego użyj jego dokładnego ID i schematu.
{
"code": 200,
"msg": "success",
"data": {
"taskId": "job_01k...",
"state": "queued"
},
"request_id": "req_01k..."
}Skrócony przykład odpowiedzi. Zamień przykładowe ID i URL na wartości ze swojej odpowiedzi.
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
}
}Skrócony przykład odpowiedzi. Zamień przykładowe ID i URL na wartości ze swojej odpowiedzi.
# Copy data.output.assets[0].url from the task response
curl -L -o result.png "URL_FROM_TASK_RESPONSE"Pobierz data.output.assets[0].url bezpośrednio, bez klucza API. URL zwykle działa przez 20 minut; ponownie odczytaj zadanie, aby dostać nowy adres, a potrzebne pliki zapisz we własnym magazynie. Przy pending odpytuj ponownie, aż URL będzie gotowy.
Katalog
Wybierz narzędzie, którego już używasz. Każda karta otwiera jego przewodnik konfiguracji.
Bezpieczeństwo serwera
Te trzy zasady dotyczą wycieku klucza, podwójnego naliczenia opłaty i utraty zadania. To minimum przed uruchomieniem aplikacji dla użytkowników.
Nigdy nie ujawniaj klucza SpicyAPI w kodzie przeglądarki, w paczce aplikacji mobilnej, w promptach, logach ani w wyniku widocznym dla agenta. Wysyłaj żądania z backendu, który sam kontrolujesz.
Przy każdym żądaniu tworzenia zadania wysyłaj stabilny Idempotency-Key. Gdy nie masz pewności, czy żądanie dotarło, ponów tę samą operację z tym samym kluczem, aby nie utworzyć dwóch płatnych zadań.
Zapisz zwrócone taskId i użyj podpisanego webhooka albo ograniczonego odpytywania statusu. Przyjęte zadanie rusza i nie da się go anulować. Nieudane zadania i zadania po upływie limitu czasu zwykle nie są płatne. Niektóre modele pobierają opłatę za odmowę wygenerowania treści zgodnie z opisem na stronie modelu; sprawdź te zasady przed wysłaniem.
Dokumentacja API