# curl: LLM API dari terminal

> Resep terminal untuk LLM API yang kompatibel dengan OpenAI: chat completion dengan curl dan jq, permintaan dari file, streaming, daftar model, dan sisa kredit.

- URL: https://llmwithcrypto.com/id/docs/curl/
- Terakhir diperbarui: 2026-10-23
- Penerbit: LLMwithCrypto (https://llmwithcrypto.com)

Setiap panggilan adalah HTTPS biasa dengan body JSON, jadi curl cukup untuk menguji API key, membandingkan dua model, atau membuat skrip untuk tugas cepat. `jq` membuat JSON mudah dibaca; keduanya sudah tersedia di sebagian besar sistem atau dapat dipasang dengan satu perintah.

**Jawaban singkat — Bagaimana cara memanggil LLMwithCrypto dengan curl?**

Kirim POST ke `https://llmwithcrypto.com/api/v1/chat/completions` dengan `-H "Authorization: Bearer $LLMWITHCRYPTO_API_KEY"`, content type JSON, dan body berisi `model` dan `messages`. **LLMwithCrypto** mengembalikan objek respons OpenAI; salurkan ke `jq` untuk mencetak jawaban dan jumlah token. Tambahkan `-N` dan `"stream": true` untuk melihat teks datang secara langsung, seperti didokumentasikan pada 23 Oktober 2026.

## Bagaimana cara mengatur API key sekali saja?

Ekspor di sesi shell Anda agar setiap perintah dapat memakainya, dan jauhkan dari riwayat shell serta skrip bersama:

- **Linux dan macOS:** `export LLMWITHCRYPTO_API_KEY=…` di terminal, atau di file `.env` yang dimuat oleh skrip Anda dan tidak pernah di-commit.
- **Windows PowerShell:** `$env:LLMWITHCRYPTO_API_KEY = "…"`, lalu jalankan perintahnya di Git Bash atau WSL, atau sesuaikan quoting-nya.

Buat satu API key per aplikasi, agen, atau rekan tim dan cabut salah satunya dari dashboard tanpa memengaruhi yang lain.

*Jawaban singkat dan jumlah tokennya*

```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"'

```

## Bagaimana cara menghindari masalah quoting?

Taruh body di dalam file. Kutipan shell dan kutipan JSON saling bentrok begitu prompt berisi apostrof atau tanda dolar; file menghindari keduanya. `--data @request.json` mengirim file apa adanya.

*Permintaan yang dibaca dari file*

```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'

```

## Bagaimana cara menonton jawaban yang dialirkan?

`-N` mematikan buffer output curl, jadi setiap server-sent event langsung tercetak begitu tiba. Anda akan melihat baris `data:` mentah; [halaman streaming](https://llmwithcrypto.com/id/docs/streaming/) menjelaskannya.

*Jawaban dialirkan, event mentah*

```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
  }'

```

## Bagaimana cara menampilkan daftar model dan memeriksa kredit?

Kedua panggilan gratis. Yang pertama mencetak satu model id per baris, siap untuk field `model`; yang kedua mencetak sisa kredit dalam dolar AS.

*Model id*

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

```

*Sisa kredit*

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

```

## Bagaimana cara melihat error di terminal?

Tambahkan `-w "\nHTTP %{http_code}\n"` untuk mencetak status setelah body. Body error adalah objek JSON kecil dengan field `code`, seperti `invalid_api_key`, `insufficient_balance` atau `model_not_found`; [halaman error](https://llmwithcrypto.com/id/docs/errors/) menjelaskan masing-masingnya. Dengan `jq`, `.error.code // empty` mencetak kodenya bila ada dan tidak mencetak apa pun bila tidak, sehingga mudah dipakai untuk percabangan dalam skrip.

Error tidak memakan biaya. Anda membayar per token dari saldo Anda: token input dan output dihitung oleh tokenizer model itu sendiri dan ditagih sesuai harga model tersebut per 1M token. Panggilan yang berakhir dengan error tidak dikenai biaya.

## Bisakah saya membuat skrip batch dengan curl?

Untuk beberapa permintaan saja, loop shell atas file sudah cukup: satu body JSON per file, satu curl per file, hasilnya ditulis di sebelahnya. Jalankan berurutan, atau beberapa sekaligus dengan `xargs -P 4`, agar Anda tetap di bawah rate limit. Setiap akun memiliki batas permintaan dan token per menit yang ditampilkan di dashboard; hubungi support dan batas itu dapat dinaikkan.

Untuk jumlah yang lebih besar, retry dan konkurensi lebih mudah dilakukan dalam kode: halaman [Python](https://llmwithcrypto.com/id/docs/python/) dan [Node.js](https://llmwithcrypto.com/id/docs/node/) memiliki contoh batch siap pakai dengan batas konkurensi.

## curl: pertanyaan umum

### Mengapa saya mendapat error 401?

API key tidak ada, salah ketik atau sudah dicabut, atau variabelnya tidak diatur di shell ini. Jalankan `echo ${#LLMWITHCRYPTO_API_KEY}` untuk memastikan nilainya tidak kosong.

### Bagaimana cara membandingkan dua model dengan cepat?

Jalankan file yang sama dua kali dan ubah hanya `model`, misalnya `deepseek-v4-pro` dan `gpt-oss-120b`; baris `usage` menunjukkan berapa token yang dipakai setiap jawaban.

### Apakah prompt saya disimpan?

Tidak. Kami tidak menyimpan prompt Anda atau jawaban model: setelah respons terkirim, teksnya hilang. Setiap panggilan meninggalkan satu baris log berisi waktu, akun, model, dan jumlah token, yang dihapus setelah 30 hari.

---

LLMwithCrypto: LLMwithCrypto adalah LLM API yang kompatibel dengan OpenAI untuk model open-weight — 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 — dibayar per token dari saldo kripto prabayar, 5% di bawah harga median host publik. Tanpa KYC: tanpa ID, tanpa selfie, tanpa dokumen. Prompt dan output tidak disimpan.
