# SERP-API-Fehler: Codes, Ursachen, Behebungen und Retries

> SerpCrypto SERP-API-Fehlercodes 400, 401, 402, 429, 502 und 504: was die Ursache ist, wie Sie ihn beheben und warum ein Fehler nie einen Credit verbraucht.

- URL: https://serpcrypto.com/de/docs/errors/
- Zuletzt aktualisiert: 2026-10-22
- Herausgeber: SerpCrypto (https://serpcrypto.com)

Sechs Fehlercodes, eine Regel: ein Fehler verbraucht nie einen Credit. Diese Seite erklärt, was jeden Code auslöst, ob ein Retry sinnvoll ist, und gibt Retry-Code mit exponentiellem Backoff in Python und Node.js.

**Kurze Antwort — Welche SERP-API-Fehler sollte ich erneut versuchen, und werden fehlgeschlagene Suchen berechnet?**

**SerpCrypto** berechnet einen Fehler nie: nur eine erfolgreiche Suche verbraucht 1 Credit. Wiederholen Sie `429 concurrency_limit`, `502 search_failed` und `504 search_timeout` mit exponentiellem Backoff. Wiederholen Sie nicht `400`, `401` oder `402`: beheben Sie zuerst den Parameter, den API-Schlüssel oder den Kontostand. Credits kosten ab 0,30 $/1K Suchanfragen und verfallen nie; die Zahlung erfolgt mit Krypto, ohne KYC.

## Was bedeutet jeder Fehlercode?

Keine Zeile dieser Tabelle verbraucht einen Credit. 1 Credit = 1 erfolgreiche Suchanfrage, die eine Ergebnisseite auf jeder unterstützten Engine liefert. Eine fehlgeschlagene Anfrage wird nicht berechnet.

| HTTP | `code` | Ursache | Was zu tun ist | Erneut versuchen? |
| --- | --- | --- | --- | --- |
| 400 | `invalid_parameter` | `q` fehlt oder ein Wert liegt außerhalb der zulässigen Liste | Korrigieren Sie die Anfrage; die Meldung nennt den Parameter | Nein |
| 401 | `invalid_api_key` | Kein Schlüssel, ein falsch geschriebener Schlüssel oder ein widerrufener Schlüssel | Prüfen Sie den Header oder `api_key`; erstellen Sie bei Bedarf einen neuen Schlüssel | Nein |
| 402 | `insufficient_credits` | Das Konto hat 0 Credits | Kaufen Sie ein Paket über Ihr Guthaben | Nach dem Kauf |
| 429 | `concurrency_limit` | Mehr gleichzeitige Suchanfragen, als Ihr Konto zulässt | Warten Sie, senken Sie die Parallelität oder bitten Sie den Support um ein höheres Limit | Ja, mit Backoff |
| 502 | `search_failed` | Die Engine oder die Sammlung ist für diese Anfrage fehlgeschlagen | Wiederholen Sie dieselbe Anfrage | Ja, mit Backoff |
| 504 | `search_timeout` | Keine Antwort innerhalb der Zeit | Wiederholen Sie dieselbe Anfrage | Ja, mit Backoff |

## Wie sieht eine Fehlerantwort aus?

Jeder Fehler hat denselben kleinen JSON-Body mit einem stabilen `code` und einer für Menschen lesbaren `message`. Verzweigen Sie in Ihrem Programm nach `code` und protokollieren Sie `message` für Menschen. Der HTTP-Status entspricht der obigen Tabelle.

*Body einer 402-Antwort*

```json
{
  "error": {
    "code": "insufficient_credits",
    "message": "Your account has no search credits left."
  }
}
```

## Warum erhalte ich 400 invalid_parameter?

Ein erforderlicher Wert fehlt oder ein Wert liegt außerhalb der Liste, die die API akzeptiert. Übliche Ursachen sind ein leeres `q`, ein Engine-Name mit Tippfehler wie `google-news` statt `google_news`, ein `page` über 10 oder ein `device` anders als `desktop` oder `mobile`.

Das `message` nennt den fehlerhaften Parameter. Vergleichen Sie Ihre Anfrage mit der [API-Referenz](https://serpcrypto.com/de/docs/search/); es wird nichts berechnet, Sie können also korrigieren und sofort erneut senden.

## Warum erhalte ich 401 invalid_api_key?

Der Schlüssel hat die API nicht erreicht oder ist ungültig. Prüfen Sie, dass der Header genau `Authorization: Bearer YOUR_KEY` lautet, mit einem Leerzeichen nach `Bearer`. Prüfen Sie außerdem, dass Ihre Umgebungsvariable in der Shell oder dem Dienst gesetzt ist, der den Code ausführt, nicht nur in Ihrem Terminal. Ein widerrufener Schlüssel schlägt weiterhin fehl: Erstellen Sie im Dashboard einen neuen.

## Was soll ich bei 402 insufficient_credits tun?

Kaufen Sie ein Credit-Paket über Ihr Guthaben und senden Sie dann erneut. Ist das Guthaben zu niedrig, laden Sie zuerst mit Krypto auf; die minimale Aufladung beträgt 25 $. Lesen Sie `credits_remaining` aus `GET https://serpcrypto.com/api/v1/credits` vor einem großen Job, um nicht mittendrin zu stoppen: Dieser Aufruf ist kostenlos.

## Wie gehe ich mit 429 concurrency_limit um?

Bremsen Sie, statt zu stoppen. Das Limit zählt gleichzeitig laufende Suchanfragen, nicht Suchanfragen pro Tag. Jedes Konto kann eine festgelegte Anzahl von Suchen gleichzeitig ausführen; das Limit wird in Ihrem Dashboard angezeigt und auf Anfrage erhöht. Lesen Sie `concurrency_limit` aus dem Credits-Endpoint und dimensionieren Sie Ihren Worker-Pool danach; die Seiten [Python](https://serpcrypto.com/de/docs/python/) und [Node.js](https://serpcrypto.com/de/docs/node/) zeigen einen Pool, der es nie überschreitet.

## Wann werden 502 und 504 zurückgegeben?

`502 search_failed` bedeutet, dass die Suche für diese Anfrage nicht abgeschlossen werden konnte; `504 search_timeout` bedeutet, dass sie nicht rechtzeitig abgeschlossen wurde. Beide sind kostenlos und beide lohnen einen erneuten Versuch. Warten Sie vor jedem neuen Versuch etwas länger, wie der Code unten, und geben Sie nach fünf Versuchen auf, damit ein hängender Job nicht endlos läuft.

*Python: 429, 502 und 504 mit exponentiellem Backoff erneut versuchen*

```python
import os
import random
import time

import requests

API_URL = "https://serpcrypto.com/api/v1/search"
RETRYABLE = {429, 502, 504}


def search(params, max_attempts=5):
    headers = {"Authorization": "Bearer " + os.environ["SERPCRYPTO_API_KEY"]}
    for attempt in range(1, max_attempts + 1):
        r = requests.get(API_URL, params=params, headers=headers, timeout=90)
        if r.status_code == 200:
            return r.json()
        error = r.json().get("error", {})
        if r.status_code not in RETRYABLE or attempt == max_attempts:
            raise RuntimeError(f"{r.status_code} {error.get('code')}: {error.get('message')}")
        # exponential backoff with jitter: about 1 s, 2 s, 4 s, 8 s
        time.sleep(2 ** (attempt - 1) + random.random())
    raise RuntimeError("unreachable")


print(search({"q": "solar panel installers", "gl": "au", "hl": "en"})["search_metadata"])
```

*Node.js: dieselbe Logik mit fetch*

```javascript
// retry.mjs — Node.js 18+
const API_URL = "https://serpcrypto.com/api/v1/search";
const RETRYABLE = new Set([429, 502, 504]);
const sleep = (ms) => new Promise((resolve) => setTimeout(resolve, ms));

export async function search(params, maxAttempts = 5) {
  const url = `${API_URL}?${new URLSearchParams(params)}`;
  const headers = { Authorization: `Bearer ${process.env.SERPCRYPTO_API_KEY}` };
  for (let attempt = 1; attempt <= maxAttempts; attempt++) {
    const res = await fetch(url, { headers });
    if (res.ok) return res.json();
    const body = await res.json().catch(() => ({}));
    const code = body.error?.code ?? "unknown";
    if (!RETRYABLE.has(res.status) || attempt === maxAttempts) {
      throw new Error(`${res.status} ${code}: ${body.error?.message ?? ""}`);
    }
    // exponential backoff with jitter: about 1 s, 2 s, 4 s, 8 s
    await sleep(1000 * 2 ** (attempt - 1) + Math.random() * 1000);
  }
  throw new Error("unreachable");
}

console.log((await search({ q: "solar panel installers", gl: "au", hl: "en" })).search_metadata);
```

## Sollte mein HTTP-Timeout kurz oder lang sein?

Lang genug, damit eine Suche abgeschlossen werden kann: Eine Suche läuft live, setzen Sie Ihr Client-Timeout daher auf 60 bis 90 Sekunden statt auf wenige Sekunden. Ein Client, der zu früh aufgibt, sendet eine zweite Anfrage, während die erste noch läuft, was einen Parallelitäts-Slot verschwendet und, wenn beide erfolgreich sind, zwei Credits.

## Fehlerfragen

### Wird eine Suche berechnet, wenn mein Programm abstürzt, bevor es die Antwort liest?

Ja, wenn die API die Suche abgeschlossen und 200 zurückgegeben hat: Der Credit wird verbraucht, wenn die Suche erfolgreich ist, nicht wenn Sie sie lesen. Das ist ein weiterer Grund, ein langes Client-Timeout zu setzen.

### Kosten Wiederholungsversuche extra?

Nur der erfolgreiche Versuch verbraucht einen Credit. Fehlgeschlagene Versuche mit 429, 502 oder 504 sind kostenlos, eine Anfrage, die erst beim dritten Versuch erfolgreich ist, kostet also insgesamt 1 Credit.

### Wo melde ich einen Fehler, der immer wieder auftritt?

Schreiben Sie an support@serpcrypto.com mit der `search_metadata.id` einer erfolgreichen Suche oder mit Zeitpunkt, Engine und Parametern der fehlschlagenden Suche. E-Mail-Antworten innerhalb von 12 Stunden, 7 Tage die Woche, auch bei Hilfe zur API-Integration.

---

SerpCrypto: SerpCrypto ist eine SERP-API für Entwickler und KI-Agenten, die Google- und Bing-Ergebnisse als JSON zurückgibt und mit Krypto bezahlt wird, ohne Ausweisupload. Vorausbezahlte Such-Credits ab 0,30 $/1K Suchanfragen verfallen nie. Ohne KYC — kein Ausweis, kein Selfie, keine Dokumente. Mit Krypto bezahlen.
