EN ZalogujOtwórz Studio
Wersja podglądowa. Katalog modeli, ceny, kalkulator i dokumentacja działają. Generowanie uruchomimy po starcie serwisu.

Uwierzytelnianie

Dokumentacja: spis stron

Bez klucza API działa tylko publiczny katalog modeli (GET /v1/models). Każde inne wywołanie musi się przedstawić kluczem. Jeden klucz otwiera wszystkie modele i endpointy, a opłaty idą z salda konta, do którego należy.

Jak założyć klucz

  1. Po zalogowaniu wejdź do panelu.
  2. W kluczach API dodaj nowy klucz z czytelną nazwą, np. sklep-produkcja albo make-scenariusz.
  3. Jeśli chcesz, wpisz miesięczny limit wydatków tego klucza.
  4. Skopiuj wartość - wyświetla się jednorazowo i później nie da się jej podejrzeć.

Klucz zaczyna się od sk-kd-, po czym następuje 32 znaki:

text
sk-kd-7b1e9d4c2a6f8e0b3d5c1a9f7e2b4d6c

Zgubionego klucza nie odzyskasz. Wygeneruj nowy, a stary skasuj w panelu.

W którym nagłówku go wysłać

Serwer rozumie dwa nagłówki. Wybierz ten, którego twój klient używa bez dodatkowej konfiguracji.

NagłówekWartośćKto go wysyła
AuthorizationBearer sk-kd-...curl, SDK OpenAI, typowe klienty HTTP
x-api-keysk-kd-...SDK Anthropic, Claude Code
bash
# wariant z Bearer
curl https://kadraris.com/v1/balance \
  -H "Authorization: Bearer $KADRARIS_API_KEY"

# wariant z x-api-key
curl https://kadraris.com/v1/balance \
  -H "x-api-key: $KADRARIS_API_KEY"
python
import os, requests

headers = {"Authorization":
           f"Bearer {os.environ['KADRARIS_API_KEY']}"}
url = "https://kadraris.com/v1/balance"
print(requests.get(url, headers=headers).json())
javascript
const res = await fetch("https://kadraris.com/v1/balance", {
  headers: { "x-api-key": process.env.KADRARIS_API_KEY },
});
console.log(await res.json());

Gotowe SDK potrzebują tylko klucza i adresu bazowego:

python
from openai import OpenAI
from anthropic import Anthropic

openai_client = OpenAI(
    base_url="https://kadraris.com/v1", api_key="sk-kd-...")
anthropic_client = Anthropic(
    base_url="https://kadraris.com", api_key="sk-kd-...")

Zwróć uwagę na różnicę: SDK OpenAI dostaje adres z /v1, a SDK Anthropic sam domena https://kadraris.com, bo ścieżkę dokleja samo. Pod spodem to ta sama usługa i ten sam klucz.

Miesięczny limit na kluczu

Limit wydatków ustawiasz osobno dla każdego klucza, przy jego tworzeniu w panelu. To dobry hamulec dla środowiska testowego, integracji oddanej klientowi albo automatyzacji, która mogłaby wpaść w pętlę.

Zapytanie, które przebiłoby limit, kończy się kodem 403:

json
{ "error": { "type": "permission_error", "message": "This key reached its monthly spend limit. Create a new key with a higher limit in the dashboard or use another key." } }

Z salda nic wtedy nie schodzi. Możesz założyć klucz z wyższym limitem albo przełączyć się na inny. Limit obowiązuje wyłącznie ten klucz, na którym go wpisałeś - dla konta jako całości granicą jest po prostu saldo (zobacz Rozliczenia).

Kiedy serwer odrzuci klucz

Koderror.typePowód
401authentication_errorBrak klucza, błędny format albo klucz skasowany
403permission_errorWyczerpany limit wydatków klucza
402insufficient_balanceKlucz w porządku, ale na koncie brakuje środków

Wszystkie kody znajdziesz na stronie Błędy.

Jak chronić klucz

  • Klucz żyje tylko po stronie serwera. Nie trafia do kodu w przeglądarce, do aplikacji mobilnej ani do publicznego repozytorium.
  • Każda aplikacja i każde środowisko dostaje swój klucz - wtedy wyłączasz jeden, a reszta działa dalej.
  • Kod czyta klucz ze zmiennej środowiskowej albo z menedżera sekretów, nigdy z pliku źródłowego.
  • Po wycieku skasuj klucz w panelu natychmiast. Każde wywołanie skasowanym kluczem dostaje 401.