spicyapiDokumentacja
Materiały referencyjne
Treść główna

OpenAPI i indeks endpointów

Kontrakt OpenAPI 3.1 do pobrania, wszystkie publiczne endpointy z odpowiednimi poradnikami, wspólne nagłówki żądań i produkcyjny adres API.

Publiczny kontrakt w formacie maszynowym jest dostępny jako OpenAPI 3.1 YAML. Użyj go do wygenerowania klienta lub sprawdzenia integracji względem aktualnych publicznych endpointów.

Produkcyjny adres API

https://api.spicyapi.ai jest jedynym produkcyjnym adresem bazowym wskazanym w OpenAPI przez servers[0].url. API zadań używa /api/v1; endpointy zgodności z protokołami używają /v1 i /v1beta.

Te API platformy umożliwiają wybór modelu, uzyskiwanie wycen i monitorowanie wydatków bez otwierania konsoli. Katalog modeli zawiera ceny twojego konta; gdy cena zależy od parametrów, pobierz wycenę dokładnych danych wejściowych. Historia zadań i użycie są ograniczone do klucza API, którym wykonujesz wywołanie. Tworzenie i rotacja kluczy oraz ustawienia budżetu pozostają w konsoli. Każda tabela odsyła do poradnika, który szczegółowo wyjaśnia dany endpoint.

API wyszukiwania modeli, cen i konta

MetodaŚcieżkaPrzeznaczeniePoradnik
GET/console/v1/catalog/modelsPubliczny katalog do oceny oferty: bez klucza API, ceny standardowe, limit żądań według adresu źródłowegoSzybki start
GET/api/v1/modelsOdczyt modeli dostępnych do wywołania, cen konta i opcjonalnych schematówKatalog modeli
GET/api/v1/models/{model}Odczyt jednego modelu i jego pełnego JSON SchemaKatalog modeli
POST/api/v1/jobs/quoteWycena dokładnego żądania ważna przez pięć minut, bez tworzenia zadania i blokowania środkówWyceny
GET/api/v1/chat/creditOdczyt salda dostępnego, zablokowanego i łącznegoRozliczenia
GET/api/v1/usageOdczyt wywołań bieżącego klucza i rozliczonych wydatków w USD według daty i modeluRozliczenia

API generowania i zadań

MetodaŚcieżkaPrzeznaczeniePoradnik
GET/api/v1/jobsHistoria zadań bieżącego klucza API z paginacją za pomocą kursoraZadania
POST/api/v1/jobs/createTaskUtworzenie asynchronicznego zadania generowaniaZadania
GET/api/v1/jobs/recordInfoOdczyt zadania utworzonego kluczem API użytym w wywołaniuZadania
POST/api/v1/jobs/retryUtworzenie nowego zadania na podstawie zadania zakończonego błędem lub po upływie terminu; zachowana zgodność z historycznymi rekordami anulowaniaDziałania na zadaniach
POST/api/v1/jobs/purgeZniszczenie plików wynikowych i promptu jednego zadania w stanie końcowym; rekord rozliczenia pozostaje bez zmianPrzechowywanie danych
POST/api/v1/jobs/streamUruchomienie modelu tekstowego i strumieniowanie odpowiedzi przez SSETekst i strumieniowanie

API mediów

MetodaŚcieżkaPrzeznaczeniePoradnik
POST/api/v1/common/upload-urlWydanie biletu do bezpośredniego przesłania pliku multimedialnegoMedia
POST/api/v1/files/{fileId}/commitWeryfikacja i zatwierdzenie bezpośrednio przesłanego pliku; zwraca URI spicy:// gotowe do użycia w zadaniuMedia
POST/api/v1/files/importImport pliku wag LoRA z linku, z opcjonalnym tokenem dostępu użytym jednorazowo i nigdy niezapisywanym; zwraca URI spicy:// gotowe do użycia w zadaniuWagi adaptera
POST/api/v1/common/download-urlWydanie krótkotrwałego adresu do pobrania wyniku zadania (opcjonalne: zakończone zadania już zawierają taki adres)Media
POST/api/v1/assetsZapisanie pliku w bibliotece zasobów (wymagany Idempotency-Key)Media
GET/api/v1/assetsLista zapisanych zasobów (filtry favorite, collectionId, q; sortowanie przez sort)Media
GET/api/v1/assets/usagePlan, wykorzystanie i limity biblioteki zasobówMedia
GET/api/v1/assets/{assetId}Pobranie jednego zasobu ze świeżym prywatnym linkiem podgląduMedia
PATCH/api/v1/assets/{assetId}Zmiana nazwy zasobu lub jego flagi favoriteMedia
DELETE/api/v1/assets/{assetId}Usunięcie zasobuMedia
GET/api/v1/assets/entitiesLista postaci w bibliotece zasobów (tylko odczyt)Media
GET/api/v1/assets/entities/{entityId}Jedna postać z obrazami po kolei (tylko odczyt)Media

Uwierzytelnianie i wspólna struktura odpowiedzi

Każdy endpoint oprócz publicznego katalogu wymaga klucza API w nagłówku Authorization: Bearer sk-spicy-…; endpointy zgodności (/v1, /v1beta) akceptują również x-api-key, przesyłany przez SDK Anthropic, oraz x-goog-api-key, przesyłany przez SDK Google GenAI. Klucz w parametrach zapytania URL nigdy nie jest akceptowany. Zadania, ponowienia, operacje usuwania treści i linki pobierania są widoczne tylko dla klucza API, który utworzył zadanie; zobacz Uwierzytelnianie.

Odpowiedzi JSON API zadań mają wspólną strukturę {code,msg,data,request_id}; endpointy zgodności używają struktur właściwych dla swoich protokołów. Wynik zadania opisuje data.state, a nie zewnętrzne pole code. Zobacz Błędy.

Nagłówki żądań używane w różnych endpointach

NagłówekGdzie wysyłaćPrzeznaczenie
Authorization: Bearer …Wszędzie oprócz publicznego kataloguTwój klucz API
Idempotency-Keyjobs/createTask, jobs/retry, jobs/stream, POST /v1/videos i endpointy tekstowe /v1 oraz /v1betaPozwala bezpiecznie powtórzyć żądanie po błędzie sieci. W endpointach zadań zwraca pierwotne zadanie; w endpointach tekstowych zapobiega ponownej opłacie, ale nie może zwrócić utraconej odpowiedzi. Zobacz Idempotencja
X-Spicy-Retentionjobs/createTask, jobs/streamSkraca czas przechowywania wyników i promptu tego zadania, w sekundach. Zobacz Przechowywanie danych
Accept-LanguageDowolny endpointJęzyk komunikatów o błędach; kody nigdy się nie zmieniają. Zobacz Błędy

Korzystanie z pliku OpenAPI

  • Wypróbuj żądania bez pisania kodu: zaimportuj plik OpenAPI z linku na początku strony do klienta API, takiego jak Postman, Insomnia lub Bruno, a następnie ustaw swój klucz API jako token Bearer. Pamiętaj, że tworzenie zadań jest płatne.
  • Wygeneruj klienta: przekaż ten sam plik do generatora kodu OpenAPI 3.1 dla swojego języka.

Zmiany kontraktu

  • Nie przechowuj parametrów modeli jako trwale zakodowanej migawki; odczytuj inputSchema z /models/{model}.
  • Toleruj nieznane pola odpowiedzi, ale nigdy nie zgaduj nieznanych pól żądania.
  • Przed wydaniem używaj OpenAPI YAML do generowania kodu lub testów kontraktu.

Endpointy zgodności

MetodaŚcieżkaProtokół
GET/v1/modelsModels
POST/v1/chat/completionsChat Completions
POST/v1/responsesResponses
POST/v1/messagesMessages
POST/v1beta/models/{model}:generateContentGemini generateContent
POST/v1beta/models/{model}:streamGenerateContentGemini streamGenerateContent
POST/v1/videosVideos
GET/v1/videos/{videoId}Stan wideo
GET/v1/videos/{videoId}/contentZawartość wideo

Endpointy tekstowe opisuje Tekst i strumieniowanie; ich wycenę wyjaśniają Wyceny i zgodność.

Oficjalnym pakietem TypeScript jest @spicyapi/sdk. W przypadku Pythona i Go albo gdy nie możesz dodać zależności, poniższe gotowe do skopiowania klienty referencyjne wywołują te endpointy wyłącznie przy użyciu środowiska uruchomieniowego danego języka. Klient Python samodzielnie obsługuje cały proces zadania multimedialnego: przesłanie i zatwierdzenie pliku referencyjnego, potwierdzenie ceny wyceną, utworzenie zadania i odpytywanie do stanu końcowego, odczyt wyniku niezależnie od tego, czy są to pliki czy tekst, odświeżenie wygasłego linku do wyniku, późniejsze zniszczenie zapisanej treści oraz weryfikację podpisu webhooka. Klient Go obejmuje ten sam proces, z kontekstem w każdym wywołaniu i typowanym błędem odczytywanym przez errors.As. Klient TypeScript obsługuje tworzenie i ponawianie zadań, odczyty stanu oraz oczekiwanie z limitem czasu; do przesyłania plików i pozostałych operacji API w Node.js używaj SDK.

Klienty referencyjne do skopiowania

Przykłady bez zewnętrznych zależności: wyszukiwanie modeli, tworzenie zadania, ponowienie zadania zakończonego błędem, odczyt stanu, wszystkie stany końcowe, ograniczone oczekiwanie, idempotentność i obsługa błędów. Przyjętego zadania nie można już anulować.

To przykłady z dokumentacji, a nie opublikowane pakiety npm i PyPI ani moduły Go. Dziesięć minut to lokalny limit oczekiwania, a nie produkcyjne SLA.

Na tej stronie