# curl: LLM API z terminala

> Przepisy terminalowe dla zgodnego z OpenAI LLM API: ukończenie czatu za pomocą curl i jq, zapytanie z pliku, streaming, lista modeli i pozostałe kredyty.

- URL: https://llmwithcrypto.com/pl/docs/curl/
- Ostatnia aktualizacja: 2026-10-23
- Wydawca: LLMwithCrypto (https://llmwithcrypto.com)

Każde wywołanie to zwykły HTTPS z ciałem JSON, więc curl wystarczy, żeby przetestować klucz, porównać dwa modele lub napisać szybki skrypt. `jq` czyni JSON czytelnym; oba są w większości systemów lub instalują się jedną komendą.

**Krótka odpowiedź — Jak wywołać LLMwithCrypto za pomocą curl?**

Wyślij POST do `https://llmwithcrypto.com/api/v1/chat/completions` z `-H "Authorization: Bearer $LLMWITHCRYPTO_API_KEY"`, typem zawartości JSON i ciałem zawierającym `model` i `messages`. **LLMwithCrypto** zwraca obiekt odpowiedzi OpenAI; przekieruj go do `jq`, aby wydrukować odpowiedź i liczbę tokenów. Dodaj `-N` i `"stream": true`, aby zobaczyć tekst na żywo, zgodnie z dokumentacją na 23 października 2026.

## Jak ustawić klucz raz?

Wyeksportuj go w sesji powłoki, żeby każde polecenie mogło go użyć, i trzymaj go poza historią powłoki i współdzielonymi skryptami:

- **Linux i macOS:** `export LLMWITHCRYPTO_API_KEY=…` w terminalu lub w pliku `.env`, który ładują Twoje skrypty i który nigdy nie jest commitowany.
- **Windows PowerShell:** `$env:LLMWITHCRYPTO_API_KEY = "…"`, następnie uruchom polecenia w Git Bash lub WSL albo dostosuj cytowanie.

Twórz jeden klucz API na aplikację, agenta lub członka zespołu i odwołuj każdy z nich z dashboardu, nie ruszając pozostałych.

*Krótka odpowiedź i liczba jej tokenów*

```bash
curl -s "https://llmwithcrypto.com/api/v1/chat/completions" \
  -H "Authorization: Bearer $LLMWITHCRYPTO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"model": "gpt-oss-20b", "messages": [{"role": "user", "content": "One word for fast?"}], "max_tokens": 20}' \
  | jq -r '.choices[0].message.content, "\(.usage.prompt_tokens) in, \(.usage.completion_tokens) out"'

```

## Jak uniknąć problemów z cytowaniem?

Umieść ciało w pliku. Cudzysłowy powłoki i cudzysłowy JSON walczą ze sobą, gdy tylko prompt zawiera apostrof lub znak dolara; plik pozwala uniknąć obu. `--data @request.json` wysyła plik tak, jak jest.

*Zapytanie odczytane z pliku*

```bash
cat > request.json <<'EOF'
{
  "model": "deepseek-v4-pro",
  "messages": [
    {"role": "system", "content": "You review shell scripts."},
    {"role": "user", "content": "Is it safe to run rm -rf \"$DIR\"/ when DIR may be empty?"}
  ],
  "max_tokens": 300
}
EOF
curl -s "https://llmwithcrypto.com/api/v1/chat/completions" \
  -H "Authorization: Bearer $LLMWITHCRYPTO_API_KEY" \
  -H "Content-Type: application/json" \
  --data @request.json | jq -r '.choices[0].message.content'

```

## Jak mogę obserwować strumieniowaną odpowiedź?

`-N` wyłącza bufor wyjścia curl, więc każde zdarzenie server-sent event wyświetla się od razu po nadejściu. Zobaczysz surowe linie `data:`; [strona o streamingu](https://llmwithcrypto.com/pl/docs/streaming/) wyjaśnia je.

*Strumieniowana odpowiedź, surowe zdarzenia*

```bash
curl -sN "https://llmwithcrypto.com/api/v1/chat/completions" \
  -H "Authorization: Bearer $LLMWITHCRYPTO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "deepseek-v4.1-flash",
    "messages": [{"role": "user", "content": "Write a haiku about latency."}],
    "stream": true,
    "stream_options": {"include_usage": true},
    "max_tokens": 120
  }'

```

## Jak mogę wyświetlić listę modeli i sprawdzić kredyty?

Oba zapytania są darmowe. Pierwsze wypisuje jeden id modelu na linię, gotowy do pola `model`; drugie wypisuje pozostałe kredyty w dolarach amerykańskich.

*Id modeli*

```bash
curl -s "https://llmwithcrypto.com/api/v1/models" \
  -H "Authorization: Bearer $LLMWITHCRYPTO_API_KEY" | jq -r '.data[].id'

```

*Pozostałe kredyty*

```bash
curl -s "https://llmwithcrypto.com/api/v1/credits" \
  -H "Authorization: Bearer $LLMWITHCRYPTO_API_KEY" | jq -r '.balance_usd'

```

## Jak mogę zobaczyć błąd w terminalu?

Dodaj `-w "\nHTTP %{http_code}\n"`, aby wypisać status po treści odpowiedzi. Treść błędu to mały obiekt JSON z polem `code`, takim jak `invalid_api_key`, `insufficient_balance` lub `model_not_found`; [strona o błędach](https://llmwithcrypto.com/pl/docs/errors/) wyjaśnia każdy z nich. Z `jq`, `.error.code // empty` wypisuje kod, gdy jakiś jest, a w przeciwnym razie nic, co ułatwia rozgałęzianie w skryptach.

Błędy nic nie kosztują. Płacisz za token z salda: tokeny wejściowe i wyjściowe są liczone przez tokenizer danego modelu i rozliczane według ceny tego modelu za 1M tokenów. Wywołanie zakończone błędem nic nie kosztuje.

## Czy mogę napisać skrypt do partii z curl?

Dla kilku zapytań wystarczy pętla powłoki po plikach: jedna treść JSON na plik, jeden curl na plik, wyniki zapisane obok nich. Zachowaj kolejność lub uruchamiaj kilka naraz z `xargs -P 4`, aby nie przekroczyć rate limit. Każde konto ma limit zapytań i tokenów na minutę, widoczny w dashboardzie; poproś support, a można go podnieść.

Dla większych ilości ponowienia i współbieżność są łatwiejsze w kodzie: [strony Python](https://llmwithcrypto.com/pl/docs/python/) i [Node.js](https://llmwithcrypto.com/pl/docs/node/) mają gotowe przykłady partii z limitem współbieżności.

## curl: często zadawane pytania

### Dlaczego dostaję błąd 401?

Klucz API brakuje, jest błędnie wpisany lub unieważniony, albo zmienna nie jest ustawiona w tej powłoce. Uruchom `echo ${#LLMWITHCRYPTO_API_KEY}`, aby sprawdzić, czy nie jest pusta.

### Jak mogę szybko porównać dwa modele?

Uruchom ten sam plik dwa razy i zmień tylko `model`, na przykład `deepseek-v4-pro` i `gpt-oss-120b`; linie `usage` pokazują, ile kosztowała każda odpowiedź w tokenach.

### Czy mój prompt jest przechowywany?

Nie. Nie przechowujemy Twoich promptów ani odpowiedzi modelu: gdy odpowiedź zostanie wysłana, jej tekst znika. Każde wywołanie zostawia jedną linię logu z czasem, kontem, modelem i liczbą tokenów, usuwaną po 30 dniach.

---

LLMwithCrypto: LLMwithCrypto to zgodne z OpenAI API LLM dla modeli z otwartymi wagami — DeepSeek V4 Pro, DeepSeek V4.1 Flash, DeepSeek R1, Qwen3.5 397B A17B, Qwen3 235B A22B Instruct, gpt-oss-120b, gpt-oss-20b, GLM-4.7, Llama 3.3 70B Instruct, Gemma 4 31B, Mistral Large 3, Mistral Small 4 — płatne za token z przedpłaconego salda kryptowalutowego, o 5% poniżej mediany ceny publicznych hostów. Bez KYC: bez dowodu, bez selfie, bez dokumentów. Prompty i odpowiedzi nie są przechowywane.
