# Error, rate limit dan retry

> Setiap error LLM API: status HTTP, kode dan penyebab, mana yang perlu di-retry, rate limit, dan tindakan pada 402 saldo tidak mencukupi. Error gratis.

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

Error dikembalikan dalam format OpenAI, sehingga SDK memunculkannya sebagai exception seperti biasa. Halaman ini mencantumkan setiap status dan kode, menyebut mana yang layak di-retry, dan menunjukkan loop retry yang menghormati rate limit.

**Jawaban singkat — Error apa saja yang bisa dikembalikan API LLMwithCrypto, dan apakah dikenakan biaya?**

API menjawab error dengan status HTTP dan body bergaya OpenAI: `{"error": {"message", "type", "param", "code"}}`. **LLMwithCrypto** memakai 400 untuk permintaan yang salah, 401 untuk API key yang salah, 402 ketika kredit tidak cukup, 404 untuk model yang tidak dikenal, 429 untuk rate limit dan 500 atau 503 di sisi kami. Panggilan yang berakhir dengan error tidak memakan biaya, sebagaimana didokumentasikan pada 23 Oktober 2026.

## Error apa saja yang ada?

Tidak ada error yang memakai kredit. `code` adalah nilai stabil untuk diuji dalam kode Anda; `message` untuk manusia dan bisa berubah.

| HTTP | `code` | Penyebab | Retry? |
| --- | --- | --- | --- |
| 400 | `invalid_parameter` | Field wajib tidak ada, atau nilainya di luar rentang atau bertipe salah | Tidak: perbaiki permintaannya |
| 400 | `context_length_exceeded` | Messages ditambah `max_tokens` tidak muat dalam context window model | Tidak: perpendek input atau turunkan `max_tokens` |
| 400 | `unsupported_parameter` | Field yang tidak didukung model ini, seperti `response_format` pada model tanpa mode JSON | Tidak: hapus field itu atau ganti model |
| 401 | `invalid_api_key` | API key tidak ada, salah ketik atau sudah dicabut | Tidak: periksa API key |
| 402 | `insufficient_balance` | Kredit yang tersisa tidak cukup untuk membayar panggilan ini | Tidak: beli pak kredit |
| 404 | `model_not_found` | ID `model` tidak ada di daftar kami | Tidak: gunakan ID dari `GET /api/v1/models` |
| 429 | `rate_limit_exceeded` | Permintaan atau token per menit melebihi batas akun | Ya, setelah jeda |
| 500 | `server_error` | Ada yang gagal di sisi kami | Ya, dengan backoff |
| 503 | `model_overloaded` | Model sedang penuh untuk sementara | Ya, dengan backoff, atau coba model lain |

*Body error: model tidak dikenal*

```json
{
  "error": {
    "message": "The model `gpt-4o` does not exist or is not available to your key.",
    "type": "invalid_request_error",
    "param": "model",
    "code": "model_not_found"
  }
}

```

## Kenapa saya dapat 404 untuk gpt-4o atau claude?

Karena model tersebut tidak dijual di sini. Kami tidak menjual akses ke GPT, Claude, Gemini, atau Grok: pembuatnya melarang penjualan kembali akses API tanpa persetujuan mereka, dan kami tidak memilikinya. Kode yang ditulis untuk OpenAI API sering menyebut nama model di beberapa tempat; cari nama lama di proyek Anda dan ganti dengan ID dari [halaman models](https://llmwithcrypto.com/id/models/), misalnya `deepseek-v4-pro` atau `gpt-oss-120b`.

## Kapan kode saya harus retry?

Retry `429`, `500` dan `503`, serta error jaringan seperti timeout atau koneksi yang terputus. Jangan pernah retry `400`, `401`, `402` atau `404`: permintaan yang sama akan gagal dengan cara yang sama.

Tunggu sebelum setiap percobaan baru. Jika respons memiliki header `Retry-After`, tunggu selama itu dalam detik; jika tidak, gandakan jeda setiap kali (1, 2, 4, 8 detik…) dan tambahkan sedikit waktu acak, agar banyak worker tidak retry bersamaan. Berhenti setelah beberapa percobaan dan catat error-nya. SDK OpenAI sudah melakukan retry sendiri; contoh di bawah mematikannya untuk menunjukkan logikanya secara lengkap.

*Python: retry 429, 500 dan 503 dengan exponential backoff*

```python
import os
import random
import time

from openai import APIConnectionError, APIStatusError, OpenAI

client = OpenAI(
    base_url="https://llmwithcrypto.com/api/v1",
    api_key=os.environ["LLMWITHCRYPTO_API_KEY"],
    max_retries=0,
)
RETRY = {429, 500, 503}


def chat(messages, model="deepseek-v4-pro", attempts=5):
    for attempt in range(attempts):
        try:
            return client.chat.completions.create(model=model, messages=messages, max_tokens=500)
        except APIStatusError as err:
            if err.status_code not in RETRY or attempt == attempts - 1:
                raise
            wait = err.response.headers.get("retry-after")
            delay = float(wait) if wait else min(30, 2**attempt) + random.random()
        except APIConnectionError:
            if attempt == attempts - 1:
                raise
            delay = min(30, 2**attempt) + random.random()
        time.sleep(delay)

```

## Apa yang harus saya lakukan pada 402 insufficient_balance?

Isi ulang saldo. Panggilan tersebut tidak ditagih, dan tidak ada hal lain di akun yang berubah: API key Anda tetap berfungsi begitu ada kredit lagi. Setelah top-up kripto Anda terkonfirmasi dan pack kredit dibeli, API key Anda sudah menunggu di dashboard.

Agar tidak kaget di produksi, baca `GET https://llmwithcrypto.com/api/v1/credits` dari waktu ke waktu dan pasang alert di bawah ambang pilihan Anda; [halaman models dan credits](https://llmwithcrypto.com/id/docs/models/) menunjukkan biaya panggilan. Kredit tidak memiliki tanggal kedaluwarsa: yang tidak Anda belanjakan bulan ini tetap ada tahun depan, jadi pak yang lebih besar yang dibeli lebih awal tidak menambah biaya.

## Bagaimana cara 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.

- **Batasi konkurensi.** Jalankan sejumlah permintaan secara paralel dengan jumlah tetap, bukan mengirim seluruh batch sekaligus.
- **Batasi output.** Batas token juga menghitung apa yang ditulis model, jadi `max_tokens` yang wajar membuat lebih banyak permintaan masuk dalam batas.
- **Sebar batch.** Untuk pekerjaan offline besar, atur laju permintaan sepanjang menit, bukan mengirimnya sekaligus.

## Error: pertanyaan umum

### Apakah saya dikenakan biaya untuk panggilan yang gagal?

Tidak. 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.

### Di mana saya bisa melihat apakah ada gangguan?

Di [status page](https://llmwithcrypto.com/id/status/). Rangkaian error `500` atau `503` pada beberapa model biasanya berarti ada insiden di sisi kami; tulis ke support@llmwithcrypto.com jika berlangsung lama.

### Bisakah saya melihat permintaan yang gagal?

Tidak di sisi kami. 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. Catat error `code` dan ID permintaan Anda sendiri di aplikasi Anda.

---

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.
