# Limit gleichzeitiger Aufgaben und automatische Pausierung

> Das Limit gleichzeitiger Aufgaben bei YesCaptcha (ERROR_THREADS_MAXIMUM, kein Punkteabzug, keine Pausierung), die automatische Pausierung bei zu vielen Fehlern (100 pro Minute führen zu 5 Minuten Pause, ERROR_IP_BLOCKED_5MIN) und der Cache für ungültige Parameter (cached).

Source: https://docs.yescaptcha.com/de/api/rate-limits/ · Last verified: 2026-10-15

> This page was machine-translated from the Chinese version. If anything differs, the Chinese version prevails: https://docs.yescaptcha.com/zh/api/rate-limits/

Damit die Erkennung für alle Nutzer schnell bleibt, gibt es bei YesCaptcha drei Schutzregeln: ein Limit für die **Anzahl der Aufgaben, die ein Konto gleichzeitig in Bearbeitung hat** (Limit gleichzeitiger Aufgaben), eine **kurze Pausierung** eines `clientKey`, der in kurzer Zeit **zu viele Fehler** erzeugt (automatische Pausierung), und einen **Cache für bereits als ungültig erkannte Parameter**, der für einige Zeit direkt den ursprünglichen Fehler zurückgibt. In allen drei Fällen erfolgt kein Punkteabzug.

## Limit gleichzeitiger Aufgaben

Wir begrenzen pro Konto und pro Aufgabentyp die Anzahl der Aufgaben, die gleichzeitig in Bearbeitung sind. Begrenzt wird die Gleichzeitigkeit, nicht die Anzahl der Anfragen pro Minute.

-   Eine Aufgabe gilt ab dem Aufruf von `createTask` bis zur Rückkehr dieses Aufrufs als „in Bearbeitung“. Typen der Bilderkennung liefern das Ergebnis direkt in `createTask`, daher gilt: **Gleichzeitigkeit ≈ pro Sekunde gesendete Aufgaben × Dauer pro Aufgabe**. Beispiel: Bei 0.5 Sekunden pro Aufgabe und 40 Aufgaben pro Sekunde liegt die Gleichzeitigkeit bei etwa 20.
-   Anfragen desselben Kontos werden zusammengerechnet; jeder Aufgabentyp wird getrennt gezählt.
-   Anfragen über dem Limit liefern sofort `ERROR_THREADS_MAXIMUM`. Das Feld `limit` in der Antwort enthält Ihr aktuelles Limit. **Es erfolgt kein Punkteabzug, und die Anfragen zählen nicht für die automatische Pausierung.**
-   Wenn die Erkennungsserver überlastet sind, wird das Limit für diesen Aufgabentyp bei dem Konto, das die meiste Erkennungszeit beansprucht, **vorübergehend halbiert und nach 10 Minuten automatisch wiederhergestellt**. Das bremst nur, das Konto wird nicht pausiert.
-   Wenn Sie ein höheres Limit benötigen, wenden Sie sich an den [Support](https://docs.yescaptcha.com/de/help/contact.md). Sobald die Standardlimits der einzelnen Typen feststehen, werden sie auf dieser Seite und im [Änderungsprotokoll des Dienstes](https://docs.yescaptcha.com/de/changelog.md) veröffentlicht.

```json
{
  "errorId": 1,
  "errorCode": "ERROR_THREADS_MAXIMUM",
  "errorDescription": "This account already has 30 tasks of this type in progress, which is the limit. Lower the concurrency and wait for pending requests to return before sending more; rejected requests are not charged and do not lead to a block.",
  "limit": 30
}
```

(Die Zahlen im Beispiel dienen nur der Veranschaulichung.)

### Empfohlene Vorgehensweise

1.  Begrenzen Sie im Programm die Anzahl der Anfragen, die gleichzeitig auf ein Ergebnis warten, zum Beispiel mit einem Semaphor (Semaphore) oder einem Thread-Pool fester Größe, statt nur die Anzahl pro Sekunde zu steuern.
2.  Warten Sie nach `ERROR_THREADS_MAXIMUM`, bis bereits gesendete Anfragen zurückgekehrt sind, bevor Sie neue senden, oder versuchen Sie es nach 1 bis 2 Sekunden erneut. Wiederholen Sie nicht sofort in einer Schleife.
3.  Senden Sie Stapelaufgaben gleichmäßig verteilt und nicht Tausende oder Zehntausende auf einmal.

Beispiel in Python (asyncio):

```python
import asyncio
import os

import aiohttp

CLIENT_KEY = os.environ["YESCAPTCHA_CLIENT_KEY"]
LIMIT = 15  # below your concurrency limit
sem = asyncio.Semaphore(LIMIT)

async def solve(session, task):
    async with sem:  # at most LIMIT requests in progress at a time
        result = {}
        for attempt in range(5):
            async with session.post(
                "https://api.yescaptcha.com/createTask",
                json={"clientKey": CLIENT_KEY, "task": task},
            ) as resp:
                result = await resp.json()
            if result.get("errorCode") != "ERROR_THREADS_MAXIMUM":
                return result
            await asyncio.sleep(1 + attempt)  # over the limit: wait and retry
        return result
```

## Automatische Pausierung

Erzeugt derselbe `clientKey` in kurzer Zeit viele fehlerhafte Anfragen, wird das Erstellen von Aufgaben automatisch pausiert:

| Auslöser | Dauer der Pausierung |
| --- | --- |
| Innerhalb derselben Kalenderminute 100 der unten aufgeführten Fehler | 5 Minuten |
| `ERROR_IMAGE_TYPE_NOT_SUPPORTED` tritt 1 Mal auf | 30 Minuten |
| Innerhalb derselben Kalenderminute 1000 Treffer im „Cache für ungültige Parameter“ | 5 Minuten |

Fehler, die zur Pausierung zählen:

-   [`ERROR_REQUEST_FORMATS`](https://docs.yescaptcha.com/de/api/errors.md#ERROR_REQUEST_FORMATS)
-   [`ERROR_TASK_ABSENT`](https://docs.yescaptcha.com/de/api/errors.md#ERROR_TASK_ABSENT)
-   [`ERROR_TASK_NOT_SUPPORTED`](https://docs.yescaptcha.com/de/api/errors.md#ERROR_TASK_NOT_SUPPORTED)
-   [`ERROR_KEY_DOES_NOT_EXIST`](https://docs.yescaptcha.com/de/api/errors.md#ERROR_KEY_DOES_NOT_EXIST)
-   [`ERROR_KEY_EXPIRED`](https://docs.yescaptcha.com/de/api/errors.md#ERROR_KEY_EXPIRED)
-   [`ERROR_TASKID_INVALID`](https://docs.yescaptcha.com/de/api/errors.md#ERROR_TASKID_INVALID)
-   [`ERROR_SETTLEMENT_FAILED`](https://docs.yescaptcha.com/de/api/errors.md#ERROR_SETTLEMENT_FAILED)
-   [`ERROR_HIGH_DEMAND_DOMAIN`](https://docs.yescaptcha.com/de/api/errors.md#ERROR_HIGH_DEMAND_DOMAIN)
-   [`ERROR_ZERO_CAPTCHA_FILESIZE`](https://docs.yescaptcha.com/de/api/errors.md#ERROR_ZERO_CAPTCHA_FILESIZE)
-   [`ERROR_TOO_BIG_CAPTCHA_FILESIZE`](https://docs.yescaptcha.com/de/api/errors.md#ERROR_TOO_BIG_CAPTCHA_FILESIZE)
-   [`ERROR_IMAGE_TYPE_NOT_SUPPORTED`](https://docs.yescaptcha.com/de/api/errors.md#ERROR_IMAGE_TYPE_NOT_SUPPORTED)
-   [`ERROR_ILLEGAL_IMAGE`](https://docs.yescaptcha.com/de/api/errors.md#ERROR_ILLEGAL_IMAGE)

`ERROR_THREADS_MAXIMUM`, das durch das Limit gleichzeitiger Aufgaben des Kontos zurückgegeben wird (mit dem Feld `limit`), zählt nicht mit; der gleichnamige Fehler bei überlasteter Erkennung (ohne `limit`) zählt mit. Nicht mit zählen unter anderem fehlgeschlagene Erkennungen (`ERROR_CAPTCHA_UNSOLVABLE`), unzureichendes Guthaben (`ERROR_ZERO_BALANCE`), fehlende Felder (`ERROR_REQUIRED_FIELDS`) und nicht unterstützte Fragen (`ERROR_UNKNOWN_QUESTION`).

Während der Pausierung gilt:

-   Betroffen sind nur `createTask` und `getBalance`; sie liefern `ERROR_IP_BLOCKED_5MIN`. `getTaskResult` ist nicht betroffen: Vor der Pausierung erstellte Aufgaben können weiterhin abgefragt werden.
-   Die Antwort enthält `retryAfter` (verbleibende Sekunden), `blockReason` (der Fehlercode, der die Pausierung ausgelöst hat) und `blockDetail` (Typ, URL und sitekey dieser Anfragen). Korrigieren Sie Ihr Programm anhand dieser Angaben.
-   Weitere Anfragen verlängern die Pausierung nicht. Sie endet automatisch, Sie müssen den Support nicht kontaktieren.
-   Im Dashboard auf [yescaptcha.com](https://yescaptcha.com/) sehen Sie die Pausierungen der letzten 24 Stunden.

```json
{
  "errorId": 1,
  "errorCode": "ERROR_IP_BLOCKED_5MIN",
  "errorDescription": "...",
  "retryAfter": 182,
  "blockReason": "ERROR_TASK_NOT_SUPPORTED"
}
```

## Cache für ungültige Parameter

Manche Fehler hängen von den Anfrageparametern ab; ein erneutes Senden mit denselben Parametern ändert das Ergebnis nicht:

-   [`ERROR_RECAPTCHA_INVALID_SITEKEY`](https://docs.yescaptcha.com/de/api/errors.md#ERROR_RECAPTCHA_INVALID_SITEKEY)
-   [`ERROR_RECAPTCHA_INVALID_DOMAIN`](https://docs.yescaptcha.com/de/api/errors.md#ERROR_RECAPTCHA_INVALID_DOMAIN)
-   [`ERROR_INVALID_KEY_TYPE`](https://docs.yescaptcha.com/de/api/errors.md#ERROR_INVALID_KEY_TYPE)
-   [`ERROR_DOMAIN_NOT_ALLOWED`](https://docs.yescaptcha.com/de/api/errors.md#ERROR_DOMAIN_NOT_ALLOWED)

Diese Fehler zählen nicht für die automatische Pausierung, sondern werden seitenweit zwischengespeichert: nach der ersten Feststellung für 2 Minuten, bei erneuter Bestätigung innerhalb von 1 Stunde für 10 Minuten. Während der Cache-Dauer liefern gleiche Anfragen (gleicher Aufgabentyp und gleicher `websiteKey` oder gleiche Website-Domain) direkt den ursprünglichen Fehler, ohne Punkteabzug; die Antwort enthält `"cached": true`, `retryAfter` (verbleibende Sekunden im Cache) und `badRequest` (der betroffene Parameter). Nach Korrektur des `websiteKey` oder einem Wechsel des Aufgabentyps wirkt sich das sofort aus.

## Unterschied zwischen Limit gleichzeitiger Aufgaben und automatischer Pausierung

|  | Limit gleichzeitiger Aufgaben | Automatische Pausierung |
| --- | --- | --- |
| Ursache | Zu viele Aufgaben gleichzeitig in Bearbeitung | Zu viele fehlerhafte Anfragen in kurzer Zeit |
| Verhalten | Nur die überzähligen Anfragen werden abgelehnt, `ERROR_THREADS_MAXIMUM` | Dieser `clientKey` kann keine Aufgaben mehr erstellen, `ERROR_IP_BLOCKED_5MIN` |
| Wiederherstellung | Sobald Anfragen abgeschlossen sind, können neue gesendet werden; ein halbiertes Limit kehrt nach 10 Minuten zurück | Endet automatisch |
| Punkteabzug | Nein | Nein |
