# Fouten, rate limits en retries

> Elke fout van de LLM API: HTTP-status, code en oorzaak, welke je moet retryen, rate limits, en wat te doen bij 402 insufficient balance. Fouten zijn gratis.

- URL: https://llmwithcrypto.com/nl/docs/errors/
- Laatst bijgewerkt: 2026-10-23
- Uitgever: LLMwithCrypto (https://llmwithcrypto.com)

Fouten komen terug in OpenAI-formaat, zodat SDK's ze als gewone exceptions gooien. Deze pagina list elke status en code, zegt welke een retry waard zijn, en toont een retry-loop die de rate limit respecteert.

**Snel antwoord — Welke fouten kan de LLMwithCrypto API teruggeven, en worden ze in rekening gebracht?**

De API beantwoordt fouten met een HTTP-status en een OpenAI-body: `{"error": {"message", "type", "param", "code"}}`. **LLMwithCrypto** gebruikt 400 voor een bad request, 401 voor een verkeerde sleutel, 402 als de credit niet kan betalen, 404 voor een onbekend model, 429 voor de rate limit en 500 of 503 aan onze kant. Een call die op een fout eindigt kost niets, zoals gedocumenteerd op 23 oktober 2026.

## Welke fouten bestaan er?

Geen enkele fout gebruikt credit. `code` is de stabiele waarde om in je code op te testen; `message` is voor mensen en kan veranderen.

| HTTP | `code` | Oorzaak | Retry? |
| --- | --- | --- | --- |
| 400 | `invalid_parameter` | Een verplicht veld ontbreekt, of een waarde valt buiten het bereik of heeft het verkeerde type | Nee: fix het request |
| 400 | `context_length_exceeded` | De messages plus `max_tokens` passen niet in het context window van het model | Nee: verkort de input of verlaag `max_tokens` |
| 400 | `unsupported_parameter` | Een veld dat dit model niet ondersteunt, zoals `response_format` op een model zonder JSON mode | Nee: verwijder het of wijzig van model |
| 401 | `invalid_api_key` | De API-sleutel ontbreekt, is verkeerd getypt of ingetrokken | Nee: controleer de API-sleutel |
| 402 | `insufficient_balance` | Het resterende saldo kan deze call niet betalen | Nee: koop een creditpack |
| 404 | `model_not_found` | Het `model`-id staat niet op onze lijst | Nee: gebruik een id uit `GET /api/v1/models` |
| 429 | `rate_limit_exceeded` | Meer requests of tokens per minuut dan het account toestaat | Ja, na een pauze |
| 500 | `server_error` | Er is iets misgegaan aan onze kant | Ja, met backoff |
| 503 | `model_overloaded` | Het model zit even aan zijn capaciteit | Ja, met backoff, of probeer een ander model |

*Error body: een onbekend model*

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

```

## Waarom krijg ik 404 voor gpt-4o of claude?

Omdat die modellen hier niet verkocht worden. We verkopen geen toegang tot GPT, Claude, Gemini of Grok: hun makers verbieden het doorverkopen van API-toegang zonder hun goedkeuring, en die hebben we niet. Code die voor de OpenAI API is geschreven noemt vaak op meerdere plekken een model; zoek in je project naar de oude naam en vervang die door een id van de [modellenpagina](https://llmwithcrypto.com/nl/models/), zoals `deepseek-v4-pro` of `gpt-oss-120b`.

## Wanneer moet mijn code opnieuw proberen?

Probeer opnieuw bij `429`, `500` en `503`, en bij netwerkfouten zoals een timeout of een verbroken verbinding. Probeer nooit opnieuw bij `400`, `401`, `402` of `404`: hetzelfde request zal op dezelfde manier mislukken.

Wacht voor elke nieuwe poging. Heeft de response een `Retry-After`-header, wacht dan dat aantal seconden; anders verdubbel je de pauze elke keer (1, 2, 4, 8 seconden…) en voeg je een beetje willekeurige tijd toe, zodat veel workers niet gelijktijdig opnieuw proberen. Stop na een paar pogingen en log de fout. De OpenAI SDKs proberen al zelf opnieuw; het voorbeeld hieronder zet dat uit om de logica volledig te tonen.

*Python: retry 429, 500 en 503 met exponentiële 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)

```

## Wat moet ik doen bij 402 insufficient_balance?

Saldo opwaarderen. De call is niet in rekening gebracht en er verandert niets anders aan het account: je API-sleutels werken weer zodra er saldo is. Zodra je crypto-top-up is bevestigd en een creditpack is gekocht, staat je API-sleutel klaar in het dashboard.

Om verrassingen in productie te voorkomen, lees je af en toe `GET https://llmwithcrypto.com/api/v1/credits` en stel je een alert in onder een grens naar keuze; de [modellen- en creditspagina](https://llmwithcrypto.com/nl/docs/models/) toont de call. Credits hebben geen vervaldatum: wat je deze maand niet uitgeeft, staat er volgend jaar nog, dus een groter pack eerder kopen kost niets extra.

## Hoe blijf ik onder de rate limit?

Elk account heeft een limiet per minuut voor requests en tokens, te zien in het dashboard; vraag support en die kan worden verhoogd.

- **Beperk de concurrency.** Voer een vast aantal requests parallel uit in plaats van een hele batch in één keer af te vuren.
- **Beperk de output.** Tokenlimieten tellen ook wat het model schrijft, dus een verstandige `max_tokens` houdt meer requests binnen de limiet.
- **Spreid batches.** Voor grote offline jobs verdeel je de requests over de minuut in plaats van ze in bursts te sturen.

## Fouten: veelgestelde vragen

### Word ik betaald voor een mislukte call?

Nee. Je betaalt per token vanaf je saldo: input- en outputtokens worden geteld door de tokenizer van het model zelf en afgerekend tegen de prijs van dat model per 1M tokens. Een call die op een fout eindigt, kost niets.

### Waar kan ik zien of er een storing is?

Op de [statuspagina](https://llmwithcrypto.com/nl/status/). Een reeks `500`- of `503`-fouten bij meerdere modellen betekent meestal een incident aan onze kant; mail naar support@llmwithcrypto.com als het aanhoudt.

### Kan ik het request zien dat mislukte?

Niet aan onze kant. We bewaren je prompts en de antwoorden van het model niet: zodra een response is verstuurd, is de tekst weg. Elke call laat één logregel achter met de tijd, het account, het model en de tokentellingen, die na 30 dagen wordt verwijderd. Log de fout `code` en je eigen request-id in je app.

---

LLMwithCrypto: LLMwithCrypto is een OpenAI-compatibele LLM API voor open-weight modellen — 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 — betaald per token vanaf een prepaid crypto-saldo, tegen 5% onder de mediane prijs van de publieke hosts. Zonder KYC: geen ID, geen selfie, geen documenten. Prompts en outputs worden niet opgeslagen.
