# reCAPTCHA v3

> Mit YesCaptcha reCAPTCHA-v3-Tokens (auch Enterprise) abrufen: wie Sie pageAction ausfüllen, die Typen mit festem Score 0.7 und 0.9, Aufgabentypen und Preise, Parameter, Beispiele und Ergebnisformat.

Source: https://docs.yescaptcha.com/de/tasks/recaptcha-v3/ · 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/tasks/recaptcha-v3/

reCAPTCHA v3 hat weder ein Kontrollkästchen noch Bilder; die Seite bewertet Besucher im Hintergrund. YesCaptcha liefert ein Token (`gRecaptchaResponse`), das Sie an die Zielwebsite übermitteln. `RecaptchaV3TaskProxyless` kostet 20 Punkte (≈ $3.00 / 1k) pro Aufgabe und arbeitet asynchron: erst `createTask`, dann alle 5 Sekunden `getTaskResult`. Fehlgeschlagene Aufgaben und Zeitüberschreitungen führen automatisch zur Punkteerstattung.

- POST `https://api.yescaptcha.com/createTask` (Globaler Endpoint)
- POST `https://cn.yescaptcha.com/createTask` (China-Endpoint)

Der Request-Body ist JSON, die Authentifizierung erfolgt mit `clientKey`. Fragen Sie das Ergebnis an demselben Endpoint ab, an dem Sie die Aufgabe erstellt haben.

## Anwendungsfälle

-   Im Quelltext der Seite steht `grecaptcha.execute(...)`, oder die Seite lädt `recaptcha/api.js?render=WEBSITE_KEY`: reCAPTCHA v3 (Standardversion).
-   Die Seite ruft `grecaptcha.enterprise.execute(...)` auf oder lädt `recaptcha/enterprise.js`: reCAPTCHA v3 Enterprise. Verwenden Sie `RecaptchaV3EnterpriseTask` oder `RecaptchaV3EnterpriseTaskM1`.

So erkennen Sie den Typ: [Captcha-Typ erkennen](https://docs.yescaptcha.com/de/guides/identify-captcha.md).

## Aufgabentypen und Preise

| Aufgabentyp | Preis | Modus | Hinweise |
| --- | --- | --- | --- |
| `RecaptchaV3TaskProxyless` | $3.00 / 1k; 20 Punkte/Aufgabe · ¥20 / 1k | Asynchron |  |
| `RecaptchaV3TaskProxylessM1` | $3.75 / 1k; 25 Punkte/Aufgabe · ¥25 / 1k | Asynchron |  |
| `RecaptchaV3TaskProxylessM1S7` | $4.50 / 1k; 30 Punkte/Aufgabe · ¥30 / 1k | Asynchron | Fordert einen Score von 0.7 an; kein zusätzlicher Parameter erforderlich |
| `RecaptchaV3TaskProxylessM1S9` | $5.25 / 1k; 35 Punkte/Aufgabe · ¥35 / 1k | Asynchron | Fordert einen Score von 0.9 an; kein zusätzlicher Parameter erforderlich |
| `RecaptchaV3EnterpriseTask` | $3.00 / 1k; 20 Punkte/Aufgabe · ¥20 / 1k | Asynchron |  |
| `RecaptchaV3EnterpriseTaskM1` | $3.75 / 1k; 25 Punkte/Aufgabe · ¥25 / 1k | Asynchron |  |

Die Preise in US-Dollar sind Schätzwerte bei 1 US$ ≈ ¥6.67; Aufgaben werden in Punkten berechnet.

-   `RecaptchaV3TaskProxyless` und `RecaptchaV3TaskProxylessM1` haben dieselben Parameter, laufen aber über unterschiedliche Routen; Sie können sie gegenseitig als Fallback nutzen.
-   Verlangt die Zielwebsite einen hohen Score, verwenden Sie `RecaptchaV3TaskProxylessM1S7` (0.7) oder `RecaptchaV3TaskProxylessM1S9` (0.9). Zusätzliche Parameter sind nicht nötig.

## Request-Parameter

| Feld | Typ | Erforderlich | Beschreibung |
| --- | --- | --- | --- |
| `type` | string | Ja | Aufgabentyp; siehe „Aufgabentypen und Preise“ auf dieser Seite |
| `websiteURL` | string | Ja | Vollständige URL der Seite, auf der das Captcha angezeigt wird. Verwenden Sie die Website, auf der Sie das Captcha sehen, nicht die Domain des Captcha-Anbieters |
| `websiteKey` | string | Ja | Der Website-Schlüssel (sitekey), zu finden im Quelltext der Seite oder in den Netzwerkanfragen; ändert sich in der Regel nicht |
| `pageAction` | string | Nein | Die reCAPTCHA-v3-Action; sie muss mit dem Wert übereinstimmen, den die Seite an `grecaptcha.execute` übergibt, sonst wird das Token möglicherweise abgelehnt |

`pageAction` muss mit der `action` übereinstimmen, die die Seite in `grecaptcha.execute(WEBSITE_KEY, {action: '...'})` übergibt. Bei falschem Wert kann die Website das Token ablehnen. So finden Sie den Wert: [reCAPTCHA-Parameter finden](https://docs.yescaptcha.com/de/guides/find-recaptcha-parameters.md).

## Request-Beispiel

POST https://api.yescaptcha.com/createTask

```json
{
  "clientKey": "YOUR_CLIENT_KEY",
  "task": {
    "type": "RecaptchaV3TaskProxyless",
    "websiteURL": "https://example.com/login",
    "websiteKey": "SITE_KEY_OF_THE_PAGE",
    "pageAction": "login"
  }
}
```

**curl**

```bash
curl -s https://api.yescaptcha.com/createTask \
  -H 'Content-Type: application/json' \
  -d '{
  "clientKey": "YOUR_CLIENT_KEY",
  "task": {
    "type": "RecaptchaV3TaskProxyless",
    "websiteURL": "https://example.com/login",
    "websiteKey": "SITE_KEY_OF_THE_PAGE",
    "pageAction": "login"
  }
}'

# Returns {"errorId":0,"taskId":"..."}; then poll every 5 seconds:
curl -s https://api.yescaptcha.com/getTaskResult \
  -H 'Content-Type: application/json' \
  -d '{"clientKey": "YOUR_CLIENT_KEY", "taskId": "TASK_ID"}'
```

**Python**

solve.py

```python
import os
import time

import requests

API = "https://api.yescaptcha.com"
CLIENT_KEY = os.environ["YESCAPTCHA_CLIENT_KEY"]  # Read the clientKey from an environment variable

def call(method, payload):
    r = requests.post(f"{API}/{method}", json={"clientKey": CLIENT_KEY, **payload}, timeout=30)
    data = r.json()
    if data.get("errorId"):
        raise RuntimeError(f"{data.get('errorCode')}: {data.get('errorDescription')}")
    return data

def solve(task):
    task_id = call("createTask", {"task": task})["taskId"]
    for _ in range(36):  # Poll every 5 seconds, for up to about 3 minutes
        time.sleep(5)
        result = call("getTaskResult", {"taskId": task_id})
        if result.get("status") == "ready":
            return result["solution"]
    raise TimeoutError(task_id)

solution = solve({
    "type": "RecaptchaV3TaskProxyless",
    "websiteURL": "https://example.com/login",
    "websiteKey": "SITE_KEY_OF_THE_PAGE",
    "pageAction": "login",
})
print(solution["gRecaptchaResponse"])
```

**Node.js**

solve.mjs

```js
const API = 'https://api.yescaptcha.com';
const CLIENT_KEY = process.env.YESCAPTCHA_CLIENT_KEY; // Read the clientKey from an environment variable

async function call(method, payload) {
  const res = await fetch(`${API}/${method}`, {
    method: 'POST',
    headers: { 'Content-Type': 'application/json' },
    body: JSON.stringify({ clientKey: CLIENT_KEY, ...payload }),
  });
  const data = await res.json();
  if (data.errorId) throw new Error(`${data.errorCode}: ${data.errorDescription}`);
  return data;
}

async function solve(task) {
  const { taskId } = await call('createTask', { task });
  for (let i = 0; i < 36; i++) { // Poll every 5 seconds, for up to about 3 minutes
    await new Promise((r) => setTimeout(r, 5000));
    const result = await call('getTaskResult', { taskId });
    if (result.status === 'ready') return result.solution;
  }
  throw new Error(`timeout: ${taskId}`);
}

const solution = await solve({
  type: "RecaptchaV3TaskProxyless",
  websiteURL: "https://example.com/login",
  websiteKey: "SITE_KEY_OF_THE_PAGE",
  pageAction: "login",
});
console.log(solution.gRecaptchaResponse);
```

Ersetzen Sie `websiteURL`, `websiteKey` und `pageAction` durch die Werte der Zielwebsite.

## Ergebnis

```json
{
  "errorId": 0,
  "status": "ready",
  "solution": {
    "gRecaptchaResponse": "03AGdBq25SxXT-pmSeBXjzScW-EiocHwwpwqtk1QXlJnGnU..."
  }
}
```

| Feld | Typ | Beschreibung |
| --- | --- | --- |
| `gRecaptchaResponse` | string | Das Token, das an die Zielwebsite gesendet wird. Einmalig verwendbar, ca. 120 Sekunden gültig; verwenden Sie es innerhalb von 60 Sekunden |

Solange die Aufgabe läuft, erhalten Sie `{"errorId": 0, "status": "processing"}`; fragen Sie nach 5 Sekunden erneut ab. Bei Fehlern gehen Sie anhand von `errorCode` vor, siehe [Fehlercodes](https://docs.yescaptcha.com/de/api/errors.md). Wie Sie das Token übermitteln, steht in [reCAPTCHA mit einem Token abschließen](https://docs.yescaptcha.com/de/guides/submit-recaptcha-token.md).

## FAQ

### Warum lehnt die Website manche Tokens ab?

Bei v3 entscheidet die Zielwebsite anhand des Scores, und sie kann ihren Schwellenwert jederzeit ändern. Nicht jedes Token wird daher akzeptiert. Prüfen Sie, ob `pageAction` korrekt ist; verlangt die Website einen hohen Score, versuchen Sie `M1S7` oder `M1S9`; Sie können auch andere Typen derselben Familie vergleichen.

### Wie fülle ich v3 Enterprise aus?

Wie bei der Standardversion: `websiteURL`, `websiteKey`, `pageAction`, mit dem Typ `RecaptchaV3EnterpriseTask` oder `RecaptchaV3EnterpriseTaskM1`.

### Wie lange ist ein Token gültig?

Es ist nur einmal verwendbar und etwa 120 Sekunden gültig. Übermitteln Sie es innerhalb von 60 Sekunden.

## Weiterführende Anleitungen

-   [Captcha-Typ erkennen](https://docs.yescaptcha.com/de/guides/identify-captcha.md)
-   [reCAPTCHA-Parameter finden](https://docs.yescaptcha.com/de/guides/find-recaptcha-parameters.md) (einschließlich `pageAction`)
-   [reCAPTCHA mit einem Token abschließen](https://docs.yescaptcha.com/de/guides/submit-recaptcha-token.md)
