# reCAPTCHA v3

> Obtenez des tokens reCAPTCHA v3 (y compris Enterprise) avec YesCaptcha : comment renseigner pageAction, les types à score fixe 0.7 et 0.9, types de tâche et prix, paramètres, exemples et résultat renvoyé.

Source: https://docs.yescaptcha.com/fr/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 n’a ni case à cocher ni images : la page attribue un score aux visiteurs en arrière-plan. YesCaptcha renvoie un token (`gRecaptchaResponse`) que vous soumettez au site cible. `RecaptchaV3TaskProxyless` coûte 20 points (≈ $3.00 / 1k) par tâche et fonctionne en mode asynchrone : appelez `createTask`, puis `getTaskResult` toutes les 5 secondes. Les tâches en échec ou expirées donnent lieu à un remboursement de points automatique.

- POST `https://api.yescaptcha.com/createTask` (Endpoint mondial)
- POST `https://cn.yescaptcha.com/createTask` (Endpoint Chine)

Le corps de la requête est du JSON, authentifié avec votre `clientKey`. Interrogez le résultat sur le même endpoint que celui où vous avez créé la tâche.

## Cas d’usage

-   Le code source de la page contient `grecaptcha.execute(...)`, ou charge `recaptcha/api.js?render=CLÉ_DU_SITE` : reCAPTCHA v3 standard.
-   La page appelle `grecaptcha.enterprise.execute(...)` ou charge `recaptcha/enterprise.js` : reCAPTCHA v3 Enterprise. Utilisez `RecaptchaV3EnterpriseTask` ou `RecaptchaV3EnterpriseTaskM1`.

Pour les distinguer, consultez [Identifier le type de captcha](https://docs.yescaptcha.com/fr/guides/identify-captcha.md).

## Types de tâche et prix

| Type de tâche | Prix | Mode | Remarques |
| --- | --- | --- | --- |
| `RecaptchaV3TaskProxyless` | $3.00 / 1k; 20 points/tâche · ¥20 / 1k | Asynchrone |  |
| `RecaptchaV3TaskProxylessM1` | $3.75 / 1k; 25 points/tâche · ¥25 / 1k | Asynchrone |  |
| `RecaptchaV3TaskProxylessM1S7` | $4.50 / 1k; 30 points/tâche · ¥30 / 1k | Asynchrone | Demande un score de 0.7 ; aucun paramètre supplémentaire n'est nécessaire |
| `RecaptchaV3TaskProxylessM1S9` | $5.25 / 1k; 35 points/tâche · ¥35 / 1k | Asynchrone | Demande un score de 0.9 ; aucun paramètre supplémentaire n'est nécessaire |
| `RecaptchaV3EnterpriseTask` | $3.00 / 1k; 20 points/tâche · ¥20 / 1k | Asynchrone |  |
| `RecaptchaV3EnterpriseTaskM1` | $3.75 / 1k; 25 points/tâche · ¥25 / 1k | Asynchrone |  |

Les prix en dollars américains sont des estimations avec 1 USD ≈ ¥6.67 ; les tâches sont facturées en points.

-   `RecaptchaV3TaskProxyless` et `RecaptchaV3TaskProxylessM1` acceptent les mêmes paramètres mais passent par des routes différentes ; vous pouvez utiliser l’un comme solution de secours de l’autre.
-   Si le site cible exige un score élevé, utilisez `RecaptchaV3TaskProxylessM1S7` (0.7) ou `RecaptchaV3TaskProxylessM1S9` (0.9) : aucun paramètre supplémentaire n’est nécessaire.

## Paramètres de la requête

| Champ | Type | Obligatoire | Description |
| --- | --- | --- | --- |
| `type` | string | Oui | Type de tâche ; voir « Types de tâches et prix » sur cette page |
| `websiteURL` | string | Oui | URL complète de la page qui affiche le captcha. Indiquez le site sur lequel vous voyez le captcha, pas le domaine du fournisseur du captcha |
| `websiteKey` | string | Oui | La clé du site (sitekey), à trouver dans le code source de la page ou dans les requêtes réseau ; elle ne change généralement pas |
| `pageAction` | string | Non | L'action reCAPTCHA v3 ; elle doit correspondre à la valeur que la page transmet à `grecaptcha.execute`, sinon le token risque d'être rejeté |

`pageAction` doit correspondre à l’`action` que la page transmet à `grecaptcha.execute(CLÉ_DU_SITE, {action: '...'})`, sinon le site risque de rejeter le token. Pour le trouver, consultez [Trouver les paramètres reCAPTCHA](https://docs.yescaptcha.com/fr/guides/find-recaptcha-parameters.md).

## Exemple de requête

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);
```

Remplacez `websiteURL`, `websiteKey` et `pageAction` par les valeurs du site cible.

## Résultat

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

| Champ | Type | Description |
| --- | --- | --- |
| `gRecaptchaResponse` | string | Le token à soumettre au site cible. Usage unique, valable environ 120 secondes ; utilisez-le dans les 60 secondes |

Pendant le traitement, la réponse est `{"errorId": 0, "status": "processing"}` ; interrogez à nouveau 5 secondes plus tard. En cas d’erreur, traitez-la selon `errorCode`, comme décrit dans [Codes d’erreur](https://docs.yescaptcha.com/fr/api/errors.md). Pour savoir comment soumettre le token, consultez [Valider un reCAPTCHA avec un token](https://docs.yescaptcha.com/fr/guides/submit-recaptcha-token.md).

## FAQ

### Pourquoi certains tokens sont-ils refusés par le site ?

Avec la v3, c’est le site cible qui décide d’après le score, et il peut modifier son seuil à tout moment : tous les tokens ne sont donc pas acceptés. Vérifiez que `pageAction` est correct, essayez `M1S7` ou `M1S9` si le site exige un score élevé, ou comparez avec d’autres types similaires.

### Comment renseigner la version Enterprise de la v3 ?

Comme pour la version standard : `websiteURL`, `websiteKey`, `pageAction`, avec le type `RecaptchaV3EnterpriseTask` ou `RecaptchaV3EnterpriseTaskM1`.

### Combien de temps un token reste-t-il valide ?

Il est à usage unique et valable environ 120 secondes. Soumettez-le dans les 60 secondes.

## Tutoriels associés

-   [Identifier le type de captcha](https://docs.yescaptcha.com/fr/guides/identify-captcha.md)
-   [Trouver les paramètres reCAPTCHA](https://docs.yescaptcha.com/fr/guides/find-recaptcha-parameters.md) (dont la méthode pour `pageAction`)
-   [Valider un reCAPTCHA avec un token](https://docs.yescaptcha.com/fr/guides/submit-recaptcha-token.md)
