Uwierzytelnianie
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
- Po zalogowaniu wejdź do panelu.
- W kluczach API dodaj nowy klucz z czytelną nazwą, np.
sklep-produkcjaalbomake-scenariusz. - Jeśli chcesz, wpisz miesięczny limit wydatków tego klucza.
- 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:
sk-kd-7b1e9d4c2a6f8e0b3d5c1a9f7e2b4d6cZgubionego 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łówek | Wartość | Kto go wysyła |
|---|---|---|
Authorization | Bearer sk-kd-... | curl, SDK OpenAI, typowe klienty HTTP |
x-api-key | sk-kd-... | SDK Anthropic, Claude Code |
# 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"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())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:
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:
{ "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
| Kod | error.type | Powód |
|---|---|---|
| 401 | authentication_error | Brak klucza, błędny format albo klucz skasowany |
| 403 | permission_error | Wyczerpany limit wydatków klucza |
| 402 | insufficient_balance | Klucz 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.























