# YesCaptcha Docs (full text) > YesCaptcha bir CAPTCHA çözme API'sidir. Tek bir JSON arayüzüyle reCAPTCHA, hCaptcha, Cloudflare Turnstile, FunCaptcha, AWS WAF ve görsel CAPTCHA'ları çözebilirsiniz; ücret görev başına puan olarak düşer, başarısız ve zaman aşımına uğrayan görevlerin puanı otomatik iade edilir. --- # CAPTCHA'ları tek bir JSON arayüzüyle çözün > YesCaptcha bir CAPTCHA çözme API'sidir. Tek bir JSON arayüzüyle reCAPTCHA, hCaptcha, Cloudflare Turnstile, FunCaptcha, AWS WAF ve görsel CAPTCHA'ları çözebilirsiniz; ücret görev başına puan olarak düşer, başarısız ve zaman aşımına uğrayan görevlerin puanı otomatik iade edilir. Source: https://docs.yescaptcha.com/tr/ · 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/ [CAPTCHA tanıma API'siDurum](https://status.yescaptcha.com/?lang=en) reCAPTCHA, hCaptcha, Cloudflare Turnstile, FunCaptcha, AWS WAF ve görsel harf-rakam CAPTCHA'larını çözer. Ücret görev başına puan olarak düşer, 1,000 puan = ¥1; başarısız ve zaman aşımına uğrayan görevlerin puanı otomatik iade edilir. [Hızlı başlangıç](https://docs.yescaptcha.com/tr/getting-started/quickstart.md)[API başvurusu](https://docs.yescaptcha.com/tr/api/overview.md) Yapay zeka ve programlar için sürüm:[llms.txt](https://docs.yescaptcha.com/tr/llms.txt)[llms-full.txt](https://docs.yescaptcha.com/tr/llms-full.txt)[OpenAPI](https://docs.yescaptcha.com/openapi.json)[Markdown](https://docs.yescaptcha.com/tr/index.md) YesCaptcha yalnızca yasal amaçlarla kullanılabilir; yasa dışı kullanım yasaktır. POSTapi.yescaptcha.com/createTask ``` { "clientKey": "YOUR_CLIENT_KEY", "task": { "type": "NoCaptchaTaskProxyless", "websiteURL": "https://www.google.com/recaptcha/api2/demo", "websiteKey": "6Le-wvkSAAAAAPBMRTvw0Q4Muexq9bi0DJwx_mJ-" } } ``` 1. /createTasktaskId 61138bb6-19fb-11ec-a9c8-0242ac110006 2. /getTaskResultprocessing 3. /getTaskResultprocessing 4. /getTaskResultready 5. gRecaptchaResponse03AGdBq25SxXT-pmSeBXjzScW-EiocHwwpwqtk1QXlJnGnU... 1. 1Görev oluştur 2. 2Sonucu al 3. 3Gönder Örnek: reCAPTCHA v2, sonuç her 5 saniyede bir yoklanır $0.30 / 1k ve üzeri Görev başına en düşük fiyat 1,000 puan = ¥1 Başarısız ve zaman aşımına uğrayan görevlerde puan iadesi yapılır 2 uç nokta Global ve Çin uç noktaları 9:00–21:00 Canlı destek (UTC+8) [Hızlı başlangıçKayıt olun, ClientKey değerinizi alın, ilk isteğinizi 5 dakikada gönderin](https://docs.yescaptcha.com/tr/getting-started/quickstart.md)[API başvurusucreateTask, getTaskResult, hata kodları ve eşzamanlı görev sınırı](https://docs.yescaptcha.com/tr/api/overview.md)[Görev türleri ve fiyatlarTüm herkese açık türlerin fiyatı, sonuç döndürme yöntemi ve parametreleri](https://docs.yescaptcha.com/tr/tasks.md)[Tarayıcı eklentisiKod yazmadan, web sayfalarında doğrulamayı otomatik tamamlayın](https://docs.yescaptcha.com/tr/extension.md) ## Desteklenen CAPTCHA'lar [01reCAPTCHAv2, v3, Enterprise ve v2 görsel tanıma$0.90 / 1k'den başlayan](https://docs.yescaptcha.com/tr/tasks/recaptcha-v2.md)[02hCaptchaToken döndürür ya da görselleri tanır, tıklamayı siz yaparsınız$1.20 / 1k'den başlayan](https://docs.yescaptcha.com/tr/tasks/hcaptcha.md)[03Cloudflare TurnstileTurnstile doğrulama token'ı$3.75 / 1k'den başlayan](https://docs.yescaptcha.com/tr/tasks/turnstile.md)[04FunCaptchaArkose Labs görsel sorularının tanınması, tüm soru türleri desteklenir$0.45 / 1k'den başlayan](https://docs.yescaptcha.com/tr/tasks/funcaptcha-classification.md)[05AWS WAF / bCaptcha3×3 ızgara görsel tanıma$1.20 / 1k'den başlayan](https://docs.yescaptcha.com/tr/tasks/aws-bcaptcha-classification.md)[06Görsel harf-rakamSıradan karakter CAPTCHA'ları, senkron döner$0.30 / 1k'den başlayan](https://docs.yescaptcha.com/tr/tasks/image-to-text.md) ## Üç adımda entegrasyon 1. 01 **Görev oluşturun** Görev türünü ve site parametrelerini `createTask` ile gönderin, `taskId` alın. Görsel tanıma, görsel harf-rakam gibi senkron türler sonucu doğrudan döndürür. 2. 02 **Sonucu alın** Her 5 saniyede bir `getTaskResult` çağırın; `status` değeri `ready` olduğunda sonuç `solution` içindedir. 3. 03 **Hedef siteye gönderin** Aldığınız token'ı sayfadaki forma ya da isteğe yerleştirin. Token tek kullanımlıktır; 60 saniye içinde kullanmanız önerilir. POST /createTask ```json { "clientKey": "YOUR_CLIENT_KEY", "task": { "type": "NoCaptchaTaskProxyless", "websiteURL": "https://www.google.com/recaptcha/api2/demo", "websiteKey": "6Le-wvkSAAAAAPBMRTvw0Q4Muexq9bi0DJwx_mJ-" } } ``` POST /getTaskResult ```json { "errorId": 0, "status": "ready", "solution": { "gRecaptchaResponse": "03AGdBq25SxXT-pmSeBXjzScW-EiocHwwpwqtk1QXlJnGnU..." } } ``` ## Sık kullanılanlar - [**Hata kodları**Her hata kodunun anlamı ve çözümü](https://docs.yescaptcha.com/tr/api/errors.md) - [**Eşzamanlı görev sınırı ve otomatik duraklatma**Sınır aşıldığında ve çok fazla hata olduğunda ne olur](https://docs.yescaptcha.com/tr/api/rate-limits.md) - [**Ücretlendirme ve puan iadesi**Puan, ön düşüm, puan iadesi ve bildirim sonrası puan iadesi](https://docs.yescaptcha.com/tr/getting-started/billing.md) - [**Bize ulaşın**WeChat, QQ, Telegram, e-posta; hizmet saatleri 9:00–21:00 (UTC+8)](https://docs.yescaptcha.com/tr/help/contact.md) - [**Panel**Kayıt olun, ClientKey değerinizi alın, bakiye yükleyin](https://yescaptcha.com/) --- # Giriş > YesCaptcha nedir: reCAPTCHA, hCaptcha, Turnstile, FunCaptcha ve görsel CAPTCHA'ları API veya tarayıcı eklentisiyle çözün; görev başına puan düşülür, başarısız görevlerde puan iadesi otomatik yapılır. Source: https://docs.yescaptcha.com/tr/getting-started/introduction/ · 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/getting-started/introduction/ YesCaptcha bir CAPTCHA çözüm hizmetidir. CAPTCHA bilgilerini YesCaptcha API’sine gönderirsiniz; karşılığında hedef siteye doğrudan gönderebileceğiniz bir token ya da görselin tanıma sonucunu alırsınız. reCAPTCHA (v2, v3, Enterprise), hCaptcha, Cloudflare Turnstile, Cloudflare doğrulama sayfası, FunCaptcha, AWS WAF, bCaptcha ve görsel alfanümerik CAPTCHA’lar desteklenir. Görev başına puan düşülür; 1,000 puan = ¥1. Tanıma başarısız olan ve zaman aşımına uğrayan görevlerde puan iadesi otomatik yapılır. YesCaptcha yalnızca yasal amaçlarla kullanılabilir; yasa dışı kullanım yasaktır. ## İki kullanım yolu | | API | Tarayıcı eklentisi (YesCaptcha Assistant) | | --- | --- | --- | | Kimler için | Kod yazabilen, işlemleri program içinde toplu yapan geliştiriciler | Kod yazmadan tarayıcıda kullanmak isteyenler | | Nasıl kullanılır | ClientKey ile `createTask` ve `getTaskResult` çağrılır | Eklentiyi kurun, ClientKey’nizi girin; CAPTCHA çıkınca otomatik tanınır ve tıklanır | | Desteklenenler | Bu sitede listelenen tüm görev türleri | reCAPTCHA v2, hCaptcha, FunCaptcha, AWS WAF ve bCaptcha’nın görsel soruları ile karakter CAPTCHA’ları | | Ücret | Görev türüne göre puan düşülür | Eklenti ücretsizdir; tanıma için kullanılan API çağrıları kadar puan düşülür | İki kullanım yolunda da aynı hesap, aynı ClientKey ve aynı bakiye kullanılır. ## Üç tür sonuç - **token**: reCAPTCHA, hCaptcha, Turnstile ve FunCaptcha görev türlerinin çoğu. Sayfadaki forma ya da isteğe eklendiğinde doğrulamayı geçen bir dize döner; görsellere tıklamak gerekmez. Hepsi asenkrondur: önce görevi oluşturun, sonra sonucu 5 saniyede bir sorgulayın. - **Görsel tanıma sonucu**: adı `Classification` ile biten türler. CAPTCHA görsellerini gönderirsiniz; hangi görsellere ya da hangi konuma tıklanacağı döner, tıklamayı programınız tarayıcıda yapar. Senkrondur: tek istekte sonuç gelir. - **Metin veya Cookie**: görsel alfanümerik tanıma, görseldeki metni döndürür; Cloudflare doğrulama sayfası ise doğrulama geçildikten sonraki Cookie’leri döndürür. Tüm türler ve fiyatlar için [Görev türleri ve fiyatlar](https://docs.yescaptcha.com/tr/tasks.md) sayfasına bakın. ## Buradan başlayın [Hızlı başlangıç](https://docs.yescaptcha.com/tr/getting-started/quickstart.md)Kayıt olun, ClientKey'nizi alın, ilk isteği gönderin [Uç noktalar](https://docs.yescaptcha.com/tr/getting-started/endpoints.md)Global uç nokta ve Çin uç noktası [Faturalandırma ve puan iadesi](https://docs.yescaptcha.com/tr/getting-started/billing.md)Puan, ön düşüm, puan iadesi, bildirim sonrası puan iadesi [Tarayıcı eklentisi](https://docs.yescaptcha.com/tr/extension.md)Kod yazmadan tarayıcıda otomatik tanıma ## Topluluk SDK’ları Kullanıcıların paylaştığı, resmî olmayan SDK’lar için kullanmadan önce kendi değerlendirmenizi yapın: bkz. [Örnek kodlar ve SDK’lar](https://docs.yescaptcha.com/tr/samples.md). --- # Hızlı başlangıç > YesCaptcha ile ilk isteğinizi 5 dakikada gönderin. Kayıt olun, ClientKey'nizi kopyalayın, bakiye yükleyin, ardından curl, Python veya Node.js ile bir görsel CAPTCHA'yı okuyun (ImageToTextTaskOcrBase, senkron yanıt, görsel başına 2 puan). Source: https://docs.yescaptcha.com/tr/getting-started/quickstart/ · 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/getting-started/quickstart/ Bu sayfada, en basit görev türü olan `ImageToTextTaskOcrBase` (görseldeki İngilizce harf ve rakamları tanır) ile ilk isteği gönderiyoruz. Görev senkrondur: tek bir `createTask` isteği sonucu döndürür. Görsel başına ücret: 2 puan (≈ $0.30 / 1k). Üçüncü taraf bir siteye ihtiyaç duymaz, bu yüzden hesabınızın ve kodunuzun çalıştığını doğrulamak için uygundur. 1. **Hesap oluşturun** [yescaptcha.com](https://yescaptcha.com/) adresinden kayıt olun ve giriş yapın. 2. **ClientKey’nizi kopyalayın** Giriş yaptıktan sonra Panel’de ([yescaptcha.com/dashboard.html](https://yescaptcha.com/dashboard.html)) “ClientKey’niz” alanını bulun ve kopyalayın. Değerin tamamını kopyalayın. > **Dikkat:** Tüm API istekleri ClientKey ile doğrulanır; ClientKey’ye sahip olan herkes bakiyenizi kullanabilir. Başkalarıyla paylaşmayın, herkese açık koda yazmayın. Sızdırdıysanız aynı yerden sıfırlayabilirsiniz. 3. **Bakiye yükleyin** Görev oluşturmak için bakiyenin 10 puandan fazla olması gerekir. Ödeme yöntemleri ve VIP bonusu için [Bakiye yükleme ve VIP](https://docs.yescaptcha.com/tr/account/recharge.md) sayfasına bakın. 4. **ClientKey’nin çalıştığını doğrulayın** `getBalance` bakiyeyi sorgular, puan düşmez: ```bash curl -s https://api.yescaptcha.com/getBalance \ -H 'Content-Type: application/json' \ -d '{"clientKey": "YOUR_CLIENT_KEY"}' ``` `{"errorId": 0, "balance": 12345, ...}` dönerse hazırsınız; `balance` kalan puandır. `ERROR_KEY_DOES_NOT_EXIST` dönerse ClientKey yanlış kopyalanmıştır. 5. **Bir görseli okuyun** Örnek görseli [captcha.jpg](https://docs.yescaptcha.com/samples/captcha.jpg) indirin (kendi CAPTCHA görselinizi de kullanabilirsiniz), ClientKey’nizi ortam değişkenine koyup betiklerden birini çalıştırın: ```bash export YESCAPTCHA_CLIENT_KEY=your_client_key ``` **curl** quickstart.sh ```bash #!/usr/bin/env bash # First request: read an alphanumeric image captcha with ImageToTextTaskOcrBase (synchronous, 2 points per image) # Usage: YESCAPTCHA_CLIENT_KEY=your_client_key bash quickstart.sh captcha.png set -euo pipefail IMAGE="${1:-captcha.png}" BODY=$(base64 < "$IMAGE" | tr -d '\n') # no "data:" prefix, no line breaks curl -s https://api.yescaptcha.com/createTask \ -H 'Content-Type: application/json' \ -d "{\"clientKey\": \"${YESCAPTCHA_CLIENT_KEY}\", \"task\": {\"type\": \"ImageToTextTaskOcrBase\", \"body\": \"${BODY}\"}}" echo ``` **Python** quickstart.py ```python """First request: read an alphanumeric image captcha with ImageToTextTaskOcrBase (synchronous, 2 points per image). Usage: export YESCAPTCHA_CLIENT_KEY=your_client_key python quickstart.py captcha.png """ import base64 import os import sys import requests CLIENT_KEY = os.environ["YESCAPTCHA_CLIENT_KEY"] image_path = sys.argv[1] if len(sys.argv) > 1 else "captcha.png" with open(image_path, "rb") as f: body = base64.b64encode(f.read()).decode() # no "data:" prefix r = requests.post( "https://api.yescaptcha.com/createTask", json={ "clientKey": CLIENT_KEY, "task": {"type": "ImageToTextTaskOcrBase", "body": body}, }, timeout=30, ) data = r.json() if data.get("errorId"): raise SystemExit(f"{data.get('errorCode')}: {data.get('errorDescription')}") print("text:", data["solution"]["text"]) ``` **Node.js** quickstart.mjs ```js // First request: read an alphanumeric image captcha with ImageToTextTaskOcrBase (synchronous, 2 points per image). // Usage: YESCAPTCHA_CLIENT_KEY=your_client_key node quickstart.mjs captcha.png import { readFileSync } from 'node:fs'; const CLIENT_KEY = process.env.YESCAPTCHA_CLIENT_KEY; const body = readFileSync(process.argv[2] ?? 'captcha.png').toString('base64'); // no "data:" prefix const res = await fetch('https://api.yescaptcha.com/createTask', { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ clientKey: CLIENT_KEY, task: { type: 'ImageToTextTaskOcrBase', body } }), }); const data = await res.json(); if (data.errorId) throw new Error(`${data.errorCode}: ${data.errorDescription}`); console.log('text:', data.solution.text); ``` Çalıştırma: `bash quickstart.sh captcha.jpg`, `python quickstart.py captcha.jpg` veya `node quickstart.mjs captcha.jpg`. Python için önce `pip install requests` gerekir; Node.js için 18 veya üzeri sürüm gerekir. 6. **Sonucu inceleyin** Başarılı olduğunda şu yanıt döner: ```json { "errorId": 0, "status": "ready", "solution": { "text": "LMResm" }, "taskId": "2376919c-1863-11ec-a012-94e6f7355a0b" } ``` `errorId` değeri 0 ise işlem başarılıdır; okunan metin `solution.text` içindedir. `errorId` 1 ise `errorCode` değerine bakın, anlamları için [Hata kodları](https://docs.yescaptcha.com/tr/api/errors.md) sayfasına bakın. ## Sonraki adımlar - reCAPTCHA ve hCaptcha gibi token döndüren görev türleri **asenkron** çalışır: `createTask` önce `taskId` döndürür, ardından her 5 saniyede bir `getTaskResult` çağrılır. Tam akış için [İstek ve yanıt](https://docs.yescaptcha.com/tr/api/overview.md) sayfasına, örnek için [reCAPTCHA v2](https://docs.yescaptcha.com/tr/tasks/recaptcha-v2.md) sayfasına bakın. - Görev türü seçimi: [Görev türleri ve fiyatlar](https://docs.yescaptcha.com/tr/tasks.md). - Projenize doğrudan kopyalayabileceğiniz istemciler: [Python](https://docs.yescaptcha.com/tr/samples/python.md), [Node.js](https://docs.yescaptcha.com/tr/samples/nodejs.md). - Kod yazmadan: [YesCaptcha Assistant (tarayıcı eklentisi)](https://docs.yescaptcha.com/tr/extension.md). --- # Uç Noktalar > YesCaptcha API'nin iki uç noktası: global api.yescaptcha.com ve Çin cn.yescaptcha.com. Yalnızca JSON gövdeli HTTPS POST kabul edilir; görev aynı uç noktada oluşturulur ve sorgulanır. Source: https://docs.yescaptcha.com/tr/getting-started/endpoints/ · 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/getting-started/endpoints/ YesCaptcha API’nin iki uç noktası vardır; yöntemler ve parametreler birebir aynıdır. Sunucularınızın bulunduğu yere göre birini seçin: | Uç nokta | Adres | Kullanım | | --- | --- | --- | | Global uç nokta | `https://api.yescaptcha.com` | Çin anakarası dışındaki sunucular | | Çin uç noktası | `https://cn.yescaptcha.com` | Çin anakarasındaki sunucular | Yöntem adresi, uç nokta adresi ile yöntem adının birleşimidir. Örneğin görev oluşturma: - POST `https://api.yescaptcha.com/createTask` (Global uç nokta) - POST `https://cn.yescaptcha.com/createTask` (Çin uç noktası) ## Kurallar - Yalnızca HTTPS kullanın. - [/useragent](https://docs.yescaptcha.com/tr/api/useragent.md) dışındaki tüm yöntemler `POST` ile çalışır; istek gövdesi JSON olmalı ve `Content-Type: application/json` başlığı gönderilmelidir. İstek gövdesi 6 MB’ı aşamaz. - Kimlik doğrulama istek gövdesindeki `clientKey` ile yapılır; başka bir başlık gerekmez. > **Not:** Bir görevi hangi uç noktada oluşturduysanız, `getTaskResult` ile sonucu da aynı uç noktada sorgulayın. İki uç noktayı karıştırmayın. ## Tüm yöntemler | Yöntem | İşlev | Açıklama | | --- | --- | --- | | [createTask](https://docs.yescaptcha.com/tr/api/create-task.md) | Görev oluşturur | Senkron türler sonucu doğrudan döndürür | | [getTaskResult](https://docs.yescaptcha.com/tr/api/get-task-result.md) | Görev sonucunu sorgular | Asenkron türlerde 5 saniyede bir yoklayın | | [getBalance](https://docs.yescaptcha.com/tr/api/get-balance.md) | Bakiyeyi sorgular | Puan düşülmez | | [getSoftID](https://docs.yescaptcha.com/tr/api/get-soft-id.md) | Geliştirici ID’sini sorgular | Geliştirici gelir payı için kullanılır | | [report](https://docs.yescaptcha.com/tr/api/report.md) | Tanıma sonucunu bildirir | Görsel tanıma türlerinde puan iadesi talep edilebilir | | [useragent](https://docs.yescaptcha.com/tr/api/useragent.md) | Önerilen User-Agent’ı verir | `GET`, hCaptcha için kullanılır | Bağlantı kuramıyorsanız [Bağlantı ve ağ sorunları](https://docs.yescaptcha.com/tr/help/troubleshooting.md) sayfasına bakın. --- # Faturalandırma ve puan iadesi > YesCaptcha puanı nasıl düşer: 1 TL değil, 1 ¥ = 1,000 puan; puan düşümü görev türüne göre yapılır. Başarısız ve zaman aşımına uğrayan görevlerde puan iadesi otomatik yapılır, hata döndüren isteklerde puan düşülmez; Bakiye 10 puanın üzerinde olmalıdır; görsel tanımada bildirilen hatalarda bildirim sonrası puan iadesi yaklaşık 24 saat sonra yapılır. Source: https://docs.yescaptcha.com/tr/getting-started/billing/ · 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/getting-started/billing/ YesCaptcha puanı göreve göre düşer: her görev türünün sabit bir fiyatı vardır, 1,000 puan = ¥1. Örneğin `NoCaptchaTaskProxyless` için görev başına 15 puan (≈ $2.25 / 1k) ödenir. Tüm türlerin fiyatları için [Görev türleri ve fiyatlar](https://docs.yescaptcha.com/tr/tasks.md) sayfasına bakın. > **İpucu:** Yalnızca başarılı görevler için ödeme yaparsınız: başarısız ve zaman aşımına uğrayan görevlerde puan iadesi otomatik yapılır, hata döndüren isteklerde puan düşülmez. ## Puan ne zaman düşer - **Asenkron türler** (token döndüren türlerin çoğu): görev oluşturulduğunda puan düşer. Görev sonradan başarısız olursa (`ERROR_CAPTCHA_UNSOLVABLE` vb.) veya zaman aşımına uğrarsa (`ERROR_TASK_TIMEOUT`, genellikle 110 saniye), puanlar otomatik olarak iade edilir. - **Senkron türler** (görsel tanıma, `ImageToTextTaskOcrBase`, `ImageToTextTaskMuggle`): sonuç başarıyla döndürüldüğünde puan düşer. - Görev oluşturma aşamasında hata döndüren istekler (hatalı parametre, yetersiz Bakiye, eşzamanlı görev sınırının aşılması vb.) için puan düşülmez. ## Bakiye - Görev oluşturabilmek için Bakiye **10 puanın üzerinde** olmalıdır; aksi halde `ERROR_ZERO_BALANCE` döner. - Bakiyeyi [getBalance](https://docs.yescaptcha.com/tr/api/get-balance.md) ile sorgulayabilirsiniz; puan düşülmez. - Bakiye yükleme ve VIP bonusu için [Bakiye yükleme ve VIP](https://docs.yescaptcha.com/tr/account/recharge.md) sayfasına bakın: toplam yükleme tutarı bir VIP seviyesine ulaştıktan sonra, sonraki her yüklemede oranına göre bonus puan verilir. ## Duruma göre fiyatlandırılan türler - **reCAPTCHA v2 görsel tanıma** (`ReCaptchaV2Classification`): 1x1 küçük görsel ile 3x3 ve 4x4 büyük görsellerin fiyatı farklıdır; bkz. [reCAPTCHA v2 görsel tanıma](https://docs.yescaptcha.com/tr/tasks/recaptcha-classification.md). - **hCaptcha görsel tanıma** (`HCaptchaClassification`): hedef bulunamazsa (sonuç boşsa) puan düşülmez. ## Hatalı sonucu bildirdikten sonra puan iadesi Görsel tanıma sonucu yanlış tıklandıysa [report](https://docs.yescaptcha.com/tr/api/report.md) ile bildirebilirsiniz; koşulları karşılayan görevler için puan iade edilir: - Yalnızca 5 görsel tanıma türü kapsanır: `FunCaptchaClassification`, `HCaptchaClassification`, `ReCaptchaV2Classification`, `AwsClassification`, `bCaptchaClassification`. - Bildirim, görev oluşturulduktan sonra **1 saat içinde** yapılmalıdır; aynı görev yalnızca bir kez sayılır. - İade anında yapılmaz, **yaklaşık 24 saat sonra** toplu olarak hesaplanır. - Hesaplama sırasında aynı dönemde, aynı soruyu çözen diğer kullanıcılarla karşılaştırma yapılır: bildirilen başarısızlık oranı aynı dönemin düzeyinin belirgin biçimde üzerindeyse, iade o dönemin başarısızlık oranına göre yapılır. - Lütfen hem başarılı hem başarısız sonuçları dürüstçe bildirin; yalnızca başarısızları bildiren bildirimler dönem için referans olarak kullanılmaz ve başarısızlık oranı oluşturduğunuz tüm görevler üzerinden hesaplanır. - Hesaplama sonucuna itirazınız varsa [Destek](https://docs.yescaptcha.com/tr/help/contact.md) ile iletişime geçerek itiraz edebilirsiniz. Token döndüren görev türlerinde (reCAPTCHA, hCaptcha, Turnstile vb.) tokenın geçip geçmediğine hedef site karar verir; bildirim için puan iadesi yapılmaz. ## Puan düşülmeyen durumlar | Durum | Dönen yanıt | | --- | --- | | Hatalı parametre, var olmayan görev türü, hatalı `clientKey` | İlgili hata kodu | | Bakiye 10 puanı geçmiyor | `ERROR_ZERO_BALANCE` | | Eşzamanlı görev sınırı aşıldı | `ERROR_THREADS_MAXIMUM`, bkz. [Eşzamanlı görev sınırı ve otomatik duraklatma](https://docs.yescaptcha.com/tr/api/rate-limits.md) | | Otomatik duraklatma süresince | `ERROR_IP_BLOCKED_5MIN` | | Geçersiz olduğu belirlenmiş sitekey veya alan adı (önbellek süresi içinde) | Asıl hata kodu, `cached: true` ile birlikte | | Çözüm başarısız oldu veya zaman aşımına uğradı | Düşülen puanlar otomatik iade edilir | ## Gelir payı ve ödüller - Başkasının yazılımını veya eklentisini kullandığınızda görevler bir geliştirici ID’si taşıyabilir; geliştirici gelir payı alır, sizin puan düşümünüz değişmez. Kendi yazılımınızı geliştiriyorsanız [Geliştirici gelir payı](https://docs.yescaptcha.com/tr/account/developer.md) sayfasına bakın. - Başka kullanıcıları davet etmek için [Davet ödülü](https://docs.yescaptcha.com/tr/account/referral.md) sayfasına bakın. --- # İstekler ve yanıtlar > YesCaptcha API'nin ortak kuralları: POST JSON, clientKey ile kimlik doğrulama, errorId yanıt biçimi, senkron ve asenkron görevler, 5 saniyede bir yoklama, 110 saniye zaman aşımı, sonucun yaklaşık 10 dakika saklanması, mesaj dilinin Accept-Language'e göre seçilmesi. Source: https://docs.yescaptcha.com/tr/api/overview/ · 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/overview/ Tüm yöntemler gövdesinde JSON bulunan bir HTTPS `POST` isteği alır (yalnızca `/useragent` `GET` kullanır), gövdedeki `clientKey` ile kimlik doğrular ve JSON döndürür: `errorId` 0 ise başarılı, 1 ise başarısızdır ve bir `errorCode` içerir. Bir CAPTCHA’yı çözmek iki adımdır: `createTask` görevi oluşturur, `getTaskResult` ise sonuç için 5 saniyede bir sorgulanır. Senkron türlerde sonuç doğrudan `createTask` yanıtında döner. ## İstek ```bash curl -s https://api.yescaptcha.com/createTask \ -H 'Content-Type: application/json' \ -d '{"clientKey": "YOUR_CLIENT_KEY", "task": {"type": "ImageToTextTaskOcrBase", "body": "BASE64_IMAGE"}}' ``` - Uç nokta: `https://api.yescaptcha.com` (global) veya `https://cn.yescaptcha.com` (Çin). Bkz. [Bağlantı adresleri](https://docs.yescaptcha.com/tr/getting-started/endpoints.md). - Gövde JSON olmalı, `Content-Type: application/json` başlığıyla gönderilmeli ve 6 MB’ı aşmamalıdır. JSON içinde yorum satırı yazılamaz. - Her istekte `clientKey` bulunmalıdır; Panel’de görünen değeri eksiksiz kopyalayın. > **Dikkat:** Python requests ile `json=data` kullanın, `data=data` kullanmayın. İkincisi form olarak gönderir ve `ERROR_TASK_ABSENT` veya `ERROR_REQUIRED_FIELDS` döndürür. ## Yanıt Başarılı: ```json { "errorId": 0, "taskId": "61138bb6-19fb-11ec-a9c8-0242ac110006" } ``` Başarısız: ```json { "errorId": 1, "errorCode": "ERROR_ZERO_BALANCE", "errorDescription": "帐户余额不足" } ``` | Alan | Açıklama | | --- | --- | | `errorId` | 0 başarılı, 1 başarısız | | `errorCode` | Başarısızlık durumundaki hata kodu; anlamı ve çözümü için bkz. [Hata kodları](https://docs.yescaptcha.com/tr/api/errors.md) | | `errorDescription` | Başarısızlık nedeninin metin açıklaması | | `taskId` | Görev ID’si | | `status` | `processing` (işleniyor) veya `ready` (tamamlandı) | | `solution` | Tanıma sonucu; alanlar görev türüne göre değişir, bkz. her görev türünün sayfası | Sonucu değerlendirirken `errorId` ve `errorCode` değerlerine bakın; `errorDescription` metnini ayrıştırmayın, değişebilir. ## Senkron ve asenkron | | Asenkron | Senkron | | --- | --- | --- | | Hangi türler | Token döndüren görev türleri (reCAPTCHA, hCaptcha, Turnstile, FunCaptcha), Cloudflare doğrulama sayfası, `ImageToTextTask`, `ImageToTextTaskM1` | Görsel tanıma (adı `Classification` ile biten türler), `ImageToTextTaskOcrBase`, `ImageToTextTaskMuggle` | | `createTask` döndürür | `taskId` | `status: "ready"` ve `solution` | | Sonucu alma | `getTaskResult` 5 saniyede bir çağrılır | Ek sorgu gerekmez | Her türün hangisine girdiği için bkz. [Görev türleri ve fiyatlar](https://docs.yescaptcha.com/tr/tasks.md) sayfasındaki “Dönüş yöntemi” sütunu. ## Yoklama 1. `createTask` bir `taskId` döndürdükten sonra 5 saniye bekleyip `getTaskResult` çağırın. 2. `status: "processing"` dönerse 5 saniye daha bekleyip yeniden deneyin; `status: "ready"` dönerse sonuç `solution` içindedir. 3. `errorId: 1` dönerse bu görev için yoklamayı durdurun ve `errorCode` değerine göre işlem yapın. - Aynı `taskId` için 5 saniye içinde yapılan tekrar sorgular doğrudan `processing` döndürür; daha sık sorgulamak sonucu daha erken getirmez. - Bir görev en fazla yaklaşık 110 saniye işlenir (bazı türlerde 180 ile 220 saniye); zaman aşımında `ERROR_TASK_TIMEOUT` döner ve puan otomatik iade edilir. - Sonuç sunucuda yaklaşık 10 dakika saklanır; sonrasında `taskId` geçersiz olur ve sorgu `ERROR_TASKID_INVALID` döndürür. - Sonuç sorgulama puan düşmez; puan yalnızca görev oluşturulurken düşülür. ## Mesaj dili Otomatik duraklatma, geçersiz parametre önbelleği ve yoklamayı durdurma uyarılarında `errorDescription` dili `Accept-Language` istek başlığına göre seçilir: `zh` ile başlıyorsa Çince, diğer dillerde İngilizce döner; başlık yoksa her ikisi de döner. Diğer hata kodlarının açıklamaları bundan etkilenmez. ## Sonraki adımlar - [createTask ile görev oluşturma](https://docs.yescaptcha.com/tr/api/create-task.md) - [getTaskResult ile sonuç alma](https://docs.yescaptcha.com/tr/api/get-task-result.md) - [Eşzamanlı görev sınırı ve otomatik duraklatma](https://docs.yescaptcha.com/tr/api/rate-limits.md): çok fazla hata olursa hesabınız birkaç dakika duraklatılır --- # createTask ile görev oluşturma > POST /createTask bir CAPTCHA görevi oluşturur. İstek alanları (clientKey, task, softID), kontrol sırası, asenkron türlerde taskId, senkron türlerde doğrudan solution döner; bakiye 10 puandan fazla olmalıdır. Source: https://docs.yescaptcha.com/tr/api/create-task/ · 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/create-task/ `createTask` bir tanıma görevi oluşturur; hangi CAPTCHA’nın çözüleceğini `task.type` belirler. Asenkron türler `taskId` döndürür, sonucu daha sonra [getTaskResult](https://docs.yescaptcha.com/tr/api/get-task-result.md) ile alırsınız; senkron türler sonucu doğrudan döndürür. > **Not:** Görev başarıyla oluşturulduğunda puan düşümü yapılır; görev oluşturmak için bakiyenin 10 puandan fazla olması gerekir. Tanıma başarısız olan veya 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 alanları | Alan | Tür | Zorunlu | Açıklama | | --- | --- | --- | --- | | `clientKey` | string | Evet | ClientKey’niz; [yescaptcha.com](https://yescaptcha.com/) panelinden kopyalayın | | `task` | object | Evet | Görev nesnesi; `type` alanı zorunludur, diğer alanlar görev türüne göre doldurulur (her görev türünün sayfasına bakın) | | `softID` | integer | Hayır | Geliştirici ID’si. Geliştirdiğiniz yazılım başkaları tarafından kullanılıyorsa bunu ekleyin, gelir payı alırsınız; bkz. [Geliştirici gelir payı](https://docs.yescaptcha.com/tr/account/developer.md) | ## İstek örnekleri Görsel CAPTCHA tanıma (senkron): ```json { "clientKey": "YOUR_CLIENT_KEY", "task": { "type": "ImageToTextTaskOcrBase", "body": "BASE64_IMAGE" } } ``` reCAPTCHA v2 token’ı alma (asenkron): ```json { "clientKey": "YOUR_CLIENT_KEY", "task": { "type": "NoCaptchaTaskProxyless", "websiteURL": "https://www.google.com/recaptcha/api2/demo", "websiteKey": "6Le-wvkSAAAAAPBMRTvw0Q4Muexq9bi0DJwx_mJ-" } } ``` Her görev türünün `task` alanları [Görev türleri ve fiyatlar](https://docs.yescaptcha.com/tr/tasks.md) altındaki sayfalarda yer alır. ## Yanıt Asenkron türler: ```json { "errorId": 0, "taskId": "61138bb6-19fb-11ec-a9c8-0242ac110006" } ``` `taskId` değerini kaydedin ve 5 saniye sonra `getTaskResult` ile sorgulamaya başlayın. Senkron türler: ```json { "errorId": 0, "status": "ready", "taskId": "2376919c-1863-11ec-a012-94e6f7355a0b", "solution": { "text": "LMResm" } } ``` Başarısız: ```json { "errorId": 1, "errorCode": "ERROR_TASK_NOT_SUPPORTED", "errorDescription": "任务类型不正确或不受支持" } ``` ## Kontrol sırası Sunucu isteği bu sırayla kontrol eder, ilk bulduğu sorunun hata kodunu döndürür ve puan düşümü yapmaz: 1. İstek gövdesi geçerli bir JSON’dur: `ERROR_REQUEST_FORMATS` 2. `clientKey` gönderilmiştir: `ERROR_REQUIRED_FIELDS` 3. `clientKey` mevcuttur: `ERROR_KEY_DOES_NOT_EXIST` 4. Otomatik duraklatılmamıştır: `ERROR_IP_BLOCKED_5MIN` (bkz. [Eşzamanlı görev sınırı ve otomatik duraklatma](https://docs.yescaptcha.com/tr/api/rate-limits.md)) 5. Bakiye 10 puandan fazladır: `ERROR_ZERO_BALANCE` 6. `task` gönderilmiştir: `ERROR_TASK_ABSENT` 7. `task.type` mevcuttur: `ERROR_TASK_NOT_SUPPORTED` 8. Zorunlu alanların hepsi vardır: `ERROR_REQUIRED_FIELDS` (`errorDescription` içinde hangi alanın eksik olduğu yazar) 9. Görsel görevlerinde görsel geçerlidir: `ERROR_ZERO_CAPTCHA_FILESIZE`, `ERROR_IMAGE_TYPE_NOT_SUPPORTED` vb. ## Tam örnek Görev oluşturma ve sonucu yoklama (asenkron tür): **curl** ```bash curl -s https://api.yescaptcha.com/createTask \ -H 'Content-Type: application/json' \ -d '{ "clientKey": "YOUR_CLIENT_KEY", "task": { "type": "NoCaptchaTaskProxyless", "websiteURL": "https://www.google.com/recaptcha/api2/demo", "websiteKey": "6Le-wvkSAAAAAPBMRTvw0Q4Muexq9bi0DJwx_mJ-" } }' # 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": "NoCaptchaTaskProxyless", "websiteURL": "https://www.google.com/recaptcha/api2/demo", "websiteKey": "6Le-wvkSAAAAAPBMRTvw0Q4Muexq9bi0DJwx_mJ-", }) 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: "NoCaptchaTaskProxyless", websiteURL: "https://www.google.com/recaptcha/api2/demo", websiteKey: "6Le-wvkSAAAAAPBMRTvw0Q4Muexq9bi0DJwx_mJ-", }); console.log(solution.gRecaptchaResponse); ``` --- # getTaskResult ile sonuç alma > POST /getTaskResult asenkron bir görevin sonucunu sorgular: her 5 saniyede bir yoklayın, processing durumunda beklemeyi sürdürün, ready durumunda solution değerini alın, hata durumunda yoklamayı durdurun; bir görev en fazla yaklaşık 110 saniye sürer, sonuçlar yaklaşık 10 dakika saklanır, sorgulama puan düşmez. Source: https://docs.yescaptcha.com/tr/api/get-task-result/ · 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/get-task-result/ `getTaskResult`, asenkron bir görevin sonucunu sorgular. Görevi oluşturduktan sonra her 5 saniyede bir çağırın: `processing` dönerse beklemeye devam edin, `ready` döndüğünde sonuç `solution` içindedir, hata dönerse yoklamayı durdurun. Sorgulama için puan düşülmez; kaç kez sorgulanırsa sorgulansın aynıdır. - POST `https://api.yescaptcha.com/getTaskResult` (Global uç nokta) - POST `https://cn.yescaptcha.com/getTaskResult` (Çin uç noktası) ## İstek parametreleri | Alan | Tür | Zorunlu | Açıklama | | --- | --- | --- | --- | | `clientKey` | string | Evet | ClientKey; görevi oluştururken kullandığınızla aynı olmalıdır | | `taskId` | string | Evet | [createTask](https://docs.yescaptcha.com/tr/api/create-task.md) tarafından döndürülen görev ID’si | ```json { "clientKey": "YOUR_CLIENT_KEY", "taskId": "61138bb6-19fb-11ec-a9c8-0242ac110006" } ``` ## Dönen sonuç | Durum | Yanıt | Ne yapmalı | | --- | --- | --- | | İşleniyor | `errorId` 0, `status` değeri `processing` | 5 saniye sonra tekrar sorgulayın | | Tamamlandı | `errorId` 0, `status` değeri `ready`, sonuç `solution` içinde | `solution` değerini alın; alanları görev türü sayfalarında açıklanır | | Çözülemedi | `errorId` 1, `errorCode` değeri `ERROR_CAPTCHA_UNSOLVABLE` | Puan otomatik iade edildi, yeni bir görev oluşturabilirsiniz | | Zaman aşımı | `errorId` 1, `errorCode` değeri `ERROR_TASK_TIMEOUT` | Puan otomatik iade edildi, yeni bir görev oluşturabilirsiniz | | Görev yok veya süresi dolmuş | `errorId` 1, `errorCode` değeri `ERROR_TASKID_INVALID` | Bu `taskId` değerini sorgulamayı bırakın | Tamamlanmış bir görev örneği (reCAPTCHA v2): ```json { "errorId": 0, "status": "ready", "solution": { "gRecaptchaResponse": "03AGdBq25SxXT-pmSeBXjzScW-EiocHwwpwqtk1QXlJnGnU..." } } ``` ## Kurallar - **Her 5 saniyede bir sorgulayın.** Aynı `taskId` için 5 saniye içindeki tekrar sorgular doğrudan `processing` döndürür; daha sık sorgulamak sonucu hızlandırmaz. - **Bir görev en fazla yaklaşık 110 saniye işlenir** (bazı türlerde 180 ile 220 saniye). Süre aşılırsa `ERROR_TASK_TIMEOUT` döner ve puan otomatik iade edilir. Kodunuzdaki bekleme üst sınırını yaklaşık 3 dakika olarak ayarlamanız önerilir. - **Sonuçlar yaklaşık 10 dakika saklanır**, sonrasında `taskId` geçersiz olur ve `ERROR_TASKID_INVALID` döner. Sonucu alır almaz kullanın: token’ın kendi geçerlilik süresi daha kısadır (reCAPTCHA için yaklaşık 120 saniye). - **Hata gelirse durun.** `errorId: 1` döndükten sonra aynı `taskId` değerini sorgulamak sonucu değiştirmez; sona ermiş bir görev 3. kez sorgulandığında `errorDescription` sonunda yoklamayı durdurmanızı öneren bir uyarı yer alır. `ERROR_TASKID_INVALID`, [otomatik duraklatma](https://docs.yescaptcha.com/tr/api/rate-limits.md) için sayılan hata sayısına dahildir (aynı ID için yalnızca ilk seferi sayılır). - Görevi hangi uç noktada oluşturduysanız sorguyu da o uç noktada yapın. - `getTaskResult` otomatik duraklatmadan etkilenmez: duraklatmadan önce oluşturulan görevler normal şekilde sorgulanabilir. --- # getBalance — Bakiye sorgulama > POST /getBalance, hesabınızın bakiyesini (puan, 1,000 puan = ¥1) ile geliştirici gelir payı ve davet ödülü bakiyelerini döndürür. Puan düşümü yapmaz; ClientKey'inizi doğrulamak için kullanılabilir. Source: https://docs.yescaptcha.com/tr/api/get-balance/ · 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/get-balance/ `getBalance`, hesabınızdaki kalan puanı (1,000 puan = ¥1) ile geliştirici gelir payı ve davet ödülü bakiyelerini (¥ cinsinden) döndürür. Puan düşümü yapmaz; bu yüzden `clientKey` değerinin doğru olup olmadığını kontrol etmek için sıkça kullanılır. - POST `https://api.yescaptcha.com/getBalance` (Global uç nokta) - POST `https://cn.yescaptcha.com/getBalance` (Çin uç noktası) ## İstek parametreleri | Alan | Tür | Zorunlu | Açıklama | | --- | --- | --- | --- | | `clientKey` | string | Evet | ClientKey (hesap anahtarınız) | ```json { "clientKey": "YOUR_CLIENT_KEY" } ``` ## Dönen sonuç ```json { "errorId": 0, "balance": 1071810, "softBalance": 36.0098, "inviteBalance": 0, "inviteBy": 0 } ``` | Alan | Tür | Açıklama | | --- | --- | --- | | `balance` | integer | Hesap bakiyesi, birimi puandır (1,000 puan = ¥1). Görev oluşturabilmek için 10 puandan fazla olmalıdır | | `softBalance` | number | Geliştirici gelir payı bakiyesi, birimi ¥’dir. Bkz. [Geliştirici gelir payı](https://docs.yescaptcha.com/tr/account/developer.md) | | `inviteBalance` | number | Davet ödülü bakiyesi, birimi ¥’dir. Bkz. [Davet ödülü](https://docs.yescaptcha.com/tr/account/referral.md) | | `inviteBy` | integer | Sizi davet eden kişinin kullanıcı ID’si; yoksa 0 | | `keyQuotaRemaining` | integer | Bu `clientKey` için mevcut dönemde kalan harcama limiti, birimi puandır. Yalnızca limit tanımlanmış `clientKey` değerlerinde bulunur; bu durumda `balance`, hesap bakiyesi ile kalan limitten küçük olanıdır. Limit tanımlanmamış `clientKey` değerlerinde bu alan yer almaz | `clientKey` yanlışsa `ERROR_KEY_DOES_NOT_EXIST` döner; `clientKey` için IP beyaz listesi tanımlıysa ve istek listede olmayan bir IP’den gelirse `ERROR_KEY_IP_NOT_ALLOWED` döner. `getBalance`, [otomatik duraklatmadan](https://docs.yescaptcha.com/tr/api/rate-limits.md) etkilenir: duraklatma süresince `ERROR_IP_BLOCKED_5MIN` döner. ## Örnekler **curl** get-balance.sh ```bash #!/usr/bin/env bash # Check the balance. getBalance is free and is a quick way to verify your clientKey set -euo pipefail curl -s https://api.yescaptcha.com/getBalance \ -H 'Content-Type: application/json' \ -d "{\"clientKey\": \"${YESCAPTCHA_CLIENT_KEY}\"}" echo ``` **Python** get_balance.py ```python """Check the balance. getBalance is free and is a quick way to verify your clientKey.""" import os import requests CLIENT_KEY = os.environ["YESCAPTCHA_CLIENT_KEY"] r = requests.post( "https://api.yescaptcha.com/getBalance", json={"clientKey": CLIENT_KEY}, timeout=30, ) data = r.json() if data.get("errorId"): # e.g. ERROR_KEY_DOES_NOT_EXIST when the clientKey is wrong print("error:", data.get("errorCode"), data.get("errorDescription")) else: print("balance (points):", data["balance"]) ``` **Node.js** get-balance.mjs ```js // Check the balance. getBalance is free and is a quick way to verify your clientKey. Node.js 18+ const CLIENT_KEY = process.env.YESCAPTCHA_CLIENT_KEY; const res = await fetch('https://api.yescaptcha.com/getBalance', { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ clientKey: CLIENT_KEY }), }); const data = await res.json(); if (data.errorId) { // e.g. ERROR_KEY_DOES_NOT_EXIST when the clientKey is wrong console.log('error:', data.errorCode, data.errorDescription); } else { console.log('balance (points):', data.balance); } ``` --- # getSoftID – Geliştirici ID'sini sorgulama > POST /getSoftID geliştirici ID'nizi (softID) ve biriken gelir payı tutarını döndürür. Yazılımınızın başkaları için gönderdiği createTask isteklerine softID'yi ekleyerek pay kazanırsınız. Source: https://docs.yescaptcha.com/tr/api/get-soft-id/ · 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/get-soft-id/ `getSoftID`, geliştirici ID’nizi (`softID`) ve biriken geliştirici gelir payı tutarını (CNY) döndürür. Geliştirdiğiniz yazılım veya eklenti başkaları tarafından kullanıldığında, onların `createTask` isteklerine bu ID’yi ekleyin; harcamalarından pay alırsınız. Pay kuralları ve para çekme için: [Geliştirici gelir payı](https://docs.yescaptcha.com/tr/account/developer.md). - POST `https://api.yescaptcha.com/getSoftID` (Global uç nokta) - POST `https://cn.yescaptcha.com/getSoftID` (Çin uç noktası) ## İstek alanları | Alan | Tür | Zorunlu | Açıklama | | --- | --- | --- | --- | | `clientKey` | string | Evet | Kendi (geliştiricinin) ClientKey’niz | ```json { "clientKey": "YOUR_CLIENT_KEY" } ``` ## Yanıt ```json { "errorId": 0, "softID": 3, "balance": 0.004 } ``` | Alan | Tür | Açıklama | | --- | --- | --- | | `softID` | integer | Geliştirici ID’niz | | `balance` | number | Biriken geliştirici gelir payı, birim CNY | ## Nasıl kullanılır Yazılımınızı kullanan kullanıcıların gönderdiği `createTask` isteklerine üst düzey `softID` alanını ekleyin: ```json { "clientKey": "THE_USERS_CLIENT_KEY", "task": { "type": "ImageToTextTaskOcrBase", "body": "BASE64_IMAGE" }, "softID": 3 } ``` > **Dikkat:** `softID`, istek gövdesinin en üst düzeyine, `clientKey` ve `task` ile aynı seviyeye, alan adının büyük/küçük harfi birebir aynı olacak şekilde yazılmalıdır. `task` içine konulursa etkili olmaz. `clientKey` kullanıcının kendi ClientKey’dir ve puan düşümü kullanıcının hesabından yapılır; `softID` ise sizin geliştirici ID’nizdir. --- # report — sonuç bildirimi > POST /report, görev sonuçlarının doğru olup olmadığını bildirir; başarıları da başarısızlıkları da dürüstçe bildirin. Görsel tanıma türlerinde görev oluşturulduktan sonra 1 saat içinde bildirilen hatalar yaklaşık 24 saat sonra puan iadesi için değerlendirilir. Source: https://docs.yescaptcha.com/tr/api/report/ · 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/report/ `report`, bir grup görevin tanıma sonucunun doğru olup olmadığını bize bildirmek için kullanılır. **Başarıları da başarısızlıkları da bildirin.** Görsel tanıma türlerinde “hatalı” olarak bildirilen ve koşulları sağlayan görevlerin puanları yaklaşık 24 saat sonra iade edilir; bildirilen sonuçlar tanımayı değerlendirmek ve geliştirmek için de kullanılır. - POST `https://api.yescaptcha.com/report` (Global uç nokta) - POST `https://cn.yescaptcha.com/report` (Çin uç noktası) ## İstek parametreleri | Alan | Tür | Zorunlu | Açıklama | | --- | --- | --- | --- | | `id` | array of string | Evet | Görev ID’si listesi; tek seferde birden fazla görev bildirilebilir | | `isSuccess` | boolean | Evet | `true` tanıma doğru, `false` tanıma hatalı | `clientKey` gerekmez; görev ID’si görevi zaten belirler. ```json { "id": ["610ff5e0-68eb-11ef-95a6-22e70a0b794d", "65b88c06-68eb-11ef-8e9a-52540023ccb3"], "isSuccess": false } ``` ## Dönen sonuç ```json { "errorId": 0, "status": "success" } ``` ## Lütfen dürüstçe bildirin Bildirimler hem bildirim sonrası puan iadesinin hesaplanmasında hem de tanımanın değerlendirilip geliştirilmesinde kullanılır; lütfen gerçek sonuca göre bildirin: - Doğru tanınan görevler için `isSuccess: true`, hatalı olanlar için `false` bildirin. Yalnızca başarısızlıkları bildiren veya sonuç ne olursa olsun her şeyi başarısız olarak bildiren kayıtlar, istatistiklerde ve hesaplamada dikkate alınmaz. - Başarısızlık oranı, yalnızca bildirdiğiniz görevler üzerinden değil, bu dönemde oluşturduğunuz tüm görevler üzerinden hesaplanır. Daha fazla başarısızlık bildirmek daha fazla puan iadesi getirmez: başarısızlık oranınız aynı dönemin oranından belirgin biçimde yüksekse, iade yalnızca aynı dönemin başarısızlık oranı üzerinden yapılır. - Tek bir doğrulama birden fazla görsel kullanıyorsa (örneğin FunCaptcha’da 5 tur seçim gerekir) ve hangisinin hatalı olduğunu bilmiyorsanız, bu görev grubunu birlikte başarısız olarak bildirebilirsiniz; doğrulama geçtiğinde de aynı grubu birlikte başarılı olarak bildirin. ## Hata bildirimi sonrası puan iadesi - Yalnızca 5 görsel tanıma türünde puan iadesi yapılır: `FunCaptchaClassification`, `HCaptchaClassification`, `ReCaptchaV2Classification`, `AwsClassification`, `bCaptchaClassification`. - Yalnızca görev oluşturulduktan sonra **1 saat içinde** yapılan bildirimler geçerlidir; aynı görev için yalnızca bir kez iade yapılır. - İade anında yapılmaz, **yaklaşık 24 saat sonra** toplu olarak hesaplanır. - Hesaplama sırasında, aynı dönemde aynı sorular üzerinde çalışan diğer kullanıcılarla karşılaştırma yapılır; bildirilen başarısızlık oranı aynı dönemin düzeyinden belirgin biçimde yüksekse, iade aynı dönemin başarısızlık oranı üzerinden yapılır. - Hesaplamaya itirazınız varsa [Destek ile iletişime geçerek](https://docs.yescaptcha.com/tr/help/contact.md) itiraz edebilirsiniz. Token döndüren görev türlerinde (reCAPTCHA, hCaptcha, Turnstile, FunCaptcha vb.) token’ın geçip geçmediğine hedef site karar verir; bu nedenle bildirim sonrası puan iadesi yapılmaz. Faturalandırma kurallarının özeti için [Faturalandırma ve puan iadesi](https://docs.yescaptcha.com/tr/getting-started/billing.md) sayfasına bakın. --- # useragent ile UA alma > GET https://api.yescaptcha.com/useragent, önerilen tarayıcı User-Agent değerini (düz metin) döndürür. hCaptcha görevlerindeki userAgent alanı yalnızca bu değeri kabul eder. Source: https://docs.yescaptcha.com/tr/api/useragent/ · 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/useragent/ `/useragent`, şu anda önerilen tarayıcı User-Agent değerini düz metin olarak döndürür. `ClientKey` gerekmez ve puan düşümü yapılmaz. [hCaptcha](https://docs.yescaptcha.com/tr/tasks/hcaptcha.md) görevlerindeki `userAgent` alanı yalnızca bu değeri kabul eder; hedef siteyi ziyaret ederken de bu değeri kullanmanız token’ın daha kolay geçmesine yardımcı olur. - GET `https://api.yescaptcha.com/useragent` (Global uç nokta) - GET `https://cn.yescaptcha.com/useragent` (Çin uç noktası) ## Örnek ```bash curl -s https://api.yescaptcha.com/useragent ``` Yanıt (2026-10-15 tarihli değer; tarayıcı sürümleriyle birlikte güncellenir): ```text Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/155.0.0.0 Safari/537.36 ``` > **Not:** Döndürülen değer zaman içinde güncellenir. Kodunuza sabit olarak yazmayın; program her başladığında bir kez alın. - Tanıma sonucunda `userAgent` varsa, token’ı gönderirken sonuçtaki değeri kullanın. --- # Hata kodları > YesCaptcha API'nin tüm hata kodlarının anlamı ve çözüm yolları: istek biçimi, hesap bakiyesi, eşzamanlı görev ve duraklatma, görev sonucu, site parametreleri, görsel, proxy, sunucu. Hata döndüren isteklerde puan düşülmez. Source: https://docs.yescaptcha.com/tr/api/errors/ · 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/errors/ Bir istek hata verdiğinde API `errorId: 1` döndürür; `errorCode` hata kodu, `errorDescription` ise metin açıklamasıdır. Hata döndüren isteklerde puan düşülmez: görev oluşturulurken alınan hatalarda puan düşülmez, görev oluşturulduktan sonra tanıma başarısız olursa veya zaman aşımına uğrarsa puan iadesi otomatik yapılır. > **İpucu:** Kodunuzda `errorDescription` metnine değil, `errorCode` değerine göre karar verin; metin açıklaması değişebilir. ```json { "errorId": 1, "errorCode": "ERROR_ZERO_BALANCE", "errorDescription": "帐户余额不足" } ``` ## Hataları ele alma ilkeleri 1. **Parametre hataları** (istek biçimi, ClientKey, görev türü, site parametreleri, görsel) isteği yeniden göndermekle değişmez; önce isteği düzeltin. 2. **Tanıma hatası ve zaman aşımı** (`ERROR_CAPTCHA_UNSOLVABLE`, `ERROR_TASK_TIMEOUT`) durumunda yeni bir görev oluşturabilirsiniz. 3. Hatadan sonra bu `taskId` için **yoklamayı durdurun**; isteği aynen ve sık aralıklarla yeniden göndermeyin. 4. “Otomatik duraklatmaya sayılır” olarak işaretlenen hatalardan aynı `clientKey` bir dakika içinde 100 tane alırsa görev oluşturma 5 dakika duraklatılır. “Önbellek” olarak işaretlenen hatalar bu sayıma girmez, ancak önbellek süresince aynı istek doğrudan aynı hatayı döndürür. Ayrıntılar için [Eşzamanlı görev sınırı ve otomatik duraklatma](https://docs.yescaptcha.com/tr/api/rate-limits.md) sayfasına bakın. ## Tüm hata kodları ### İstek biçimi | Hata kodu | Anlamı | Ne yapmalı | | --- | --- | --- | | `ERROR_REQUIRED_FIELDS` | Zorunlu bir alan eksik (ör. `clientKey` veya görev türü için gereken `websiteURL` / `websiteKey`) ya da istek gövdesi JSON değil | Görev türü sayfasında listelenen eksik alanları ekleyin; JSON'u `POST` ile ve `Content-Type: application/json` başlığıyla gönderin | | `ERROR_REQUEST_FORMATS` (Duraklatmaya sayılır) | İstek gövdesi geçerli bir JSON değil | Gövdeyi metin birleştirme yerine bir JSON kütüphanesiyle oluşturun; JSON içinde `//` yorumları bulunmamalıdır | | `ERROR_TASK_ABSENT` (Duraklatmaya sayılır) | `createTask` çağrısında `task` alanı eksik | Görev parametrelerini bir `task` nesnesine koyun. Python requests ile `json=data` kullanın, `data=data` kullanmayın | | `ERROR_TASK_NOT_SUPPORTED` (Duraklatmaya sayılır) | `task.type` yanlış yazılmış ya da bu görev türü kaldırılmış | Tür adını "Görev türleri ve fiyatlar" sayfasından kopyalayın; adlar büyük/küçük harfe duyarlıdır | | `ERROR_PAGE_NOT_FOUND` | İstenen yol mevcut değil | Uç nokta URL'sini kontrol edin, ör. `https://api.yescaptcha.com/createTask`; yöntem adları büyük/küçük harfe duyarlıdır | | `ERROR_BAD_REQUEST` | İstek işlenemiyor; genellikle yanlış HTTP yöntemi (POST yerine GET) veya geçersiz parametre değerleri nedeniyle olur | JSON'u `POST` ile gönderin ve parametre türlerini ile değerlerini kontrol edin | | `ERROR_ILLEGAL_PARAMETERS` | Bir parametre değeri geçersiz. Cloudflare doğrulama sayfasında sık görülür: `websiteURL` herkese açık bir `http://` / `https://` URL'si değil, `postData` bir nesne değil ya da `requiredCookies` bir dize dizisi değil (createTask tarafından döndürülür, puan düşülmez); veya hedef alan adı proxy üzerinden çözümlenemedi (getTaskResult tarafından döndürülür, puan otomatik olarak iade edilir) | Değeri görev türü sayfasındaki parametre tablosuna göre düzeltin. Alan adı çözümlenemediyse URL'nin yazımını ve proxy'nin siteye erişip erişemediğini kontrol edin | ### Hesap ve bakiye | Hata kodu | Anlamı | Ne yapmalı | | --- | --- | --- | | `ERROR_KEY_DOES_NOT_EXIST` (Duraklatmaya sayılır) | `clientKey` mevcut değil: kopyalarken karakter eklenmiş veya eksik kalmış ya da anahtar panelde sıfırlanmış | Anahtarı yescaptcha.com panelinden boşluk ve satır sonu olmadan yeniden kopyalayın | | `ERROR_KEY_EXPIRED` (Duraklatmaya sayılır) | `clientKey` süresi doldu (createTask ve getBalance tarafından döndürülür, puan düşümü yapılmaz). İki durum söz konusudur: ya uzun süre kullanılmadığı için hesabı korumak amacıyla sistem bir son kullanma süresi belirlemiştir (süre dolmadan önce e-posta ile hatırlatma gönderilir) ya da bu `clientKey` için belirlenen son kullanma süresi geçmiştir | yescaptcha.com Paneline giriş yapın. Uzun süre kullanılmadığı için süresi dolduysa yeni bir `clientKey` oluşturun; Bakiye yeni `clientKey`'e otomatik olarak aktarılır. Bir son kullanma süresi belirlenmişse bu süreyi değiştirin veya başka bir `clientKey` kullanın. Ardından programınızı yeni `clientKey` ile güncelleyin | | `ERROR_KEY_IP_NOT_ALLOWED` | Bu `clientKey` için bir IP izin listesi tanımlanmış ve isteğin geldiği IP bu listede yok (createTask ve getBalance tarafından döndürülür, puan düşümü yapılmaz, otomatik duraklatmaya sayılmaz) | yescaptcha.com Paneli'ne giriş yapın ve istekleri gönderen makinenin genel IP adresini bu `clientKey` için tanımlı izin listesine ekleyin ya da başka bir `clientKey` kullanın. API'yi birden fazla makineden çağırıyorsanız her makinenin genel IP adresini ekleyin (burada kastedilen, YesCaptcha API'sini çağıran IP'dir; görev parametrelerindeki proxy ile ilgisi yoktur) | | `ERROR_KEY_QUOTA_EXCEEDED` | Bu `clientKey` için bir harcama limiti tanımlanmış ve mevcut dönem için kalan limit bu görevin puan düşümünü karşılamıyor (createTask tarafından döndürülür, puan düşümü yapılmaz, otomatik duraklatmaya sayılmaz). Limit, fiilen düşülen puanları esas alır; başarısız olan veya zaman aşımına uğrayan görevler için iade edilen puanlar limite geri eklenir | yescaptcha.com Paneli'ne giriş yapıp bu `clientKey` için tanımlı limiti yükseltin, bir sonraki dönemi bekleyin (limit Pekin saatiyle her gün, her Pazartesi veya her ayın 1'inde sıfırlanır; tek seferlik limit sıfırlanmaz) ya da başka bir `clientKey` kullanın. `getBalance`, bu `clientKey` için kalan limiti döndürür (`keyQuotaRemaining`) | | `ERROR_ZERO_BALANCE` | Bakiye yetersiz. Görev oluşturmak için bakiyenin 10 puandan fazla olması gerekir | Bakiye yükleyip yeniden deneyin. Bakiyeyi kontrol etmek için `getBalance` kullanın | ### Eşzamanlı görev ve duraklatma | Hata kodu | Anlamı | Ne yapmalı | | --- | --- | --- | | `ERROR_THREADS_MAXIMUM` (Bazen duraklatmaya sayılır) | Hesapta bu türden çok fazla görev işleniyor. Yanıttaki `limit`, geçerli eşzamanlı görev sınırıdır. İstek işlenmedi ve puan düşülmedi | Devam eden isteklerin dönmesini bekleyin ya da 1–2 saniye bekleyip yeniden deneyin; aynı anda sonuç bekleyen istek sayısını sınırlayın | | `ERROR_IP_BLOCKED_5MIN` | Bu `clientKey` kısa sürede çok fazla hata üretti ve otomatik olarak duraklatıldı. `retryAfter` kalan saniyedir, `blockReason` ise duraklatmaya neden olan hatadır | İsteği `blockReason` değerine göre düzeltin ve `retryAfter` saniye bekleyin; duraklatma sırasında istek göndermek süreyi uzatmaz | | `ERROR_NO_SLOT_AVAILABLE` | Çözüm hizmeti geçici olarak aşırı yüklü. createTask tarafından döndürüldüğünde puan düşümü yapılmaz; kuyrukta çok uzun süre bekleyen bir görev için getTaskResult de bu hatayı döndürür ve puan iadesi otomatik olarak yapılır | Birkaç saniye bekleyin ve görevi yeniden oluşturun | ### Görevler ve sonuçlar | Hata kodu | Anlamı | Ne yapmalı | | --- | --- | --- | | `ERROR_TASKID_INVALID` (Duraklatmaya sayılır) | `taskId` mevcut değil, süresi dolmuş (sonuçlar yaklaşık 10 dakika saklanır), başka bir `clientKey` değerine ait veya diğer uç noktada oluşturulmuş | Bu görevi yoklamayı bırakın. Görevi oluşturan uç nokta ve `clientKey` ile sorgulayın | | `ERROR_TASK_TIMEOUT` | Görev süresi içinde tamamlanmadı (genellikle 110 saniye); puan iadesi otomatik olarak yapıldı | Yeni bir görev oluşturun; zaman aşımı devam ederse aynı CAPTCHA için başka bir görev türü deneyin | | `ERROR_CAPTCHA_UNSOLVABLE` | CAPTCHA bu kez çözülemedi; puan iadesi yapıldı. Bu durum otomatik duraklatmaya sayılmaz | Yeni bir görev oluşturun. Hata devam ederse `websiteURL`, `websiteKey` ve diğer parametreleri kontrol edin veya aynı CAPTCHA için başka bir görev türü deneyin | | `ERROR_SETTLEMENT_FAILED` (Duraklatmaya sayılır) | Hesaplaşma sırasında bakiye yetersizdi, bu nedenle sonuç döndürülmedi | Bakiye yükleyin ve yeni bir görev oluşturun | | `ERROR_NO_SUCH_CAPCHA_ID` | Görev artık geçerli değil | Bu görevi yoklamayı bırakın ve yenisini oluşturun | | `ERROR_RECAPTCHA_TIMEOUT` | CAPTCHA çözümü zaman aşımına uğradı; puan iadesi yapıldı | Yeni bir görev oluşturun | ### Hedef site parametreleri | Hata kodu | Anlamı | Ne yapmalı | | --- | --- | --- | | `ERROR_RECAPTCHA_INVALID_SITEKEY` (Önbelleğe alınır, duraklatmaya sayılmaz) | `websiteKey` geçersiz | Sitekey değerini sayfada yeniden bulun (parametre bulma kılavuzlarına bakın). Aynı istekler önbellek süresi boyunca bu hatayı doğrudan döndürür ve yanıtta `cached: true` bulunur | | `ERROR_RECAPTCHA_INVALID_DOMAIN` (Önbelleğe alınır, duraklatmaya sayılmaz) | `websiteURL` alan adı `websiteKey` ile eşleşmiyor | `websiteURL` değerini CAPTCHA'nın göründüğü sayfa olarak ayarlayın | | `ERROR_INVALID_KEY_TYPE` (Önbelleğe alınır, duraklatmaya sayılmaz) | Sitekey farklı bir CAPTCHA'ya ait; örneğin v3 anahtarı bir v2 görev türüyle kullanılmış | Önce CAPTCHA'yı belirleyin ("CAPTCHA türünü belirleme" bölümüne bakın) ve uygun görev türünü seçin; görünmez v2 için `isInvisible` değerini ayarlayın | | `ERROR_DOMAIN_NOT_ALLOWED` (Önbelleğe alınır, duraklatmaya sayılmaz) | Bu site desteklenmiyor | Aynı CAPTCHA için başka bir görev türünü deneyin veya Destek ile iletişime geçin | | `ERROR_HIGH_DEMAND_DOMAIN` (Duraklatmaya sayılır) | Bu site desteklenmiyor | Bu site için görev göndermeyi bırakın ve Destek ile iletişime geçin | | `ERROR_FAILED_LOADING_WIDGET` | CAPTCHA verilen parametrelerle yüklenemedi | `websiteURL` ve `websiteKey` değerlerini kontrol edin; kendi proxy'nizi kullanan görev türlerinde proxy'nin siteye erişebildiğinden emin olun | ### Görseller | Hata kodu | Anlamı | Ne yapmalı | | --- | --- | --- | | `ERROR_ZERO_CAPTCHA_FILESIZE` (Duraklatmaya sayılır) | Görsel boş veya çok küçük | Base64 verisinin eksiksiz olduğunu ve `data:image/...;base64,` öneki içermediğini kontrol edin | | `ERROR_TOO_BIG_CAPTCHA_FILESIZE` (Duraklatmaya sayılır) | Görsel çok büyük | Görseli sıkıştırın veya küçültün; istek gövdesinin tamamı 6 MB'ın altında kalmalıdır | | `ERROR_IMAGE_TYPE_NOT_SUPPORTED` (Duraklatmaya sayılır) | Görsel biçimi desteklenmiyor veya görsel bu görev türünün işleyebileceği bir görsel değil. Tek bir oluşum bile anahtarı 30 dakika duraklatır | JPG veya PNG kullanın ve görselin görev türüyle uyumlu olduğundan emin olun; örneğin reCAPTCHA görsel tanıma için 100x100, 300x300 veya 450x450 gerekir | | `ERROR_ILLEGAL_IMAGE` (Duraklatmaya sayılır) | Görsel boyutu bu görev türünün gereksinimlerini karşılamıyor | Görseli görev türü sayfasında açıklandığı gibi yeniden boyutlandırın | | `ERROR_PARSE_IMAGE_FAIL` | Görsel çözümlenemedi; çoğunlukla Base64 eksik olduğundan veya bir önek içerdiğinden kaynaklanır | Base64 kodlamasını kontrol edin ve `data:` önekini ile satır sonlarını kaldırın | | `ERROR_UNKNOWN_QUESTION` | `question` yanlış veya bu soru henüz desteklenmiyor | Görev türü sayfasındaki soru listesiyle karşılaştırın. Desteklenmeyen sorular için Destek ile iletişime geçin; yeni sorular genellikle 3 iş günü içinde desteklenir | | `ERROR_UNKNOW_450x450_QUESTION` | Bu soru henüz 4x4 (450x450) görseller için desteklenmiyor | Başka bir soru almak için sayfadaki doğrulamayı yenileyin | ### Proxy'ler | Hata kodu | Anlamı | Ne yapmalı | | --- | --- | --- | | `ERROR_PROXY_CONNECT_REFUSED` | Proxy bağlantıyı reddetti | Proxy adresini, portunu ve protokolünü kontrol edin ve dış bağlantıları kabul ettiğinden emin olun (127.0.0.1 gibi yerel bir adres olmamalı) | | `ERROR_PROXY_CONNECT_TIMEOUT` | Proxy'ye bağlanırken zaman aşımı oluştu | Daha güvenilir bir proxy kullanın | | `ERROR_PROXY_READ_TIMEOUT` | Proxy üzerinden okuma sırasında zaman aşımı oluştu | Daha hızlı bir proxy kullanın | | `ERROR_PROXY_BANNED` | Proxy kullanılamıyor veya IP adresi hedef site tarafından engellenmiş | Başka bir proxy kullanın | | `ERROR_PROXY_INCORRECT` | Proxy parametreleri hatalı biçimlendirilmiş | `proxyType`, `proxyAddress`, `proxyPort` (veya `proxy` dizesi) biçimini kontrol edin | | `ERROR_PROXY_TRANSPARENT` | Proxy şeffaf olduğundan gerçek IP adresini açığa çıkarıyor | Anonim (elite) bir proxy kullanın | | `ERROR_PROXY_NOT_AUTHORISED` | Proxy kullanıcı adı veya şifresi yanlış | `proxyLogin` ve `proxyPassword` değerlerini (veya `proxy` dizesindeki kimlik bilgilerini) kontrol edin | | `ERROR_PROXY_TLS_ERROR` | Proxy ile TLS el sıkışması başarısız oldu; çoğunlukla `proxyType` yanlış olduğu için olur (örneğin http proxy için https seçilmesi) | Proxy protokolünü kontrol edin | | `ERROR_PROXY_CONNECTION_FAILED` | Proxy sunucusuna bağlanılamadı | Proxy adresini ve portunu kontrol edin ve proxy'nin çalıştığından emin olun | ### Sunucu | Hata kodu | Anlamı | Ne yapmalı | | --- | --- | --- | | `ERROR_SERVICE_UNAVALIABLE` | Hizmet geçici olarak kullanılamıyor (hata kodu `UNAVALIABLE` şeklinde yazılır) | Daha sonra yeniden deneyin; sorun devam ederse Destek ile iletişime geçin | | `ERROR_INTERNAL_SERVER_ERROR` | Sunucu tarafında bir hata oluştu | Daha sonra yeniden deneyin; hata devam ederse `taskId` ile birlikte Destek ile iletişime geçin | | `ERROR_UNKNOWN` | Sınıflandırılmamış bir hata | Daha sonra yeniden deneyin; hata devam ederse `taskId` ile birlikte Destek ile iletişime geçin | ## Ek alanlar Bazı hataların yanıtında ek alanlar bulunur: | Alan | Görüldüğü yer | Açıklama | | --- | --- | --- | | `retryAfter` | `ERROR_IP_BLOCKED_5MIN`, önbelleğe alınmış hatalar | Kaç saniye daha beklenmesi gerektiği | | `blockReason` | `ERROR_IP_BLOCKED_5MIN` | Duraklatmayı tetikleyen hata kodu | | `blockDetail` | `ERROR_IP_BLOCKED_5MIN` | Duraklatmayı tetikleyen isteklerin türü, URL’si ve sitekey değeri; sorunu bulmayı kolaylaştırır | | `cached` | Önbelleğe alınmış hatalar | `true` ise bu sonuç önbellekten gelir, gerçek bir tanıma yapılmamıştır | | `badRequest` | Önbelleğe alınmış hatalar | Önbellekle eşleşen parametreler | | `limit` | `ERROR_THREADS_MAXIMUM` | Geçerli eşzamanlı görev üst sınırınız | `errorDescription` metninin dil kuralları için [İstek ve yanıt](https://docs.yescaptcha.com/tr/api/overview.md) sayfasına bakın. --- # Eşzamanlı görev sınırı ve otomatik duraklatma > YesCaptcha eşzamanlı görev sınırı (ERROR_THREADS_MAXIMUM, puan düşülmez, duraklatmaya sayılmaz), çok fazla hata olduğunda otomatik duraklatma (bir dakikada 100 hata 5 dakika duraklatır, ERROR_IP_BLOCKED_5MIN) ve geçersiz parametre önbelleği (cached). Source: https://docs.yescaptcha.com/tr/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/ Tüm kullanıcılar için tanıma hızını korumak amacıyla YesCaptcha’da üç koruma kuralı vardır: hesap başına **aynı anda işlenen görev sayısı** sınırlanır (eşzamanlı görev sınırı); kısa sürede **çok fazla hata** üreten bir `clientKey` birkaç dakika **duraklatılır** (otomatik duraklatma); **geçersiz olduğu belirlenmiş parametreler** için bir süre boyunca aynı hata doğrudan döndürülür (geçersiz parametre önbelleği). Bu üç durumda da puan düşülmez. ## Eşzamanlı görev sınırı Aynı anda işlenen görev sayısını hesap ve görev türü bazında sınırlıyoruz. Sınırlanan şey eşzamanlı görev sayısıdır, dakikadaki istek sayısı değildir. - Bir görev, `createTask` çağrısını yaptığınız andan bu çağrı dönene kadar “işleniyor” sayılır. Görsel tanıma türleri sonucu doğrudan `createTask` içinde döndürdüğü için **eşzamanlı görev sayısı ≈ saniyede gönderilen görev sayısı × görev başına süre**. Örneğin görev başına 0.5 saniye ve saniyede 40 görev gönderildiğinde eşzamanlı görev sayısı yaklaşık 20 olur. - Aynı hesaptaki istekler birlikte hesaplanır; her görev türü kendi başına hesaplanır. - Limiti aşan istekler hemen `ERROR_THREADS_MAXIMUM` döndürür; yanıttaki `limit` mevcut üst sınırınızdır. **Puan düşülmez ve otomatik duraklatmaya sayılmaz.** - Tanıma sunucuları yoğun olduğunda, en çok tanıma süresi kullanan hesabın o görev türündeki sınırı **geçici olarak yarıya düşer ve 10 dakika sonra otomatik olarak eski haline döner**. Bu yalnızca hız sınırlamasıdır, hesap duraklatılmaz. - Daha yüksek bir limit gerekiyorsa [Destek ile iletişime geçin](https://docs.yescaptcha.com/tr/help/contact.md). Her türün varsayılan limiti belirlendiğinde bu sayfada ve [Hizmet güncellemeleri](https://docs.yescaptcha.com/tr/changelog.md) sayfasında duyurulacaktır. ```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 } ``` (Örnekteki sayı yalnızca örnek amaçlıdır.) ### Önerilen yöntem 1. Yalnızca saniyedeki gönderimi sınırlamak yerine, programınızda “aynı anda sonuç bekleyen istek sayısını” sınırlayın; örneğin semafor (Semaphore) veya sabit boyutlu bir thread havuzu kullanın. 2. `ERROR_THREADS_MAXIMUM` aldığınızda, gönderilmiş isteklerin dönmesini bekleyip yeni istek gönderin ya da 1-2 saniye bekleyip tekrar deneyin; döngüyle hemen yeniden denemeyin. 3. Toplu görevleri düzenli aralıklarla gönderin; binlerce görevi aynı anda göndermeyin. Python (asyncio) örneği: ```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 ``` ## Otomatik duraklatma Aynı `clientKey` kısa sürede çok sayıda hatalı istek ürettiğinde görev oluşturması otomatik olarak duraklatılır: | Tetikleyici | Duraklatma süresi | | --- | --- | | Aynı takvim dakikası içinde aşağıda listelenen hatalardan toplam 100 tane | 5 dakika | | `ERROR_IMAGE_TYPE_NOT_SUPPORTED` hatasının 1 kez görülmesi | 30 dakika | | Aynı takvim dakikası içinde “geçersiz parametre önbelleği”ne 1,000 kez takılma | 5 dakika | Duraklatmaya sayılan hatalar: - [`ERROR_REQUEST_FORMATS`](https://docs.yescaptcha.com/tr/api/errors.md#ERROR_REQUEST_FORMATS) - [`ERROR_TASK_ABSENT`](https://docs.yescaptcha.com/tr/api/errors.md#ERROR_TASK_ABSENT) - [`ERROR_TASK_NOT_SUPPORTED`](https://docs.yescaptcha.com/tr/api/errors.md#ERROR_TASK_NOT_SUPPORTED) - [`ERROR_KEY_DOES_NOT_EXIST`](https://docs.yescaptcha.com/tr/api/errors.md#ERROR_KEY_DOES_NOT_EXIST) - [`ERROR_KEY_EXPIRED`](https://docs.yescaptcha.com/tr/api/errors.md#ERROR_KEY_EXPIRED) - [`ERROR_TASKID_INVALID`](https://docs.yescaptcha.com/tr/api/errors.md#ERROR_TASKID_INVALID) - [`ERROR_SETTLEMENT_FAILED`](https://docs.yescaptcha.com/tr/api/errors.md#ERROR_SETTLEMENT_FAILED) - [`ERROR_HIGH_DEMAND_DOMAIN`](https://docs.yescaptcha.com/tr/api/errors.md#ERROR_HIGH_DEMAND_DOMAIN) - [`ERROR_ZERO_CAPTCHA_FILESIZE`](https://docs.yescaptcha.com/tr/api/errors.md#ERROR_ZERO_CAPTCHA_FILESIZE) - [`ERROR_TOO_BIG_CAPTCHA_FILESIZE`](https://docs.yescaptcha.com/tr/api/errors.md#ERROR_TOO_BIG_CAPTCHA_FILESIZE) - [`ERROR_IMAGE_TYPE_NOT_SUPPORTED`](https://docs.yescaptcha.com/tr/api/errors.md#ERROR_IMAGE_TYPE_NOT_SUPPORTED) - [`ERROR_ILLEGAL_IMAGE`](https://docs.yescaptcha.com/tr/api/errors.md#ERROR_ILLEGAL_IMAGE) Hesabın eşzamanlı görev sınırı aşıldığında dönen `ERROR_THREADS_MAXIMUM` (`limit` alanıyla birlikte) sayılmaz; tanıma hizmeti yoğun olduğunda dönen aynı adlı hata (`limit` alanı olmadan) sayılır. Tanıma hatası (`ERROR_CAPTCHA_UNSOLVABLE`), yetersiz bakiye (`ERROR_ZERO_BALANCE`), eksik alan (`ERROR_REQUIRED_FIELDS`), desteklenmeyen soru (`ERROR_UNKNOWN_QUESTION`) gibi hatalar sayılmaz. Duraklatma sırasında: - Yalnızca `createTask` ve `getBalance` etkilenir ve `ERROR_IP_BLOCKED_5MIN` döndürür. `getTaskResult` etkilenmez; duraklatmadan önce oluşturulan görevlerin sonuçları normal şekilde sorgulanabilir. - Yanıtta `retryAfter` (kalan saniye), `blockReason` (duraklatmayı tetikleyen hata kodu) ve `blockDetail` (o isteklerin türü, URL’si, sitekey değeri) bulunur; programınızı bunlara göre düzeltin. - İstek göndermeye devam etmek duraklatma süresini uzatmaz. Süre dolunca otomatik olarak kaldırılır, Destek ile iletişime geçmeniz gerekmez. - [yescaptcha.com](https://yescaptcha.com/) Panel’indeki genel bakış sayfasında son 24 saatteki duraklatma kayıtlarını görebilirsiniz. ```json { "errorId": 1, "errorCode": "ERROR_IP_BLOCKED_5MIN", "errorDescription": "...", "retryAfter": 182, "blockReason": "ERROR_TASK_NOT_SUPPORTED" } ``` ## Geçersiz parametre önbelleği Bazı hatalar istek parametrelerinden kaynaklanır ve aynı parametrelerle yeniden göndermek sonucu değiştirmez: - [`ERROR_RECAPTCHA_INVALID_SITEKEY`](https://docs.yescaptcha.com/tr/api/errors.md#ERROR_RECAPTCHA_INVALID_SITEKEY) - [`ERROR_RECAPTCHA_INVALID_DOMAIN`](https://docs.yescaptcha.com/tr/api/errors.md#ERROR_RECAPTCHA_INVALID_DOMAIN) - [`ERROR_INVALID_KEY_TYPE`](https://docs.yescaptcha.com/tr/api/errors.md#ERROR_INVALID_KEY_TYPE) - [`ERROR_DOMAIN_NOT_ALLOWED`](https://docs.yescaptcha.com/tr/api/errors.md#ERROR_DOMAIN_NOT_ALLOWED) Bu hatalar otomatik duraklatmaya sayılmaz; bunun yerine tüm sitede önbelleğe alınır: ilk tespitten sonra 2 dakika, 1 saat içinde tekrar doğrulanırsa 10 dakika boyunca. Önbellek süresi içinde aynı istekler (aynı görev türü ve `websiteKey`, ya da aynı site alan adı) doğrudan asıl hatayı döndürür, puan düşülmez ve yanıtta `"cached": true`, `retryAfter` (önbellekte kalan saniye) ile `badRequest` (eşleşen parametreler) bulunur. `websiteKey` değerini düzeltmek veya görev türünü değiştirmek hemen etkili olur. ## Eşzamanlı görev sınırı ile otomatik duraklatma arasındaki fark | | Eşzamanlı görev sınırı | Otomatik duraklatma | | --- | --- | --- | | Neden | Aynı anda işlenen görev çok fazla | Kısa sürede çok fazla hatalı istek | | Sonuç | Yalnızca fazla olan istekler reddedilir, `ERROR_THREADS_MAXIMUM` | Bu `clientKey` görev oluşturamaz, `ERROR_IP_BLOCKED_5MIN` | | Düzelme | Bir istek tamamlanır tamamlanmaz yenisi gönderilebilir; yarıya düşen limit 10 dakika sonra eski haline döner | Süre dolunca otomatik olarak kalkar | | Puan düşümü | Yok | Yok | --- # Görev türleri ve fiyatlar > YesCaptcha'nın tüm herkese açık görev türlerinin fiyatları (puan, 1,000 puan = ¥1) ve döndürdükleri sonuç. reCAPTCHA, hCaptcha ve Turnstile için token, Cloudflare doğrulama sayfası için Cookie, görsel CAPTCHA'lar için tanıma sonucu. Source: https://docs.yescaptcha.com/tr/tasks/ · Last verified: 2026-10-19 > This page was machine-translated from the Chinese version. If anything differs, the Chinese version prevails: https://docs.yescaptcha.com/zh/tasks/ Her görevden türüne göre sabit sayıda puan düşülür (1,000 puan = ¥1). Başarısız olan ve zaman aşımına uğrayan görevlerde puan iadesi otomatik yapılır. Aşağıdaki tabloda tüm herkese açık görev türleri yer alır ve ada göre aranabilir. Makine tarafından okunabilir sürüm: [/data/task-types.json](https://docs.yescaptcha.com/data/task-types.json). | CAPTCHA | Görev türü | Fiyat | Mod | | --- | --- | --- | --- | | [reCAPTCHA v2](https://docs.yescaptcha.com/tr/tasks/recaptcha-v2.md) | `NoCaptchaTaskProxyless` | $2.25 / 1k; 15 puan/görev · ¥15 / 1k | Asenkron | | [reCAPTCHA v2](https://docs.yescaptcha.com/tr/tasks/recaptcha-v2.md) | `RecaptchaV2TaskProxyless` | $3.00 / 1k; 20 puan/görev · ¥20 / 1k | Asenkron | | [reCAPTCHA v2](https://docs.yescaptcha.com/tr/tasks/recaptcha-v2.md) | `NoCaptchaTask` Kendi proxy'niz | $2.25 / 1k; 15 puan/görev · ¥15 / 1k | Asenkron | | [reCAPTCHA v2](https://docs.yescaptcha.com/tr/tasks/recaptcha-v2.md) | `RecaptchaV2EnterpriseTaskProxyless` | $3.00 / 1k; 20 puan/görev · ¥20 / 1k | Asenkron | | [reCAPTCHA v2](https://docs.yescaptcha.com/tr/tasks/recaptcha-v2.md) | `RecaptchaV2EnterpriseTask` Kendi proxy'niz | $3.00 / 1k; 20 puan/görev · ¥20 / 1k | Asenkron | | [reCAPTCHA v3](https://docs.yescaptcha.com/tr/tasks/recaptcha-v3.md) | `RecaptchaV3TaskProxyless` | $3.00 / 1k; 20 puan/görev · ¥20 / 1k | Asenkron | | [reCAPTCHA v3](https://docs.yescaptcha.com/tr/tasks/recaptcha-v3.md) | `RecaptchaV3TaskProxylessM1` | $3.75 / 1k; 25 puan/görev · ¥25 / 1k | Asenkron | | [reCAPTCHA v3](https://docs.yescaptcha.com/tr/tasks/recaptcha-v3.md) | `RecaptchaV3TaskProxylessM1S7` | $4.50 / 1k; 30 puan/görev · ¥30 / 1k | Asenkron | | [reCAPTCHA v3](https://docs.yescaptcha.com/tr/tasks/recaptcha-v3.md) | `RecaptchaV3TaskProxylessM1S9` | $5.25 / 1k; 35 puan/görev · ¥35 / 1k | Asenkron | | [reCAPTCHA v3](https://docs.yescaptcha.com/tr/tasks/recaptcha-v3.md) | `RecaptchaV3EnterpriseTask` | $3.00 / 1k; 20 puan/görev · ¥20 / 1k | Asenkron | | [reCAPTCHA v3](https://docs.yescaptcha.com/tr/tasks/recaptcha-v3.md) | `RecaptchaV3EnterpriseTaskM1` | $3.75 / 1k; 25 puan/görev · ¥25 / 1k | Asenkron | | [hCaptcha](https://docs.yescaptcha.com/tr/tasks/hcaptcha.md) | `HCaptchaTaskProxyless` | $4.50 / 1k; 30 puan/görev · ¥30 / 1k | Asenkron | | [hCaptcha](https://docs.yescaptcha.com/tr/tasks/hcaptcha.md) | `HCaptchaTaskProxylessM1` | $4.50 / 1k; 30 puan/görev · ¥30 / 1k | Asenkron | | [hCaptcha](https://docs.yescaptcha.com/tr/tasks/hcaptcha.md) | `HCaptchaTask` Kendi proxy'niz | $2.25 / 1k; 15 puan/görev · ¥15 / 1k | Asenkron | | [Cloudflare Turnstile](https://docs.yescaptcha.com/tr/tasks/turnstile.md) | `TurnstileTaskProxyless` | $3.75 / 1k; 25 puan/görev · ¥25 / 1k | Asenkron | | [Cloudflare Turnstile](https://docs.yescaptcha.com/tr/tasks/turnstile.md) | `TurnstileTaskProxylessM1` | $4.50 / 1k; 30 puan/görev · ¥30 / 1k | Asenkron | | [Cloudflare Turnstile](https://docs.yescaptcha.com/tr/tasks/turnstile.md) | `TurnstileTask` Kendi proxy'niz | $3.75 / 1k; 25 puan/görev · ¥25 / 1k | Asenkron | | [Cloudflare doğrulama sayfası](https://docs.yescaptcha.com/tr/tasks/cloudflare-challenge.md) | `CloudFlareTaskS2` Kendi proxy'niz | $3.75 / 1k; 25 puan/görev · ¥25 / 1k | Asenkron | | [Cloudflare doğrulama sayfası](https://docs.yescaptcha.com/tr/tasks/cloudflare-challenge.md) | `CloudFlareTaskS3` Kendi proxy'niz | $3.00 / 1k; 20 puan/görev · ¥20 / 1k | Asenkron | | [Görselden metin tanıma](https://docs.yescaptcha.com/tr/tasks/image-to-text.md) | `ImageToTextTaskOcrBase` | $0.30 / 1k; 2 puan/görev · ¥2 / 1k | Senkron | | [Görselden metin tanıma](https://docs.yescaptcha.com/tr/tasks/image-to-text.md) | `ImageToTextTaskMuggle` | $0.30 / 1k; 2 puan/görev · ¥2 / 1k | Senkron | | [Görselden metin tanıma](https://docs.yescaptcha.com/tr/tasks/image-to-text.md) | `ImageToTextTask` | $0.60 / 1k; 4 puan/görev · ¥4 / 1k | Asenkron | | [Görselden metin tanıma](https://docs.yescaptcha.com/tr/tasks/image-to-text.md) | `ImageToTextTaskM1` | $2.25 / 1k; 15 puan/görev · ¥15 / 1k | Asenkron | | [reCAPTCHA v2 görsel tanıma](https://docs.yescaptcha.com/tr/tasks/recaptcha-classification.md) | `ReCaptchaV2Classification` | $0.90 / 1k; 6 puan/görev · ¥6 / 1k | Senkron | | [hCaptcha görsel tanıma](https://docs.yescaptcha.com/tr/tasks/hcaptcha-classification.md) | `HCaptchaClassification` | $1.20 / 1k; 8 puan/görev · ¥8 / 1k | Senkron | | [FunCaptcha görsel tanıma](https://docs.yescaptcha.com/tr/tasks/funcaptcha-classification.md) | `FunCaptchaClassification` | $0.45 / 1k; 3 puan/görev · ¥3 / 1k | Senkron | | [AWS WAF / bCaptcha görsel tanıma](https://docs.yescaptcha.com/tr/tasks/aws-bcaptcha-classification.md) | `AwsClassification` | $1.20 / 1k; 8 puan/görev · ¥8 / 1k | Senkron | | [AWS WAF / bCaptcha görsel tanıma](https://docs.yescaptcha.com/tr/tasks/aws-bcaptcha-classification.md) | `bCaptchaClassification` | $1.20 / 1k; 8 puan/görev · ¥8 / 1k | Senkron | ABD doları fiyatları, 1 ABD doları ≈ ¥6.67 kuruyla (2026-10-27) hesaplanan tahminlerdir. Görevler puan üzerinden ücretlendirilir: CNY ile bakiye yüklediğinizde 1,000 puan = ¥1 olur; ABD doları ile (PayPal, kripto para) yapılan yüklemeler ödeme anındaki kurdan CNY'ye, ardından puana çevrilir. ## Hangisini seçmeliyim? | Yapmak istediğiniz | Kullanılacak tür | Döndürdüğü sonuç | | --- | --- | --- | | Görsellere tıklamadan token alıp doğrudan göndermek | [reCAPTCHA v2](https://docs.yescaptcha.com/tr/tasks/recaptcha-v2.md), [reCAPTCHA v3](https://docs.yescaptcha.com/tr/tasks/recaptcha-v3.md), [hCaptcha](https://docs.yescaptcha.com/tr/tasks/hcaptcha.md), [Turnstile](https://docs.yescaptcha.com/tr/tasks/turnstile.md) | Token, asenkron | | Cloudflare’in “Lütfen bekleyin” doğrulama sayfasını geçmek | [Cloudflare doğrulama sayfası](https://docs.yescaptcha.com/tr/tasks/cloudflare-challenge.md) | Cookie, User-Agent ve sayfa içeriği, asenkron | | Görsellere tarayıcıda kendiniz tıklamak | [reCAPTCHA v2 görsel tanıma](https://docs.yescaptcha.com/tr/tasks/recaptcha-classification.md), [hCaptcha görsel tanıma](https://docs.yescaptcha.com/tr/tasks/hcaptcha-classification.md), [FunCaptcha görsel tanıma](https://docs.yescaptcha.com/tr/tasks/funcaptcha-classification.md), [AWS WAF / bCaptcha görsel tanıma](https://docs.yescaptcha.com/tr/tasks/aws-bcaptcha-classification.md) | Hangi görsellere veya hangi konuma tıklanacağı, senkron | | Görseldeki karakterleri okumak | [Görselden metin tanıma](https://docs.yescaptcha.com/tr/tasks/image-to-text.md) | Metin, çoğunlukla senkron | Hangi CAPTCHA ile karşılaştığınızdan emin değilseniz [CAPTCHA türünü belirleme](https://docs.yescaptcha.com/tr/guides/identify-captcha.md) sayfasına bakın. ## Adlandırma - **`Proxyless`**: CAPTCHA bizim ağımızdan yüklenir, proxy gerekmez. Adında `Proxyless` bulunmayan türler (örneğin `NoCaptchaTask`, `HCaptchaTask`) kendi proxy’nizi kullanır ve proxy alanlarının gönderilmesini gerektirir; hedef site ziyaretçinin IP adresini kontrol ediyorsa bu türleri kullanın. - **`M1` gibi son ekler**: Aynı CAPTCHA için başka bir hat; parametreler aynıdır, fiyat farklıdır. Biri yeterince sık geçmiyorsa diğerini deneyin; birbirleri için yedek olarak da kullanılabilirler. - **`Classification`**: Görsel tanıma; token değil, nereye tıklanacağını döndürür. - **`Enterprise`**: reCAPTCHA Enterprise. ## Notlar - reCAPTCHA v2 görsel tanıma görsel boyutuna göre fiyatlandırılır; hCaptcha görsel tanımada hedef bulunamazsa puan düşülmez. Ayrıntılar ilgili sayfalardadır. - Fiyatlar için geçerli kaynak bu sayfadır. Yalnızca görev oluşturmadan puan düşülür; sonuç sorgulama ücretsizdir. Faturalandırma kuralları: [Faturalandırma ve puan iadesi](https://docs.yescaptcha.com/tr/getting-started/billing.md). --- # reCAPTCHA v2 > YesCaptcha ile reCAPTCHA v2 (standart, görünmez ve Enterprise) token'ı alın: görev türleri ve fiyatlar, istek parametreleri, curl/Python/Node.js örnekleri ve dönen sonuç. Source: https://docs.yescaptcha.com/tr/tasks/recaptcha-v2/ · 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-v2/ reCAPTCHA v2 görevi bir token (`gRecaptchaResponse`) döndürür. Bu token’ı hedef siteye göndererek doğrulamayı görsellere tıklamadan geçebilirsiniz. En sık kullanılan `NoCaptchaTaskProxyless` türünün görev başına ücreti: 15 puan (≈ $2.25 / 1k). Sonuç asenkron döner: önce `createTask` ile görevi oluşturun, sonra sonucu almak için her 5 saniyede bir `getTaskResult` çağırın. Çözülemeyen 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 kimlik doğrulama `clientKey` ile yapılır (ClientKey’nizi [yescaptcha.com](https://yescaptcha.com/) Panel’inden kopyalayın). Görevi hangi uç noktada oluşturduysanız sonucu da aynı uç noktadan sorgulayın. ## Kullanım senaryoları - Sayfada “Robot değilim” (I’m not a robot) onay kutusu varsa: standart sürüm. - Onay kutusu yoksa ve görsel sorusu gönder düğmesine tıklandıktan sonra çıkıyorsa: görünmez sürüm. `"isInvisible": true` ekleyin. - Sayfa `recaptcha/enterprise.js` yüklüyorsa veya istek adreslerinde `enterprise` geçiyorsa: Enterprise sürüm. Adında `Enterprise` geçen türleri kullanın. Hangisi olduğundan emin değilseniz [CAPTCHA türünü belirleme](https://docs.yescaptcha.com/tr/guides/identify-captcha.md) sayfasına bakın. Token yöntemi yeterince geçmiyorsa [reCAPTCHA v2 görsel tanıma](https://docs.yescaptcha.com/tr/tasks/recaptcha-classification.md) görevini deneyebilirsiniz: API hangi görsellere tıklanacağını söyler, tıklamayı tarayıcıda siz yaparsınız. ## Türler ve fiyatlar | Görev türü | Fiyat | Mod | Notlar | | --- | --- | --- | --- | | `NoCaptchaTaskProxyless` | $2.25 / 1k; 15 puan/görev · ¥15 / 1k | Asenkron | | | `RecaptchaV2TaskProxyless` | $3.00 / 1k; 20 puan/görev · ¥20 / 1k | Asenkron | NoCaptchaTaskProxyless ile aynı parametreler, farklı hat; biri yedek olarak kullanılabilir | | `NoCaptchaTask` | $2.25 / 1k; 15 puan/görev · ¥15 / 1k | Asenkron | Kendi proxy'niz | | `RecaptchaV2EnterpriseTaskProxyless` | $3.00 / 1k; 20 puan/görev · ¥20 / 1k | Asenkron | | | `RecaptchaV2EnterpriseTask` | $3.00 / 1k; 20 puan/görev · ¥20 / 1k | Asenkron | Kendi proxy'niz | ABD doları fiyatları, 1 ABD doları ≈ ¥6.67 kuruyla hesaplanan tahminlerdir; görevler puan üzerinden ücretlendirilir. - `NoCaptchaTaskProxyless` ve `RecaptchaV2TaskProxyless` aynı parametreleri kullanır, hatları farklıdır. Biri yeterince geçmiyorsa diğerini deneyebilirsiniz. - Adında `Proxyless` geçmeyen türler (`NoCaptchaTask`, `RecaptchaV2EnterpriseTask`) CAPTCHA’yı kendi proxy’niz üzerinden yükler; `proxyType`, `proxyAddress`, `proxyPort` gibi alanların gönderilmesi gerekir. Hedef site ziyaretçi IP’sini denetliyorsa bunları kullanın. ## İstek parametreleri `createTask` içindeki `task` nesnesinin alanları: | 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 | | `isInvisible` | boolean | Hayır | Görünmez (invisible) sürüm için true gönderin; aksi halde göndermeyin | | `proxyType` | string | Bazı türler | Proxy protokolü: `http`, `https`, `socks4` veya `socks5` (NoCaptchaTask, RecaptchaV2EnterpriseTask için zorunlu) | | `proxyAddress` | string | Bazı türler | Proxy IP adresi veya ana bilgisayar adı. 127.0.0.1 veya 192.168.x.x gibi yerel ya da özel adresler çalışmaz, çünkü sunucularımız bunlara erişemez (NoCaptchaTask, RecaptchaV2EnterpriseTask için zorunlu) | | `proxyPort` | integer | Bazı türler | Proxy portu (NoCaptchaTask, RecaptchaV2EnterpriseTask için zorunlu) | | `proxyLogin` | string | Hayır | Proxy kullanıcı adı, proxy kimlik doğrulaması gerektiriyorsa (yalnızca NoCaptchaTask, RecaptchaV2EnterpriseTask) | | `proxyPassword` | string | Hayır | Proxy şifresi, proxy kimlik doğrulaması gerektiriyorsa (yalnızca NoCaptchaTask, RecaptchaV2EnterpriseTask) | | `userAgent` | string | Hayır | Tarayıcı User-Agent bilgisi. Sonuçta `userAgent` varsa, token'ı gönderirken bu değeri kullanın (yalnızca NoCaptchaTask, RecaptchaV2EnterpriseTask) | | `enterprisePayload` | object | Hayır | Enterprise sürümüne ait ek parametreler, örneğin reCAPTCHA Enterprise `s` değeri: `{"s": "..."}`. Sayfa kullanmıyorsa göndermeyin (yalnızca RecaptchaV2EnterpriseTaskProxyless, RecaptchaV2EnterpriseTask) | `websiteURL` ve `websiteKey` değerlerini nasıl bulacağınız için [reCAPTCHA parametrelerini bulma](https://docs.yescaptcha.com/tr/guides/find-recaptcha-parameters.md) sayfasına bakın. ## İstek örneği Google’ın resmi demo sayfasıyla: POST https://api.yescaptcha.com/createTask ```json { "clientKey": "YOUR_CLIENT_KEY", "task": { "type": "NoCaptchaTaskProxyless", "websiteURL": "https://www.google.com/recaptcha/api2/demo", "websiteKey": "6Le-wvkSAAAAAPBMRTvw0Q4Muexq9bi0DJwx_mJ-" } } ``` Görevi oluşturan, her 5 saniyede bir sorgulayan ve token’ı yazdıran tam kod. Çalıştırmadan önce ClientKey’nizi `YESCAPTCHA_CLIENT_KEY` ortam değişkenine koyun: **curl** ```bash curl -s https://api.yescaptcha.com/createTask \ -H 'Content-Type: application/json' \ -d '{ "clientKey": "YOUR_CLIENT_KEY", "task": { "type": "NoCaptchaTaskProxyless", "websiteURL": "https://www.google.com/recaptcha/api2/demo", "websiteKey": "6Le-wvkSAAAAAPBMRTvw0Q4Muexq9bi0DJwx_mJ-" } }' # 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": "NoCaptchaTaskProxyless", "websiteURL": "https://www.google.com/recaptcha/api2/demo", "websiteKey": "6Le-wvkSAAAAAPBMRTvw0Q4Muexq9bi0DJwx_mJ-", }) 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: "NoCaptchaTaskProxyless", websiteURL: "https://www.google.com/recaptcha/api2/demo", websiteKey: "6Le-wvkSAAAAAPBMRTvw0Q4Muexq9bi0DJwx_mJ-", }); console.log(solution.gRecaptchaResponse); ``` Enterprise sürümde sayfa reCAPTCHA’ya bir `s` değeri geçiriyorsa bu değeri `enterprisePayload` içine koyun: POST https://api.yescaptcha.com/createTask ```json { "clientKey": "YOUR_CLIENT_KEY", "task": { "type": "RecaptchaV2EnterpriseTaskProxyless", "websiteURL": "https://example.com/login", "websiteKey": "SITE_KEY_OF_THE_PAGE", "enterprisePayload": { "s": "S_VALUE_FROM_THE_PAGE" } } } ``` Kendi proxy’nizle: POST https://api.yescaptcha.com/createTask ```json { "clientKey": "YOUR_CLIENT_KEY", "task": { "type": "NoCaptchaTask", "websiteURL": "https://www.google.com/recaptcha/api2/demo", "websiteKey": "6Le-wvkSAAAAAPBMRTvw0Q4Muexq9bi0DJwx_mJ-", "proxyType": "http", "proxyAddress": "proxy.example.com", "proxyPort": 8080, "proxyLogin": "user", "proxyPassword": "pass" } } ``` ## Dönen sonuç `createTask` görev ID’sini döndürür: ```json { "errorId": 0, "taskId": "61138bb6-19fb-11ec-a9c8-0242ac110006" } ``` Bu ID ile `getTaskResult` çağırın. Görev hâlâ işleniyorsa `{"errorId": 0, "status": "processing"}` döner; 5 saniye sonra tekrar sorgulayın. Görev tamamlandığında şu yanıt döner: ```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 | Bir görev en fazla yaklaşık 110 saniye işlenir; süre aşılırsa `ERROR_TASK_TIMEOUT` döner ve puan iadesi yapılır. Hata durumunda `errorId` 1 olur; hatayı `errorCode` değerine göre ele alın, bkz. [Hata kodları](https://docs.yescaptcha.com/tr/api/errors.md). Token’ı nasıl göndereceğiniz için [reCAPTCHA’yı token ile geçme](https://docs.yescaptcha.com/tr/guides/submit-recaptcha-token.md) sayfasına bakın. > **İpucu:** Token tek kullanımlıktır ve yaklaşık 120 saniye geçerlidir. Aldıktan sonra 60 saniye içinde göndermeniz önerilir. ## Sık sorulan sorular ### Aynı sitede token neden bazen geçiyor, bazen geçmiyor? Geçip geçmeyeceğine hedef site karar verir. Site her doğrulamaya skor verir ve bir eşik belirler; bu eşik her an değişebilir. Bu yüzden geçme oranı siteden siteye değişir ve her token geçmez. Aynı türde başka bir görev türüyle geçme oranını karşılaştırabilir veya [görsel tanıma](https://docs.yescaptcha.com/tr/tasks/recaptcha-classification.md) görevine geçebilirsiniz. ### Token ne kadar süre geçerli? Tek kullanımlıktır ve yaklaşık 120 saniye geçerlidir; aldıktan sonra 60 saniye içinde göndermeniz önerilir. Geçerlilik süresini Google belirler. ### Çözülemeyen görevde puan düşülür mü? Hayır. `ERROR_CAPTCHA_UNSOLVABLE` döndüren veya zaman aşımına uğrayan görevlerde puan iadesi otomatik yapılır, bkz. [Ücretlendirme ve puan iadesi](https://docs.yescaptcha.com/tr/getting-started/billing.md). ## İlgili eğitimler - [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) - [reCAPTCHA’yı token ile geçme](https://docs.yescaptcha.com/tr/guides/submit-recaptcha-token.md) - [reCAPTCHA v2 görsel tanıma ile tıklama simülasyonu (Selenium)](https://docs.yescaptcha.com/tr/guides/recaptcha-click-selenium.md) --- # 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) --- # hCaptcha > YesCaptcha ile hCaptcha token'ı alın: HCaptchaTaskProxyless, HCaptchaTaskProxylessM1 ve kendi proxy'nizi kullanan HCaptchaTask, userAgent ve rqdata nasıl doldurulur, dönen respKey nasıl kullanılır. Source: https://docs.yescaptcha.com/tr/tasks/hcaptcha/ · 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/hcaptcha/ hCaptcha görevi bir token (`gRecaptchaResponse`) döndürür. Bu token’ı, dönen `userAgent` (bazen `respKey`) ile birlikte hedef siteye gönderirseniz doğrulama geçilir. `HCaptchaTaskProxyless` için görev başına 30 puan (≈ $4.50 / 1k), kendi proxy’nizi kullanan `HCaptchaTask` için görev başına 15 puan (≈ $2.25 / 1k) ücret alınır; ikisi de asenkrondur: önce `createTask`, ardından her 5 saniyede bir `getTaskResult` çağrılır. Tanıma başarısız olursa veya zaman aşımına uğrarsa 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 biçimindedir; kimlik doğrulama `clientKey` alanıyla yapılır. Görevi hangi uç noktada oluşturduysanız sonucu da aynı uç noktada sorgulayın. ## Kullanım senaryoları Sayfada hCaptcha’nın “Ben insanım” onay kutusu var veya hCaptcha görsel sorusu açılıyorsa. Token alıp doğrudan göndermek istiyorsanız bu sayfadaki türleri kullanın; görsellere tarayıcıda kendiniz tıklamak istiyorsanız [hCaptcha görsel tanıma](https://docs.yescaptcha.com/tr/tasks/hcaptcha-classification.md) sayfasına bakın. > **Not:** hCaptcha geçme oranı siteden siteye çok değişir; önce küçük bir toplu denemeyle test etmeniz önerilir. ## Görev türleri ve fiyatlar | Görev türü | Fiyat | Mod | Notlar | | --- | --- | --- | --- | | `HCaptchaTaskProxyless` | $4.50 / 1k; 30 puan/görev · ¥30 / 1k | Asenkron | | | `HCaptchaTaskProxylessM1` | $4.50 / 1k; 30 puan/görev · ¥30 / 1k | Asenkron | HCaptchaTaskProxyless ile aynı parametreler, farklı hat; biri yedek olarak kullanılabilir | | `HCaptchaTask` | $2.25 / 1k; 15 puan/görev · ¥15 / 1k | Asenkron | Kendi proxy'niz | ABD doları fiyatları, 1 ABD doları ≈ ¥6.67 kuruyla hesaplanan tahminlerdir; görevler puan üzerinden ücretlendirilir. - `HCaptchaTaskProxyless` ve `HCaptchaTaskProxylessM1` aynı parametreleri alır, hatları farklıdır; birbirinin yedeği olarak kullanılabilir. - `HCaptchaTask`, CAPTCHA’yı kendi proxy’nizle yükler ve proxy alanlarını gerektirir; hedef site ziyaretçi IP’sini kontrol ediyorsa bunu kullanın. ## İ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 | hCaptcha site anahtarı (sitekey), genellikle UUID biçimindedir | | `userAgent` | string | Hayır | Tarayıcı User-Agent bilgisi. Önerilir, ancak yalnızca `GET https://api.yescaptcha.com/useragent` tarafından döndürülen değer kabul edilir; token'ı sonuçtaki `userAgent` ile gönderin | | `isInvisible` | boolean | Hayır | Görünmez (invisible) sürüm için true gönderin; aksi halde göndermeyin | | `rqdata` | string | Hayır | Enterprise hCaptcha için rqdata; bazı siteler gerektirir ve genellikle CAPTCHA'yı yükleyen istekte bulunur | | `proxyType` | string | Bazı türler | Proxy protokolü: `http`, `https`, `socks4` veya `socks5` (HCaptchaTask için zorunlu) | | `proxyAddress` | string | Bazı türler | Proxy IP adresi veya ana bilgisayar adı. 127.0.0.1 veya 192.168.x.x gibi yerel ya da özel adresler çalışmaz, çünkü sunucularımız bunlara erişemez (HCaptchaTask için zorunlu) | | `proxyPort` | integer | Bazı türler | Proxy portu (HCaptchaTask için zorunlu) | | `proxyLogin` | string | Hayır | Proxy kullanıcı adı, proxy kimlik doğrulaması gerektiriyorsa (yalnızca HCaptchaTask) | | `proxyPassword` | string | Hayır | Proxy şifresi, proxy kimlik doğrulaması gerektiriyorsa (yalnızca HCaptchaTask) | - `websiteURL`, CAPTCHA’nın göründüğü sayfadır, hcaptcha.com **değildir**. - `userAgent` alanının doldurulması önerilir; yalnızca [/useragent](https://docs.yescaptcha.com/tr/api/useragent.md) çağrısının döndürdüğü değer kabul edilir. - `rqdata`: Enterprise hCaptcha kullanan siteler (örneğin bazı sosyal ve sohbet siteleri) bunu ister; genellikle CAPTCHA’yı yükleyen istekte bulunur. Normal sitelerde göndermeyin. Parametrelerin nasıl bulunacağı için [hCaptcha parametrelerini bulma](https://docs.yescaptcha.com/tr/guides/find-hcaptcha-parameters.md) sayfasına bakın. ## İstek örneği POST https://api.yescaptcha.com/createTask ```json { "clientKey": "YOUR_CLIENT_KEY", "task": { "type": "HCaptchaTaskProxyless", "websiteURL": "https://accounts.hcaptcha.com/demo", "websiteKey": "a5f74b19-9e45-40e0-b45d-47ff91b7a6c2" } } ``` **curl** ```bash curl -s https://api.yescaptcha.com/createTask \ -H 'Content-Type: application/json' \ -d '{ "clientKey": "YOUR_CLIENT_KEY", "task": { "type": "HCaptchaTaskProxyless", "websiteURL": "https://accounts.hcaptcha.com/demo", "websiteKey": "a5f74b19-9e45-40e0-b45d-47ff91b7a6c2" } }' # 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": "HCaptchaTaskProxyless", "websiteURL": "https://accounts.hcaptcha.com/demo", "websiteKey": "a5f74b19-9e45-40e0-b45d-47ff91b7a6c2", }) 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: "HCaptchaTaskProxyless", websiteURL: "https://accounts.hcaptcha.com/demo", websiteKey: "a5f74b19-9e45-40e0-b45d-47ff91b7a6c2", }); console.log(solution.gRecaptchaResponse); ``` Kendi proxy’nizle: POST https://api.yescaptcha.com/createTask ```json { "clientKey": "YOUR_CLIENT_KEY", "task": { "type": "HCaptchaTask", "websiteURL": "https://accounts.hcaptcha.com/demo", "websiteKey": "a5f74b19-9e45-40e0-b45d-47ff91b7a6c2", "proxyType": "http", "proxyAddress": "proxy.example.com", "proxyPort": 8080, "proxyLogin": "user", "proxyPassword": "pass" } } ``` ## Sonuç ```json { "errorId": 0, "status": "ready", "solution": { "gRecaptchaResponse": "P1_eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9...", "userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/155.0.0.0 Safari/537.36", "respKey": "E0_eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9..." } } ``` | 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 | | `userAgent` | string | Token'ı almak için kullanılan User-Agent. Token'ı gönderirken bu değeri kullanın; sizin gönderdiğinizden farklı olsa bile bu değer geçerlidir | | `respKey` | string | Bazı sitelerin token ile birlikte istediği değer; varsa birlikte gönderin | Göndermek için: 1. Token’ı sayfadaki `h-captcha-response` alanına (varsa `g-recaptcha-response` alanına da) veya hedef sitenin API’sinin istediği alana yazın. 2. Gönderim isteğinde User-Agent olarak dönen `userAgent` değerini kullanın. 3. `respKey` döndüyse, sitenin gereksinimine göre onu da birlikte gönderin. İşlem sürerken `{"errorId": 0, "status": "processing"}` döner; 5 saniye sonra tekrar sorgulayın. Hata oluşursa `errorCode` değerine göre ilerleyin, bkz. [Hata kodları](https://docs.yescaptcha.com/tr/api/errors.md). ## Sık sorulan sorular ### Geçme oranı neden kararsız? hCaptcha, sitenin ayarlarına, erişim IP’sine ve tarayıcı ortamına göre karar verir; bu yüzden geçme oranı siteden siteye değişir. Dönen `userAgent` değerini kullandığınızdan emin olun; IP’ye duyarlı sitelerde kendi proxy’nizi kullanan `HCaptchaTask` türünü seçin ve gönderimi de aynı proxy üzerinden yapın; ayrıca `HCaptchaTaskProxylessM1` ile karşılaştırabilirsiniz. ### Token ne kadar süre geçerli? Tek kullanımlıktır ve yaklaşık 120 saniye geçerlidir; aldıktan sonra mümkün olan en kısa sürede göndermeniz önerilir. ## İlgili rehberler - [hCaptcha parametrelerini bulma](https://docs.yescaptcha.com/tr/guides/find-hcaptcha-parameters.md) - [hCaptcha görsel tanıma ile tıklama simülasyonu (Selenium)](https://docs.yescaptcha.com/tr/guides/hcaptcha-click-selenium.md) --- # Cloudflare Turnstile > YesCaptcha ile Cloudflare Turnstile token'ı alın: TurnstileTaskProxyless, TurnstileTaskProxylessM1 ve kendi proxy'nizle çalışan TurnstileTask; parametreler, örnekler, dönen sonuç ve Cloudflare doğrulama sayfasından farkı. Source: https://docs.yescaptcha.com/tr/tasks/turnstile/ · Last verified: 2026-10-21 > This page was machine-translated from the Chinese version. If anything differs, the Chinese version prevails: https://docs.yescaptcha.com/zh/tasks/turnstile/ Cloudflare Turnstile görevi bir token (`token`) döndürür; bu token hedef siteye gönderildiğinde doğrulama geçilir. `TurnstileTaskProxyless` için görev başına ücret: 25 puan (≈ $3.75 / 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örevlerin puanı otomatik iade edilir. - POST `https://api.yescaptcha.com/createTask` (Global uç nokta) - POST `https://cn.yescaptcha.com/createTask` (Çin uç noktası) İstek gövdesi JSON’dur ve kimlik doğrulaması `clientKey` ile yapılır. Sonucu, görevi oluşturduğunuz uç noktadan sorgulayın. ## Kullanım alanları Sayfadaki bir formun içinde Cloudflare doğrulama kutusu (“İnsan olduğunuzu doğrulayın”) bulunur ve sayfa `challenges.cloudflare.com/turnstile` adresindeki betiği yükler. Sayfanın tamamı Cloudflare tarafından durdurulup “Lütfen bekleyin…” veya “Tarayıcınız kontrol ediliyor” ekranı gösteriliyorsa bu Turnstile değil, Cloudflare doğrulama sayfasıdır; bunun için [Cloudflare doğrulama sayfası](https://docs.yescaptcha.com/tr/tasks/cloudflare-challenge.md) görev türünü kullanın. Aradaki fark için [CAPTCHA türünü belirleme](https://docs.yescaptcha.com/tr/guides/identify-captcha.md) sayfasına bakın. ## Görev türleri ve fiyatlar | Görev türü | Fiyat | Mod | Notlar | | --- | --- | --- | --- | | `TurnstileTaskProxyless` | $3.75 / 1k; 25 puan/görev · ¥25 / 1k | Asenkron | | | `TurnstileTaskProxylessM1` | $4.50 / 1k; 30 puan/görev · ¥30 / 1k | Asenkron | | | `TurnstileTask` | $3.75 / 1k; 25 puan/görev · ¥25 / 1k | Asenkron | Kendi proxy'niz | ABD doları fiyatları, 1 ABD doları ≈ ¥6.67 kuruyla hesaplanan tahminlerdir; görevler puan üzerinden ücretlendirilir. - `TurnstileTaskProxyless` ve `TurnstileTaskProxylessM1` aynı parametreleri kullanır, hatları farklıdır; birbirinin yedeği olarak kullanılabilir. - `TurnstileTask`, CAPTCHA’yı kendi proxy’nizle yükler; proxy alanlarının gönderilmesi gerekir. ## İ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 | Turnstile site anahtarı (sitekey), genellikle 0x ile başlar | | `pageAction` | string | Hayır | Sayfanın Turnstile'a verdiği `action` değeri (`turnstile.render` seçeneği veya doğrulama kutusu öğesindeki `data-action`), örneğin `login`. Çoğu durumda gerekmez; yalnızca görevler başarısız olmaya devam ederse ekleyin | | `data` | string | Hayır | Sayfanın Turnstile'a verdiği `cData` değeri (`turnstile.render` seçeneği veya doğrulama kutusu öğesindeki `data-cdata`), örneğin `c0bd4b36-7419-4e18-83c6-378699f2a9a2`. Çoğu durumda gerekmez; yalnızca görevler başarısız olmaya devam ederse ekleyin | | `proxyType` | string | Bazı türler | Proxy protokolü: `http`, `https`, `socks4` veya `socks5` (TurnstileTask için zorunlu) | | `proxyAddress` | string | Bazı türler | Proxy IP adresi veya ana bilgisayar adı. 127.0.0.1 veya 192.168.x.x gibi yerel ya da özel adresler çalışmaz, çünkü sunucularımız bunlara erişemez (TurnstileTask için zorunlu) | | `proxyPort` | integer | Bazı türler | Proxy portu (TurnstileTask için zorunlu) | | `proxyLogin` | string | Hayır | Proxy kullanıcı adı, proxy kimlik doğrulaması gerektiriyorsa (yalnızca TurnstileTask) | | `proxyPassword` | string | Hayır | Proxy şifresi, proxy kimlik doğrulaması gerektiriyorsa (yalnızca TurnstileTask) | | `userAgent` | string | Hayır | Tarayıcı User-Agent bilgisi. Sonuçta `userAgent` varsa, token'ı gönderirken bu değeri kullanın (yalnızca TurnstileTask) | `websiteKey` genellikle `0x` ile başlar. Nasıl bulunacağı için [Turnstile parametrelerini bulma](https://docs.yescaptcha.com/tr/guides/find-turnstile-parameters.md) sayfasına bakın. ### Sorun devam ederse: pageAction ve data Çoğu durumda yalnızca `websiteURL` ve `websiteKey` yeterlidir; bu iki parametreye gerek yoktur. `websiteURL` ve `websiteKey` değerlerinin doğru olduğundan eminseniz ve görev yine de geçmiyorsa, sayfanın Turnstile’ı çağırırken `action` ve `cData` gönderip göndermediğine bakın (`turnstile.render` parametreleri veya doğrulama kutusu öğesindeki `data-action`, `data-cdata`). Gönderiyorsa aynen ekleyin: - `pageAction`: sayfadaki `action` değeri, örneğin `login` - `data`: sayfadaki `cData` değeri, örneğin `c0bd4b36-7419-4e18-83c6-378699f2a9a2` POST https://api.yescaptcha.com/createTask ```json { "clientKey": "YOUR_CLIENT_KEY", "task": { "type": "TurnstileTaskProxyless", "websiteURL": "https://example.com/login", "websiteKey": "0x4AAAAAAA_SITE_KEY", "pageAction": "login", "data": "c0bd4b36-7419-4e18-83c6-378699f2a9a2" } } ``` ## İstek örneği POST https://api.yescaptcha.com/createTask ```json { "clientKey": "YOUR_CLIENT_KEY", "task": { "type": "TurnstileTaskProxyless", "websiteURL": "https://example.com/login", "websiteKey": "0x4AAAAAAA_SITE_KEY" } } ``` **curl** ```bash curl -s https://api.yescaptcha.com/createTask \ -H 'Content-Type: application/json' \ -d '{ "clientKey": "YOUR_CLIENT_KEY", "task": { "type": "TurnstileTaskProxyless", "websiteURL": "https://example.com/login", "websiteKey": "0x4AAAAAAA_SITE_KEY" } }' # 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": "TurnstileTaskProxyless", "websiteURL": "https://example.com/login", "websiteKey": "0x4AAAAAAA_SITE_KEY", }) print(solution["token"]) ``` **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: "TurnstileTaskProxyless", websiteURL: "https://example.com/login", websiteKey: "0x4AAAAAAA_SITE_KEY", }); console.log(solution.token); ``` `websiteURL` ve `websiteKey` değerlerini hedef sitenin değerleriyle değiştirin. ## Dönen sonuç ```json { "errorId": 0, "status": "ready", "solution": { "token": "0.ufq5RgSVZd11DPSX1brdrxnEs28KcVlKj2ORchqxSy2q9yAW6ciq3hriXDF4x...", "userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/155.0.0.0 Safari/537.36" } } ``` | Alan | Tür | Açıklama | | --- | --- | --- | | `token` | string | Hedef siteye gönderilecek token. Tek kullanımlıktır; mümkün olan en kısa sürede gönderin | | `userAgent` | string | Token'ı almak için kullanılan User-Agent. Token'ı gönderirken bu değeri kullanın; sizin gönderdiğinizden farklı olsa bile bu değer geçerlidir | `token` değerini sayfadaki `cf-turnstile-response` alanına (veya hedef sitenin API’sinin istediği alana) yazıp gönderin; gönderim isteğinde User-Agent olarak dönen `userAgent` değerini kullanın. İşlem sürerken `{"errorId": 0, "status": "processing"}` döner; 5 saniye sonra tekrar sorgulayın. Hata durumunda `errorCode` değerine göre işlem yapın; ayrıntılar için [Hata kodları](https://docs.yescaptcha.com/tr/api/errors.md) sayfasına bakın. ## Sık sorulan sorular ### Token ne kadar süre geçerlidir? Tek kullanımlıktır; alır almaz göndermeniz önerilir (Turnstile token’ları genellikle birkaç dakika içinde sona erer, süreyi Cloudflare belirler). ### Gönderimden sonra site hâlâ kabul etmiyor `websiteURL` değerinin doğrulama kutusunun göründüğü sayfa olduğundan ve `websiteKey` değerinin doğru olduğundan emin olun; gönderirken dönen `userAgent` değerini kullanın. Sayfa `action` ve `cData` gönderiyorsa bunları `pageAction` ve `data` olarak ekleyin; bkz. [Sorun devam ederse](#sorun-devam-ederse-pageaction-ve-data). Site IP adresini de kontrol ediyorsa `TurnstileTask` kullanın ve gönderimi aynı proxy üzerinden yapın. ## İlgili eğitimler - [CAPTCHA türünü belirleme](https://docs.yescaptcha.com/tr/guides/identify-captcha.md) - [Turnstile parametrelerini bulma](https://docs.yescaptcha.com/tr/guides/find-turnstile-parameters.md) --- # Cloudflare doğrulama sayfası > YesCaptcha ile Cloudflare'in "Lütfen bekleyin" kontrol sayfasını (5 saniyelik doğrulama) geçin; cf_clearance gibi çerezleri, User-Agent'ı ve sayfa içeriğini alın. CloudFlareTaskS2 ve CloudFlareTaskS3 parametreleri, proxy gereksinimleri, dönen sonuç, sonucun kullanımı ve sık görülen hatalar. Source: https://docs.yescaptcha.com/tr/tasks/cloudflare-challenge/ · Last verified: 2026-10-19 > This page was machine-translated from the Chinese version. If anything differs, the Chinese version prevails: https://docs.yescaptcha.com/zh/tasks/cloudflare-challenge/ Cloudflare doğrulama sayfası, sitenin tamamının Cloudflare tarafından durdurulduğu ve “Lütfen bekleyin…”, “Tarayıcınız kontrol ediliyor” ifadelerinin gösterildiği kontrol sayfasıdır. YesCaptcha, sizin verdiğiniz proxy ile sayfayı açar ve kontrolü geçer; `cf_clearance` gibi çerezleri, kullanılan User-Agent’ı, istek başlıklarını, yanıt başlıklarını ve kontrol sonrası sayfanın HTML’ini döndürür. `CloudFlareTaskS2` görev başına 25 puan (≈ $3.75 / 1k), `CloudFlareTaskS3` görev başına 20 puan (≈ $3.00 / 1k) ücretlendirilir; iki türün parametreleri, dönen sonucu ve etkisi aynıdır, yalnızca fiyatları farklıdır. Sonuç asenkron döner; tek bir görev genellikle 6 ile 35 saniye sürer, siteye göre fark büyüktür. Başarısız olan veya 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ı) ## Kullanım senaryoları - Sayfa kaynağında `__cf_chl_rt_tk` veya `cdn-cgi/challenge-platform` varsa ve başlık `Just a moment...` / “Lütfen bekleyin” ise bu bir Cloudflare doğrulama sayfasıdır. Kontrol sayfasında “İnsan olduğunuzu doğrulayın” onay kutusunun işaretlenmesi gereken durumlar için de bu sayfa geçerlidir. - Yalnızca bir formun içine yerleştirilmiş Cloudflare doğrulama kutusu varsa bu [Turnstile](https://docs.yescaptcha.com/tr/tasks/turnstile.md) olur, bu sayfa gerekmez. - requests gibi bir kütüphaneyle istek yaptığınızda 403 ve “Just a moment…” dönüyor ama tarayıcıda sayfa doğrudan açılıyorsa, büyük olasılıkla yalnızca TLS parmak izi nedeniyle engelleniyorsunuzdur. Tarayıcının TLS parmak izini taklit eden bir kütüphane (ör. curl\_cffi) kullanmak yeterlidir, doğrulamayı geçmeniz gerekmez. ## Türler ve fiyatlar | Görev türü | Fiyat | Mod | Notlar | | --- | --- | --- | --- | | `CloudFlareTaskS2` | $3.75 / 1k; 25 puan/görev · ¥25 / 1k | Asenkron | Kendi proxy'niz | | `CloudFlareTaskS3` | $3.00 / 1k; 20 puan/görev · ¥20 / 1k | Asenkron | Kendi proxy'niz | ABD doları fiyatları, 1 ABD doları ≈ ¥6.67 kuruyla hesaplanan tahminlerdir; görevler puan üzerinden ücretlendirilir. ## İ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 | Doğrulamanın arkasındaki sayfanın tam URL'si. Herkese açık bir `http://` veya `https://` adresi olmalıdır; özel IP adresleri ile `localhost` gibi yerel veya iç ağ ana bilgisayar adları reddedilir | | `proxy` | string | Evet | Tek bir dize olarak proxy: `http://user:pass@proxy.example.com:8080` (HTTP proxy, kimlik bilgileri isteğe bağlı) veya `socks5://proxy.example.com:1080` (kimlik bilgisiz). `https://` proxy'ler ve kimlik bilgili SOCKS5 desteklenmez, yerel veya özel adresler reddedilir. Hedef sayfa için yapılan tüm istekler bu proxy üzerinden geçer | | `userAgent` | string | Hayır | Genellikle göndermeyin. Yalnızca Linux üzerindeki masaüstü Chrome User-Agent bilgisi kullanılır; diğerleri (Windows, macOS, mobil, diğer tarayıcılar) yok sayılır. Sonraki isteklerde her zaman sonuçtaki `user_agent` değerini kullanın | | `waitLoad` | boolean | Hayır | Varsayılan false. true ise doğrulama geçildikten sonra görev, sayfanın ağ etkinliği durulana kadar bekler ve ardından döner; böylece `content` içinde dinamik olarak yüklenen daha fazla içerik bulunur, birkaç saniye daha uzun sürer | | `requiredCookies` | array | Hayır | Mutlaka alınması gereken Cookie adları, dize dizisi olarak, örneğin `["cf_clearance"]`. Gönderilirse görev yalnızca hepsi alındığında başarılı olur; aksi halde `ERROR_CAPTCHA_UNSOLVABLE` döner ve puan iadesi yapılır. Gönderilmezse görev yine de `cf_clearance` almaya çalışır, ancak elde ettiği diğer Cookie'lerle de başarılı sayılır (ve puan düşümü yapılır); bu yüzden `cf_clearance` gerekiyorsa açıkça gönderin | | `blockImage` | boolean | Hayır | true ise hedef sayfadaki görseller yüklenmez (Cloudflare doğrulamasının kendisinin ihtiyaç duyduklarını hariç), böylece proxy trafiği tasarrufu sağlanır | | `postData` | object | Hayır | Gönderilirse `websiteURL` adresine normal bir HTML formu POST'u olarak iletilir (`application/x-www-form-urlencoded`): her anahtar bir form alanıdır ve değerler dize olarak gönderilir, örneğin `{"name": "hi"}`. Bir nesne olmalıdır | ### Proxy gereksinimleri `proxy` zorunludur; hedef sayfayı açan tüm istekler bu proxy üzerinden gider. `cf_clearance` çıkış IP’sine bağlıdır, bu yüzden hedef siteye sonraki erişimlerde de aynı proxy kullanılmalıdır. | Biçim | Destek durumu | | --- | --- | | `http://user:pass@proxy.example.com:8080` | Desteklenir: kullanıcı adı ve parolalı http proxy | | `http://proxy.example.com:8080` | Desteklenir: kullanıcı adı ve parolasız http proxy | | `socks5://proxy.example.com:1080` | Desteklenir: kullanıcı adı ve parolasız socks5 proxy; `socks5h://` `socks5://` gibi işlenir | | `socks5://user:pass@proxy.example.com:1080` | Desteklenmez, `ERROR_PROXY_INCORRECT` döner; kullanıcı adı ve parola gerekiyorsa http proxy kullanın | | `https://proxy.example.com:443` gibi diğer protokoller veya eksik port | Desteklenmez, `ERROR_PROXY_INCORRECT` döner | | `127.0.0.1`, `192.168.x.x`, `10.x.x.x` gibi yerel, iç ağ ve ayrılmış adresler veya bu adreslere çözümlenen alan adları | Reddedilir, `ERROR_PROXY_BANNED` döner | > **Görev oluşturulurken kontrol edilir:** URL veya proxy uygun değilse `createTask` doğrudan hata döndürür, puan düşümü yapılmaz. Aynı proxy kısa sürede birçok kez bağlanamazsa, sonraki bir süre boyunca bu proxy ile görev oluşturmak da doğrudan `ERROR_PROXY_BANNED` döndürür; lütfen başka bir proxy kullanın veya biraz sonra tekrar deneyin. ### User-Agent Genellikle `userAgent` göndermeyin. Doğrulamayı Linux masaüstü Chrome ile geçiyoruz; yalnızca Linux masaüstü Chrome User-Agent’ı kabul edilir, diğerleri (Windows, macOS, mobil veya başka tarayıcılar) doğrudan yok sayılır: yapılan testlerde tarayıcının gerçek ortamı ile User-Agent uyuşmadığında Cloudflare doğrulaması geçilemiyor. Sonraki isteklerde her zaman sonuçtaki `user_agent` değerini kullanın. ## İstek örneği POST https://api.yescaptcha.com/createTask ```json { "clientKey": "YOUR_CLIENT_KEY", "task": { "type": "CloudFlareTaskS3", "websiteURL": "https://example.com/", "proxy": "http://user:pass@proxy.example.com:8080", "requiredCookies": ["cf_clearance"] } } ``` - `CloudFlareTaskS2` kullanmak için yalnızca `type` değerini değiştirin, diğer alanlar aynı kalır. - `requiredCookies` olarak `["cf_clearance"]` gönderilirse, `cf_clearance` alınamadığında görev başarısız olur ve puan iadesi yapılır; gönderilmezse, `cf_clearance` alınamayıp yalnızca başka çerezler alınsa bile görev başarılı sayılır ve puan düşülür. - Form göndermek için `postData` ekleyin, örneğin `{"name": "hi"}`; bu veri `websiteURL` adresine POST formu olarak gönderilir. Görevi oluşturduktan sonra her 5 saniyede bir `getTaskResult` çağırın; akış diğer asenkron görevlerle aynıdır, bkz. [getTaskResult](https://docs.yescaptcha.com/tr/api/get-task-result.md). ## Dönen sonuç ```json { "errorId": 0, "status": "ready", "solution": { "user_agent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/155.0.0.0 Safari/537.36", "cookies": { "cf_clearance": "Wq3vXk9...-1760860800-1.2.1.1-..." }, "request_headers": { "accept-language": "en-US,en;q=0.9", "user-agent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/155.0.0.0 Safari/537.36" }, "headers": { "content-type": "text/html; charset=UTF-8", "server": "cloudflare" }, "content": "..." } } ``` Yukarıdaki çerez değeri ve istek başlıkları örnek amaçlıdır; gerçek değerler için API’nin döndürdüğü yanıtı esas alın. | Alan | Tür | Açıklama | | --- | --- | --- | | `cookies` | object | Doğrulama geçildikten sonra tarayıcıdaki tüm çerezler (ad-değer nesnesi); genellikle `cf_clearance` içerir. `requiredCookies` belirttiyseniz bunların her biri dahil edilir. Döndürülen `user_agent` ve sağladığınız proxy ile birlikte kullanın | | `user_agent` | string | Tarayıcının doğrulamayı geçerken fiilen kullandığı User-Agent (Linux üzerinde masaüstü Chrome). `cf_clearance` bu değere bağlıdır; sonraki tüm isteklerde bunu kullanın | | `request_headers` | object | Tarayıcının hedef sayfaya yaptığı son istekte gönderdiği istek başlıkları; sonraki isteklerde aynen kullanmanız önerilir | | `headers` | object | Doğrulama geçildikten sonra hedef sayfanın yanıt başlıkları | | `content` | string | Doğrulama geçildikten sonra hedef sayfanın HTML kaynağı | ## Sonucu kullanma 1. Sonraki isteklerde dönen `cookies`, dönen `user_agent` ve görev oluşturulurken kullanılan aynı proxy’yi **birlikte** kullanın. `cf_clearance` User-Agent’a ve çıkış IP’sine bağlıdır; üçünden biri farklı olursa doğrulama sayfası yeniden çıkar. 2. İstek başlıklarını mümkün olduğunca `request_headers` içindekilerle gönderin ve tarayıcıyla uyumlu bir TLS parmak izi kullanın (örneğin curl\_cffi’nin `impersonate` parametresi). 3. `cf_clearance` belirli bir süre geçerlidir (süreyi hedef site belirler, bazı sitelerde 1 saate kadar çıkar); bu süre içinde doğrulamayı yeniden geçmeniz gerekmez. İstek sıklığı çok yüksek olursa IP’niz Cloudflare tarafından engellenebilir. 4. Yalnızca sayfa içeriği gerekiyorsa `content` doğrudan kullanılabilir, sayfayı yeniden istemeniz gerekmez. ## Sık görülen hatalar Görev oluşturulurken dönen hatalarda puan düşümü yapılmaz; görev oluşturulduktan sonra başarısız olan veya zaman aşımına uğrayan görevlerde puan iadesi otomatik yapılır. API yalnızca hata kodunu ve genel bir açıklamayı döndürür; ayrıntılı nedenler için aşağıdaki tabloya bakın. | Hata kodu | Ne zaman döner | Ne yapmalı | | --- | --- | --- | | `ERROR_REQUIRED_FIELDS` | Görev oluştururken: `websiteURL` veya `proxy` eksik | İki zorunlu alanı da ekleyin | | `ERROR_ILLEGAL_PARAMETERS` | Görev oluştururken: `websiteURL` `http://` / `https://` ile başlayan herkese açık bir URL değil, `postData` bir nesne değil, `requiredCookies` bir dize dizisi değil. Sonuç sorgularken: hedef URL’nin alan adı proxy üzerinden çözümlenemedi | Parametreleri düzeltin; URL yazımını ve proxy’nin bu siteye erişip erişemediğini kontrol edin | | `ERROR_PROXY_INCORRECT` | Görev oluştururken: proxy biçimi hatalı, port eksik, `https://` proxy veya kullanıcı adı ve parolalı socks5 kullanılmış | Yukarıdaki “Proxy gereksinimleri” bölümündeki biçime göre düzeltin; kullanıcı adı ve parola gerekiyorsa http proxy kullanın | | `ERROR_PROXY_BANNED` | Görev oluştururken: proxy yerel, iç ağ veya ayrılmış bir adres, ya da bu proxy kısa sürede birçok kez bağlanamadı. Sonuç sorgularken: hedef sitenin Cloudflare’i bu proxy’nin IP’sini doğrudan engelledi (“Sorry, you have been blocked”, “Access denied” sayfaları) | Başka bir proxy kullanın; IP kalitesi ne kadar iyiyse geçmek o kadar kolay olur | | `ERROR_PROXY_CONNECT_REFUSED` | Proxy’ye bağlanılamadı (bağlantı reddedildi, proxy alan adı çözümlenemedi) veya proxy üzerinden sayfa açılırken bağlantı reddedildi ya da sıfırlandı | Proxy adresini ve portunu kontrol edin, proxy’nin çevrimiçi olduğundan ve dışarıdan erişime izin verdiğinden emin olun; yine olmazsa başka bir proxy kullanın | | `ERROR_PROXY_CONNECT_TIMEOUT` | Proxy’ye bağlanırken veya proxy üzerinden sayfa açılırken zaman aşımı oldu | Daha hızlı ve daha kararlı bir proxy kullanın | | `ERROR_PROXY_NOT_AUTHORISED` | Proxy kullanıcı adı veya parolası yanlış | `proxy` içindeki kullanıcı adı ve parolayı kontrol edin; özel karakterleri URL kodlamasından geçirin | | `ERROR_PROXY_TLS_ERROR` | Proxy üzerinden sayfa açılırken TLS el sıkışması hatası oluştu | Proxy adresini, portunu ve protokolünü doğru yazdığınızdan emin olun; yine olmazsa başka bir proxy kullanın | | `ERROR_CAPTCHA_UNSOLVABLE` | Belirlenen sürede doğrulama geçilemedi, geçildikten sonra hâlâ kontrol sayfasında kalındı veya `requiredCookies` içinde istenen çerez alınamadı | Önce proxy’yi değiştirip tekrar deneyin; bazı siteler için Destek ile iletişime geçebilirsiniz | | `ERROR_NO_SLOT_AVAILABLE` | Görev oluştururken: sıra dolu. Sonuç sorgularken: görev çok uzun süre sırada bekledi ve başlamadı, puan iadesi yapıldı | Birkaç saniye bekleyip görevi yeniden oluşturun | | `ERROR_TASK_TIMEOUT` | Görev belirlenen sürede tamamlanmadı | Görevi yeniden oluşturun; sürekli zaman aşımı genellikle proxy’nin çok yavaş olduğunu gösterir | Tüm hata kodları için bkz. [Hata kodları](https://docs.yescaptcha.com/tr/api/errors.md). ## İlgili sayfalar - [CAPTCHA türünü belirleme](https://docs.yescaptcha.com/tr/guides/identify-captcha.md): Cloudflare doğrulama sayfası ile Turnstile arasındaki fark - [Cloudflare Turnstile](https://docs.yescaptcha.com/tr/tasks/turnstile.md) --- # Görselden harf ve rakam tanıma > YesCaptcha ile görseldeki harf ve rakamları tanıyın. ImageToTextTaskOcrBase ve ImageToTextTaskMuggle senkron sonuç döndürür; ImageToTextTask ve ImageToTextTaskM1 asenkron çalışır, büyük/küçük harf, yalnızca rakam ve aritmetik işlem gibi koşulları destekler; özel model yaptırılabilir. Source: https://docs.yescaptcha.com/tr/tasks/image-to-text/ · 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/image-to-text/ Karakter içeren bir CAPTCHA görselini Base64 olarak gönderin; görseldeki harf ve rakamlar döndürülür (`solution.text`). `ImageToTextTaskOcrBase` senkron çalışır: tek bir `createTask` isteği sonucu verir. Görsel başına ücret: 2 puan (≈ $0.30 / 1k). Büyük/küçük harf, yalnızca rakam, aritmetik işlem gibi koşullar gerekiyorsa asenkron `ImageToTextTask` türünü kullanın. - POST `https://api.yescaptcha.com/createTask` (Global uç nokta) - POST `https://cn.yescaptcha.com/createTask` (Çin uç noktası) İstek gövdesi JSON’dur; kimlik doğrulama için `clientKey` kullanılır. ## Türler ve fiyatlar | Görev türü | Fiyat | Mod | Notlar | | --- | --- | --- | --- | | `ImageToTextTaskOcrBase` | $0.30 / 1k; 2 puan/görev · ¥2 / 1k | Senkron | | | `ImageToTextTaskMuggle` | $0.30 / 1k; 2 puan/görev · ¥2 / 1k | Senkron | case/numeric seçeneklerini desteklemez; özel bir model seçmek için project\_name kullanın | | `ImageToTextTask` | $0.60 / 1k; 4 puan/görev · ¥4 / 1k | Asenkron | | | `ImageToTextTaskM1` | $2.25 / 1k; 15 puan/görev · ¥15 / 1k | Asenkron | | ABD doları fiyatları, 1 ABD doları ≈ ¥6.67 kuruyla hesaplanan tahminlerdir; görevler puan üzerinden ücretlendirilir. | Gereksinim | Kullanılacak tür | | --- | --- | | Sıradan harf-rakam CAPTCHA’ları; en ucuz ve en hızlı seçenek | `ImageToTextTaskOcrBase`, `ImageToTextTaskMuggle` (senkron) | | Sizin için özel eğitilmiş modelle tanıma | `ImageToTextTaskMuggle` ile `project_name` | | Büyük/küçük harf ayrımı, yalnızca rakam, aritmetik işlem sonucu, uzunluk sınırı | `ImageToTextTask`, `ImageToTextTaskM1` (asenkron) | Türlerin modelleri ve hatları farklıdır; aynı tür görselde sonuçlar değişebilir. Hepsini deneyip en iyisini seçin. ## İ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 | | `body` | string | Evet | `data:image/...;base64,` öneki ve satır sonları olmadan Base64 kodlu görsel | | `project_name` | string | Hayır | Özel modelin adı; yalnızca `ImageToTextTaskMuggle` destekler. Genel alfasayısal modeli kullanmak için göndermeyin. Özel model için Destek ile iletişime geçin (yalnızca ImageToTextTaskMuggle) | | `phrase` | boolean | Hayır | true, cevabın en az bir boşluk içerdiği anlamına gelir (yalnızca ImageToTextTask, ImageToTextTaskM1) | | `case` | boolean | Hayır | true, cevabın büyük/küçük harfe duyarlı olduğu anlamına gelir (yalnızca ImageToTextTask, ImageToTextTaskM1) | | `numeric` | integer | Hayır | 0 koşul yok; 1 yalnızca rakam; 2 rakam içermez (yalnızca ImageToTextTask, ImageToTextTaskM1) | | `math` | boolean | Hayır | true, görselin bir matematik işlemi olduğu ve cevabın işlemin sonucu olduğu anlamına gelir (yalnızca ImageToTextTask, ImageToTextTaskM1) | | `minLength` | integer | Hayır | Cevabın en az uzunluğu; 0 sınır olmadığı anlamına gelir (yalnızca ImageToTextTask, ImageToTextTaskM1) | | `maxLength` | integer | Hayır | Cevabın en çok uzunluğu; 0 sınır olmadığı anlamına gelir (yalnızca ImageToTextTask, ImageToTextTaskM1) | `body`, görsel dosyasının Base64 kodlamasıdır. WebP görseller otomatik olarak dönüştürülür. > **Dikkat:** Base64 metnine `data:image/...;base64,` ön eki eklemeyin ve satır sonu bırakmayın. ## İstek örneği POST https://api.yescaptcha.com/createTask ```json { "clientKey": "YOUR_CLIENT_KEY", "task": { "type": "ImageToTextTaskOcrBase", "body": "BASE64_IMAGE" } } ``` Tam kod (geçerli dizindeki `captcha.png` dosyasını okur): **curl** ```bash # Replace BASE64_IMAGE with the Base64-encoded image curl -s https://api.yescaptcha.com/createTask \ -H 'Content-Type: application/json' \ -d '{ "clientKey": "YOUR_CLIENT_KEY", "task": { "type": "ImageToTextTaskOcrBase", "body": "BASE64_IMAGE" } }' ``` **Python** solve.py ```python import os import base64 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): return call("createTask", {"task": task})["solution"] # Base64-encode the image (no data: prefix) with open("captcha.png", "rb") as f: image_b64 = base64.b64encode(f.read()).decode() solution = solve({ "type": "ImageToTextTaskOcrBase", "body": image_b64, }) print(solution["text"]) ``` **Node.js** solve.mjs ```js import { readFileSync } from 'node:fs'; 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 { solution } = await call('createTask', { task }); return solution; } // Base64-encode the image (no data: prefix) const imageB64 = readFileSync('captcha.png').toString('base64'); const solution = await solve({ type: "ImageToTextTaskOcrBase", body: imageB64, }); console.log(solution.text); ``` Koşullu asenkron görev: POST https://api.yescaptcha.com/createTask ```json { "clientKey": "YOUR_CLIENT_KEY", "task": { "type": "ImageToTextTask", "body": "BASE64_IMAGE", "case": true, "numeric": 0, "minLength": 4, "maxLength": 6 } } ``` ## Sonuç Senkron türler sonucu doğrudan `createTask` yanıtında döndürür: ```json { "errorId": 0, "status": "ready", "solution": { "text": "LMResm" }, "taskId": "2376919c-1863-11ec-a012-94e6f7355a0b" } ``` Asenkron türler (`ImageToTextTask`, `ImageToTextTaskM1`) önce `taskId` döndürür; ardından her 5 saniyede bir `getTaskResult` ile sorgulayın. Görev tamamlandığında `solution` biçimi aynıdır. | Alan | Tür | Açıklama | | --- | --- | --- | | `text` | string | Tanınan metin | ## Özel model Genel model her harf-rakam CAPTCHA’sında çalışır, ancak tek bir stil için eğitilmiş modele göre doğruluğu biraz daha düşüktür. Tanımak istediğiniz görseller hep aynı stildeyse [destek ile iletişime geçerek](https://docs.yescaptcha.com/tr/help/contact.md) özel model yaptırabilirsiniz; sonrasında `ImageToTextTaskMuggle` ile `project_name` kullanarak modeli seçin. ## Sık sorulan sorular ### Sonuç yanlış çıkarsa puan düşer mi? Senkron türlerde sonuç döndürüldüğü anda puan düşülür, sonuç yanlış olsa bile. Başka bir türle karşılaştırabilir veya özel model yaptırabilirsiniz. ### `ERROR_ZERO_CAPTCHA_FILESIZE` veya `ERROR_PARSE_IMAGE_FAIL` hatası alıyorum Görselin Base64 metni eksik olabilir ya da `data:` ön eki veya satır sonu içeriyor olabilir. Kodlamayı kontrol edin; bkz. [Hata kodları](https://docs.yescaptcha.com/tr/api/errors.md). ## İlgili örnekler - [Hızlı başlangıç](https://docs.yescaptcha.com/tr/getting-started/quickstart.md): `ImageToTextTaskOcrBase` ile ilk isteği gönderin - [Python örnekleri](https://docs.yescaptcha.com/tr/samples/python.md) --- # reCAPTCHA v2 görsel tanıma > YesCaptcha ile reCAPTCHA v2 görsel sorularını çözün (ReCaptchaV2Classification): 3x3, 4x4 veya 1x1 görseli ve soru ID'sini gönderin, tıklanacak kareleri senkron olarak alın; görsel boyutuna göre fiyatlandırılır, soru ID tablosu. Source: https://docs.yescaptcha.com/tr/tasks/recaptcha-classification/ · 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-classification/ `ReCaptchaV2Classification`, reCAPTCHA v2’nin açtığı görsel soruları tanır: görseli ve soru ID’sini gönderirsiniz, hangi karelere tıklanacağı döner; tıklamayı tarayıcıda kendi programınız yapar. **Token döndürmez.** Senkron çalışır, tek bir `createTask` isteği sonucu verir; 3x3 ve 4x4 görsellerin her biri 6 puan (≈ $0.90 / 1k), 1x1 küçük görsel daha ucuzdur (aşağıdaki tabloya bakın). > **İpucu:** Tıklama kodu yazmak istemiyorsanız, bu arayüzü kullanarak otomatik tıklayan [tarayıcı eklentisini](https://docs.yescaptcha.com/tr/extension.md) kullanabilirsiniz. - POST `https://api.yescaptcha.com/createTask` (Global uç nokta) - POST `https://cn.yescaptcha.com/createTask` (Çin uç noktası) ## Türler ve fiyatlar | Görev türü | Fiyat | Mod | Notlar | | --- | --- | --- | --- | | `ReCaptchaV2Classification` | $0.90 / 1k; 6 puan/görev · ¥6 / 1k | Senkron | 1x1 kutucuk (100x100) için 2 puan; 3x3 (300x300) ve 4x4 (450x450) için 6 puan | ABD doları fiyatları, 1 ABD doları ≈ ¥6.67 kuruyla hesaplanan tahminlerdir; görevler puan üzerinden ücretlendirilir. ## İ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 | | `image` | string | Evet | `data:` öneki olmadan Base64 kodlu soru görseli | | `question` | string | Evet | `/m/0k4j` gibi soru ID'si; bu sayfadaki "Soru ID'leri" bölümüne bakın | | `confidence` | number | Hayır | 0 ile 1 arasında güven eşiği; yalnızca 3×3 görsellerde kullanılır. Belirtilirse (başlangıç için 0.5 uygundur) bu değerin üzerindeki tüm kareler döndürülür; belirtilmezse en olası 3 kare döndürülür | > **Dikkat:** Görsel aşağıdaki tabloda verilen standart boyuta ölçeklenmelidir; sunucu soru türünü boyuta göre belirler. | Soru türü | Görsel boyutu | Dönen değer | | --- | --- | --- | | 3x3 ızgara (“Tüm görselleri seçin”) | 300 × 300 | `objects`: tıklanacak kareler | | 4x4 ızgara (“Tüm kareleri seçin”) | 450 × 450 | `objects`: tıklanacak kareler | | 1x1 küçük görsel (3x3’te tıkladıktan sonra yenilenen tek görsel) | 100 × 100 | `hasObject`: bu görsele tıklanıp tıklanmayacağı | Ekran görüntüsü kullanıyorsanız soru metnine bakarak ayırt edin: 3x3 sorusu “Select all images with …” (tüm görselleri seçin), 4x4 sorusu “Select all squares with …” (tüm kareleri seçin) şeklindedir. ## İstek örneği POST https://api.yescaptcha.com/createTask ```json { "clientKey": "YOUR_CLIENT_KEY", "task": { "type": "ReCaptchaV2Classification", "image": "BASE64_IMAGE", "question": "/m/0k4j" } } ``` ## Dönen sonuç 3x3 ve 4x4: ```json { "errorId": 0, "status": "ready", "solution": { "objects": [1, 5, 8], "type": "multi" }, "taskId": "3a9e8cb8-3871-11ec-9794-94e6f7355a0b" } ``` 1x1 küçük görsel: ```json { "errorId": 0, "status": "ready", "solution": { "hasObject": true, "type": "single" } } ``` | Alan | Tür | Açıklama | | --- | --- | --- | | `objects` | array | Tıklanacak karelerin dizinleri; 0'dan başlar, soldan sağa ve yukarıdan aşağıya doğrudur | | `hasObject` | boolean | 1x1 küçük görselde döndürülür; görselin hedefi içerip içermediğini belirtir | | `type` | string | Soru türü: `multi` (3x3 veya 4x4 görsel, `objects` alanına bakın), `single` (1x1 küçük görsel, `hasObject` alanına bakın); hCaptcha sürükleme soruları için `drag` | Karelerin numaralandırması 0’dan başlar; soldan sağa, yukarıdan aşağıya doğrudur: ![3x3 ızgarada 0’dan 8’e kare numaraları](https://docs.yescaptcha.com/_astro/recaptcha-3x3-index.C2AG6XA0_1qgyOb.webp) ![4x4 ızgarada 0’dan 15’e kare numaraları](https://docs.yescaptcha.com/_astro/recaptcha-4x4-index.CE_Q3Ngp_Z1pmx9g.webp) ## confidence: eşleşen tüm kareleri tek seferde alın 3x3 sorusunda tıkladıktan sonra genellikle yeni 1x1 görseller belirir ve bunların da kontrol edilmesi gerekir. Küçük görselleri almak zorsa (örneğin mobil geliştirmede) `confidence` gönderebilirsiniz: - Gönderilmezse 3x3 görsel için en yüksek skorlu 3 kare döner (reCAPTCHA en az 3 tıklama ister). - Gönderilirse (önerilen `0.5`) bu değerin üzerinde skor alan tüm kareler döner; sayı 3’ten fazla veya az olabilir, eşleşen yoksa boş dizi döner. Böylece 1x1 görsellerin ekran görüntüsünü almanız gerekmez. - 4x4 ve 1x1 görseller üzerinde etkisi yoktur. ## Soru ID’leri `question` alanına soru metni değil, sorunun ID’si (`/m/` ile başlar) yazılır. ID, reCAPTCHA’nın soruyu yüklediği isteğin (`reload` veya `userverify`) yanıtında görselle birlikte gelir. Aşağıdaki tabloda yaygın sorular yer alır; Çince açıklamalar yalnızca bilgi içindir: Toplam 16 | Soru ID'si | Soru (İngilizce) | | --- | --- | | `/m/0pg52` | `taxis` | | `/m/01bjv` | `bus` | | `/m/04_sv` | `motorcycles` | | `/m/013xlm` | `tractors` | | `/m/01jk_4` | `chimneys` | | `/m/014xcs` | `crosswalks` | | `/m/015qff` | `traffic lights` | | `/m/0199g` | `bicycles` | | `/m/015qbp` | `parking meters` | | `/m/0k4j` | `cars` | | `/m/015kr` | `bridges` | | `/m/019jd` | `boats` | | `/m/0cdl1` | `palm trees` | | `/m/09d_r` | `mountains or hills` | | `/m/01pns0` | `fire hydrant` | | `/m/01lynh` | `stairs` | Eşleşen soru yok `ERROR_UNKNOWN_QUESTION` ID’nin yanlış olduğunu veya bu sorunun henüz desteklenmediğini gösterir; `ERROR_UNKNOW_450x450_QUESTION` bu sorunun 4x4 görselde henüz desteklenmediğini gösterir, sayfada yenileyip başka bir soru alın. ## Bildirim ve puan iadesi Tıklamadan sonra doğrulama başarısız olduysa 1 saat içinde [report](https://docs.yescaptcha.com/tr/api/report.md) ile bildirebilirsiniz; bildirim sonrası puan iadesi yaklaşık 24 saat sonra hesaplanır. Kurallar için [Faturalandırma ve puan iadesi](https://docs.yescaptcha.com/tr/getting-started/billing.md) sayfasına bakın. Doğrulaması geçen görevleri de report ile `isSuccess: true` olarak bildirin. ## İlgili eğitimler - [reCAPTCHA v2 görsel tanıma ile tıklama simülasyonu (Selenium)](https://docs.yescaptcha.com/tr/guides/recaptcha-click-selenium.md) - [reCAPTCHA v2 (token döndürür)](https://docs.yescaptcha.com/tr/tasks/recaptcha-v2.md) --- # hCaptcha görsel tanıma > YesCaptcha ile hCaptcha görsel sorularını çözün (HCaptchaClassification): 3×3 ızgara seçimi, belirli bir konuma tıklama, öğeyi belirli bir konuma sürükleme ve animasyonlu sorular. Senkron yanıt verir; hedef bulunamazsa puan düşülmez. Source: https://docs.yescaptcha.com/tr/tasks/hcaptcha-classification/ · 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/hcaptcha-classification/ `HCaptchaClassification`, hCaptcha’nın gösterdiği görsel soruları çözer: soruyu ve görselleri gönderirsiniz, yanıtta hangi görsellerin seçileceği, hangi konuma tıklanacağı veya nereden nereye sürükleneceği döner; işlemi tarayıcıda kendi programınız yapar. **Token döndürmez.** Senkron çalışır. Her istek için ücret: 8 puan (≈ $1.20 / 1k). Hedef bulunamazsa (sonuç boşsa) puan düşülmez. > **İpucu:** Tıklama mantığını kendiniz yazmak istemiyorsanız [tarayıcı eklentisini](https://docs.yescaptcha.com/tr/extension.md) kullanabilirsiniz; eklenti bu soru türlerinin hepsini destekler. Tıklama konumu yerine token istiyorsanız [hCaptcha](https://docs.yescaptcha.com/tr/tasks/hcaptcha.md) görev türünü kullanın. - POST `https://api.yescaptcha.com/createTask` (Global uç nokta) - POST `https://cn.yescaptcha.com/createTask` (Çin uç noktası) ## Türler ve fiyatlar | Görev türü | Fiyat | Mod | Notlar | | --- | --- | --- | --- | | `HCaptchaClassification` | $1.20 / 1k; 8 puan/görev · ¥8 / 1k | Senkron | Hedef bulunamadığında puan düşümü yapılmaz | ABD doları fiyatları, 1 ABD doları ≈ ¥6.67 kuruyla hesaplanan tahminlerdir; görevler puan üzerinden ücretlendirilir. ## İ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 | | `queries` | array | Evet | Sayfadaki sıraya göre Base64 kodlu soru görsellerinin listesi (3×3 ızgarada 9 küçük görsel) | | `question` | string | Hayır | Sayfada görüntülenen sorunun tam metni (Basitleştirilmiş Çince veya İngilizce önerilir), ör. `Please click each image containing a bicycle`. `question` ve `anchors` alanlarından en az birini gönderin; ikisini birden göndermeniz önerilir | | `anchors` | array | Hayır | Sorunun yanında gösterilen örnek görsellerin Base64 kodlu listesi; örnek görseli olan sorularda gönderilmesi gerekir | - `question` alanına sayfada görünen soru cümlesini olduğu gibi gönderin; çevirmeniz gerekmez. hCaptcha dilini Basitleştirilmiş Çince veya İngilizce yapmanız önerilir. Yeni soru ifadeleri genellikle hızla desteklenir; tamamen yeni kategoriler 3 iş günü içinde desteklenir. > **Dikkat:** Sorunun sağ üst köşesinde örnek görsel varsa bunu `anchors` alanına koyun. Yalnızca örnek görsele bakarak cevaplanabilen sorular, `anchors` gönderilmezse çözülemez. ## 3×3 ızgara seçimi Soru “Please click each image containing …” biçimindedir ve altında 9 küçük görsel bulunur. `queries` alanına 9 görselin Base64 verisini sayfadaki sırayla koyun: POST https://api.yescaptcha.com/createTask ```json { "clientKey": "YOUR_CLIENT_KEY", "task": { "type": "HCaptchaClassification", "question": "Please click each image containing a bicycle", "queries": ["BASE64_IMAGE_1", "BASE64_IMAGE_2"] } } ``` Yanıt: ```json { "errorId": 0, "status": "ready", "solution": { "objects": [true, false, false, true, true, false, true, true, false], "top_k": [0, 3, 4, 6, 7], "confidences": [1.0, 0.0, 0.0, 1.0, 1.0, 0.0, 1.0, 1.0, 0.0] } } ``` `objects` ve `top_k` aynı bilgiyi taşır: `objects` her görselin hedef olup olmadığını, `top_k` ise hedef görsellerin sıra numarasını (0’dan başlayarak) verir. Bu görsellere tıklamanız yeterlidir. ## Belirli bir konuma tıklama Soru “Please click …” biçimindedir ve altında büyük bir görsel bulunur; görselin üzerinde bir veya birkaç konuma tıklanır. 1. `question` alanına sayfadaki soruyu yazın; örnek küçük görseller varsa `anchors` alanına koyun. 2. `queries` alanına tek bir görsel koyun: mümkünse canvas’tan doğrudan dışa aktarılan orijinal görseli (JPG’ye çevirmeniz önerilir) gönderin. Yalnızca ekran görüntüsü alabiliyorsanız aşağıdaki kırmızı çerçevedeki büyük görsel alanını eksiksiz ve fazlasız kırpın. 3. Yanıttaki `box`, tıklanacak koordinatları sırayla x1, y1, x2, y2… şeklinde verir; başlangıç noktası yüklenen görselin sol üst köşesidir. 4. Yüklenen görselin boyutu sayfadaki görüntülenen boyutundan farklıysa ölçekleme yapın: sayfadaki x = dönen x × görüntülenen genişlik ÷ yüklenen görselin genişliği (y için de aynı). Örneğin dönen x = 769, canvas’ın görüntülenen genişliği 350 ve yüklenen görselin genişliği 1000 ise sayfada tıklanacak konum 769 × 350 ÷ 1000 ≈ 269 olur. ![Tıklama sorusunda ekran görüntüsü alanı: soru metni question, üç örnek küçük görsel anchors, alttaki büyük görsel queries olur](https://docs.yescaptcha.com/_astro/hcaptcha-click-areas.DCBFUFPf_Z123RnJ.webp) POST https://api.yescaptcha.com/createTask ```json { "clientKey": "YOUR_CLIENT_KEY", "task": { "type": "HCaptchaClassification", "question": "Please click on the entity present in the sample image.", "anchors": ["BASE64_ANCHOR_1", "BASE64_ANCHOR_2", "BASE64_ANCHOR_3"], "queries": ["BASE64_OF_THE_BIG_IMAGE"] } } ``` Yanıt: ```json { "errorId": 0, "status": "ready", "solution": { "box": ["221", "213"] } } ``` Birden fazla hedefe tıklanması gerekiyorsa `box` içinde sırayla birden çok koordinat çifti bulunur: `["221", "213", "340", "118", ...]`. ## Belirli bir konuma sürükleme Soru “Drag … to …” biçimindedir; sağdaki parçaların görseldeki ilgili konuma sürüklenmesi gerekir. 1. `question` alanına sayfadaki soruyu yazın. 2. `queries` alanına bir ekran görüntüsü koyun. Görselde sürüklenecek parçalar ile hedef konumlar **birlikte** görünmelidir; görselin her kenarı en az 260 piksel olmalıdır. 3. Yanıttaki `box` içindeki her öğe bir sürüklemedir: `start` parçanın bulunduğu konum, `end` bırakılacağı konumdur. Birden fazla parça varsa tek tek sürükleyin. ```json { "errorId": 0, "status": "ready", "solution": { "type": "drag", "box": [ { "start": [644, 218], "end": [239, 315] } ] } } ``` ![Sürükleme sorusu sonucu: Start sürüklenecek parçayı, End hedef konumu gösterir](https://docs.yescaptcha.com/_astro/hcaptcha-drag-result.vEj4iyUz_1Ou9zz.webp) Ekran görüntüsü yerine protokol verisi (parça görselleri, parça koordinatları ve arka plan görseli) elde ettiyseniz önce parçaları koordinatlarına göre arka plan görseline yapıştırın; sayfadaki ekran görüntüsüyle aynı görünüme getirdikten sonra gönderin. ## Animasyonlu sorular Soru görseli animasyonsa animasyonun (GIF vb.) Base64 verisini `queries` alanına koyun. Animasyon süresinin en az 3 saniye, tercihen 5-6 saniye olması ve kare hızının yaklaşık 12 FPS olması önerilir. ## Bildirim ve puan iadesi Tıklamadan sonra doğrulama başarısız olursa 1 saat içinde [report](https://docs.yescaptcha.com/tr/api/report.md) ile bildirebilirsiniz; bildirim sonrası puan iadesi yaklaşık 24 saat sonra hesaplanır. Kurallar için [Faturalandırma ve puan iadesi](https://docs.yescaptcha.com/tr/getting-started/billing.md) sayfasına bakın. ## İlgili rehberler - [hCaptcha görsel tanıma ile tıklama simülasyonu (Selenium)](https://docs.yescaptcha.com/tr/guides/hcaptcha-click-selenium.md) --- # FunCaptcha görsel tanıma > YesCaptcha ile FunCaptcha (Arkose Labs) görsel sorularını tanıyın (FunCaptchaClassification): soru görselini (6'lı ızgara veya soldan sağa birleştirilmiş ok sorusu) ve İngilizce soruyu yükleyin, hangi görselin seçileceği senkron olarak döner; tüm soru türleri desteklenir. Source: https://docs.yescaptcha.com/tr/tasks/funcaptcha-classification/ · Last verified: 2026-10-16 > This page was machine-translated from the Chinese version. If anything differs, the Chinese version prevails: https://docs.yescaptcha.com/zh/tasks/funcaptcha-classification/ `FunCaptchaClassification`, FunCaptcha (Arkose Labs) görsel sorularını tanır: soru görselini ve İngilizce soruyu gönderirsiniz, hangi görselin seçileceğini döndürür; tarayıcıda tıklama işlemini kendi programınız yapar. **Token döndürmez**. Senkron çalışır, her istek için 3 puan (≈ $0.45 / 1k) düşülür. > **İpucu:** Kod yazmadan çözmek için [tarayıcı eklentisini](https://docs.yescaptcha.com/tr/extension.md) kullanabilirsiniz; sayfada otomatik olarak çalışır. - POST `https://api.yescaptcha.com/createTask` (Global uç nokta) - POST `https://cn.yescaptcha.com/createTask` (Çin uç noktası) ## Görev türleri ve fiyatlar | Görev türü | Fiyat | Mod | Notlar | | --- | --- | --- | --- | | `FunCaptchaClassification` | $0.45 / 1k; 3 puan/görev · ¥3 / 1k | Senkron | | ABD doları fiyatları, 1 ABD doları ≈ ¥6.67 kuruyla hesaplanan tahminlerdir; görevler puan üzerinden ücretlendirilir. ## İ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 | | `image` | string | Evet | `data:` öneki olmadan Base64 kodlu soru görseli | | `question` | string | Evet | Sorunun İngilizce metni (ör. `Pick the image that is the correct way up`); desteklenen sorular bu sayfada listelenmiştir | - `image` yalnızca sorunun görsel kısmını içermelidir (6’lı ızgara veya soldan sağa birleştirilmiş ok sorusu görseli); üstteki başlık ve düğmeleri ekran görüntüsüne almayın. Ekran görüntüsü eksiksiz olmalıdır, bir parçanın eksik olması tanımayı etkiler. Dikey 6’lı ızgaralarda orijinal görseli olduğu gibi yükleyebilirsiniz. - `question` alanına sayfada görünen İngilizce soruyu tam metin olarak, büyük/küçük harfe dikkat ederek yazın; kendiniz çevirmeyin. Sayfa başka bir dildeyse önce CAPTCHA’yı İngilizceye çevirin. Sunucu soru türünü sorudan belirler, bu yüzden soru doğru olmalıdır. ## İstek örneği POST https://api.yescaptcha.com/createTask ```json { "clientKey": "YOUR_CLIENT_KEY", "task": { "type": "FunCaptchaClassification", "image": "BASE64_IMAGE", "question": "Pick the bread" } } ``` ## Yanıt ```json { "errorId": 0, "status": "ready", "solution": { "objects": [4], "labels": ["parrot", "panda", "octopus", "owl", "bread", "dog"] }, "taskId": "04a3fa76-11a0-11ed-a58c-0ef20f419382" } ``` | Alan | Tür | Açıklama | | --- | --- | --- | | `objects` | array | Seçilecek görselin dizini; 0'dan başlar, soldan sağa ve yukarıdan aşağıya doğrudur | | `labels` | array | Tanınan etiketler | `objects: [4]`, 5. görselin seçilmesi gerektiği anlamına gelir (sıra numaraları 0’dan başlar; soldan sağa, yukarıdan aşağıya). Bir soru genellikle art arda birkaç tur sürer; her turda yeniden ekran görüntüsü alıp yeniden istek gönderin. ## Desteklenen sorular **Tüm soru türleri desteklenir**, önce bir soru listesine bakmanız gerekmez: sayfadaki İngilizce soruyu ve soru görselini olduğu gibi gönderin. `ERROR_UNKNOWN_QUESTION` dönerse [Destek ile iletişime geçin](https://docs.yescaptcha.com/tr/help/contact.md). Şu anda en yaygın tür soldan sağa birleştirilmiş ok sorusudur: solda eşleştirilecek örnek, sağda mevcut görsel yer alır; sayfada oklarla sağdaki görseli değiştirerek soruya uygun olanı bulursunuz. Sayfada göründüğü gibi tüm görseli (sol ve sağ kısım) yükleyin, örneğin: ![Use the arrows to change the number of objects until it matches the left image](https://docs.yescaptcha.com/_astro/q62.DGQezOOy_Z1EsIgX.webp) `Use the arrows to change the number of objects until it matches the left image`Nesne sayısı soldaki görselle aynı ![use the arrows to choose the image where all the darts add up to the number in the left image](https://docs.yescaptcha.com/_astro/q78.0vWcO51p_2wPQvu.webp) `use the arrows to choose the image where all the darts add up to the number in the left image`Okların üzerindeki sayıların toplamı soldaki sayıya eşit ![use the arrows to find the jigsaw puzzle that is missing the puzzle piece shown on the left](https://docs.yescaptcha.com/_astro/q82.BcIr6l9k_4eMdV.webp) `use the arrows to find the jigsaw puzzle that is missing the puzzle piece shown on the left`Eksik olan parça tam olarak soldaki parça ![find the image that has the prize on the left held by the claw in the machine on the right](https://docs.yescaptcha.com/_astro/q85.BtNj_O28_pJLGa.webp) `find the image that has the prize on the left held by the claw in the machine on the right`Pençe soldaki ödülü tutuyor Diğer tür, 6’lı ızgaradan görsel seçme sorusudur (ör. `Pick the bread`); yalnızca 6’lı ızgara kısmını yükleyin, yukarıdaki istek örneğine bakın. ## Bildirim ve puan iadesi Bir soru grubunun son gönderimi başarısız olursa ve hangi turun hatalı olduğunu bilmiyorsanız, gruptaki tüm görev ID’lerini 1 saat içinde [report](https://docs.yescaptcha.com/tr/api/report.md) ile bildirebilirsiniz; bildirim sonrası puan iadesi yaklaşık 24 saat sonra yapılır. Kurallar için [Faturalandırma ve puan iadesi](https://docs.yescaptcha.com/tr/getting-started/billing.md) sayfasına bakın. --- # AWS WAF / bCaptcha görsel tanıma > YesCaptcha ile AWS WAF CAPTCHA ve bCaptcha 3×3 ızgara görsel sorularını tanıyın (AwsClassification, bCaptchaClassification): görselin tamamını ve soruyu gönderin, tıklanacak hücreleri senkron olarak alın. Source: https://docs.yescaptcha.com/tr/tasks/aws-bcaptcha-classification/ · 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/aws-bcaptcha-classification/ `AwsClassification`, AWS WAF CAPTCHA’nın 3×3 ızgara görsel sorularını; `bCaptchaClassification` ise bCaptcha’nın 3×3 ızgara görsel sorularını tanır: görselin tamamını ve soruyu gönderirsiniz, hangi hücrelere tıklanacağı döner ve tıklamayı programınız tarayıcıda yapar. **Token döndürmezler.** Senkron çalışır, istek başına ücret: 8 puan (≈ $1.20 / 1k). Kod yazmadan kullanmak için [tarayıcı eklentisini](https://docs.yescaptcha.com/tr/extension.md) kullanabilirsiniz. - POST `https://api.yescaptcha.com/createTask` (Global uç nokta) - POST `https://cn.yescaptcha.com/createTask` (Çin uç noktası) ## Türler ve fiyatlar | Görev türü | Fiyat | Mod | Notlar | | --- | --- | --- | --- | | `AwsClassification` | $1.20 / 1k; 8 puan/görev · ¥8 / 1k | Senkron | | | `bCaptchaClassification` | $1.20 / 1k; 8 puan/görev · ¥8 / 1k | Senkron | | ABD doları fiyatları, 1 ABD doları ≈ ¥6.67 kuruyla hesaplanan tahminlerdir; görevler puan üzerinden ücretlendirilir. İki türün parametreleri ve dönen biçim aynıdır; CAPTCHA’nın kaynağına göre seçin: AWS WAF için `AwsClassification`, bCaptcha için `bCaptchaClassification`. ## İ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 | | `queries` | string | Evet | Tüm 3×3 ızgara görselinin Base64 kodu (tek bir görsel) | | `question` | string | Hayır | Sayfada görüntülenen sorunun tam metni, ör. `Select all hats`; diğer diller otomatik olarak çevrilir | `queries` alanına 3×3 ızgaranın **tamamını** içeren görseli verin (tek bir görsel; 9 ayrı küçük görsel değil). `question` alanına sayfadaki soru cümlesini olduğu gibi yazın; Çince ve İngilizce desteklenir, diğer diller otomatik çevrilir. ## İstek örneği POST https://api.yescaptcha.com/createTask ```json { "clientKey": "YOUR_CLIENT_KEY", "task": { "type": "AwsClassification", "queries": "BASE64_IMAGE", "question": "Select all hats" } } ``` ## Dönen sonuç ```json { "errorId": 0, "status": "ready", "solution": { "label": "Select All Hats", "objects": [false, true, false, false, true, true, true, true, false], "top_k": [1, 4, 5, 6, 7], "confidences": [0.0, 1.0, 0.0, 0.255, 1.0, 1.0, 0.9637, 0.9999, 0.0] }, "taskId": "2053f690-3c3b-11f0-8ffb-d2c180657082" } ``` | Alan | Tür | Açıklama | | --- | --- | --- | | `label` | string | Sorunun tanınan hedefi | | `objects` | array | 9 hücrenin her birinin hedef olup olmadığı (true / false); soldan sağa ve yukarıdan aşağıya | | `top_k` | array | Hedef olan görsellerin dizinleri (0'dan başlar); `objects` ile aynı anlamdadır, birini kullanmanız yeterlidir | | `confidences` | array | Her sonucun güven değeri | 9 hücre, 3×3 düzeninde soldan sağa ve yukarıdan aşağıya 0’dan 8’e kadar numaralandırılır. `objects` ve `top_k` aynı bilgiyi verir, birini kullanmanız yeterlidir: `objects` değeri `true` olan hücrelere veya `top_k` içindeki sıra numaralarına tıklayın. ## Bildirim ve puan iadesi Tıklamadan sonra doğrulama başarısız olursa, görevleri 1 saat içinde [report](https://docs.yescaptcha.com/tr/api/report.md) ile bildirebilirsiniz; puan iadesi yaklaşık 24 saat sonra yapılır. Kurallar için bkz. [Faturalama ve puan iadesi](https://docs.yescaptcha.com/tr/getting-started/billing.md). --- # YesCaptcha Assistant > YesCaptcha Assistant (tarayıcı eklentisi): Chrome ve Firefox'ta reCAPTCHA, hCaptcha, FunCaptcha, AWS WAF gibi CAPTCHA'ları otomatik tanır ve tıklar. Eklenti ücretsizdir; kullandığı API'ler için puan düşümü yapılır. Mağaza bağlantıları, kurulum paketi indirmeleri ve Chrome, BitBrowser, Kiwi Browser için kurulum videoları. Source: https://docs.yescaptcha.com/tr/extension/ · Last verified: 2026-10-24 > This page was machine-translated from the Chinese version. If anything differs, the Chinese version prevails: https://docs.yescaptcha.com/zh/extension/ YesCaptcha Assistant, Chrome ve Firefox için bir tarayıcı eklentisidir: CAPTCHA içeren bir sayfa açıldığında CAPTCHA görselini tanınması için YesCaptcha’ya gönderir ve otomatik olarak tıklar; kod yazmanız gerekmez. Eklentinin kendisi ücretsizdir; tanıma sırasında kullanılan API’ye göre puan düşümü yapılır ve API ile aynı hesap ve Bakiye kullanılır. ## Neler yapabilir - reCAPTCHA v2, hCaptcha, FunCaptcha, AWS WAF ve bCaptcha’nın görsel sorularını otomatik tanır ve tıklar. - Düz karakter CAPTCHA’ları: görsele sağ tıklayıp “CAPTCHA olarak işaretle” seçeneğini, giriş kutusuna sağ tıklayıp “CAPTCHA’yı gir” seçeneğini seçin; eklenti görseli tanıyıp yanıtı yazar. - Ayarlardan her CAPTCHA türünü ayrı ayrı açıp kapatabilir, tıklama hızını ve hata durumunda yeniden denemeyi ayarlayabilirsiniz. > **Not:** Her siteden geçilemez; önce ücretsiz deneme yapmanız önerilir. ## Kurulum **Mağazadan kurulum (önerilir, otomatik güncellenir):** - Chrome (ve Edge gibi Chromium tabanlı tarayıcılar): [Chrome Web Mağazası](https://chromewebstore.google.com/detail/yescaptcha-assistant/jiofmdifioeejeilfkpegipdjiopiekl) - Firefox: [Firefox Eklentileri](https://addons.mozilla.org/firefox/addon/yescaptcha-assistant/) Chrome Web Mağazası’nda eklenti sayfasını açın, “Chrome’a ekle”ye tıklayın, ardından araç çubuğundaki eklenti simgesine tıklayıp `clientKey` değerini girin: Tarayıcınız bu videoyu oynatamıyor. Bunun yerine indirin: [Video: Chrome Web Mağazası'ndan kurulum (34 sn)](https://docs.yescaptcha.com/videos/extension-chrome-store.mp4) Video: Chrome Web Mağazası'ndan kurulum (34 sn) **Mağazaya erişilemiyorsa kurulum paketini indirin:** Chrome sürümü Sürüm 1.4.12 Boyut 1.1 MB Güncellenme 2026-11-10 [İndir](https://api.yescaptcha.com/extension/chrome/latest)[Chrome Web Mağazası](https://chromewebstore.google.com/detail/yescaptcha-assistant/jiofmdifioeejeilfkpegipdjiopiekl) Firefox sürümü Sürüm 0.4.6 Boyut 0.9 MB Güncellenme 2026-10-31 [İndir](https://api.yescaptcha.com/extension/firefox/latest)[Firefox Eklentileri](https://addons.mozilla.org/firefox/addon/yescaptcha-assistant/) Firefox mağazasındaki sürüm buradaki kurulum paketinden eski olabilir; en son sürüm için kurulum paketini kullanın. ### Chrome’da kurulum paketiyle kurulum 1. zip dosyasını indirin ve sabit bir klasöre çıkarın. 2. Adres çubuğuna `chrome://extensions` yazıp açın ve sağ üstteki “Geliştirici modu”nu açın. 3. “Paketlenmemiş öğe yükle”ye tıklayın ve az önce çıkardığınız klasörü seçin. 4. Araç çubuğunda eklenti simgesine tıklayın ve `clientKey` değerinizi girin. Yüklemeden önce çıkardığınız `config.js` dosyasını bir metin düzenleyicide açıp `clientKey: ''` ifadesindeki tırnakların arasına `clientKey` değerinizi yazabilir ve kaydedebilirsiniz; kurulumdan sonra tekrar girmeniz gerekmez. Eklentiyi birden fazla tarayıcı profiline kurarken bu yöntem daha pratiktir. Tarayıcınız bu videoyu oynatamıyor. Bunun yerine indirin: [Video: Chrome'da kurulum paketiyle kurulum, önce config.js içine clientKey yazılır (44 sn; videoda eski sürüm var, adımlar aynıdır)](https://docs.yescaptcha.com/videos/extension-chrome-zip.mp4) Video: Chrome'da kurulum paketiyle kurulum, önce config.js içine clientKey yazılır (44 sn; videoda eski sürüm var, adımlar aynıdır) > **Dikkat:** Çıkardığınız klasörü sonradan silmeyin veya taşımayın; aksi halde tarayıcı eklentiyi yükleyemez. Kurulum paketiyle kurulan eklenti otomatik güncellenmez; yeni sürüm çıktığında paketi yeniden indirmeniz gerekir. ### Firefox’ta kurulum paketiyle kurulum 1. `.xpi` dosyasını indirin. 2. Adres çubuğuna `about:addons` yazıp açın, dişli simgesine tıklayın, “Dosyadan eklenti yükle”yi seçin ve indirdiğiniz dosyayı seçin. 3. Araç çubuğunda eklenti simgesine tıklayın ve `clientKey` değerinizi girin. ## BitBrowser’da kurulum BitBrowser gibi anti-detect tarayıcılar Chrome tabanlıdır; eklenti “Extension Center” (扩展中心) bölümünden eklenir, ardından tüm pencerelere veya belirli pencerelere atanabilir. Aşağıdaki adımlar ve videolar BitBrowser 6.0 ile Çince arayüzde kaydedilmiştir; yeni sürümlerde arayüz biraz farklı olabilir. ### Chrome mağazasından ekleme 1. BitBrowser’ın sol tarafında “Extension Center”a (扩展中心) tıklayın, “Özel eklenti ekle”ye (添加自定义扩展) tıklayın ve “Chrome mağazası eklentisi ekle”yi (添加 Chrome 商店扩展) seçin. 2. “Eklenti ayrıntı URL’si” alanına eklentinin Chrome Web Mağazası adresini `https://chromewebstore.google.com/detail/yescaptcha-assistant/jiofmdifioeejeilfkpegipdjiopiekl` yapıştırın, giriş kutusunun yanındaki düğmeye tıklayarak tanıtın; “YesCaptcha Assistant” tanındıktan sonra “Tamam”a tıklayın. 3. Ekledikten sonra YesCaptcha Assistant kartında “Ayarlar”a (设置) tıklayın, eklentinin etkinleştirileceği yeri seçin: “Tüm pencereler” veya “Belirli pencereler” (ardından kullanacağınız pencereleri işaretleyin), sonra “Tamam”a tıklayın. 4. Bir tarayıcı penceresi açın, araç çubuğundaki eklenti simgesine tıklayın, YesCaptcha Assistant’ı bulun ve `clientKey` değerinizi girin; Bakiye görünüyorsa kurulum tamamdır. Tarayıcınız bu videoyu oynatamıyor. Bunun yerine indirin: [Video: BitBrowser'da Chrome mağazasından ekleme (30 sn)](https://docs.yescaptcha.com/videos/extension-bit-store.mp4) Video: BitBrowser'da Chrome mağazasından ekleme (30 sn) ### Kurulum paketiyle ekleme 1. Yukarıdaki Chrome sürümü kurulum paketini indirin ve sabit bir klasöre çıkarın. 2. (İsteğe bağlı) Klasördeki `config.js` dosyasını bir metin düzenleyicide açın, `clientKey: ''` ifadesindeki tırnakların arasına `clientKey` değerinizi yazıp kaydedin. Böylece her pencerede kurulumdan sonra tekrar girmeniz gerekmez. 3. “Extension Center”da (扩展中心) “Özel eklenti ekle”ye (添加自定义扩展) tıklayın, “Yerel eklenti ekle”yi (添加本地扩展) seçin, “Eklenti yükle” bölümünde çıkardığınız klasörü (içinde `manifest.json` bulunan seviye) seçin ve “Tamam”a tıklayın. 4. Yükleme başarılı olduktan sonra YesCaptcha Assistant kartında “Ayarlar”a tıklayın, etkinleştirme yerini (tüm pencereler veya belirli pencereler) seçin ve “Tamam”a tıklayın. 5. Bir tarayıcı penceresi açın, eklenti simgesinden YesCaptcha Assistant’a tıklayın; ClientKey’iniz ve Bakiye görünüyorsa kurulum tamamdır. Tarayıcınız bu videoyu oynatamıyor. Bunun yerine indirin: [Video: BitBrowser'da kurulum paketiyle ekleme (46 sn; videoda eski sürüm var, adımlar aynıdır)](https://docs.yescaptcha.com/videos/extension-bit-zip.mp4) Video: BitBrowser'da kurulum paketiyle ekleme (46 sn; videoda eski sürüm var, adımlar aynıdır) ## Android’de kullanım (Kiwi Browser) > **Dikkat:** Kiwi Browser’ın bakımı Ocak 2025’te durduruldu ve Google Play’den kaldırıldı; bundan sonra güncelleme ve güvenlik yamaları gelmeyecek. Aşağıdaki adımlar ve video eski belgelerden alınmıştır ve hâlâ Kiwi Browser kullananlara referans olması içindir; eklentinin güncel sürümü Kiwi Browser’da yeniden test edilmemiştir. 1. Chrome sürümü kurulum paketini (`.zip`) telefona indirin, çıkarmayın. ClientKey’in önceden girilmesini istiyorsanız önce bilgisayarda çıkarıp `config.js` dosyasını düzenleyin, sonra yeniden zip’leyin (`manifest.json` arşivin en üst seviyesinde olmalıdır). 2. Kiwi Browser’da sağ üstteki menüye tıklayın ve “Extensions”ı (Eklentiler) seçin. 3. “Developer mode”u (Geliştirici modu) açın, “+ (from .zip/.crx/.user.js)” seçeneğine tıklayın ve indirdiğiniz kurulum paketini seçin. 4. Sağ üstteki menüye tekrar tıklayın; en altta YesCaptcha Assistant görünür. Açıp `clientKey` değerinizi girin; Bakiye görünüyorsa kurulum tamamdır. Tarayıcınız bu videoyu oynatamıyor. Bunun yerine indirin: [Video: Kiwi Browser'da kurulum (16 sn; videoda eski sürüm var, adımlar aynıdır)](https://docs.yescaptcha.com/videos/extension-kiwi.mp4) Video: Kiwi Browser'da kurulum (16 sn; videoda eski sürüm var, adımlar aynıdır) ## Ayarlar 1. [yescaptcha.com](https://yescaptcha.com/) adresinde kayıt olun ve bakiye yükleyin, Panel’den `clientKey` değerinizi kopyalayın; bkz. [Hızlı başlangıç](https://docs.yescaptcha.com/tr/getting-started/quickstart.md). 2. Eklenti simgesine tıklayın ve ayarlar panelinde ClientKey’inizi girin; Bakiye görünüyorsa kurulum tamamdır. 3. CAPTCHA içeren bir sayfa açın; eklenti tanımaya otomatik olarak başlar. ## Ücret Eklenti ücretsizdir. Tanıma sırasında kullanılan türe göre puan düşümü yapılır; örneğin reCAPTCHA görsel soruları [reCAPTCHA v2 görsel tanıma](https://docs.yescaptcha.com/tr/tasks/recaptcha-classification.md) fiyatıyla, hCaptcha ise [hCaptcha görsel tanıma](https://docs.yescaptcha.com/tr/tasks/hcaptcha-classification.md) fiyatıyla hesaplanır. Yanlış sonuçlar için bildirim sonrası puan iadesi talep edilebilir; bkz. [Faturalandırma ve puan iadesi](https://docs.yescaptcha.com/tr/getting-started/billing.md). --- # CAPTCHA türünü belirleme > Bir sayfada hangi CAPTCHA'nın kullanıldığını nasıl anlarsınız: reCAPTCHA v2, görünmez v2, v3, Enterprise, hCaptcha, Cloudflare Turnstile ile Cloudflare doğrulama sayfası arasındaki fark ve her biri için hangi YesCaptcha görev türünün kullanılacağı. Source: https://docs.yescaptcha.com/tr/guides/identify-captcha/ · 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/guides/identify-captcha/ Doğru görev türünü seçmenin ilk adımı CAPTCHA’yı tanımaktır. En güvenilir yol, tarayıcının geliştirici araçlarını (F12) açıp Network (Ağ) panelinde sayfanın hangi CAPTCHA betiğini yüklediğine bakmaktır; görünüşe bakarak da ayırt edebilirsiniz. ## Görünümden tanıma Her captcha’nın web sayfasında nasıl göründüğü (animasyonlu çizimler, ekran görüntüsü değil); ilgili görev türü sayfasını açmak için bir karta tıklayın. Görünüm yeterli değilse aşağıdaki hızlı başvuru tablosu ve Network paneliyle doğrulayın. - [reCAPTCHA v2: Onay kutusu · Görünmez](https://docs.yescaptcha.com/tr/tasks/recaptcha-v2.md) - [reCAPTCHA v3](https://docs.yescaptcha.com/tr/tasks/recaptcha-v3.md) - [reCAPTCHA v2 görsel tanıma: 3×3 ızgara · 4×4 ızgara · 1×1 tek görsel](https://docs.yescaptcha.com/tr/tasks/recaptcha-classification.md) - [hCaptcha](https://docs.yescaptcha.com/tr/tasks/hcaptcha.md) - [hCaptcha görsel tanıma: Görsel ızgarası · Bir noktaya tıklama · Sürükle ve bırak · Animasyonlu](https://docs.yescaptcha.com/tr/tasks/hcaptcha-classification.md) - [Cloudflare Turnstile: Otomatik · Onay kutusu](https://docs.yescaptcha.com/tr/tasks/turnstile.md) - [Cloudflare doğrulama sayfası: Otomatik · Onay kutusu](https://docs.yescaptcha.com/tr/tasks/cloudflare-challenge.md) - [FunCaptcha görsel tanıma: Oklar · 6 görselli ızgara](https://docs.yescaptcha.com/tr/tasks/funcaptcha-classification.md) - [AWS WAF / bCaptcha görsel tanıma: AWS WAF · bCaptcha](https://docs.yescaptcha.com/tr/tasks/aws-bcaptcha-classification.md) - [Görselden harf ve rakam tanıma: Gürültülü · Gürültü çizgileri · Matematik](https://docs.yescaptcha.com/tr/tasks/image-to-text.md) ## Hızlı başvuru | Gördüğünüz | Ne olduğu | Kullanılacak görev türü | | --- | --- | --- | | “Ben robot değilim” onay kutusu | reCAPTCHA v2 | [reCAPTCHA v2](https://docs.yescaptcha.com/tr/tasks/recaptcha-v2.md) | | Onay kutusu yok; gönder düğmesine tıklayınca görsel soru açılır; köşede küçük bir reCAPTCHA rozeti var | Görünmez reCAPTCHA v2 (veya v3) | Aşağıdaki “reCAPTCHA sürümleri” bölümüne bakın | | Hiçbir etkileşim yok; yalnızca sağ altta reCAPTCHA rozeti var | reCAPTCHA v3 | [reCAPTCHA v3](https://docs.yescaptcha.com/tr/tasks/recaptcha-v3.md) | | “Ben insanım” onay kutusu; görsel sorularda hCaptcha yazar | hCaptcha | [hCaptcha](https://docs.yescaptcha.com/tr/tasks/hcaptcha.md) | | Formun içine gömülü bir Cloudflare doğrulama kutusu; işaretlendikten sonra sayfa yönlenmez | Cloudflare Turnstile | [Turnstile](https://docs.yescaptcha.com/tr/tasks/turnstile.md) | | Sayfanın tamamında “Just a moment…” / “Bağlantınız kontrol ediliyor” yazar ve otomatik yönlendirilir | Cloudflare doğrulama sayfası | [Cloudflare doğrulama sayfası](https://docs.yescaptcha.com/tr/tasks/cloudflare-challenge.md) | | Arkose Labs’in bulmaca ve görsel seçme soruları (ör. “Doğru yöne bakan görseli seçin”) | FunCaptcha | [FunCaptcha görsel tanıma](https://docs.yescaptcha.com/tr/tasks/funcaptcha-classification.md) | | Bozuk harf ve rakamlardan oluşan bir görsel | Karakter CAPTCHA’sı | [Görselden metin tanıma](https://docs.yescaptcha.com/tr/tasks/image-to-text.md) | ## reCAPTCHA sürümleri Network panelinde `api.js` veya `enterprise.js` araması yapın: | Yüklenen betik | Sürüm | | --- | --- | | `recaptcha/api.js`, `render` parametresi yok veya `render=explicit` | v2 standart | | Yukarıdaki gibi ve `anchor` isteğinin adresinde `size=invisible` var | Görünmez v2; göreve `"isInvisible": true` ekleyin | | `recaptcha/api.js?render=SITE_KEY` (`render` değeri `explicit` değil) | v3 standart | | `recaptcha/enterprise.js`, `render` parametresi yok veya `render=explicit` | v2 Enterprise | | `recaptcha/enterprise.js?render=SITE_KEY` | v3 Enterprise | Örnekler: ```text https://www.google.com/recaptcha/api.js?onload=onloadcallback&render=explicit → v2 https://www.google.com/recaptcha/api.js?render=6LdyC2cUAAAAACGuDKpXeDorzUDWXmdqeg-xy696 → v3 https://www.google.com/recaptcha/enterprise.js?render=explicit → v2 Enterprise ``` Görünmez v2 bazen yalnızca v3 türüyle geçilir; ikisini de deneyin. Aşağıdaki kodu tarayıcı konsolunda (Console) çalıştırarak da sayfadaki tüm reCAPTCHA’ların sürümünü, site anahtarını, sayfa adresini ve geri çağırma (callback) fonksiyonunu listeleyebilirsiniz: find-recaptcha-clients.js ```js // Paste into the browser DevTools console on a page with reCAPTCHA, then run findRecaptchaClients(). // Lists every reCAPTCHA on the page: version (V2/V3), sitekey, page URL and the callback function. function findRecaptchaClients() { if (typeof ___grecaptcha_cfg === 'undefined') return []; return Object.entries(___grecaptcha_cfg.clients).map(([cid, client]) => { const data = { id: cid, version: cid >= 10000 ? 'V3' : 'V2' }; const objects = Object.entries(client).filter(([, value]) => value && typeof value === 'object'); objects.forEach(([toplevelKey, toplevel]) => { const found = Object.entries(toplevel).find( ([, value]) => value && typeof value === 'object' && 'sitekey' in value && 'size' in value, ); if (toplevel instanceof HTMLElement && toplevel.tagName === 'DIV') data.pageurl = toplevel.baseURI; if (found) { const [sublevelKey, sublevel] = found; data.sitekey = sublevel.sitekey; const callbackKey = data.version === 'V2' ? 'callback' : 'promise-callback'; const callback = sublevel[callbackKey]; if (!callback) { data.callback = null; data.function = null; } else { data.function = callback; const keys = [cid, toplevelKey, sublevelKey, callbackKey].map((key) => `['${key}']`).join(''); data.callback = `___grecaptcha_cfg.clients${keys}`; } } }); return data; }); } findRecaptchaClients(); ``` Örnek çıktı: ```json [ { "id": "0", "version": "V2", "sitekey": "6Le-wvkSAAAAAPBMRTvw0Q4Muexq9bi0DJwx_mJ-", "function": "onSuccess", "callback": "___grecaptcha_cfg.clients['0']['l']['l']['callback']", "pageurl": "https://www.google.com/recaptcha/api2/demo" } ] ``` Karşılaştırma için Google’ın resmi demo sayfalarını kullanabilirsiniz: v2 standart için `https://www.google.com/recaptcha/api2/demo`, görünmez v2 için `https://www.google.com/recaptcha/api2/demo?invisible=true`. ## Turnstile ve Cloudflare doğrulama sayfası İkisi de Cloudflare’e aittir ama aynı şey değildir: - **Turnstile**, sayfadaki bir formun içine gömülü doğrulama kutusudur. Doğrulama tamamlanınca kutu işaretlenir, sayfanın kendisi yönlenmez. Sayfa `challenges.cloudflare.com/turnstile/v0/api.js` dosyasını yükler. [Turnstile](https://docs.yescaptcha.com/tr/tasks/turnstile.md) görev türünü kullanın. - **Cloudflare doğrulama sayfası**, sayfanın tamamını Cloudflare’in kontrol ekranıyla değiştirir; “Just a moment…” ve “xx.com bağlantınızın güvenliğini kontrol etmeli” gibi metinler görünür, içinde bir doğrulama kutusu da bulunabilir. Geçildikten sonra gerçek sayfaya otomatik yönlendirilir. Kaynak kodunda `__cf_chl_rt_tk` veya `cdn-cgi/challenge-platform` bulunur. [Cloudflare doğrulama sayfası](https://docs.yescaptcha.com/tr/tasks/cloudflare-challenge.md) görev türünü kullanın. Programla istek attığınızda 403 ve “Just a moment…” dönüyor ama tarayıcıyla sayfa doğrudan açılıyorsa, büyük olasılıkla yalnızca TLS parmak izi nedeniyle engelleniyorsunuz. Tarayıcının TLS parmak izini taklit eden bir kütüphane (ör. curl\_cffi) kullanırsanız istek geçer; doğrulamayı çözmeniz gerekmez. --- # reCAPTCHA parametrelerini bulma > reCAPTCHA'nın websiteKey (sitekey), websiteURL, v3 pageAction ve callback fonksiyonunu geliştirici araçlarındaki Network, Sources ve Console panellerinde nasıl bulacağınız; otomatik bulma betiğiyle birlikte. Source: https://docs.yescaptcha.com/tr/guides/find-recaptcha-parameters/ · 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/guides/find-recaptcha-parameters/ Bir reCAPTCHA görevi oluşturmak için `websiteURL` (CAPTCHA’nın göründüğü sayfanın adresi) ve `websiteKey` (site anahtarı) gerekir; v3 için ayrıca `pageAction` gerekir. Selenium gibi araçlarla tarayıcıyı yönlendirirken callback fonksiyonunu da bilmeniz gerekir. Bunların hepsini tarayıcının geliştirici araçlarında (F12) bulabilirsiniz. ## En hızlı yol: otomatik bulma betiği CAPTCHA’nın göründüğü sayfayı açın, F12 ile Console’u açın, aşağıdaki betiği yapıştırıp çalıştırın: find-recaptcha-clients.js ```js // Paste into the browser DevTools console on a page with reCAPTCHA, then run findRecaptchaClients(). // Lists every reCAPTCHA on the page: version (V2/V3), sitekey, page URL and the callback function. function findRecaptchaClients() { if (typeof ___grecaptcha_cfg === 'undefined') return []; return Object.entries(___grecaptcha_cfg.clients).map(([cid, client]) => { const data = { id: cid, version: cid >= 10000 ? 'V3' : 'V2' }; const objects = Object.entries(client).filter(([, value]) => value && typeof value === 'object'); objects.forEach(([toplevelKey, toplevel]) => { const found = Object.entries(toplevel).find( ([, value]) => value && typeof value === 'object' && 'sitekey' in value && 'size' in value, ); if (toplevel instanceof HTMLElement && toplevel.tagName === 'DIV') data.pageurl = toplevel.baseURI; if (found) { const [sublevelKey, sublevel] = found; data.sitekey = sublevel.sitekey; const callbackKey = data.version === 'V2' ? 'callback' : 'promise-callback'; const callback = sublevel[callbackKey]; if (!callback) { data.callback = null; data.function = null; } else { data.function = callback; const keys = [cid, toplevelKey, sublevelKey, callbackKey].map((key) => `['${key}']`).join(''); data.callback = `___grecaptcha_cfg.clients${keys}`; } } }); return data; }); } findRecaptchaClients(); ``` Çıktıda `sitekey` değeri `websiteKey`, `pageurl` değeri `websiteURL`’dir; `version` v2 mi v3 mü olduğunu gösterir, `function` ve `callback` ise callback fonksiyonudur: ```json [ { "id": "0", "version": "V2", "sitekey": "6Le-wvkSAAAAAPBMRTvw0Q4Muexq9bi0DJwx_mJ-", "function": "onSuccess", "callback": "___grecaptcha_cfg.clients['0']['l']['l']['callback']", "pageurl": "https://www.google.com/recaptcha/api2/demo" } ] ``` Boş dizi dönerse sayfada reCAPTCHA henüz yüklenmemiştir; CAPTCHA göründükten sonra betiği yeniden çalıştırın. ## websiteKey ve websiteURL Network panelinde `anchor` araması yapın ve şuna benzer bir istek bulun: ```text https://www.google.com/recaptcha/api2/anchor?ar=1&k=6LfW6wATAAAAAHLqO2pb8bDBahxlMxNdo9g947u9&co=...&hl=en&size=normal ``` - `k=` değerinden sonraki kısım `websiteKey`’dir. - `websiteURL` olarak, CAPTCHA’nın göründüğü sayfanın tam adresini yazın (bu isteğin `Referer` değeri genellikle odur). Sayfa kaynağında `data-sitekey` araması da yapabilirsiniz. ## pageAction (v3) `pageAction`, sayfanın `grecaptcha.execute(site anahtarı, {action: '...'})` çağrısında geçirdiği `action` değeridir ve sayfadakiyle aynı olmalıdır. **Yöntem 1: kaynakta arama.** Geliştirici araçlarında Sources panelinde sağ tıklayıp “Search in all files” seçin. Normal v3 için `.execute(`, v3 Enterprise için `.enterprise.execute` aratın ve ardından gelen `action` değerine bakın: ```js grecaptcha.ready(function () { grecaptcha.execute('6LdpS-gUAAAAAL3Qr2yP7rkrQjkKBVvEY_48JS5l', { action: 'login' }).then(function (token) { // ... }); }); ``` Burada `pageAction` değeri `login`’dir. **Yöntem 2: breakpoint.** Kod obfuscate edilmişse ve arama sonuç vermiyorsa, konsolda `debug(grecaptcha.execute)` komutunu çalıştırın (Enterprise için `debug(grecaptcha.enterprise.execute)`), ardından sayfada doğrulamayı tetikleyen işlemi yapın (örneğin giriş düğmesine tıklayın). Debugger durduğunda sağdaki Scope bölümünde `action` değerini okuyun. Bir site farklı adımlarda farklı `action` değerleri kullanabilir (örneğin kayıtta önce `signup/submit_email`, sonra `signup/success`); geçmeniz gereken adımın değerini kullanın. Sonraki `action` değerini görmek için F8 ile devam edin. ## Callback fonksiyonu Selenium gibi araçlarla token’ı tarayıcıda sayfaya girdikten sonra, doğrulamanın tamamlandığını bildirmek için sayfanın callback fonksiyonunu çağırmanız gerekir: - Elements panelinde `data-callback` araması yapın; değeri callback fonksiyonunun adıdır, örneğin `data-callback="onSuccess"`. - Ya da `grecaptcha.render` araması yapıp parametrelerdeki `callback` değerine bakın. - Ya da konsolda `___grecaptcha_cfg.clients` nesnesini inceleyin veya yukarıdaki otomatik bulma betiğini kullanın. Çağırma yöntemi: ```python driver.execute_script("onSuccess(arguments[0])", g_recaptcha_response) ``` Bazı sayfalarda callback fonksiyonu yoktur; bu durumda token’ı `g-recaptcha-response` metin kutusuna yazıp formu doğrudan gönderin. Tüm akış için bkz. [Token ile reCAPTCHA’yı geçme](https://docs.yescaptcha.com/tr/guides/submit-recaptcha-token.md). --- # hCaptcha parametrelerini bulma > hCaptcha'nın websiteKey (sitekey), websiteURL ve Enterprise sürümündeki rqdata değerleri nasıl bulunur: sayfa kaynağında data-sitekey'i arayın veya Network panelinde checksiteconfig ve getcaptcha isteklerine bakın. Source: https://docs.yescaptcha.com/tr/guides/find-hcaptcha-parameters/ · 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/guides/find-hcaptcha-parameters/ [hCaptcha](https://docs.yescaptcha.com/tr/tasks/hcaptcha.md) görevi oluşturmak için `websiteURL` (CAPTCHA’nın göründüğü sayfanın adresi) ve `websiteKey` (site anahtarı, UUID biçiminde) gerekir; Enterprise sürümünde bazen `rqdata` da gerekir. Hepsi tarayıcının geliştirici araçlarında (F12) bulunabilir. ## websiteKey **Yöntem 1: Sayfa kaynağını arayın.** Elements panelinde Ctrl+F (Mac’te Cmd+F) ile `data-sitekey` araması yapın: ```html
``` `data-sitekey` değeri `websiteKey` olarak kullanılır. **Yöntem 2: Ağ isteklerine bakın.** Network panelinde `hcaptcha` araması yapıp `checksiteconfig` isteğini bulun; adresteki `sitekey=` sonrasındaki değer `websiteKey` olarak kullanılır: ```text https://api.hcaptcha.com/checksiteconfig?v=...&host=example.com&sitekey=51829642-2cda-4b09-896c-594f89d700cc&sc=1&swa=1 ``` ## websiteURL CAPTCHA’nın göründüğü sayfanın tam adresini girin; `hcaptcha.com` adresi **değildir**. Yukarıdaki istekteki `host=` değeri bu sayfanın alan adıdır. ## rqdata (Enterprise sürümü) Bazı siteler hCaptcha Enterprise kullanır ve CAPTCHA her yüklendiğinde site bir `rqdata` değeri verir; bu değer gönderilmezse doğrulama geçilemez. Genellikle sitenin kendi API yanıtında (örneğin giriş isteğinin döndürdüğü `captcha_rqdata`) yer alır veya `hcaptcha.render` / `hcaptcha.setData` çağrılırken iletilir. Değeri aldıktan sonra görevin `rqdata` alanına ekleyin. `rqdata` genellikle yalnızca bir kez kullanılabilir, bu nedenle her seferinde yenisini alın. ## userAgent `userAgent` olarak yalnızca [/useragent](https://docs.yescaptcha.com/tr/api/useragent.md) uç noktasının döndürdüğü değer kullanılabilir; token’ı gönderirken tanıma sonucunda dönen `userAgent` değerini kullanın. --- # Turnstile parametrelerini bulma > Cloudflare Turnstile'ın websiteKey (sitekey, 0x ile başlar) ve websiteURL değerlerini bulma yolları: sayfa kaynağında data-sitekey veya turnstile.render araması ya da Network panelinde challenges.cloudflare.com isteklerine bakmak. Source: https://docs.yescaptcha.com/tr/guides/find-turnstile-parameters/ · Last verified: 2026-10-21 > This page was machine-translated from the Chinese version. If anything differs, the Chinese version prevails: https://docs.yescaptcha.com/zh/guides/find-turnstile-parameters/ [Turnstile](https://docs.yescaptcha.com/tr/tasks/turnstile.md) görevi oluşturmak için `websiteURL` (doğrulama kutusunun göründüğü sayfanın adresi) ve `websiteKey` (site anahtarı, genellikle `0x` ile başlar) gerekir. Önce bunun Cloudflare doğrulama sayfası değil Turnstile olduğundan emin olun; bkz. [CAPTCHA türünü belirleme](https://docs.yescaptcha.com/tr/guides/identify-captcha.md). ## websiteKey **Yöntem 1: Sayfa kaynağında arama.** Geliştirici araçlarının (F12) Elements panelinde `data-sitekey` araması yapın: ```html
``` **Yöntem 2: Betiklerde arama.** Doğrulama kutusu JavaScript ile oluşturuluyorsa Sources panelinde sağ tıklayıp “Search in all files” seçeneğini kullanın, `turnstile.render` araması yapın ve parametrelerdeki `sitekey` değerine bakın: ```js turnstile.render('#container', { sitekey: '0x4AAAAAAAxxxxxxxxxxxxxx', callback: onDone }); ``` **Yöntem 3: Ağ isteklerine bakma.** Network panelinde `challenges.cloudflare.com` araması yapın; doğrulama kutusunun iframe adresi `0x` ile başlayan site anahtarını içerir. ## websiteURL Doğrulama kutusunun göründüğü sayfanın tam adresini yazın, örneğin `https://example.com/login`. ## action ve cData (genellikle gerekmez) Çoğu durumda gerekmez. Yalnızca `websiteKey` ve `websiteURL` değerlerinin doğru olduğundan emin olduğunuz hâlde görev geçemiyorsa bunlara bakın: yine `turnstile.render` parametrelerinde veya doğrulama kutusu öğesinde `action` ve `cData` olup olmadığını kontrol edin (öğe üzerinde `data-action` ve `data-cdata`): ```js turnstile.render('#container', { sitekey: '0x4AAAAAAAxxxxxxxxxxxxxx', action: 'login', cData: 'c0bd4b36-7419-4e18-83c6-378699f2a9a2' }); ``` Varsa görev oluştururken `action` değerini `pageAction` alanına, `cData` değerini `data` alanına yazın; bkz. [Turnstile](https://docs.yescaptcha.com/tr/tasks/turnstile.md). ## Token’ı gönderme Çözüm tamamlandığında `token` değerini formdaki `cf-turnstile-response` adlı gizli alana yazın (`turnstile.render` kullanan ve `callback` tanımlı sayfalarda bu callback fonksiyonunu token ile çağırın), ardından formu gönderin. Gönderim isteğinin User-Agent değeri olarak çözüm sonucundaki `userAgent` değerini kullanın. --- # reCAPTCHA için token gönderme > reCAPTCHA token'ını (gRecaptchaResponse) aldıktan sonra ne yapılır: çalışma mantığı, doğrudan istekle gönderme (g-recaptcha-response alanı), tarayıcıda doldurup callback fonksiyonunu çağırma ve Google demo sayfası için eksiksiz Python örnekleri. Source: https://docs.yescaptcha.com/tr/guides/submit-recaptcha-token/ · 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/guides/submit-recaptcha-token/ YesCaptcha’nın döndürdüğü `gRecaptchaResponse`, CAPTCHA’yı tamamladıktan sonra Google’ın sayfaya verdiği sonuçla aynı değerdir. Bunu aldıktan sonra, tıpkı bir tarayıcı gibi **hedef siteye** göndermeniz gerekir (Google’a veya YesCaptcha’ya değil); site token’ı Google ile doğrular ve geçişe izin verir. İki yol vardır: isteği doğrudan kendiniz göndermek veya gerçek bir tarayıcıda token’ı sayfaya yazıp göndermek. ## Çalışma mantığı Normal akış: 1. Sayfa reCAPTCHA’yı yükler ve kullanıcı doğrulamayı tamamlar; 2. Google sayfaya bir token verir; sayfa bunu `g-recaptcha-response` metin kutusuna yazar (veya callback fonksiyonuna iletir); 3. Kullanıcı formu gönderir, token form ile birlikte sitenin sunucusuna gider; 4. Sitenin sunucusu token’ı Google ile doğrular, geçerliyse geçişe izin verir. YesCaptcha ile 1. ve 2. adımları biz yaparız: `websiteURL` ve `websiteKey` ile bir görev oluşturur, token’ı alır ve 3. adımdan devam edersiniz. > **Dikkat:** Token tek kullanımlıktır ve yaklaşık 120 saniye geçerlidir; aldıktan sonra 60 saniye içinde göndermeniz önerilir. Süresi dolmuş token’ları site kabul etmez. ## Yöntem 1: Doğrudan istekle gönderme (önerilir) 1. Tarayıcıda bir kez normal şekilde işlem yapın: F12 ile Network panelini açın, CAPTCHA’yı tamamlayıp formu gönderin ve formu gönderen isteği bulun. 2. İsteğin Payload (veya Form Data) bölümünde token’ı taşıyan alanı bulun; genellikle `g-recaptcha-response` adını taşır ve token `03A` ile başlar. Bazı siteler adı değiştirir, örneğin `grecaptcharesponse`, `captcha`. 3. Programınızdan aynı isteği gönderin ve bu alanın değerini YesCaptcha’nın döndürdüğü token ile değiştirin. Diğer alanlar, Cookie’ler ve istek başlıkları da tarayıcıdakiyle aynı olmalıdır; siteler çoğunlukla bunları da kontrol eder. Google demo sayfası için eksiksiz örnek: önce çözüm alınır, ardından token `g-recaptcha-response` alanıyla demo sayfasına geri gönderilir: recaptcha_requests.py ```python """Solve reCAPTCHA v2 on Google's demo page and submit the token with plain HTTP (no browser). Run: pip install requests export YESCAPTCHA_CLIENT_KEY=your_client_key python recaptcha_requests.py Each run creates one NoCaptchaTaskProxyless task (charged per the price list). """ import os import time import requests CLIENT_KEY = os.environ["YESCAPTCHA_CLIENT_KEY"] API = "https://api.yescaptcha.com" WEBSITE_URL = "https://www.google.com/recaptcha/api2/demo" WEBSITE_KEY = "6Le-wvkSAAAAAPBMRTvw0Q4Muexq9bi0DJwx_mJ-" def call(method, payload): data = requests.post(f"{API}/{method}", json={"clientKey": CLIENT_KEY, **payload}, timeout=30).json() if data.get("errorId"): raise RuntimeError(f"{data.get('errorCode')}: {data.get('errorDescription')}") return data def get_token(): task = {"type": "NoCaptchaTaskProxyless", "websiteURL": WEBSITE_URL, "websiteKey": WEBSITE_KEY} 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"]["gRecaptchaResponse"] raise TimeoutError(task_id) token = get_token() print("token:", token[:40], "...") # Submit the token the same way the browser does: the demo form posts the field # "g-recaptcha-response" back to the page. Check your own site's request in DevTools > Network. page = requests.post(WEBSITE_URL, data={"g-recaptcha-response": token}, timeout=30) print("passed" if "Verification Success" in page.text else "not passed", page.status_code) ``` ## Yöntem 2: Tarayıcıda doldurma (Selenium vb.) Selenium, Playwright gibi araçlarla gerçek bir tarayıcıyı yönetirken: 1. Sayfadan `data-sitekey` değerini okuyun, bununla görev oluşturup token’ı alın. 2. Token’ı sayfadaki `g-recaptcha-response` metin kutusuna yazın. 3. Sayfada bir callback fonksiyonu tanımlıysa (`data-callback="..."`), token’ı vererek çağırın; bazı sitelerde gönder düğmesi ancak callback çağrıldıktan sonra tıklanabilir hale gelir. 4. Formu gönderin. ```js // Step 2: write the token (run in the page) document.getElementById('g-recaptcha-response').value = 'TOKEN'; // Step 3: call the callback if there is one, e.g. data-callback="onSuccess" onSuccess('TOKEN'); ``` Sayfada birden fazla reCAPTCHA varsa metin kutusunun id’si `g-recaptcha-response-1` gibi olabilir. Bu metin kutusunu bulamazsanız önce doğrulamayı elle bir kez tamamlayın, Elements panelinde `03A` araması yapın ve sonucun nereye yazıldığına bakın. Callback fonksiyonunun nasıl bulunacağı için bkz. [reCAPTCHA parametrelerini bulma](https://docs.yescaptcha.com/tr/guides/find-recaptcha-parameters.md). Eksiksiz örnek (Selenium 4): recaptcha_selenium.py ```python """Solve reCAPTCHA v2 on Google's demo page in a real browser with Selenium 4: get a token from YesCaptcha, put it into the page, then submit the form. Run: pip install requests selenium export YESCAPTCHA_CLIENT_KEY=your_client_key python recaptcha_selenium.py Each run creates one NoCaptchaTaskProxyless task (charged per the price list). """ import os import time import requests from selenium import webdriver from selenium.webdriver.common.by import By CLIENT_KEY = os.environ["YESCAPTCHA_CLIENT_KEY"] API = "https://api.yescaptcha.com" WEBSITE_URL = "https://www.google.com/recaptcha/api2/demo" def call(method, payload): data = requests.post(f"{API}/{method}", json={"clientKey": CLIENT_KEY, **payload}, timeout=30).json() if data.get("errorId"): raise RuntimeError(f"{data.get('errorCode')}: {data.get('errorDescription')}") return data def get_token(website_url, website_key): task = {"type": "NoCaptchaTaskProxyless", "websiteURL": website_url, "websiteKey": website_key} task_id = call("createTask", {"task": task})["taskId"] for _ in range(36): time.sleep(5) result = call("getTaskResult", {"taskId": task_id}) if result.get("status") == "ready": return result["solution"]["gRecaptchaResponse"] raise TimeoutError(task_id) driver = webdriver.Chrome() # Selenium 4 downloads a matching chromedriver automatically try: driver.get(WEBSITE_URL) site_key = driver.find_element(By.CSS_SELECTOR, "[data-sitekey]").get_attribute("data-sitekey") token = get_token(WEBSITE_URL, site_key) # Put the token where reCAPTCHA keeps it ... driver.execute_script( "document.getElementById('g-recaptcha-response').value = arguments[0];", token ) # ... and, if the page uses a callback (data-callback="..."), call it: callback = driver.find_element(By.CSS_SELECTOR, "[data-sitekey]").get_attribute("data-callback") if callback: driver.execute_script(f"window[{callback!r}](arguments[0]);", token) driver.find_element(By.ID, "recaptcha-demo-submit").click() time.sleep(2) print("passed" if "Verification Success" in driver.page_source else "not passed") finally: driver.quit() ``` ## reCAPTCHA v3 v3’te onay kutusu yoktur; sayfa token’a ihtiyaç duyduğunda `grecaptcha.execute(site anahtarı, {action: '...'})` çağırır ve token’ı kendi isteğine koyar (alan adını site belirler; yaygın olanlar `g-recaptcha-response`, `token`, `recaptchaToken`). Yöntem 1 ile aynı şekilde ilerleyin: Network panelinde token taşıyan isteği bulup aynısını gönderin; görev oluştururken `pageAction` sayfadaki `action` ile aynı olmalıdır. ## Gönderdim ama yine geçmiyor - Token’ın süresi dolmuştur: aldıktan sonra hemen gönderin, 60 saniyeyi geçirmeyin. - Sitenin kontrol ettiği alanı göndermemişsinizdir veya başka alanları ya da Cookie’leri atlamışsınızdır: tarayıcıdaki istekle alan alan karşılaştırın. - Site IP, User-Agent gibi bilgileri de kontrol ediyordur: kendi proxy’nizi kullanan bir tür (örneğin `NoCaptchaTask`) seçin ve gönderimi aynı proxy üzerinden yapın. - v3 skoru yetersizdir: `pageAction` değerini doğrulayın veya sabit yüksek skorlu bir tür kullanın, bkz. [reCAPTCHA v3](https://docs.yescaptcha.com/tr/tasks/recaptcha-v3.md). - Sitenin risk kontrolü başka davranış sinyallerine de bakar. Token yöntemiyle geçiş oranı düşükse [görsel tanıma](https://docs.yescaptcha.com/tr/tasks/recaptcha-classification.md) ile gerçek tarayıcıda tıklama yapabilir veya [tarayıcı eklentisini](https://docs.yescaptcha.com/tr/extension.md) kullanabilirsiniz. --- # reCAPTCHA v2 görsel tanıma ile tıklama simülasyonu (Selenium) > Python Selenium 4 ve ReCaptchaV2Classification ile reCAPTCHA v2 görsel sorularını tarayıcıda otomatik tıklayın: CAPTCHA'yı tetikleme, soruyu ve görseli okuma, tanıma arayüzünü çağırma, karelere tıklama ve gönderme; eksiksiz örnek kod. Source: https://docs.yescaptcha.com/tr/guides/recaptcha-click-selenium/ · 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/guides/recaptcha-click-selenium/ Bu eğitim, Selenium 4 ile Google’ın reCAPTCHA demo sayfasını açar ve görsel soruyu gerçek bir tarayıcıda çözer: soruyu ve görseli okur, hangi karelere tıklanacağını belirlemesi için [reCAPTCHA v2 görsel tanıma](https://docs.yescaptcha.com/tr/tasks/recaptcha-classification.md) (`ReCaptchaV2Classification`) görev türüne gönderir, ardından tıklamaları simüle eder. Token alma yöntemiyle karşılaştırıldığında doğrulama tarayıcının içinde gerçekten tamamlanır; token geçme oranı düşük olan siteler için uygundur. Kod yazmak istemiyorsanız aynı arayüzü kullanarak otomatik tıklama yapan [tarayıcı eklentisini](https://docs.yescaptcha.com/tr/extension.md) doğrudan kullanabilirsiniz. ## Hazırlık ```bash pip install requests selenium pillow export YESCAPTCHA_CLIENT_KEY=your_client_key ``` Chrome’un kurulu olması gerekir. Selenium 4, uyumlu chromedriver’ı otomatik indirir. ## Akış 1. **Onay kutusuna tıklayın.** Onay kutusu `title="reCAPTCHA"` olan iframe’in içindedir; önce bu iframe’e geçin, ardından `#recaptcha-anchor` öğesine tıklayın. 2. **Soru iframe’ine geçin.** Soru, başka bir iframe’in (title değeri “challenge” içeren) içindedir. 3. **Soruyu okuyun.** `.rc-imageselect-desc-wrapper strong` içindeki kalın yazı aranacak hedeftir, örneğin “traffic lights”. Arayüz soru ID’sini ister; karşılık tablosunu kullanarak adı ID’ye çevirin (`/m/015qff`), bkz. [Soru ID’leri](https://docs.yescaptcha.com/tr/tasks/recaptcha-classification.md). Karşılaştırma için tarayıcı arayüzünü İngilizce kullanmak en kolay yoldur. 4. **Görseli alın.** Kareler aslında tek bir büyük görselin parçalarıdır; `td.rc-imageselect-tile img` öğesinin `src` değerini indirin. 9 kareli (3x3) görseli 300×300, 16 kareli (4x4) görseli 450×450 boyutuna ölçekleyin ve Base64’e çevirin. 5. **Tanıyın.** `createTask` çağırın; tür `ReCaptchaV2Classification`, alanlar `image` ve `question`. `"confidence": 0.5` eklerseniz 3x3 görselde eşleşen tüm kareler tek seferde döner; tıklamadan sonra yenilenen küçük görselleri işlemeniz gerekmez. 6. **Tıklayın.** Dönen `objects`, kare sıra numaralarıdır; 0’dan başlar, soldan sağa ve yukarıdan aşağıya doğru sayılır. İlgili `td` öğelerine sırayla tıklayın. 7. **Doğrulayın.** `#recaptcha-verify-button` düğmesine tıklayın. Yeni bir soru turu çıkarsa 3. adıma dönün; soru penceresi kapanırsa doğrulama geçilmiştir. 8. **Formu gönderin.** Ana sayfaya dönüp gönder düğmesine tıklayın. ## Eksiksiz kod recaptcha_click_selenium.py ```python """Click through a reCAPTCHA v2 image challenge with Selenium 4 and ReCaptchaV2Classification. Flow: open the page -> click the checkbox -> read the target name and the grid image -> ask YesCaptcha which tiles to click -> click them -> press Verify. Repeat if a new challenge appears. Run: pip install requests selenium pillow export YESCAPTCHA_CLIENT_KEY=your_client_key python recaptcha_click_selenium.py Each recognized image is charged (see the price list). reCAPTCHA's page structure can change; adjust the selectors below if a step stops working. """ import base64 import io import os import time import requests from PIL import Image from selenium import webdriver from selenium.webdriver.common.by import By from selenium.webdriver.support import expected_conditions as EC from selenium.webdriver.support.wait import WebDriverWait CLIENT_KEY = os.environ["YESCAPTCHA_CLIENT_KEY"] PAGE_URL = "https://www.google.com/recaptcha/api2/demo" # Target names shown in the challenge (English UI) -> question IDs. # Full list: https://docs.yescaptcha.com/en/tasks/recaptcha-classification/ QUESTION_IDS = { "taxis": "/m/0pg52", "bus": "/m/01bjv", "buses": "/m/01bjv", "motorcycles": "/m/04_sv", "tractors": "/m/013xlm", "chimneys": "/m/01jk_4", "crosswalks": "/m/014xcs", "traffic lights": "/m/015qff", "bicycles": "/m/0199g", "parking meters": "/m/015qbp", "cars": "/m/0k4j", "bridges": "/m/015kr", "boats": "/m/019jd", "palm trees": "/m/0cdl1", "mountains or hills": "/m/09d_r", "fire hydrants": "/m/01pns0", "a fire hydrant": "/m/01pns0", "stairs": "/m/01lynh", } def classify(image_b64, question): task = {"type": "ReCaptchaV2Classification", "image": image_b64, "question": question, "confidence": 0.5} data = requests.post( "https://api.yescaptcha.com/createTask", json={"clientKey": CLIENT_KEY, "task": task}, timeout=30, ).json() if data.get("errorId"): raise RuntimeError(f"{data.get('errorCode')}: {data.get('errorDescription')}") return data["solution"] # synchronous: the solution comes back right away def grid_image_b64(url, size): """Download the challenge image and scale it to the standard size (300 for 3x3, 450 for 4x4).""" img = Image.open(io.BytesIO(requests.get(url, timeout=30).content)).convert("RGB") img = img.resize((size, size)) buf = io.BytesIO() img.save(buf, format="JPEG") return base64.b64encode(buf.getvalue()).decode() driver = webdriver.Chrome() wait = WebDriverWait(driver, 15) try: driver.get(PAGE_URL) # 1. Click the checkbox (inside the "reCAPTCHA" iframe) wait.until(EC.frame_to_be_available_and_switch_to_it((By.CSS_SELECTOR, 'iframe[title="reCAPTCHA"]'))) wait.until(EC.element_to_be_clickable((By.ID, "recaptcha-anchor"))).click() driver.switch_to.default_content() # 2. Switch to the challenge iframe and solve rounds until it closes wait.until(EC.frame_to_be_available_and_switch_to_it( (By.XPATH, '//iframe[contains(@title, "challenge")]'))) for _ in range(5): target = wait.until(EC.presence_of_element_located( (By.CSS_SELECTOR, ".rc-imageselect-desc-wrapper strong"))).text.strip().lower() question = QUESTION_IDS.get(target) if not question: print("unsupported target, reloading:", target) driver.find_element(By.ID, "recaptcha-reload-button").click() time.sleep(2) continue tiles = driver.find_elements(By.CSS_SELECTOR, "td.rc-imageselect-tile") size = 450 if len(tiles) == 16 else 300 url = driver.find_element(By.CSS_SELECTOR, "td.rc-imageselect-tile img").get_attribute("src") solution = classify(grid_image_b64(url, size), question) for index in solution.get("objects", []): tiles[index].click() time.sleep(0.3) time.sleep(1) driver.find_element(By.ID, "recaptcha-verify-button").click() time.sleep(3) driver.switch_to.default_content() frame = driver.find_element(By.XPATH, '//iframe[contains(@title, "challenge")]') if not frame.is_displayed(): # challenge closed: passed break driver.switch_to.frame(frame) driver.switch_to.default_content() driver.find_element(By.ID, "recaptcha-demo-submit").click() time.sleep(2) print("passed" if "Verification Success" in driver.page_source else "not passed") finally: driver.quit() ``` ## Notlar - reCAPTCHA’nın sayfa yapısı güncellenir; koddaki seçiciler çalışmaz hale gelirse gerçek sayfaya göre ayarlayın. - Tanınan her görsel için puan düşülür (fiyat için bkz. [reCAPTCHA v2 görsel tanıma](https://docs.yescaptcha.com/tr/tasks/recaptcha-classification.md)). Tıklamadan sonra doğrulaması başarısız olan görevleri 1 saat içinde [bildirerek](https://docs.yescaptcha.com/tr/api/report.md) puan iadesi talep edebilirsiniz. - Karşılık tablosunda olmayan bir soruyla karşılaşırsanız yenile düğmesiyle başka bir soru getirebilir veya desteğe başvurarak ekletebilirsiniz. --- # hCaptcha görsel tanıma ile tıklama simülasyonu (Selenium) > Python, Selenium 4 ve HCaptchaClassification ile hCaptcha 3×3 ızgara görsel sorularını gerçek bir tarayıcıda otomatik çözün: onay kutusuna tıklayın, soruyu ve 9 görseli okuyun, tanıma API'sini çağırın, tıklayıp gönderin. Tam örnek kod. Source: https://docs.yescaptcha.com/tr/guides/hcaptcha-click-selenium/ · 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/guides/hcaptcha-click-selenium/ Bu eğitim, Selenium 4 ile hCaptcha demo sayfasını açar ve 3×3 ızgara görsel sorusunu gerçek bir tarayıcıda çözer: soruyu ve 9 görseli okur, hangilerinin hedef olduğunu [hCaptcha görsel tanıma](https://docs.yescaptcha.com/tr/tasks/hcaptcha-classification.md) (`HCaptchaClassification`) ile belirler, ardından tıklamaları simüle eder. hCaptcha’da ayrıca “belirtilen konuma tıklama” ve “sürükleme” gibi soru türleri vardır; bunlar kare yerine koordinat döndürür. Çözüm için [hCaptcha görsel tanıma](https://docs.yescaptcha.com/tr/tasks/hcaptcha-classification.md) sayfasına bakın. Kod yazmak istemiyorsanız [tarayıcı eklentisini](https://docs.yescaptcha.com/tr/extension.md) kullanabilirsiniz; eklenti bu soru türlerinin tümünü destekler. ## Hazırlık ```bash pip install requests selenium export YESCAPTCHA_CLIENT_KEY=your_client_key ``` ## Akış 1. **Onay kutusuna tıklayın.** Onay kutusu, adresinde `frame=checkbox` bulunan hCaptcha iframe’inin içindedir; bu iframe’e geçip `#checkbox` öğesine tıklayın. 2. **Soru iframe’ine geçin.** Soru, adresinde `frame=challenge` bulunan iframe’in içindedir. 3. **Soruyu okuyun.** `.prompt-text` içindeki metin sorudur; olduğu gibi API’ye gönderin (hCaptcha arayüz dilini Basitleştirilmiş Çince veya İngilizce yapmanız önerilir). Sorunun yanında örnek görsel varsa, onu da `anchors` alanına ekleyin. 4. **Görselleri alın.** Her karedeki `.task-image .image` öğesinin arka plan görseli bir küçük resimdir; bunları sırayla indirip Base64’e çevirin ve `queries` listesini oluşturun. 5. **Tanıyın.** `createTask` çağrısını `HCaptchaClassification` türüyle yapın. Dönen `objects` değerleri karelerle birebir eşleşir; `true` olanlar hedeftir. 6. **Tıklayın ve gönderin.** Hedef olan kareleri tıklayıp gönder düğmesine basın. Art arda birkaç tur gelebilir; 3. adımdan 6. adıma kadar tekrarlayın. 7. **Tamamlandı.** Doğrulama geçildiğinde sayfadaki `h-captcha-response` alanında token bulunur; bunu form ile birlikte gönderin. ## Tam kod hcaptcha_click_selenium.py ```python """Click through an hCaptcha 3x3 image challenge with Selenium 4 and HCaptchaClassification. Flow: open the page -> click the checkbox -> read the question and the 9 images -> ask YesCaptcha which images match -> click them -> submit. Repeat while new rounds appear. Run: pip install requests selenium export YESCAPTCHA_CLIENT_KEY=your_client_key python hcaptcha_click_selenium.py Each recognized round is charged (see the price list; rounds with no target found are free). hCaptcha changes its page structure often; adjust the selectors below if a step stops working. Click and drag questions return coordinates instead; see the HCaptchaClassification page. """ import base64 import os import re import time import requests from selenium import webdriver from selenium.webdriver.common.by import By from selenium.webdriver.support import expected_conditions as EC from selenium.webdriver.support.wait import WebDriverWait CLIENT_KEY = os.environ["YESCAPTCHA_CLIENT_KEY"] PAGE_URL = "https://accounts.hcaptcha.com/demo" def classify(question, images_b64): task = {"type": "HCaptchaClassification", "question": question, "queries": images_b64} data = requests.post( "https://api.yescaptcha.com/createTask", json={"clientKey": CLIENT_KEY, "task": task}, timeout=60, ).json() if data.get("errorId"): raise RuntimeError(f"{data.get('errorCode')}: {data.get('errorDescription')}") return data["solution"] # synchronous def background_image_b64(element): """The tiles are
s with a CSS background image; download it and Base64-encode it.""" style = element.get_attribute("style") or "" match = re.search(r'url\("?(.*?)"?\)', style) if not match: return None return base64.b64encode(requests.get(match.group(1), timeout=30).content).decode() driver = webdriver.Chrome() wait = WebDriverWait(driver, 15) try: driver.get(PAGE_URL) # 1. Click the checkbox (inside the first hCaptcha iframe) wait.until(EC.frame_to_be_available_and_switch_to_it( (By.CSS_SELECTOR, 'iframe[src*="hcaptcha"][src*="frame=checkbox"]'))) wait.until(EC.element_to_be_clickable((By.ID, "checkbox"))).click() driver.switch_to.default_content() # 2. Solve rounds in the challenge iframe wait.until(EC.frame_to_be_available_and_switch_to_it( (By.CSS_SELECTOR, 'iframe[src*="hcaptcha"][src*="frame=challenge"]'))) for _ in range(5): question = wait.until(EC.presence_of_element_located((By.CSS_SELECTOR, ".prompt-text"))).text.strip() tiles = driver.find_elements(By.CSS_SELECTOR, ".task-image") images = [background_image_b64(t.find_element(By.CSS_SELECTOR, ".image")) for t in tiles] if not tiles or None in images: print("not a 3x3 image challenge; see the docs for click/drag questions") break solution = classify(question, images) for tile, hit in zip(tiles, solution.get("objects", [])): if hit: tile.click() time.sleep(0.3) driver.find_element(By.CSS_SELECTOR, ".button-submit").click() time.sleep(3) if not driver.find_elements(By.CSS_SELECTOR, ".task-image"): break driver.switch_to.default_content() token = driver.find_element(By.NAME, "h-captcha-response").get_attribute("value") print("token received" if token else "not passed") finally: driver.quit() ``` ## Notlar - hCaptcha’nın sayfa yapısı sık değişir; koddaki seçiciler çalışmayı bırakırsa gerçek sayfaya göre düzenleyin. - Her tanıma turunda puan düşülür; hedef bulunamayan turlarda puan düşülmez. Tıklamadan sonra doğrulaması başarısız olan turlar 1 saat içinde [bildirilebilir](https://docs.yescaptcha.com/tr/api/report.md); bildirim sonrası puan iadesi için başvuru yapılır. - Yeni bir soruda `ERROR_UNKNOWN_QUESTION` dönerse sayfayı yenileyerek başka bir soru alabilir veya Destek ile iletişime geçebilirsiniz. --- # Örnek kodlar ve SDK'lar > YesCaptcha için çalıştırılabilir örnek kodlar (Python, Node.js, curl, C#, Easy Language) ve topluluğun geliştirdiği resmi olmayan SDK'lar (Python, Node.js, Go). Source: https://docs.yescaptcha.com/tr/samples/ · 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/samples/ Buradaki örneklerin hepsi eksiksiz ve doğrudan çalıştırılabilir dosyalardır; ClientKey’yi `YESCAPTCHA_CLIENT_KEY` ortam değişkeninden okurlar. Her görev türü sayfasında da o türe göre hazırlanmış curl, Python ve Node.js örnekleri bulunur. [Python](https://docs.yescaptcha.com/tr/samples/python.md)Bakiye sorgulama, ilk istek, yeniden kullanılabilir istemci, eşzamanlı görev denetimi, Selenium [Node.js](https://docs.yescaptcha.com/tr/samples/nodejs.md)Node.js 18+, üçüncü taraf kütüphane gerekmez [C#](https://docs.yescaptcha.com/tr/samples/csharp.md).NET 6+ [Easy Language](https://docs.yescaptcha.com/tr/samples/easy-language.md)Kullanıcıların paylaştığı tıklama simülasyonu örneği Yalnızca komut satırıyla test etmek için curl örneklerine [Hızlı başlangıç](https://docs.yescaptcha.com/tr/getting-started/quickstart.md) ve [getBalance](https://docs.yescaptcha.com/tr/api/get-balance.md) sayfalarından bakabilirsiniz. ## Topluluk SDK’ları Aşağıdaki SDK’lar kullanıcılar tarafından geliştirilmiştir ve **resmi değildir**. Kodlarını incelemedik; kullanmadan önce kendiniz değerlendirin, sorunlar için yazarlarla iletişime geçin: | Dil | Proje | | --- | --- | | Python | [github.com/yescaptcha/yescaptcha-python](https://github.com/yescaptcha/yescaptcha-python) | | Node.js | [github.com/ScoLib/yescaptcha](https://github.com/ScoLib/yescaptcha) | | Go | [github.com/FreedWu/yescaptcha](https://github.com/FreedWu/yescaptcha) | | Go | [github.com/deanxv/yescaptcha-go](https://github.com/deanxv/yescaptcha-go) | Hangi SDK’yı kullanırsanız kullanın, API adresinin `api.yescaptcha.com` veya `cn.yescaptcha.com` olduğunu ve görev türü adlarının bu sitedekilerle aynı olduğunu doğrulayın. --- # Python > YesCaptcha Python örnekleri: bakiye sorgulama, görsel CAPTCHA çözme, yeniden kullanılabilir istemci sınıfı (görev oluşturma, 5 saniyede bir yoklama), asyncio ile eşzamanlı görev kontrolü, requests ve Selenium ile reCAPTCHA gönderme. Source: https://docs.yescaptcha.com/tr/samples/python/ · 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/samples/python/ Çalışma ortamı: Python 3.8 veya üzeri ve `pip install requests`. Çalıştırmadan önce ortam değişkenini ayarlayın: ```bash export YESCAPTCHA_CLIENT_KEY=your_client_key ``` ## Bakiye sorgulama Puan düşümü yapılmaz; ClientKey’nizin doğru olduğunu doğrulamak için kullanılır: get_balance.py ```python """Check the balance. getBalance is free and is a quick way to verify your clientKey.""" import os import requests CLIENT_KEY = os.environ["YESCAPTCHA_CLIENT_KEY"] r = requests.post( "https://api.yescaptcha.com/getBalance", json={"clientKey": CLIENT_KEY}, timeout=30, ) data = r.json() if data.get("errorId"): # e.g. ERROR_KEY_DOES_NOT_EXIST when the clientKey is wrong print("error:", data.get("errorCode"), data.get("errorDescription")) else: print("balance (points):", data["balance"]) ``` ## Görsel CAPTCHA çözme Senkron tür `ImageToTextTaskOcrBase`, sonucu tek istekte döndürür. Örnek resim: [captcha.jpg](https://docs.yescaptcha.com/samples/captcha.jpg). quickstart.py ```python """First request: read an alphanumeric image captcha with ImageToTextTaskOcrBase (synchronous, 2 points per image). Usage: export YESCAPTCHA_CLIENT_KEY=your_client_key python quickstart.py captcha.png """ import base64 import os import sys import requests CLIENT_KEY = os.environ["YESCAPTCHA_CLIENT_KEY"] image_path = sys.argv[1] if len(sys.argv) > 1 else "captcha.png" with open(image_path, "rb") as f: body = base64.b64encode(f.read()).decode() # no "data:" prefix r = requests.post( "https://api.yescaptcha.com/createTask", json={ "clientKey": CLIENT_KEY, "task": {"type": "ImageToTextTaskOcrBase", "body": body}, }, timeout=30, ) data = r.json() if data.get("errorId"): raise SystemExit(f"{data.get('errorCode')}: {data.get('errorDescription')}") print("text:", data["solution"]["text"]) ``` ## Yeniden kullanılabilir istemci Aşağıdaki dosyayı projenize kopyalayın; senkron ve asenkron türlerin ikisiyle de çalışır: yescaptcha.py ```python """A small client you can copy into your project: create tasks, poll results, check the balance. from yescaptcha import YesCaptcha client = YesCaptcha(os.environ["YESCAPTCHA_CLIENT_KEY"]) solution = client.solve({ "type": "NoCaptchaTaskProxyless", "websiteURL": "https://www.google.com/recaptcha/api2/demo", "websiteKey": "6Le-wvkSAAAAAPBMRTvw0Q4Muexq9bi0DJwx_mJ-", }) print(solution["gRecaptchaResponse"]) """ import os import time import requests class YesCaptchaError(Exception): def __init__(self, code, description): super().__init__(f"{code}: {description}") self.code = code self.description = description class YesCaptcha: def __init__(self, client_key, endpoint="https://api.yescaptcha.com", poll_interval=5, timeout=180): self.client_key = client_key self.endpoint = endpoint.rstrip("/") self.poll_interval = poll_interval # 5 s: polling the same taskId more often only returns "processing" self.timeout = timeout self.session = requests.Session() def call(self, method, payload=None): body = {"clientKey": self.client_key, **(payload or {})} data = self.session.post(f"{self.endpoint}/{method}", json=body, timeout=30).json() if data.get("errorId"): raise YesCaptchaError(data.get("errorCode"), data.get("errorDescription")) return data def balance(self): return self.call("getBalance")["balance"] def solve(self, task): created = self.call("createTask", {"task": task}) if created.get("status") == "ready": # synchronous types return the solution directly return created["solution"] task_id = created["taskId"] deadline = time.time() + self.timeout while time.time() < deadline: time.sleep(self.poll_interval) result = self.call("getTaskResult", {"taskId": task_id}) if result.get("status") == "ready": return result["solution"] raise TimeoutError(f"task {task_id} not ready after {self.timeout}s") if __name__ == "__main__": client = YesCaptcha(os.environ["YESCAPTCHA_CLIENT_KEY"]) print("balance:", client.balance()) ``` ```python from yescaptcha import YesCaptcha client = YesCaptcha(os.environ["YESCAPTCHA_CLIENT_KEY"]) solution = client.solve({ "type": "HCaptchaTaskProxyless", "websiteURL": "https://accounts.hcaptcha.com/demo", "websiteKey": "a5f74b19-9e45-40e0-b45d-47ff91b7a6c2", }) print(solution["gRecaptchaResponse"]) ``` Hata durumunda `YesCaptchaError` fırlatılır; `e.code` hata kodudur, anlamları için bkz. [Hata kodları](https://docs.yescaptcha.com/tr/api/errors.md). ## Eşzamanlı görev kontrolü Toplu görev gönderirken aynı anda işlenen istek sayısını sınırlayın; `ERROR_THREADS_MAXIMUM` alırsanız biraz bekleyip yeniden deneyin (`pip install aiohttp` gerekir). Ayrıntılar için bkz. [Eşzamanlı görev sınırı ve otomatik duraklatma](https://docs.yescaptcha.com/tr/api/rate-limits.md): concurrency.py ```python """Limit concurrency: keep the number of requests waiting for a result below your limit, and back off on ERROR_THREADS_MAXIMUM (rejected requests are not charged). Requires: pip install aiohttp""" 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 async def main(tasks): async with aiohttp.ClientSession() as session: return await asyncio.gather(*(solve(session, t) for t in tasks)) if __name__ == "__main__": print(asyncio.run(main([]))) ``` ## reCAPTCHA token’ı gönderme - requests ile doğrudan gönderme: bkz. [Token ile reCAPTCHA’yı tamamlama](https://docs.yescaptcha.com/tr/guides/submit-recaptcha-token.md) - Selenium ile tarayıcıda doldurma: bkz. [Token ile reCAPTCHA’yı tamamlama](https://docs.yescaptcha.com/tr/guides/submit-recaptcha-token.md) - Selenium ile görsel sorularda tıklamayı simüle etme: bkz. [reCAPTCHA v2 görsel tanıma ile tıklama simülasyonu](https://docs.yescaptcha.com/tr/guides/recaptcha-click-selenium.md), [hCaptcha görsel tanıma ile tıklama simülasyonu](https://docs.yescaptcha.com/tr/guides/hcaptcha-click-selenium.md) --- # Node.js > YesCaptcha için Node.js örnekleri (Node.js 18+, yerleşik fetch ile, bağımlılık gerekmez): bakiye sorgulama, görsel CAPTCHA tanıma ve yeniden kullanılabilir bir istemci sınıfı (görev oluşturma, her 5 saniyede bir yoklama). Source: https://docs.yescaptcha.com/tr/samples/nodejs/ · 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/samples/nodejs/ Çalışma ortamı: Node.js 18 veya üzeri (yerleşik `fetch`). Örnekler ES module (`.mjs`) biçimindedir ve herhangi bir üçüncü taraf kütüphane gerektirmez. Çalıştırmadan önce ortam değişkenini ayarlayın: ```bash export YESCAPTCHA_CLIENT_KEY=your_client_key ``` ## Bakiye sorgulama Puan düşümü yapılmaz; ClientKey’nin doğru olduğunu doğrulamak için kullanılır: get-balance.mjs ```js // Check the balance. getBalance is free and is a quick way to verify your clientKey. Node.js 18+ const CLIENT_KEY = process.env.YESCAPTCHA_CLIENT_KEY; const res = await fetch('https://api.yescaptcha.com/getBalance', { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ clientKey: CLIENT_KEY }), }); const data = await res.json(); if (data.errorId) { // e.g. ERROR_KEY_DOES_NOT_EXIST when the clientKey is wrong console.log('error:', data.errorCode, data.errorDescription); } else { console.log('balance (points):', data.balance); } ``` ## Görsel CAPTCHA tanıma Senkron görev türü `ImageToTextTaskOcrBase` sonucu tek istekte döndürür. Örnek görsel: [captcha.jpg](https://docs.yescaptcha.com/samples/captcha.jpg). `node quickstart.mjs captcha.jpg` komutuyla çalıştırın. quickstart.mjs ```js // First request: read an alphanumeric image captcha with ImageToTextTaskOcrBase (synchronous, 2 points per image). // Usage: YESCAPTCHA_CLIENT_KEY=your_client_key node quickstart.mjs captcha.png import { readFileSync } from 'node:fs'; const CLIENT_KEY = process.env.YESCAPTCHA_CLIENT_KEY; const body = readFileSync(process.argv[2] ?? 'captcha.png').toString('base64'); // no "data:" prefix const res = await fetch('https://api.yescaptcha.com/createTask', { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ clientKey: CLIENT_KEY, task: { type: 'ImageToTextTaskOcrBase', body } }), }); const data = await res.json(); if (data.errorId) throw new Error(`${data.errorCode}: ${data.errorDescription}`); console.log('text:', data.solution.text); ``` ## Yeniden kullanılabilir istemci yescaptcha.mjs ```js // A small client you can copy into your project: create tasks, poll results, check the balance. Node.js 18+ // // import { YesCaptcha } from './yescaptcha.mjs'; // const client = new YesCaptcha(process.env.YESCAPTCHA_CLIENT_KEY); // const solution = await client.solve({ type: 'NoCaptchaTaskProxyless', websiteURL: '...', websiteKey: '...' }); export class YesCaptchaError extends Error { constructor(code, description) { super(`${code}: ${description}`); this.code = code; } } export class YesCaptcha { constructor(clientKey, { endpoint = 'https://api.yescaptcha.com', pollInterval = 5000, timeout = 180000 } = {}) { this.clientKey = clientKey; this.endpoint = endpoint.replace(/\/$/, ''); this.pollInterval = pollInterval; // 5 s: polling the same taskId more often only returns "processing" this.timeout = timeout; } async call(method, payload = {}) { const res = await fetch(`${this.endpoint}/${method}`, { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ clientKey: this.clientKey, ...payload }), }); const data = await res.json(); if (data.errorId) throw new YesCaptchaError(data.errorCode, data.errorDescription); return data; } async balance() { return (await this.call('getBalance')).balance; } async solve(task) { const created = await this.call('createTask', { task }); if (created.status === 'ready') return created.solution; // synchronous types return the solution directly const deadline = Date.now() + this.timeout; while (Date.now() < deadline) { await new Promise((r) => setTimeout(r, this.pollInterval)); const result = await this.call('getTaskResult', { taskId: created.taskId }); if (result.status === 'ready') return result.solution; } throw new Error(`task ${created.taskId} not ready after ${this.timeout} ms`); } } if (import.meta.url === `file://${process.argv[1]}`) { const client = new YesCaptcha(process.env.YESCAPTCHA_CLIENT_KEY); console.log('balance:', await client.balance()); } ``` ```js import { YesCaptcha } from './yescaptcha.mjs'; const client = new YesCaptcha(process.env.YESCAPTCHA_CLIENT_KEY); const solution = await client.solve({ type: 'TurnstileTaskProxyless', websiteURL: 'https://example.com/login', websiteKey: '0x4AAAAAAA_SITE_KEY', }); console.log(solution.token); ``` Hata durumunda `YesCaptchaError` fırlatılır; `err.code` hata kodudur, anlamları için [Hata kodları](https://docs.yescaptcha.com/tr/api/errors.md) sayfasına bakın. --- # C# > YesCaptcha C# örneği (.NET 6+, HttpClient + System.Text.Json): Bakiyeyi sorgular, reCAPTCHA v2 görevi oluşturur ve sonucu her 5 saniyede bir yoklar. Source: https://docs.yescaptcha.com/tr/samples/csharp/ · 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/samples/csharp/ Çalışma ortamı: .NET 6 veya üzeri, yalnızca standart kütüphane (`HttpClient`, `System.Text.Json`). ```bash dotnet new console -o YesCaptchaDemo cd YesCaptchaDemo # replace Program.cs with the code below export YESCAPTCHA_CLIENT_KEY=your_client_key dotnet run ``` Program.cs ```csharp // YesCaptcha C# sample (.NET 6+): check the balance, then solve a reCAPTCHA v2. // Run: dotnet new console -o YesCaptchaDemo, replace Program.cs with this file, set YESCAPTCHA_CLIENT_KEY, then dotnet run using System; using System.Net.Http; using System.Net.Http.Json; using System.Text.Json; using System.Text.Json.Nodes; using System.Threading.Tasks; class Program { const string Api = "https://api.yescaptcha.com"; static readonly HttpClient Http = new HttpClient { Timeout = TimeSpan.FromSeconds(30) }; static readonly string ClientKey = Environment.GetEnvironmentVariable("YESCAPTCHA_CLIENT_KEY") ?? ""; static async Task Call(string method, JsonObject payload) { payload["clientKey"] = ClientKey; var res = await Http.PostAsJsonAsync($"{Api}/{method}", payload); var data = JsonNode.Parse(await res.Content.ReadAsStringAsync())!; if ((int?)data["errorId"] != 0) throw new Exception($"{data["errorCode"]}: {data["errorDescription"]}"); return data; } static async Task Solve(JsonObject task) { var created = await Call("createTask", new JsonObject { ["task"] = task }); if ((string?)created["status"] == "ready") return created["solution"]!; // synchronous types var taskId = (string)created["taskId"]!; for (var i = 0; i < 36; i++) // poll every 5 seconds, for up to about 3 minutes { await Task.Delay(5000); var result = await Call("getTaskResult", new JsonObject { ["taskId"] = taskId }); if ((string?)result["status"] == "ready") return result["solution"]!; } throw new TimeoutException(taskId); } static async Task Main() { var balance = await Call("getBalance", new JsonObject()); Console.WriteLine($"balance (points): {balance["balance"]}"); var solution = await Solve(new JsonObject { ["type"] = "NoCaptchaTaskProxyless", ["websiteURL"] = "https://www.google.com/recaptcha/api2/demo", ["websiteKey"] = "6Le-wvkSAAAAAPBMRTvw0Q4Muexq9bi0DJwx_mJ-", }); Console.WriteLine(solution["gRecaptchaResponse"]); } } ``` Başka bir görev türü kullanmak için yalnızca `Solve` içindeki görev nesnesini değiştirin; alanlar her [görev türü](https://docs.yescaptcha.com/tr/tasks.md) sayfasında yer alır. Senkron türler (görsel tanıma, `ImageToTextTaskOcrBase`) sonucu doğrudan `createTask` yanıtında döndürür; `Solve` bu durumu zaten işler. --- # Easy Language (易语言) > Kullanıcılar tarafından hazırlanan YesCaptcha Easy Language (易语言) örnekleri: reCAPTCHA ve hCaptcha için tıklama, FunCaptcha görsel tanıma ve reCAPTCHA token gönderimi; indirme paketleri ve API'nin nasıl çağrılacağı. Source: https://docs.yescaptcha.com/tr/samples/easy-language/ · 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/samples/easy-language/ Easy Language (易语言), Çin’de yaygın olarak kullanılan Çince bir programlama dilidir. Bu örnekler kullanıcılar tarafından (南方填表, 松 ve diğerleri) hazırlanmıştır ve yalnızca referans amaçlıdır; satır satır incelemedik. Örnekler şunları içerir: - reCAPTCHA ve hCaptcha için tıklama (tarayıcıyı başlatır, ardından otomatik olarak tanır ve tıklar) - FunCaptcha görsel tanıma - reCAPTCHA token gönderimi > **İndirme paketleri:** Örnek paketleri (en büyüğü tarayıcı dahil yaklaşık 87 MB) yeni bir indirme adresine taşınıyor. O zamana kadar paketleri almak için [Destek](https://docs.yescaptcha.com/tr/help/contact.md) ile iletişime geçin. ## Easy Language ile API’yi çağırma API’yi çağırmak için paketlere gerek yoktur; POST kullanan bir web erişim komutu yeterlidir: 1. Adres `https://api.yescaptcha.com/createTask`, yöntem `POST`, başlık `Content-Type: application/json`. 2. Gönderilen içerik JSON metnidir, örneğin `{"clientKey":"YOUR_CLIENT_KEY","task":{"type":"ImageToTextTaskOcrBase","body":"BASE64_IMAGE"}}`. 3. Yanıttaki JSON’da `errorId` değerinin 0 olması başarı anlamına gelir. Asenkron görev türlerinde `taskId` değerini alın ve `status` değeri `ready` olana kadar her 5 saniyede bir `https://api.yescaptcha.com/getTaskResult` adresine `{"clientKey":"…","taskId":"…"}` gönderin. 4. Görselin Base64 çıktısında `data:image/...;base64,` öneki ve satır sonu karakterleri bulunmamalıdır. İstek ve yanıt biçimleri için bkz. [İstek ve yanıt](https://docs.yescaptcha.com/tr/api/overview.md). ## Örnek çalışmıyorsa - Tarayıcı oluşturulamıyor hatası: paketle birlikte gelen tarayıcıyı kullanın, çakışma olasılığı olan diğer tarayıcıları kaldırın veya programı derleyip öyle çalıştırın. - Hata kodu döndürülüyorsa: parametreleri [Hata kodları](https://docs.yescaptcha.com/tr/api/errors.md) sayfasına göre kontrol edin. --- # Birden fazla ClientKey: limit, IP izin listesi ve son kullanma > Bir YesCaptcha hesabında en fazla 20 ClientKey olabilir ve hepsi aynı hesap bakiyesinden düşer. Her biri için ayrı harcama limiti (günlük, haftalık, aylık veya tek seferlik; Pekin saatine göre sıfırlanır), IP izin listesi ve son kullanma tarihi belirlenebilir; değişiklikler birkaç saniye içinde geçerli olur. Source: https://docs.yescaptcha.com/tr/account/client-keys/ · Last verified: 2026-10-29 > This page was machine-translated from the Chinese version. If anything differs, the Chinese version prevails: https://docs.yescaptcha.com/zh/account/client-keys/ Bir YesCaptcha hesabında (mevcut olan dahil) en fazla 20 `clientKey` olabilir. Bunlar [yescaptcha.com](https://yescaptcha.com/security) panelindeki “Anahtarlar ve güvenlik” sayfasından yönetilir. Her `clientKey` görev oluşturabilir ve bakiye sorgulayabilir; hepsi aynı hesap bakiyesinden düşer. Her biri için ayrı harcama limiti, IP izin listesi ve son kullanma tarihi belirlenebilir; değişiklikler birkaç saniye içinde geçerli olur. Şu durumlarda işe yarar: test ve üretim ortamlarını ya da farklı projeleri ayırmak; alt müşterilere veya iş ortaklarına, her birine ayrı limitle anahtar vermek; bir `clientKey` sızarsa yalnızca onu silmek, diğer programları etkilememek. ## Ana Key ve alt Key’ler | | Ana Key | Alt Key | | --- | --- | --- | | Hangisi | Mevcut `clientKey`; hesap başına bir tane | Ana Key’in dışında oluşturulanlar; en fazla 19 | | Limit, IP izin listesi, son kullanma | Ayarlanabilir | Ayarlanabilir | | Sıfırlama | Evet: eskisi hemen geçersiz olur, bakiye yenisine geçer | Hayır; silip yeniden oluşturun | | Silme | Hayır | Evet: birkaç saniye içinde geçersiz olur, geri alınamaz | - Hepsinin biçimi aynıdır: ilk 40 karakter anahtardır, ardından kullanıcı ID’niz gelir. - Ana Key’i sıfırlamak alt Key’leri etkilemez. - Görev oluşturmak ve bakiye sorgulamak için hangi `clientKey`’i kullanırsanız kullanın, API ve yanıtlar aynıdır; yalnızca limit, IP izin listesi ve son kullanma kontrolleri eklenir. ## Yeni clientKey oluşturma 1. [yescaptcha.com](https://yescaptcha.com/) adresinde giriş yapın ve “Anahtarlar ve güvenlik” sayfasını açın ([yescaptcha.com/security](https://yescaptcha.com/security)). 2. “Tüm Key’ler” bölümünde “Yeni alt Key”e tıklayın. Ad (en fazla 40 karakter), Limit, IP izin listesi ve Son kullanma alanlarını boş bırakabilirsiniz; sonradan da değiştirilebilir. 3. İstendiğinde kimliğinizi bir kez daha doğrulayın. Oluşturma, değiştirme ve silme işlemlerinin hepsinde doğrulama gerekir. 4. Oluşturduktan sonra tam `clientKey` değerini kopyalayıp programınıza ekleyin. Sonradan listedeki göz simgesine tıklayarak da görebilirsiniz. > **Not:** Oluşturma, değiştirme ve silme birkaç saniye içinde geçerli olur. Oluşturduktan hemen sonra yapılan çağrı `ERROR_KEY_DOES_NOT_EXIST` döndürebilir; birkaç saniye bekleyip yeniden deneyin. Silme veya ayarları sıkılaştırma sonrasındaki birkaç saniye içinde, halihazırda gönderilmiş istekler eski ayarlara göre işlenebilir. ## Harcama limiti Limit, bir `clientKey`’in bir dönemde en fazla kaç puan harcayabileceğini belirler (1,000 puan = ¥1). 1 ile 10,000,000,000 puan arasında ayarlanabilir. Dönem dört türlüdür ve Pekin saatine (UTC+8) göre sıfırlanır: | Dönem | Ne zaman sıfırlanır | | --- | --- | | Günlük | Her gün saat 00:00 | | Haftalık | Her Pazartesi saat 00:00 | | Aylık | Her ayın 1’i saat 00:00 | | Tek seferlik toplam | Sıfırlanmaz. Tükendiğinde bu `clientKey` artık görev oluşturamaz; kullanmaya devam etmek için limiti yükseltin | - Fiilen düşülen puan hesaplanır: tanıma başarısız olduğunda veya zaman aşımında iade edilen puanlar limite de geri eklenir. - Mevcut dönemde kalan limit görevin puan düşümüne yetmezse `createTask` [`ERROR_KEY_QUOTA_EXCEEDED`](https://docs.yescaptcha.com/tr/api/errors.md#ERROR_KEY_QUOTA_EXCEEDED) döndürür; puan düşülmez ve [otomatik duraklatma](https://docs.yescaptcha.com/tr/api/rate-limits.md) sayılmaz. - Paneldeki listede her `clientKey`’in mevcut dönemde ne kadar kullandığı ve bir sonraki sıfırlanma zamanı görünür. - Limit ayrı bir bakiye değildir: tüm `clientKey`’ler aynı hesap bakiyesinden düşer; hesap bakiyesi yetmezse her zamanki gibi `ERROR_ZERO_BALANCE` döner. Limit ayarlanmış bir `clientKey` ile [`getBalance`](https://docs.yescaptcha.com/tr/api/get-balance.md) çağırdığınızda `balance`, hesap bakiyesi ile mevcut dönemde kalan limitten küçük olanıdır; ayrıca `keyQuotaRemaining` alanı (kalan limit, puan cinsinden) eklenir. Limit ayarlanmamış `clientKey` için bu alan gelmez, yanıt eskisi gibidir. ```json { "errorId": 0, "balance": 20000, "softBalance": 0, "inviteBalance": 0, "inviteBy": 0, "keyQuotaRemaining": 20000 } ``` ## IP izin listesi IP izin listesi ayarlanmış bir `clientKey`, yalnızca listedeki IP’lerden gelen isteklerde çalışır. Boş bırakırsanız kısıtlama olmaz. - **YesCaptcha API’sini çağıran makinenin genel IP’sini** (çıkış IP’si) girin; görev parametrelerindeki proxy’yi değil. Birden fazla makineden çağrı yapıyorsanız her birinin genel IP’sini ekleyin. - Her satıra bir IPv4 veya IPv6 adresi ya da CIDR aralığı yazın; en fazla 50 kayıt. Tek bir adres yalnızca o IP’ye izin verir. - Aralıklar ağ adresi olarak yazılmalıdır: `203.0.113.0/24` kabul edilir, `203.0.113.5/24` edilmez (host bitleri sıfır değil). ```text 203.0.113.10 198.51.100.0/24 2001:db8::/32 ``` - İstek IP’si listede değilse `createTask` ve `getBalance` [`ERROR_KEY_IP_NOT_ALLOWED`](https://docs.yescaptcha.com/tr/api/errors.md#ERROR_KEY_IP_NOT_ALLOWED) döndürür; puan düşülmez ve otomatik duraklatma sayılmaz. - Çıkış IP’si değişenlerde (ev interneti, bulut fonksiyonları, dönen çıkışlar) izin listesi ayarlamayın veya tüm aralığı ekleyin. ## Son kullanma - Herhangi bir `clientKey` (Ana Key dahil) için on yıl içinde bir son kullanma tarihi belirlenebilir; sonradan istediğiniz zaman değiştirilebilir veya kaldırılabilir. - Süresi dolduktan sonra bu anahtarla yapılan `createTask` ve `getBalance` çağrıları [`ERROR_KEY_EXPIRED`](https://docs.yescaptcha.com/tr/api/errors.md#ERROR_KEY_EXPIRED) döndürür; puan düşülmez. Daha önce oluşturulmuş görevlerin sonucu `getTaskResult` ile yine alınabilir. - Uzun süre kullanılmayan `clientKey`’lere sistem, hesap güvenliği için bir son kullanma tarihi koyar ve süre dolmadan önce e-posta ile hatırlatır. Bu son kullanma tarihi değiştirilemez: Ana Key’i yeniden oluşturun (bakiye otomatik olarak yenisine geçer) veya yeni bir `clientKey` oluşturun, ardından programınızı güncelleyin. ## Bakiye, eşzamanlı görev sınırı ve otomatik duraklatma - **Bakiye**: tüm `clientKey`’ler aynı hesap bakiyesinden düşer. Bakiye yükleme, VIP bonusu, davet ödülü ve geliştirici gelir payı hesap bazında işler; hangi `clientKey`’i kullandığınızdan bağımsızdır. - **Eşzamanlı görev sınırı**: hesap bazında hesaplanır; tüm `clientKey`’ler aynı üst sınırı paylaşır. Bkz. [Eşzamanlı görev sınırı ve otomatik duraklatma](https://docs.yescaptcha.com/tr/api/rate-limits.md). - **Otomatik duraklatma**: her `clientKey` için ayrı hesaplanır; bir `clientKey` çok fazla hata nedeniyle duraklatılırsa diğerleri etkilenmez. ## İlgili hata kodları | Hata kodu | Ne zaman döner | | --- | --- | | [`ERROR_KEY_QUOTA_EXCEEDED`](https://docs.yescaptcha.com/tr/api/errors.md#ERROR_KEY_QUOTA_EXCEEDED) | Mevcut dönemde kalan limit bu görevin puan düşümüne yetmiyor (`createTask`) | | [`ERROR_KEY_IP_NOT_ALLOWED`](https://docs.yescaptcha.com/tr/api/errors.md#ERROR_KEY_IP_NOT_ALLOWED) | İstek IP’si bu `clientKey`’in IP izin listesinde değil (`createTask`, `getBalance`) | | [`ERROR_KEY_EXPIRED`](https://docs.yescaptcha.com/tr/api/errors.md#ERROR_KEY_EXPIRED) | `clientKey`’in süresi dolmuş (`createTask`, `getBalance`) | Bunların hiçbirinde puan düşülmez. Yapılacaklar için bkz. [Hata kodları](https://docs.yescaptcha.com/tr/api/errors.md). --- # Bakiye yükleme ve VIP > YesCaptcha'ya bakiye yükleme (WeChat Pay, Alipay, PayPal, kripto para); 1,000 puan = ¥1. Toplam yüklemeniz arttıkça VIP 1'den VIP 10'a otomatik yükselirsiniz, sonraki her yüklemede oranına göre bonus puan eklenir. Source: https://docs.yescaptcha.com/tr/account/recharge/ · 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/account/recharge/ Panel’deki bakiye yükleme sayfasından ([yescaptcha.com/payment.html](https://yescaptcha.com/payment.html)) yükleme yapabilirsiniz; ana site: [yescaptcha.com](https://yescaptcha.com/). 1,000 puan = ¥1 oranıyla hesaplanır ve yükleme hesabınıza geçtiği anda kullanılabilir. Toplam yüklemeniz belirli tutarlara ulaştığında VIP seviyeniz otomatik olarak yükselir; bundan sonraki her yüklemede VIP seviyenizin oranında ek puan bonus olarak eklenir. ## Ödeme yöntemleri | Yöntem | Açıklama | | --- | --- | | WeChat Pay | QR kodu tarayarak ödeme | | Alipay | QR kodu tarayarak veya yönlendirme ile ödeme | | PayPal | Çin dışındaki kullanıcılar için uygundur | | Kripto para | Cryptomus üzerinden; BTC, ETH, USDT ve diğerleri desteklenir | | Kurumsal havale | Destek ile iletişime geçin; finans onayından sonra bakiye elle yüklenir | Yükleme geçmişinizi bakiye yükleme sayfasında görebilirsiniz. Ödeme sırasında sorun yaşarsanız sipariş bilgileriyle birlikte [Destek](https://docs.yescaptcha.com/tr/help/contact.md) ile iletişime geçin. ## VIP seviyeleri Toplam yükleme tutarınız aşağıdaki tablodaki eşiğe ulaştığında ilgili seviyeye otomatik olarak yükselirsiniz; yükseldikten sonraki her yüklemede bonus oranı kadar ek puan hesabınıza geçer. | Seviye | Toplam bakiye yükleme | Her yüklemede bonus | | --- | --- | --- | | VIP 1 | ¥10 | 2% | | VIP 2 | ¥100 | 5% | | VIP 3 | ¥500 | 8% | | VIP 4 | ¥1.000 | 10% | | VIP 5 | ¥2.000 | 15% | | VIP 6 | ¥3.000 | 20% | | VIP 7 | ¥6.000 | 25% | | VIP 8 | ¥12.000 | 30% | | VIP 9 | ¥24.000 | 35% | | VIP 10 | ¥48.000 | 40% | - **Toplam üzerinden hesaplanır**: kaç kez yükleme yaptığınız fark etmez, toplam tutar eşiğe ulaştığında seviyeniz yükselir. - **Yükleme sonrası toplam esas alınır**: örneğin ilk yüklemenizde ¥1,000 yüklerseniz toplam tutar VIP 4 eşiğine ulaşır ve bu yükleme de VIP 4 oranında bonus alır. - Bir arkadaşınızın davet bağlantısıyla kayıt olduğunuzda doğrudan belirli bir VIP seviyesi kazanırsınız; bkz. [Davet ödülü](https://docs.yescaptcha.com/tr/account/referral.md). - Mevcut seviyenizi ve bonus oranınızı bakiye yükleme sayfasında görebilirsiniz. --- # Davet ödülü > YesCaptcha davet ödülü. Davet ettiğiniz kullanıcı kayıt olur olmaz VIP seviyesi kazanır (sizin seviyeniz eksi 1, VIP 1 ile VIP 6 arası), siz de onun harcama tutarının %20'sini alırsınız (geliştirici gelir payı da varsa %10'ar paylaşılır). Ödülü bakiyeye aktarabilir veya ¥100'e ulaşınca Panel'den para çekme talebi oluşturabilirsiniz. Source: https://docs.yescaptcha.com/tr/account/referral/ · 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/account/referral/ Arkadaşlarınızı YesCaptcha’ya davet edin. Davet ettiğiniz kişi kayıt olur olmaz bir VIP seviyesi kazanır, siz de onun harcama tutarının %20’sini ödül olarak alırsınız. Ödülü hesap bakiyenize aktarabilir veya ¥100’e ulaştığında Panel’den para çekme talebi oluşturabilirsiniz. ## Nasıl davet edilir [yescaptcha.com](https://yescaptcha.com/) Paneli’ne giriş yapın. Genel bakış sayfasındaki Davet Programı bölümünde davet bağlantınızı, davet ettiğiniz kişi sayısını ve toplam ödülünüzü görebilirsiniz. Davet bağlantısını arkadaşlarınıza gönderin; kayıt işlemini bu bağlantı üzerinden yapmaları yeterlidir. ## Kurallar 1. **Arkadaşınızın VIP seviyesi**: Arkadaşınız kayıt olduğunda sizin VIP seviyenizin bir eksiğini alır; en düşük VIP 1, en yüksek VIP 6’dır. Örneğin siz VIP 6 iseniz arkadaşınız kayıt sonrasında VIP 5 olur. Seviyelere göre bonus oranları için [Bakiye yükleme ve VIP](https://docs.yescaptcha.com/tr/account/recharge.md) sayfasına bakın. 2. **Ödülünüz**: Arkadaşınız her harcama yaptığında (tanıma için puan düşümü), harcama tutarının **%20**’sini alırsınız. 3. **Geliştirici gelir payı ile birlikte olduğunda**: Arkadaşınızın görevleri aynı zamanda bir geliştiricinin ID’sini de taşıyorsa ([Geliştirici gelir payı](https://docs.yescaptcha.com/tr/account/developer.md) sayfasına bakın), davet eden kişi ve geliştirici **%10’ar pay alır**. 4. Arkadaşınızın yanlış tanıma bildirip puan iadesi aldığı görevlerde, o görevlere ait ödül geri alınır. 5. Ödül bakiyenizi [getBalance](https://docs.yescaptcha.com/tr/api/get-balance.md) yanıtındaki `inviteBalance` alanından sorgulayabilirsiniz (birim: yuan). ## Ödülü kullanma - **Bakiyeye aktarma**: Panel’de ödülü hesap bakiyenize aktarın; bakiye, 1,000 puan = ¥1 oranıyla tanıma için kullanılır. - **Para çekme**: Ödülünüz **¥100**’e ulaştığında Panel’den para çekme talebi gönderin; talep incelendikten sonra ödeme yapılır. - Para çekme gelirinden doğan gelir vergisini kendiniz beyan etmelisiniz. ## Yazı yazarak tanıtım Forum, blog, Zhihu, WeChat resmi hesabı gibi platformlarda YesCaptcha ile ilgili tavsiye, eğitim, deneyim paylaşımı, eklenti veya kod kitaplığı yayımlarsanız bağlantıyı Destek’e gönderebilirsiniz. İçeriği değerlendirir, içerik kalitesine göre puan veya VIP seviyesi ödülü verebiliriz. Ödül kurallarında değişiklik olursa bu sayfa ve [Hizmet değişiklik günlüğü](https://docs.yescaptcha.com/tr/changelog.md) esas alınır. --- # Geliştirici gelir payı > YesCaptcha geliştirici gelir payı: geliştirdiğiniz yazılım veya eklentinin kullanıcı istekleriyle birlikte softID'nizi göndermesi halinde kullanıcının harcama tutarının %20'sini alırsınız (davet eden kişi de varsa %10'ar paylaşılır); bakiyeye aktarabilir veya ¥100 tutarına ulaştığında Panel'den para çekme talebi oluşturabilirsiniz. Source: https://docs.yescaptcha.com/tr/account/developer/ · 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/account/developer/ YesCaptcha’yı kullanan bir yazılım, betik veya eklenti geliştirdiyseniz, başkalarına sunarken isteklerine geliştirici ID’nizi (`softID`) ekleyin; harcamalarına göre gelir payı alırsınız. Kullanıcılar kendi `clientKey` değerlerini kullanır ve kendi puanlarından düşüm yapılır; gelir payı kullanıcıya ek maliyet getirmez. ## Entegrasyon 1. Kendi `clientKey` değerinizle [getSoftID](https://docs.yescaptcha.com/tr/api/get-soft-id.md) çağrısı yaparak geliştirici ID’nizi alın: ```json { "errorId": 0, "softID": 3, "balance": 0.004 } ``` 2. Yazılımınızın gönderdiği her `createTask` isteğine üst düzey `softID` alanını ekleyin (`clientKey` ve `task` ile aynı seviyede; büyük/küçük harfe dikkat edin): ```json { "clientKey": "THE_USERS_CLIENT_KEY", "task": { "type": "NoCaptchaTaskProxyless", "websiteURL": "https://www.google.com/recaptcha/api2/demo", "websiteKey": "6Le-wvkSAAAAAPBMRTvw0Q4Muexq9bi0DJwx_mJ-" }, "softID": 3 } ``` `clientKey`, kullanıcının kendi anahtarıdır. ## Gelir payı kuralları - `softID`’nizi taşıyan görevlerde, kullanıcının fiilen harcadığı tutarın **%20’si** geliştirici gelir payınıza eklenir. - Kullanıcı aynı zamanda başka biri tarafından davet edilmişse ([Davet ödülü](https://docs.yescaptcha.com/tr/account/referral.md) bölümüne bakın), geliştirici ve davet eden kişi **%10’ar** alır. - Yalnızca puan düşümü yapılan görevler gelir payı sağlar; başarısız olan veya zaman aşımına uğrayıp puan iadesi yapılan görevlerde gelir payı yoktur. Kullanıcı hatalı sonucu bildirip bildirim sonrası puan iadesi alırsa, o göreve ait gelir payı geri alınır. - Gelir payı bakiyenizi, [getSoftID](https://docs.yescaptcha.com/tr/api/get-soft-id.md) yanıtındaki `balance` alanı veya [getBalance](https://docs.yescaptcha.com/tr/api/get-balance.md) yanıtındaki `softBalance` alanı ile sorgulayabilirsiniz; birim yuandır (¥). ## Gelir payını kullanma - **Bakiyeye aktarma**: Panel’den gelir payını hesap bakiyenize aktarın; 1,000 puan = ¥1 oranıyla tanıma işlemlerinde kullanılır. - **Para çekme**: Gelir payı **¥100** tutarına ulaştığında Panel’den para çekme talebi oluşturun; talep incelendikten sonra ödeme yapılır. - Para çekme gelirinden doğan gelir vergisini kendiniz beyan etmekle yükümlüsünüz. --- # Sık Sorulan Sorular > YesCaptcha sık sorulan sorular: başarısız tanımada puan düşümü olup olmadığı, token'ın geçerlilik süresi, geçme oranı, tanımanın insan mı makine mi yaptığı, hesabın engellenip engellenmeyeceği, tek bir ClientKey'nin birden fazla yerde kullanımı, hangi uç noktanın seçileceği, eklenti ile API arasındaki fark. Source: https://docs.yescaptcha.com/tr/help/faq/ · 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/help/faq/ ## YesCaptcha tanıma başarısız olursa puan düşer mi? Düşmez. Tanıma başarısız olan (`ERROR_CAPTCHA_UNSOLVABLE`) ve zaman aşımına uğrayan (`ERROR_TASK_TIMEOUT`) görevlerde puan otomatik iade edilir; parametre hatası gibi hata kodu döndüren isteklerde puan düşümü yapılmaz. Token alınmış ama hedef site tarafından kabul edilmemişse görev başarılı sayılır ve ücretlendirilir, çünkü sitenin kararını bilemeyiz; görsel tanıma türlerinde yanlış tıklama olduysa bildirim yaparak puan iadesi talep edebilirsiniz. Ayrıntılar için [Ücretlendirme ve puan iadesi](https://docs.yescaptcha.com/tr/getting-started/billing.md) sayfasına bakın. ## Bir tanıma kaç puan tutar? Görev türüne göre sabit puan düşülür; 1,000 puan = ¥1 olup fiyat türe göre değişir. Tüm fiyatlar [Görev türleri ve fiyatlar](https://docs.yescaptcha.com/tr/tasks.md) sayfasındadır, makine tarafından okunabilir sürüm için [/data/task-types.json](https://docs.yescaptcha.com/data/task-types.json) adresine bakın. ## Token ne kadar süre geçerlidir? reCAPTCHA, hCaptcha ve Turnstile token’ları tek kullanımlıktır. reCAPTCHA token’ı yaklaşık 120 saniye geçerlidir; alındıktan sonra 60 saniye içinde göndermeniz önerilir. Geçerlilik süresini CAPTCHA sağlayıcısı belirler. ## Aldığım token neden bazen geçmiyor? Token’ın geçip geçmeyeceğine hedef site karar verir. Site skor, IP, tarayıcı ortamı gibi etkenleri birlikte değerlendirir ve eşiği her an değiştirebilir; bu yüzden geçme oranı siteye göre değişir. Aynı CAPTCHA için başka görev türlerini karşılaştırabilir, kendi proxy’nizi kullanan bir tür seçip göndermeyi aynı proxy üzerinden yapabilir ya da görsel tanımaya geçip tarayıcıda gerçekten tıklayabilirsiniz. ## Tanıma ne kadar sürer? Asenkron görevler genellikle birkaç saniye ile birkaç on saniye arasında sürer, en uzun yaklaşık 110 saniyedir (bazı türlerde 180 ile 220 saniye). Zaman aşımında puan otomatik iade edilir. Görsel tanıma ve görselden metin (alfanümerik) türleri senkrondur; tek bir istekte sonuç döner. ## Tanıma insan tarafından mı, makine tarafından mı yapılıyor? Makine tarafından, makine öğrenmesi modelleriyle yapılır. ## YesCaptcha kullanmak hesabımın engellenmesine yol açar mı? Yalnızca tanıma sonucunu döndürürüz; hedef sitedeki hesabınıza erişmeyiz. Hedef sitenin etkinliği nasıl değerlendirdiği ve hesapları engelleyip engellemediği sitenin kendi kararıdır; lütfen hedef sitenin kurallarına uyun. YesCaptcha yalnızca yasal amaçlarla kullanılabilir, yasa dışı kullanım yasaktır. ## Bir ClientKey birden fazla programda veya tarayıcıda aynı anda kullanılabilir mi? Evet. Aynı hesaptaki istekler [eşzamanlı görev sınırını](https://docs.yescaptcha.com/tr/api/rate-limits.md) birlikte kullanır ve aynı bakiyeyi paylaşır. ## Global uç nokta mı, Çin uç noktası mı kullanmalıyım? Sunucunuz Çin anakarasındaysa `cn.yescaptcha.com`, diğer bölgelerde `api.yescaptcha.com` kullanın. Bir görevi hangi uç noktada oluşturduysanız sonucu da o uç noktadan sorgulayın. Bkz. [Erişim adresleri](https://docs.yescaptcha.com/tr/getting-started/endpoints.md). ## Tarayıcı eklentisi ile API arasındaki fark nedir? Eklenti de tanıma için aynı API’yi çağırır; ücretsiz kurulur, kullandığı API çağrıları kadar puan düşülür ve kod yazmadan tarayıcıda kullanmak isteyenler için uygundur. API ise programlarda toplu işlem için uygundur. Bkz. [Tarayıcı eklentisi](https://docs.yescaptcha.com/tr/extension.md). ## ERROR\_IP\_BLOCKED\_5MIN hatasıyla neden duraklatıldım? Aynı ClientKey bir dakika içinde çok fazla hatalı istek üretti ve birkaç dakikalığına otomatik olarak duraklatıldı; süre dolunca otomatik olarak devam eder. Yanıttaki `blockReason`, duraklatmayı tetikleyen hata kodudur; programınızı buna göre düzeltin. Bkz. [Eşzamanlı görev sınırı ve otomatik duraklatma](https://docs.yescaptcha.com/tr/api/rate-limits.md). ## Hangi siteler destekleniyor? Belirli sitelere göre değil, CAPTCHA türüne göre tanıma sağlıyoruz. Geçip geçemeyeceğiniz hedef sitenin ayarlarına bağlıdır; önce küçük bir toplu denemeyle test etmeniz önerilir. Desteklenmeyen sitelerde `ERROR_DOMAIN_NOT_ALLOWED` döner. --- # Bağlantı sorunları > YesCaptcha API'sine bağlanamadığınızda ne yapmalı. Failed to establish a new connection, DNS çözümleme hatası, proxy yazılımı kaynaklı sorunlar ve SSL sertifika hataları (Certificate has expired, SSLEOFError) için kontrol adımları. Source: https://docs.yescaptcha.com/tr/help/troubleshooting/ · 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/help/troubleshooting/ API çağrılırken alınan bağlantı hataları (örneğin `Failed to establish a new connection`, `getaddrinfo failed`, zaman aşımı, SSL hataları) genellikle yerel ağdan, DNS’ten veya proxy yazılımından kaynaklanır. Aşağıdaki sırayla kontrol edin. ## 1\. Önce başka bir uç nokta deneyin YesCaptcha’nın iki uç noktası vardır: `https://api.yescaptcha.com` (global) ve `https://cn.yescaptcha.com` (Çin). Çin anakarasındaki sunucularda Çin uç noktasını, diğer bölgelerde global uç noktayı kullanın. Uç noktayı değiştirdiğinizde sonuç sorgularını da aynı uç noktadan yapın. ```bash curl -s https://api.yescaptcha.com/getBalance -H 'Content-Type: application/json' -d '{"clientKey": "YOUR_CLIENT_KEY"}' curl -s https://cn.yescaptcha.com/getBalance -H 'Content-Type: application/json' -d '{"clientKey": "YOUR_CLIENT_KEY"}' ``` Biri JSON döndürüyorsa ağınız çalışıyordur; sorun diğer uç noktaya giden hattadır. ## 2\. Proxy yazılımını kontrol edin YesCaptcha’ya erişmek için proxy gerekmez. Bilgisayarda proxy veya VPN yazılımı açıksa: - Önce kapatıp yeniden deneyin; - Açık kalması gerekiyorsa genel mod yerine kural tabanlı (PAC) modu kullanın ya da `api.yescaptcha.com` ve `cn.yescaptcha.com` adreslerini doğrudan bağlantı listesine ekleyin; - Python’da proxy açıkken alınan `SSLEOFError(8, 'EOF occurred in violation of protocol')` hatası da çoğunlukla proxy kaynaklıdır; proxy’yi kapatın veya bu iki alan adının doğrudan bağlanmasını sağlayın. ## 3\. Ağı ve DNS’i kontrol edin ```bash ping api.yescaptcha.com ``` - Ana makine bulunamadı uyarısı: DNS çözümleme hatasıdır. DNS önbelleğini temizleyin (Windows: `ipconfig /flushdns`; macOS: `sudo dscacheutil -flushcache; sudo killall -HUP mDNSResponder`) ya da bilgisayarınızın DNS’ini genel bir DNS’e (örneğin `223.5.5.5`, `119.29.29.29`, `8.8.8.8`) değiştirip yeniden deneyin. - Ping yanıt vermiyor ama adres çözümleniyorsa: ağ ICMP’yi engelliyor olabilir; bu, API’ye erişilemediği anlamına gelmez. 1. adımdaki curl sonucuna göre karar verin. ## 4\. SSL sertifika hataları - `Certificate has expired` veya `certificate verify failed` hatası: önce bilgisayarınızın **sistem saatinin** doğru olduğunu kontrol edin; ardından işletim sistemini, Python’un `certifi` paketini ve Postman gibi araçları en son sürüme güncelleyin, böylece güncel kök sertifikalar kullanılır. - Her zaman `https://` kullanın; sertifika hatasını aşmak için `http://` kullanmayın veya sertifika doğrulamasını kapatmayın. ## 5\. Hâlâ çözülmediyse [Destek ile iletişime geçin](https://docs.yescaptcha.com/tr/help/contact.md) ve şunları ekleyin: hatanın tam metni, kullandığınız uç nokta, sunucunuzun bulunduğu bölge, 1. adımdaki curl çıktısı. --- # Bize ulaşın > YesCaptcha destek ekibine WeChat, QQ, WhatsApp, LINE, Telegram @yescaptcha_official veya yescaptcha@gmail.com e-posta adresi üzerinden ulaşın. Hizmet saatleri UTC+8 9:00–21:00. Source: https://docs.yescaptcha.com/tr/help/contact/ · 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/help/contact/ YesCaptcha destek ekibinin hizmet saatleri **UTC+8 (Pekin saati) 9:00–21:00** arasındadır. Yanıt gecikirse mesaj bırakın, en kısa sürede ilgileneceğiz. - E-posta: [yescaptcha@gmail.com](mailto:yescaptcha@gmail.com) - Telegram: [@yescaptcha\_official](https://t.me/yescaptcha_official) QR kodu tarayarak ekleyin: ![WeChat QR code](https://docs.yescaptcha.com/_astro/wechat.0S3mrXSw_23wIJJ.webp) **WeChat**WeChat ile QR kodu tarayıp bizi ekleyin; sizi kullanıcı grubuna da ekleyebiliriz ![QQ QR code](https://docs.yescaptcha.com/_astro/qq.BgQtfUc8_1c2tQ5.webp) **QQ**QQ ile QR kodu tarayıp bizi ekleyin ![WhatsApp QR code](https://docs.yescaptcha.com/_astro/whatsapp.DmFyivnb_Z13FQrc.webp) **WhatsApp**WhatsApp kamerasıyla QR kodu tarayarak ekleyin ![LINE QR code](https://docs.yescaptcha.com/_astro/line.ANS_EG-W_ZpyibU.webp) **LINE**LINE'da "Arkadaş ekle" bölümünden QR kodu tarayın ![Telegram QR code](https://docs.yescaptcha.com/_astro/telegram.Dadv3iCz_ZgTd7t.webp) **[Telegram](https://t.me/yescaptcha_official)**@yescaptcha\_official Bizimle iletişime geçerken lütfen şunları ekleyin: - Hesabınızın e-posta adresi veya kullanıcı ID’si (`clientKey` değerini **asla** göndermeyin); - İlgili `taskId`, hata kodu ve olayın gerçekleştiği zaman; - Hangi görev türünü ve hangi uç noktayı (`api.yescaptcha.com` veya `cn.yescaptcha.com`) kullandığınız. Birçok sorunun yanıtını [Sık sorulan sorular](https://docs.yescaptcha.com/tr/help/faq.md), [Hata kodları](https://docs.yescaptcha.com/tr/api/errors.md) ve [Bağlantı ve ağ sorunları](https://docs.yescaptcha.com/tr/help/troubleshooting.md) sayfalarında bulabilirsiniz. --- # Hizmet güncelleme kayıtları > YesCaptcha kullanıcılarını etkileyen değişiklikler, tarihe göre: açılan ve kapatılan görev türleri, ücretlendirme ve puan iadesi kuralları, eşzamanlı görev sınırı, belgelerin taşınması. Kayıtlar 2026-10'dan itibaren tutulmaktadır. Source: https://docs.yescaptcha.com/tr/changelog/ · Last verified: 2026-10-19 > This page was machine-translated from the Chinese version. If anything differs, the Chinese version prevails: https://docs.yescaptcha.com/zh/changelog/ Bu sayfa, kullanıcıları etkileyen değişiklikleri tarihe göre kaydeder: görev türlerinin açılması ve kapatılması, ücretlendirme kuralları, sınırlama kuralları vb. En yeni kayıt en üsttedir. ## 2026-10-19 - **Cloudflare doğrulama sayfası artık “Önerilmez” olarak işaretlenmiyor**: `CloudFlareTaskS2` ve `CloudFlareTaskS3` için hizmet yeniden kuruldu; tek bir görev genellikle 6 ila 35 saniye sürer. İki türün parametreleri, döndürdüğü sonuç ve başarı oranı aynıdır; fiyatlar değişmedi (25 puan, 20 puan). Proxy olarak yalnızca `http://` (kullanıcı adı ve şifre isteğe bağlı) ve kullanıcı adı/şifresiz `socks5://` desteklenir; `https://` proxy’leri, yerel makine ve iç ağ adresleri görev oluşturulurken reddedilir (puan düşülmez). `userAgent` yalnızca Linux masaüstü Chrome’a aitse kullanılır; sonraki isteklerde sonuçtaki `user_agent` değerini kullanın. `requiredCookies` gönderdiyseniz görevin başarılı sayılması için hepsinin alınması gerekir. Bkz. [Cloudflare doğrulama sayfası](https://docs.yescaptcha.com/tr/tasks/cloudflare-challenge.md). ## 2026-10-16 - **FunCaptcha’nın token döndüren görev türleri şimdilik önerilmiyor**: maliyet yüksek ve kararlı bir çözüm yok. `FunCaptchaTask` artık görev başına 30 puan (önceden 15 puan). `FunCaptchaTaskProxyless` hâlâ başarıyla çözülemiyor; başarısız görevlerde puan otomatik iade edilir. FunCaptcha’yı geçmeniz gerekiyorsa [FunCaptcha görsel tanıma](https://docs.yescaptcha.com/tr/tasks/funcaptcha-classification.md) türünü veya YesCaptcha Assistant (tarayıcı eklentisi) kullanmanız önerilir. ## 2026-10-15 - **Belgelerin taşınması**: Belgeler Confluence’tan bu siteye (docs.yescaptcha.com) taşındı; Çince ve İngilizce sunuluyor, esas olan Çince sürümdür. Yapay zekâ araçlarının ve programların okuyabilmesi için [llms.txt](https://docs.yescaptcha.com/llms.txt), [OpenAPI](https://docs.yescaptcha.com/openapi.json) ve her sayfanın Markdown sürümü sunuluyor. - **Bildirim sonrası puan iadesi yaklaşık 24 saat sonra hesaplanıyor**: Görsel tanıma türlerinde yanlış tanıma bildirildiğinde puan artık hemen iade edilmez; yaklaşık 24 saat sonra toplu olarak hesaplanır. Başarısızlık oranı aynı dönemdekilerden belirgin biçimde yüksekse, iade aynı dönemin başarısızlık oranına göre yapılır. Bkz. [Ücretlendirme ve puan iadesi](https://docs.yescaptcha.com/tr/getting-started/billing.md). - **Eşzamanlı görev sınırı**: Aynı anda işlenen görev sayısı artık hesap ve görev türü bazında sayılıyor. Sınır aşıldığında `ERROR_THREADS_MAXIMUM` döner, puan düşülmez ve otomatik duraklatmaya sayılmaz. Her türün kotası belirlendikten sonra [Eşzamanlı görev sınırı ve otomatik duraklatma](https://docs.yescaptcha.com/tr/api/rate-limits.md) sayfasında duyurulacak. - **Belgelenen görev türleri eklendi**: `HCaptchaTask`, `NoCaptchaTask`, `TurnstileTask`, `RecaptchaV2EnterpriseTask` (kendi proxy’niz) ile `FunCaptchaTaskProxylessM1`, `FunCaptchaTask`, `HCaptchaTaskProxylessM1` belgelere eklendi. - **FunCaptcha’nın token döndüren görev türleri**: `FunCaptchaTaskProxylessM1` ve `FunCaptchaTask` kullanılabilir; `FunCaptchaTaskProxyless` hattı 2026-09-10 civarından itibaren başarıyla çözemiyor, başarısız görevlerde puan otomatik iade edilir. - **Kapatılanlar**: reCAPTCHA K1 özel parmak izi serisi, `FunCaptchaTaskS1`, `CloudFlareTaskS1`, `TurnstileTaskS2`, `TurnstileTaskProxylessS2`, `bCaptcha2Classification` ve `GeneralClassification` hizmet dışı bırakıldı. ## 2026-10-15 öncesi - **Ayrılmış sunucu** için self servis kiralama hizmeti kapatıldı.