Kommt es beim Anbieterwechsel darauf an, wie viel Code Sie umschreiben müssen, entscheidet allein die API-Familie. Migrieren Sie von 2Captcha, tauschen Sie nur die Domain – Parameternamen und Antwortformat bleiben identisch. Kommen Sie von Anti-Captcha oder CapMonster Cloud, wandeln Sie den JSON-Task in Formularparameter um und stellen das Polling von POST auf GET um. Diese Referenz stellt die Endpunkte, Parameter und Antworten der vier Dienste nebeneinander, damit Sie vor der Umstellung genau wissen, welche Zeilen betroffen sind.
Migration in Kürze: Was Sie tatsächlich ändern
- Von 2Captcha: Basis-URL auf
ocr.captchaai.comsetzen, API-Schlüssel austauschen – fertig. CaptchaAI spricht dasselbein.php/res.php-Protokoll. - Von Anti-Captcha oder CapMonster Cloud: JSON-Body in
application/x-www-form-urlencoded-Parameter überführen,clientKeydurchkeyersetzen,task.typeauf das passendemethodabbilden und das Ergebnis per GET abfragen. - Abrechnung neu kalkulieren: CaptchaAI rechnet pro gleichzeitigem Thread ab, nicht pro Lösung. Wer aus der Pay-per-Solve-Welt von 2Captcha kommt, plant das Volumen anders – schon BASIC (15 $/Monat, 5 Threads) enthält unbegrenzte Lösungen pro Thread.
Basis-URLs im Vergleich
| Anbieter | Endpunkt senden | Ergebnisendpunkt |
|---|---|---|
| CaptchaAI | https://ocr.captchaai.com/in.php |
https://ocr.captchaai.com/res.php |
| 2Captcha | https://2captcha.com/in.php |
https://2captcha.com/res.php |
| Anti-Captcha | https://api.anti-captcha.com/createTask |
https://api.anti-captcha.com/getTaskResult |
| CapMonster Cloud | https://api.capmonster.cloud/createTask |
https://api.capmonster.cloud/getTaskResult |
CaptchaAI übernimmt die URL-Struktur von 2Captcha eins zu eins. Für den Umstieg von 2Captcha genügt daher der Wechsel der Domain.
API-Stil und Authentifizierung
| Anbieter | API-Stil | Inhaltstyp | Auth |
|---|---|---|---|
| CaptchaAI | Form/query-Parameter | application/x-www-form-urlencoded |
key-Parameter |
| 2Captcha | Form/query-Parameter | application/x-www-form-urlencoded |
key-Parameter |
| Anti-Captcha | JSON-Körper | application/json |
clientKey im Körper |
| CapMonster Cloud | JSON-Körper | application/json |
clientKey im Körper |
Der entscheidende Bruch verläuft zwischen der in.php-Familie (CaptchaAI, 2Captcha) und der Task-JSON-Familie (Anti-Captcha, CapMonster). Innerhalb einer Familie ist die Migration nahezu ein No-op.
reCAPTCHA v2
Der häufigste Migrationsfall. Auf der in.php-Seite genügen fünf Parameter; die Task-JSON-Familie kapselt dieselben Werte in ein task-Objekt.
CaptchaAI und 2Captcha (in.php-Format)
POST /in.php
key=API_KEY
method=userrecaptcha
googlekey=SITE_KEY
pageurl=PAGE_URL
json=1
Anti-Captcha und CapMonster (Task-JSON)
POST /createTask
{
"clientKey": "API_KEY",
"task": {
"type": "RecaptchaV2TaskProxyless",
"websiteURL": "PAGE_URL",
"websiteKey": "SITE_KEY"
}
}
Parameterzuordnung im Detail
| CaptchaAI | Anti-Captcha/CapMonster | Beschreibung |
|---|---|---|
key |
clientKey |
API-Schlüssel |
method=userrecaptcha |
type=RecaptchaV2TaskProxyless |
Aufgabentyp |
googlekey |
websiteKey |
reCAPTCHA-Sitekey |
pageurl |
websiteURL |
URL der Zielseite |
invisible=1 |
isInvisible: true |
Unsichtbares reCAPTCHA |
enterprise=1 |
type=RecaptchaV2EnterpriseTaskProxyless |
Enterprise-Kennzeichen |
Alle sechs reCAPTCHA-Varianten laufen bei CaptchaAI über dieselbe Methode userrecaptcha – die Unterscheidung passiert über Zusatzparameter wie invisible, enterprise oder version.
reCAPTCHA v3
Der Unterschied zu v2 ist ein einziges Parameterpaar: version=v3 plus action auf CaptchaAI-Seite, pageAction im Task-JSON.
CaptchaAI und 2Captcha
POST /in.php
key=API_KEY
method=userrecaptcha
googlekey=SITE_KEY
pageurl=PAGE_URL
version=v3
action=verify
Anti-Captcha und CapMonster
{
"clientKey": "API_KEY",
"task": {
"type": "RecaptchaV3TaskProxyless",
"websiteURL": "PAGE_URL",
"websiteKey": "SITE_KEY",
"pageAction": "verify"
}
}
Cloudflare Turnstile
Turnstile nutzt die Methode turnstile und den Parameter sitekey statt googlekey – ein häufiger Stolperstein beim Kopieren aus dem reCAPTCHA-Code.
CaptchaAI
POST /in.php
key=API_KEY
method=turnstile
sitekey=SITE_KEY
pageurl=PAGE_URL
Anti-Captcha
{
"clientKey": "API_KEY",
"task": {
"type": "TurnstileTaskProxyless",
"websiteURL": "PAGE_URL",
"websiteKey": "SITE_KEY"
}
}
hCaptcha (von CaptchaAI nicht unterstützt)
Wichtig: CaptchaAI löst hCaptcha derzeit nicht. Wenn Ihr bestehender Workflow hCaptcha abdeckt, planen Sie dafür bei der Migration einen separaten Weg ein. Das folgende Formularformat entspricht der 2Captcha-Familie und dient hier nur als Referenz für Ihren vorhandenen Code; Anti-Captcha verwendet sein eigenes Task-Schema.
2Captcha (Formularformat)
POST /in.php
key=API_KEY
method=hcaptcha
sitekey=SITE_KEY
pageurl=PAGE_URL
Anti-Captcha
{
"clientKey": "API_KEY",
"task": {
"type": "HCaptchaTaskProxyless",
"websiteURL": "PAGE_URL",
"websiteKey": "SITE_KEY"
}
}
GeeTest v3
CaptchaAI unterstützt GeeTest v3; die Parameter gt und challenge werden direkt durchgereicht. (GeeTest v4 ist noch nicht verfügbar, sondern bald verfügbar.)
CaptchaAI und 2Captcha
POST /in.php
key=API_KEY
method=geetest
gt=GT_VALUE
challenge=CHALLENGE_VALUE
pageurl=PAGE_URL
Anti-Captcha
{
"clientKey": "API_KEY",
"task": {
"type": "GeeTestTaskProxyless",
"websiteURL": "PAGE_URL",
"gt": "GT_VALUE",
"challenge": "CHALLENGE_VALUE"
}
}
Bild-CAPTCHA
Bei klassischen Bild-CAPTCHAs übergeben Sie das Bild base64-kodiert; CaptchaAI und 2Captcha erwarten es im Feld body, Anti-Captcha im Task ImageToTextTask.
CaptchaAI und 2Captcha
POST /in.php
key=API_KEY
method=base64
body=BASE64_IMAGE
Anti-Captcha
{
"clientKey": "API_KEY",
"task": {
"type": "ImageToTextTask",
"body": "BASE64_IMAGE"
}
}
Ergebnisse abfragen (Polling)
Hier liegt der zweite echte Unterschied zwischen den Familien: CaptchaAI und 2Captcha fragen das Ergebnis per GET ab und liefern den Status als status-Ganzzahl; Anti-Captcha und CapMonster nutzen einen POST mit taskId und geben processing/ready zurück.
CaptchaAI und 2Captcha
GET /res.php?key=API_KEY&action=get&id=TASK_ID&json=1
Response: {"status":1,"request":"TOKEN"}
Not ready: {"status":0,"request":"CAPCHA_NOT_READY"}
Anti-Captcha und CapMonster
POST /getTaskResult
{
"clientKey": "API_KEY",
"taskId": 123456
}
Response: {"status":"ready","solution":{"gRecaptchaResponse":"TOKEN"}}
Not ready: {"status":"processing"}
Guthaben abfragen
| Anbieter | Endpunkt | Antwort |
|---|---|---|
| CaptchaAI | GET /res.php?key=KEY&action=getbalance |
12.345 |
| 2Captcha | GET /res.php?key=KEY&action=getbalance |
12.345 |
| Anti-Captcha | POST /getBalance {"clientKey":"KEY"} |
{"balance":12.345} |
| CapMonster | POST /getBalance {"clientKey":"KEY"} |
{"balance":12.345} |
Fehlercodes im Vergleich
| Szenario | CaptchaAI / 2Captcha | Anti-Captcha |
|---|---|---|
| Falscher API-Schlüssel | ERROR_WRONG_USER_KEY |
ERROR_KEY_DOES_NOT_EXIST |
| Nullsaldo | ERROR_ZERO_BALANCE |
ERROR_ZERO_BALANCE |
| Ungültiger Sitekey | ERROR_WRONG_GOOGLEKEY |
ERROR_RECAPTCHA_INVALID_SITEKEY |
| Nicht bereit | CAPCHA_NOT_READY |
status: "processing" |
| Zu viele Anfragen (Rate-Limiting) | ERROR_TOO_MUCH_REQUESTS |
ERROR_TOO_MUCH_REQUESTS |
Da CaptchaAI die 2Captcha-Fehlercodes teilt, funktioniert Ihre bestehende Fehlerbehandlung ohne Anpassung weiter. Nur beim Umstieg von Anti-Captcha ordnen Sie die abweichenden Codes einmalig neu zu.
Migrationsszenario: von 2Captcha zu CaptchaAI in einer GitLab-CI-Pipeline
Ein Datenteam in Berlin betreibt Preis-Monitoring-Scraper auf Hetzner-Workern und stößt dabei regelmäßig auf reCAPTCHA v2 und Cloudflare Turnstile. Die Anbindung an 2Captcha lief bislang über eine Umgebungsvariable SOLVER_BASE_URL in der GitLab-CI-Konfiguration. Für den Wechsel zu CaptchaAI setzt das Team diese Variable auf https://ocr.captchaai.com und hinterlegt den neuen key als CI-Secret – der übrige Integrationscode bleibt unangetastet, weil Parameter und Antwortformat identisch sind. Getestet wird zunächst mit einer einzelnen Aufgabe gegen den BASIC-Tarif (15 $/Monat, 5 Threads), bevor die Pipeline vollständig umgestellt wird. Beim Scraping empfiehlt sich zusätzlich der Blick auf die eigene DSGVO-Grundlage, da IP-Adressen als personenbezogene Daten gelten – das betrifft Ihren Datenfluss, nicht den Lösungsdienst.
Migrations-Checkliste
- [ ] Basis-URL in
ocr.captchaai.comändern - [ ] API-Schlüssel aktualisieren
- [ ] Bei Migration von Anti-Captcha/CapMonster: JSON-Körper in Formularparameter umwandeln
- [ ]
clientKeydurchkeyersetzen - [ ] Aufgabe
typedurchmethodersetzen - [ ] Abfrage auf GET statt POST umstellen (wenn von Anti-Captcha)
- [ ] Vor der vollständigen Migration mit einer einzelnen Aufgabe testen
Häufige Fragen
Wie konvertiere ich einen Anti-Captcha-Task in eine CaptchaAI-Anfrage?
Sie flachen den JSON-Task in Formularparameter ab: clientKey wird zu key, task.type bildet sich auf ein method ab (z. B. RecaptchaV2TaskProxyless → method=userrecaptcha), websiteKey wird zu googlekey und websiteURL zu pageurl. Anschließend senden Sie an in.php statt an createTask.
Muss ich meinen Polling-Code beim Wechsel anpassen?
Kommt darauf an, woher Sie migrieren. Von 2Captcha nicht – GET auf res.php bleibt gleich. Von Anti-Captcha oder CapMonster stellen Sie den POST auf getTaskResult auf einen GET auf res.php um und lesen den Status aus dem Feld status als Ganzzahl statt aus processing/ready.
Bleiben Fehlercodes und Statusmeldungen identisch?
Zwischen CaptchaAI und 2Captcha ja – die Codes wie ERROR_ZERO_BALANCE oder CAPCHA_NOT_READY sind deckungsgleich, Ihre Fehlerbehandlung läuft ohne Änderung weiter. Anti-Captcha nutzt teils andere Bezeichner, die Sie einmalig neu zuordnen.
Welche CAPTCHA-Typen deckt CaptchaAI im Vergleich ab?
CaptchaAI löst reCAPTCHA v2 und v3 (inklusive Enterprise), Cloudflare Turnstile und Challenge, GeeTest v3 sowie Bild-, Raster- und BLS-CAPTCHAs; CaptchaFox (Beta), Friendly Captcha (Beta) und Lemin (Beta) sind zusätzlich verfügbar. hCaptcha und FunCaptcha werden nicht unterstützt, GeeTest v4 ist bald verfügbar.
Jetzt zu CaptchaAI wechseln
Basis-URL auf ocr.captchaai.com setzen, API-Schlüssel eintragen, mit einer Testaufgabe verifizieren. Holen Sie sich Ihren API-Schlüssel unter captchaai.com.
Verwandte Leitfäden
- Warum Entwickler von 2Captcha zu CaptchaAI wechseln
- CaptchaAI-Emulator als Drop-in-Ersatz einrichten
- CAPTCHA-Lösungsdienste im Vergleich