API Documentation

Solver.tr REST API dokümantasyonu

0 Turnstile
M
Base URL: Tüm API istekleri https://api.solver.tr adresine yapılmalıdır.

Kimlik Doğrulama

API anahtarınızı apikey query parametresi, X-API-Key header'ı veya POST body içinde apiKey alanı ile gönderin.

Query
GET /v1/turnstile/solve?apikey=YOUR_API_KEY&url=...&sitekey=...
Header
X-API-Key: YOUR_API_KEY

Faturalama Modeli

Her istek önce aktif paket kotanızdan düşülür. Kota bittiğinde PAYG devreye girer ve USD cüzdanınızdan kesilir. Başarısız Turnstile/OCR isteklerinde ücret alınmaz.

ParametreAçıklama
billingSourceYanıtta: entitlement, payg veya legacy
walletUsdGüncel USD cüzdan bakiyesi (solve/ocr yanıtlarında)
balanceLegacy token bakiyesi (geriye dönük uyumluluk)

Rate Limits

Limitler hesap türüne ve aktif pakete göre değişebilir.

LimitDeğerAçıklama
requests/minute500Dakikada maksimum istek
concurrent100Eşzamanlı istek

Turnstile Solve

GET POST /v1/turnstile/solve v2 /v2/turnstile/solve

Cloudflare Turnstile challenge'ını çözer ve token döndürür. v1 ve v2 aynı parametreleri kullanır.

Parametreler
ParametreTipAçıklama
urlzorunlustringTurnstile widget'ının bulunduğu sayfa URL'i
sitekeyzorunlustringCloudflare site key
apikeyzorunlustringAPI anahtarınız
actionopsiyonelstringTurnstile action
cdataopsiyonelstringTurnstile cData
proxyopsiyonelstringusername:password@ip:port
useragentopsiyonelstringÖzel User-Agent
txtopsiyonelbooleantrue → yalnızca token (plain text)
200 OK — JSON
Response
{
  "success": true,
  "token": "0.QP6HPnK4UxEb3N9bLFUTfbXh7HLf...",
  "requestId": "abd27dbe-f35e-47bd-9a2c-...",
  "balance": 998,
  "walletUsd": 12.50,
  "billingSource": "entitlement",
  "responseTime": 3817
}

OCR Solve

POST /v1/ocr

Captcha/görsel içindeki metni tanır. Multipart (image) veya JSON (imageBase64) ile gönderilebilir. Maks. 5MB.

Parametreler
ParametreTipAçıklama
imagezorunlu*fileMultipart alan adı: captcha görseli (PNG/JPG)
imageBase64zorunlu*stringJSON body — base64 encoded görsel (* biri zorunlu)
apiKeyzorunlustringHeader veya JSON body
modelopsiyonelstringOCR model adı (worker destekliyorsa)
workeropsiyonelstringBelirli worker'a yönlendirme (debug)
txtopsiyonelbooleantrue → yalnızca tanınan metin (plain text)
200 OK — JSON
Response
{
  "success": true,
  "text": "A7K9M2",
  "confidence": 0.98,
  "model": "default",
  "processing_ms": 842,
  "requestId": "...",
  "walletUsd": 11.98,
  "billingSource": "payg",
  "responseTime": 850
}

Turnstile Pool

GET /v1/turnstile/pool

Önceden üretilmiş token havuzundan anında token alır. Havuz boşsa canlı çözüme düşer.

ParametreTipAçıklama
qzorunlustringHavuz slug (örn. site adı)
apikeyzorunlustringAPI anahtarınız
txtopsiyonelbooleanPlain text token yanıtı
Example
GET https://api.solver.tr/v1/turnstile/pool?q=POOL_SLUG&apikey=YOUR_KEY

Balance

GET /v1/balance

USD cüzdan, paket kotları, PAYG fiyatları ve aktif entitlement'ları döndürür.

200 OK
Response
{
  "balance": 15420,
  "walletUsd": 25.50,
  "walletUsdCents": 2550,
  "paygPrices": { "turnstile": 4, "ocr": 2 },
  "billing": {
    "turnstile": { "quotaRemaining": 100000, "hasUnlimited": false },
    "ocr": { "quotaRemaining": 500, "hasUnlimited": false }
  },
  "entitlements": [],
  "isActive": true
}

Usage Stats

GET /v1/usage-stats

Toplam, başarılı ve başarısız istek istatistiklerinizi getirir.

Response
{
  "success": true,
  "totalRequests": 5420,
  "successfulRequests": 5380,
  "failedRequests": 40,
  "successRate": 99.26
}

Rate Limit Status

GET /v1/rate-limit-status

Anlık rate limit durumunuzu ve kalan kotayı gösterir.

Example
GET https://api.solver.tr/v1/rate-limit-status?apikey=YOUR_KEY

cURL — Turnstile

cURL
curl -G "https://api.solver.tr/v1/turnstile/solve" \
  --data-urlencode "url=https://example.com" \
  --data-urlencode "sitekey=0x4AAAAAAA..." \
  --data-urlencode "apikey=YOUR_API_KEY"

cURL — OCR

Multipart
curl -X POST "https://api.solver.tr/v1/ocr" \
  -H "X-API-Key: YOUR_API_KEY" \
  -F "image=@captcha.png"
JSON Base64
curl -X POST "https://api.solver.tr/v1/ocr" \
  -H "Content-Type: application/json" \
  -d '{"imageBase64":"...","apiKey":"YOUR_KEY"}'

JavaScript

Turnstile (Fetch)
const res = await fetch('https://api.solver.tr/v1/turnstile/solve', {
  method: 'POST',
  headers: { 'Content-Type': 'application/json', 'X-API-Key': 'YOUR_KEY' },
  body: JSON.stringify({ url: 'https://example.com', sitekey: '0x4AAA...' })
});
const data = await res.json();

Python

OCR (requests)
import requests

with open('captcha.png', 'rb') as f:
    r = requests.post(
        'https://api.solver.tr/v1/ocr',
        headers={'X-API-Key': 'YOUR_KEY'},
        files={'image': f}
    )
print(r.json()['text'])
Security: API anahtarınızı asla client-side kodda kullanmayın. Her zaman server-side'da saklayın.