Adres i uwierzytelnianie

Wszystkie żądania idą na https://api.e-a-s-y.com/v1 z nagłówkiem autoryzacji. Klucz generujesz w panelu klienta (strona „API AI”).

Authorization: Bearer <TWÓJ-KLUCZ>
Base URL:        https://api.e-a-s-y.com/v1

Zapytanie o dokończenie czatu

curl https://api.e-a-s-y.com/v1/chat/completions \
  -H "Authorization: Bearer <TWÓJ-KLUCZ>" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "deepseek/deepseek-chat",
    "messages": [
      {"role": "system", "content": "Jesteś pomocnym asystentem."},
      {"role": "user", "content": "Napisz krótki opis kawiarni."}
    ],
    "temperature": 0.7,
    "stream": false
  }'

Streaming działa jak w OpenAI API — ustaw "stream": true i czytaj odpowiedź SSE strumieniowo.

Python (openai)

from openai import OpenAI

client = OpenAI(
    base_url="https://api.e-a-s-y.com/v1",
    api_key="<TWÓJ-KLUCZ>",  # ze strony „API AI” w panelu
)

resp = client.chat.completions.create(
    model="deepseek/deepseek-chat",
    messages=[{"role": "user", "content": "Cześć!"}],
)
print(resp.choices[0].message.content)

JavaScript (Node, openai)

import OpenAI from "openai";

const client = new OpenAI({
  baseURL: "https://api.e-a-s-y.com/v1",
  apiKey: process.env.EASY_API_KEY,
});

const resp = await client.chat.completions.create({
  model: "deepseek/deepseek-chat",
  messages: [{ role: "user", content: "Cześć!" }],
});
console.log(resp.choices[0].message.content);

PHP (curl)

$ch = curl_init("https://api.e-a-s-y.com/v1/chat/completions");
curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_HTTPHEADER => [
        "Authorization: Bearer <TWÓJ-KLUCZ>",
        "Content-Type: application/json",
    ],
    CURLOPT_POSTFIELDS => json_encode([
        "model"    => "deepseek/deepseek-chat",
        "messages" => [["role" => "user", "content" => "Cześć!"]],
    ]),
]);
$resp = json_decode(curl_exec($ch), true);
echo $resp["choices"][0]["message"]["content"];

Modele

Dostępność modeli zależy od planu. Identyfikatory podajesz w polu model.

ModelPlanDo czego
deepseek/deepseek-chatwszystkieSzybki i tani model uniwersalny — domyślny wybór
deepseek/deepseek-reasonerwszystkieZadania analityczne, rozumowanie krok po kroku
openai/gpt-4o-miniwszystkieTanie żądania OpenAI, multimodalność
openai/gpt-4oPro, MaxJakość OpenAI do zadań wymagających
anthropic/claude-sonnet-4-5Pro, MaxDługie dokumenty, pisanie, kod
anthropic/claude-opus-4-5MaxNajmocniejszy model — zużywa budżet najszybciej
gemini/gemini-2.5-proPro, MaxDługie konteksty Google

Budżet i limity

Każdy plan to miesięczna koperta budżetu w dolarach (rozliczanego wg cenników dostawców modeli). DeepSeek jest najtańszy — orientacyjna liczba tokenów z planu zakłada właśnie jego. Modele premium potrafią zużyć cały budżet kilkukrotnie szybciej: Claude Opus kosztuje kilkadziesiąt razy więcej za token niż DeepSeek. Po wyczerpaniu budżetu klucz zwraca błąd do końca okresu; nowy okres startuje z kolejną płatnością subskrypcji.

Obowiązuje też limit żądań na minutę (RPM) i tokenów na minutę (TPM) — zależnie od planu, widoczne w panelu.

Kody błędów

HTTPZnaczenieCo robić
401Brak lub błędny kluczSprawdź nagłówek Authorization; wygeneruj nowy klucz w panelu
403Budżet wyczerpany lub model poza planemZobacz zużycie w panelu; zoptymalizuj prompty albo zmień plan
429Przekroczony limit RPM/TPMBackoff i ponowna próba; ogranicz równoległość
5xxBłąd bramki lub dostawcyPonów żądanie; jeśli trwa — zgłoszenie w panelu

Bezpieczeństwo klucza

Klucz trzymaj w zmiennych środowiskowych, nigdy w kodzie frontonu. Każde narzędzie może mieć swój własny klucz — w razie wycieku odwołujesz tylko jeden, w panelu, i generujesz nowy. Pełną wartość klucza pokazujemy tylko raz przy generowaniu.