Explainers

CaptchaAI JSON API vs. Formular-API: Welches Format verwendet werden soll

CaptchaAI akzeptiert Anfragen sowohl im formularcodierten als auch im JSON-Format. Beide funktionieren identisch – wählen Sie basierend auf Ihrer Sprache und Ihren Vorlieben.


Direkter Vergleich

Formularcodiert (Standard)

import requests

resp = requests.post("https://ocr.captchaai.com/in.php", data={
    "key": "YOUR_API_KEY",
    "method": "userrecaptcha",
    "googlekey": "SITE_KEY",
    "pageurl": "https://example.com",
    "json": 1,
})

Inhaltstyp: application/x-www-form-urlencoded

JSON

import requests

resp = requests.post("https://ocr.captchaai.com/in.php", json={
    "key": "YOUR_API_KEY",
    "method": "userrecaptcha",
    "googlekey": "SITE_KEY",
    "pageurl": "https://example.com",
    "json": 1,
})

Inhaltstyp: application/json


Hauptunterschiede

Faktor Formularcodiert JSON
Inhaltstyp application/x-www-form-urlencoded application/json
Datenstruktur Flache Schlüssel-Wert-Paare Verschachtelte Objekte möglich
Binäre Daten Verwenden Sie Multipart für den Datei-Upload Base64-Kodierung im Textfeld
Array-Unterstützung Beschränkt Einheimisch
Python-Schlüsselwort data={} json={}
Node.js URLSearchParams JSON.stringify()
Lesbarkeit Einfach für flache Parameter Besser für komplexe Daten
Kompatibilität Funktioniert überall Funktioniert überall

Antwortformat

Fügen Sie json=1 hinzu, um JSON-Antworten unabhängig vom Anforderungsformat zu erhalten:

# Without json=1 — plain text response
resp = requests.post("https://ocr.captchaai.com/in.php", data={
    "key": "YOUR_API_KEY",
    "method": "userrecaptcha",
    "googlekey": "SITE_KEY",
    "pageurl": "https://example.com",
})
# Response: "OK|12345678"

# With json=1 — JSON response
resp = requests.post("https://ocr.captchaai.com/in.php", data={
    "key": "YOUR_API_KEY",
    "method": "userrecaptcha",
    "googlekey": "SITE_KEY",
    "pageurl": "https://example.com",
    "json": 1,
})
# Response: {"status": 1, "request": "12345678"}

Verwenden Sie zur einfacheren Analyse immer json=1.


Python-Beispiele

Formularcodiert

import requests

# Submit
resp = requests.post("https://ocr.captchaai.com/in.php", data={
    "key": "YOUR_API_KEY",
    "method": "userrecaptcha",
    "googlekey": "SITE_KEY",
    "pageurl": "https://example.com",
    "json": 1,
})
task_id = resp.json()["request"]

# Poll (always GET with query params)
resp = requests.get("https://ocr.captchaai.com/res.php", params={
    "key": "YOUR_API_KEY",
    "action": "get",
    "id": task_id,
    "json": 1,
})

JSON-Körper

import requests

# Submit with JSON
resp = requests.post("https://ocr.captchaai.com/in.php", json={
    "key": "YOUR_API_KEY",
    "method": "userrecaptcha",
    "googlekey": "SITE_KEY",
    "pageurl": "https://example.com",
    "json": 1,
})
task_id = resp.json()["request"]

# Poll (same as form-encoded — GET with params)
resp = requests.get("https://ocr.captchaai.com/res.php", params={
    "key": "YOUR_API_KEY",
    "action": "get",
    "id": task_id,
    "json": 1,
})

Node.js-Beispiele

Formularcodiert

const axios = require('axios');
const qs = require('querystring');

// Submit
const resp = await axios.post(
  'https://ocr.captchaai.com/in.php',
  qs.stringify({
    key: 'YOUR_API_KEY',
    method: 'userrecaptcha',
    googlekey: 'SITE_KEY',
    pageurl: 'https://example.com',
    json: 1,
  })
);
const taskId = resp.data.request;

JSON-Körper

const axios = require('axios');

// Submit with JSON
const resp = await axios.post(
  'https://ocr.captchaai.com/in.php',
  {
    key: 'YOUR_API_KEY',
    method: 'userrecaptcha',
    googlekey: 'SITE_KEY',
    pageurl: 'https://example.com',
    json: 1,
  }
);
const taskId = resp.data.request;

Bild-CAPTCHA: Formular vs. JSON

Bei Bild-CAPTCHAs ist das Format wichtiger:

Formular mit Datei-Upload (mehrteilig)

# File upload — form-encoded with multipart
resp = requests.post("https://ocr.captchaai.com/in.php",
    data={
        "key": "YOUR_API_KEY",
        "method": "post",
        "json": 1,
    },
    files={
        "file": open("captcha.png", "rb"),
    },
)

JSON mit Base64

import base64

# Base64 in JSON body
with open("captcha.png", "rb") as f:
    body = base64.b64encode(f.read()).decode()

resp = requests.post("https://ocr.captchaai.com/in.php", json={
    "key": "YOUR_API_KEY",
    "method": "base64",
    "body": body,
    "json": 1,
})

Formular mit Base64

# Base64 in form data
resp = requests.post("https://ocr.captchaai.com/in.php", data={
    "key": "YOUR_API_KEY",
    "method": "base64",
    "body": body,
    "json": 1,
})

Wann welche zu verwenden ist

Szenario Empfohlen Warum
Einfache Skripte Formularcodiert Einfacher, weniger Abhängigkeiten
REST-API-Integration JSON Entspricht typischen API-Mustern
Datei-Uploads Mehrteiliges Formular Direkter Binär-Upload
Große Base64-Bilder Formularcodiert Bessere Handhabung großer Nutzlasten
TypeScript/modern JS JSON Unterstützung nativer Objekte
Integration älterer Systeme Formularcodiert Universelle Kompatibilität
Migration von 2Captcha Formularcodiert Gleiches Format wie 2Captcha

Häufige Fehler

Fehler Problem Fix
json={} wird verwendet, aber kein json: 1 in den Daten Die Antwort ist Klartext Fügen Sie "json": 1 in die Daten ein
Mischen von data= und json= in Python-Anfragen Anfrage fehlerhaft Benutzen Sie das eine oder das andere
Content-Type-Header vergessen Der Server kann den Text nicht analysieren Lassen Sie es von Ihrer HTTP-Bibliothek automatisch festlegen
JSON-Text wird an den Polling-Endpunkt gesendet Die Umfrage verwendet GET-Parameter Verwenden Sie immer GET mit Abfrageparametern für /res.php

FAQ

Beeinflusst das Format die Lösungsgeschwindigkeit oder -genauigkeit?

Nein. Beide Formate liefern identische Ergebnisse. Der Server verarbeitet sie auf die gleiche Weise.

Kann ich Formate im selben Projekt mischen?

Ja. Sie können mit JSON übermitteln und mit Abfrageparametern abfragen (so funktioniert die Abfrage immer). Jede Anfrage ist unabhängig.

Welches Format wird von der 2Captcha-kompatiblen API verwendet?

Die ursprüngliche 2Captcha-API verwendet Formularverschlüsselung. CaptchaAI fügt zusätzlich JSON-Unterstützung hinzu. Wenn Sie von 2Captcha migrieren, bleiben Sie bei form-encoded.


Verwandte Leitfäden


Wählen Sie Ihr bevorzugtes Format – Probieren Sie die CaptchaAI-API aus noch heute.

Kommentare sind für diesen Artikel deaktiviert.

Verwandte Beiträge

Comparisons Headless vs. Headed Chrome für CAPTCHA-Tests in eigener QA
Wann sich Headless-Chrome und wann Headed-Chrome für CAPTCHA-Tests in eigenen CI- und QA-Pipelines eignet, und welche Auswirkungen die Wahl auf Stabilität und L...

Wann sich Headless-Chrome und wann Headed-Chrome für CAPTCHA-Tests in eigenen CI- und QA-Pipelines eignet, und...

Apr 17, 2026
Comparisons WebDriver vs. Chrome DevTools Protocol in eigener CAPTCHA-QA
Vergleich von Web Driver und Chrome Dev Tools Protocol für QA-Tests gegen die eigene CAPTCHA-Integration: Stärken, Grenzen und Einsatzempfehlungen.

Vergleich von Web Driver und Chrome Dev Tools Protocol für QA-Tests gegen die eigene CAPTCHA-Integration: Stär...

Apr 17, 2026
Explainers User-Agent-Verwaltung für CAPTCHA-Lösungsworkflows
User-Agent-Verwaltung für CAPTCHA-Lösungs-Workflows: Browser-Fingerprint optimieren und Erkennung vermeiden.

User-Agent-Verwaltung für CAPTCHA-Lösungs-Workflows: Browser-Fingerprint optimieren und Erkennung vermeiden.

May 01, 2026