# reCAPTCHA v3

> YesCaptcha ile reCAPTCHA v3 (Enterprise dahil) token'ı alın: pageAction nasıl doldurulur, sabit 0.7 ve 0.9 skor türleri, görev türleri ve fiyatlar, parametreler, örnekler ve dönen sonuç.

Source: https://docs.yescaptcha.com/tr/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’te onay kutusu da görsel de yoktur; sayfa ziyaretçilere arka planda skor verir. YesCaptcha bir token (`gRecaptchaResponse`) döndürür, bu token’ı hedef siteye göndermeniz yeterlidir. `RecaptchaV3TaskProxyless` için görev başına ücret: 20 puan (≈ $3.00 / 1k). Görev asenkron çalışır: önce `createTask`, ardından her 5 saniyede bir `getTaskResult` çağrılır. Başarısız olan ve zaman aşımına uğrayan görevlerde puan iadesi otomatik yapılır.

- POST `https://api.yescaptcha.com/createTask` (Global uç nokta)
- POST `https://cn.yescaptcha.com/createTask` (Çin uç noktası)

İstek gövdesi JSON’dur ve `clientKey` ile doğrulanır. Görevi hangi uç noktada oluşturduysanız sonucu da aynı uç noktadan sorgulayın.

## Kullanım durumları

-   Sayfa kaynağında `grecaptcha.execute(...)` varsa ya da `recaptcha/api.js?render=SITE_KEY` yükleniyorsa: standart v3.
-   `grecaptcha.enterprise.execute(...)` çağrılıyorsa ya da `recaptcha/enterprise.js` yükleniyorsa: v3 Enterprise. `RecaptchaV3EnterpriseTask` veya `RecaptchaV3EnterpriseTaskM1` kullanın.

Nasıl ayırt edileceği için bkz. [CAPTCHA türünü belirleme](https://docs.yescaptcha.com/tr/guides/identify-captcha.md).

## Türler ve fiyatlar

| Görev türü | Fiyat | Mod | Notlar |
| --- | --- | --- | --- |
| `RecaptchaV3TaskProxyless` | $3.00 / 1k; 20 puan/görev · ¥20 / 1k | Asenkron |  |
| `RecaptchaV3TaskProxylessM1` | $3.75 / 1k; 25 puan/görev · ¥25 / 1k | Asenkron |  |
| `RecaptchaV3TaskProxylessM1S7` | $4.50 / 1k; 30 puan/görev · ¥30 / 1k | Asenkron | 0.7 skor ister; ek parametre gerekmez |
| `RecaptchaV3TaskProxylessM1S9` | $5.25 / 1k; 35 puan/görev · ¥35 / 1k | Asenkron | 0.9 skor ister; ek parametre gerekmez |
| `RecaptchaV3EnterpriseTask` | $3.00 / 1k; 20 puan/görev · ¥20 / 1k | Asenkron |  |
| `RecaptchaV3EnterpriseTaskM1` | $3.75 / 1k; 25 puan/görev · ¥25 / 1k | Asenkron |  |

ABD doları fiyatları, 1 ABD doları ≈ ¥6.67 kuruyla hesaplanan tahminlerdir; görevler puan üzerinden ücretlendirilir.

-   `RecaptchaV3TaskProxyless` ve `RecaptchaV3TaskProxylessM1` aynı parametreleri alır, farklı hatlar kullanır; birbirinin yedeği olarak kullanılabilir.
-   Hedef site yüksek skor istiyorsa sabit skorlu `RecaptchaV3TaskProxylessM1S7` (0.7 skor) veya `RecaptchaV3TaskProxylessM1S9` (0.9 skor) türünü kullanın; ek parametre gerekmez.

## İstek parametreleri

| Alan | Tür | Zorunlu | Açıklama |
| --- | --- | --- | --- |
| `type` | string | Evet | Görev türü; bu sayfadaki "Görev türleri ve fiyatlar" bölümüne bakın |
| `websiteURL` | string | Evet | CAPTCHA'nın göründüğü sayfanın tam URL'si. CAPTCHA'yı gördüğünüz siteyi yazın, CAPTCHA sağlayıcısının alan adını değil |
| `websiteKey` | string | Evet | Site anahtarı (sitekey); sayfa kaynağında veya ağ isteklerinde bulunur, genellikle değişmez |
| `pageAction` | string | Hayır | reCAPTCHA v3 action değeri; sayfanın `grecaptcha.execute` çağrısına verdiği değerle aynı olmalıdır, aksi halde token geçersiz sayılabilir |

`pageAction`, sayfanın `grecaptcha.execute(SITE_KEY, {action: '...'})` çağrısında ilettiği `action` ile aynı olmalıdır; yanlış doldurulursa site token’ı reddedebilir. Nasıl bulunacağı için bkz. [reCAPTCHA parametrelerini bulma](https://docs.yescaptcha.com/tr/guides/find-recaptcha-parameters.md).

## İstek örneği

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

`websiteURL`, `websiteKey` ve `pageAction` alanlarını hedef sitenin değerleriyle değiştirin.

## Dönen sonuç

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

| Alan | Tür | Açıklama |
| --- | --- | --- |
| `gRecaptchaResponse` | string | Hedef siteye gönderilecek token. Tek kullanımlıktır, yaklaşık 120 saniye geçerlidir; 60 saniye içinde kullanmanız önerilir |

İşlem sürerken `{"errorId": 0, "status": "processing"}` döner; 5 saniye sonra tekrar sorgulayın. Hatalarda `errorCode` değerine göre hareket edin, bkz. [Hata kodları](https://docs.yescaptcha.com/tr/api/errors.md). Token’ı aldıktan sonra nasıl göndereceğiniz için bkz. [reCAPTCHA’yı token ile tamamlama](https://docs.yescaptcha.com/tr/guides/submit-recaptcha-token.md).

## Sık sorulan sorular

### Token’lar neden bazen site tarafından kabul edilmiyor?

v3’te karar, skora göre hedef sitede verilir ve site eşiği istediği zaman değiştirebilir; bu yüzden her token geçmeyebilir. `pageAction` değerinin doğru olduğundan emin olun; site yüksek skor istiyorsa `M1S7` veya `M1S9` türünü deneyin; aynı gruptaki diğer türleri de karşılaştırabilirsiniz.

### v3 Enterprise nasıl doldurulur?

Standart sürümle aynı şekilde `websiteURL`, `websiteKey` ve `pageAction` alanlarını doldurun; türü `RecaptchaV3EnterpriseTask` veya `RecaptchaV3EnterpriseTaskM1` yapın.

### Token ne kadar süre geçerli?

Tek kullanımlıktır ve yaklaşık 120 saniye geçerlidir. 60 saniye içinde göndermeniz önerilir.

## İlgili rehberler

-   [CAPTCHA türünü belirleme](https://docs.yescaptcha.com/tr/guides/identify-captcha.md)
-   [reCAPTCHA parametrelerini bulma](https://docs.yescaptcha.com/tr/guides/find-recaptcha-parameters.md) (`pageAction` dahil)
-   [reCAPTCHA’yı token ile tamamlama](https://docs.yescaptcha.com/tr/guides/submit-recaptcha-token.md)
