Szybki start
Kadraris API to jeden klucz i jedno przedpłacone saldo dla modeli czatu, obrazu, wideo i audio. W kilku krokach przejdziesz tu od pustego konta do pierwszej odpowiedzi modelu językowego i pierwszego gotowego obrazu. Wszystkie przykłady da się wkleić do terminala bez zmian, poza kluczem.
Każde zapytanie idzie pod ten sam adres bazowy:
https://kadraris.com/v1Krok 1: konto, saldo i klucz
- Zarejestruj się i zasil saldo kwotą od 40 zł (więcej w Rozliczeniach).
- W panelu wejdź w zakładkę z kluczami API i wygeneruj nowy klucz.
- Skopiuj go od razu - zaczyna się od
sk-kd-, ma 32 znaki i panel nie pokaże go drugi raz.
Klucz wstaw do zmiennej środowiskowej, żeby nie lądował w plikach z kodem:
export KADRARIS_API_KEY="sk-kd-..."$env:KADRARIS_API_KEY = "sk-kd-..."Nagłówki, limity wydatków i dobre praktyki opisuje strona Uwierzytelnianie.
Krok 2: pierwsze pytanie do modelu czatu
Endpoint /v1/chat/completions przyjmuje format OpenAI. Oficjalne SDK OpenAI wystarczy więc skierować na inny adres bazowy.
curl https://kadraris.com/v1/chat/completions \
-H "Authorization: Bearer $KADRARIS_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "claude-sonnet-5",
"messages": [{"role": "user",
"content": "Opisz w trzech zdaniach kadr filmowy."}]
}'# pip install openai
import os
from openai import OpenAI
client = OpenAI(
base_url="https://kadraris.com/v1",
api_key=os.environ["KADRARIS_API_KEY"],
)
resp = client.chat.completions.create(
model="claude-sonnet-5",
messages=[{"role": "user",
"content": "Opisz w trzech zdaniach kadr filmowy."}],
)
print(resp.choices[0].message.content)
print(resp.usage)// npm install openai
import OpenAI from "openai";
const client = new OpenAI({
baseURL: "https://kadraris.com/v1",
apiKey: process.env.KADRARIS_API_KEY,
});
const resp = await client.chat.completions.create({
model: "claude-sonnet-5",
messages: [
{ role: "user", content: "Opisz w trzech zdaniach kadr filmowy." },
],
});
console.log(resp.choices[0].message.content);Inny model to tylko inna wartość model, np. gpt-6-sol, gemini-3.6-flash czy deepseek-v4-flash. Strumieniowanie, narzędzia i reszta opcji: Czat.
Krok 3: pierwszy obraz
Obraz, wideo i audio zamawiasz jako zadanie przez POST /v1/generate. Przy obrazach opłaca się dodać ?wait=60 - serwer trzyma wtedy połączenie otwarte do chwili, gdy plik jest gotowy.
curl "https://kadraris.com/v1/generate?wait=60" \
-H "Authorization: Bearer $KADRARIS_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "gpt-image-2.5",
"input": {
"prompt": "Stara kamera filmowa na statywie, ciepłe światło",
"aspect_ratio": "1024x1024"
}
}'import os, requests
r = requests.post(
"https://kadraris.com/v1/generate",
params={"wait": 60},
headers={"Authorization":
f"Bearer {os.environ['KADRARIS_API_KEY']}"},
json={
"model": "gpt-image-2.5",
"input": {
"prompt": "Stara kamera filmowa na statywie, ciepłe światło",
"aspect_ratio": "1024x1024",
},
},
timeout=130,
)
task = r.json()
print(r.status_code, task["status"])
if task["status"] == "succeeded":
print(task["output"][0]["url"], task["cost"])const r = await fetch("https://kadraris.com/v1/generate?wait=60", {
method: "POST",
headers: {
Authorization: `Bearer ${process.env.KADRARIS_API_KEY}`,
"Content-Type": "application/json",
},
body: JSON.stringify({
model: "gpt-image-2.5",
input: {
prompt: "Stara kamera filmowa na statywie, ciepłe światło",
aspect_ratio: "1024x1024",
},
}),
});
const task = await r.json();
console.log(r.status, task.status, task.output?.[0]?.url);Co może wrócić:
200zestatus: "succeeded"i tablicąoutput- obraz zdążył w 60 sekund.202z aktualnym stanem zadania - generacja trwa dłużej, więc sprawdzasz zadanie albo czekasz na webhook.
Adresy plików w output wygasają po pewnym czasie, dlatego zapisz u siebie to, co ma zostać. Obecna stawka tego modelu to 0,293 zł za obraz, a generacja zakończona błędem kosztuje 0 zł.
Krok 4: ile zostało na koncie
curl https://kadraris.com/v1/balance \
-H "Authorization: Bearer $KADRARIS_API_KEY"{ "balance": "49.60", "available": "46.50",
"currency": "PLN", "low_balance": false }Pole balance to wszystkie środki, a available to kwota po odjęciu blokad pod zadania, które jeszcze się liczą.
Dokąd dalej
| Temat | Dokumentacja |
|---|---|
| Strumieniowanie i narzędzia w czacie | Czat |
| SDK Anthropic, Claude Code | Anthropic Messages, Claude Code |
| Wideo, muzyka, audio | Generowanie |
| Lista modeli, ceny, parametry | Modele |
| Kody błędów i ponawianie | Błędy |
| n8n, Make, Zapier | No-code |























