CaptchaAI accepte les requêtes aux formats codés par formulaire et JSON. Les deux fonctionnent de manière identique : choisissez en fonction de votre langue et de vos préférences.
Comparaison côte à côte
Codé par formulaire (par défaut)
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,
})
Type de contenu : 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,
})
Type de contenu : application/json
Différences clés
| Facteur | Codé sous forme | JSON |
|---|---|---|
| Type de contenu | application/x-www-form-urlencoded |
application/json |
| Structure des données | Paires clé-valeur plates | Objets imbriqués possibles |
| Données binaires | Utiliser Multipart pour le téléchargement de fichiers | Encodage Base64 dans le champ corps |
| Prise en charge des baies | Limité | Indigène |
| Mot-clé Python | data={} |
json={} |
| Noeud.js | URLSearchParams |
JSON.stringify() |
| Lisibilité | Simple pour les paramètres plats | Mieux pour les données complexes |
| Compatibilité | Fonctionne partout | Fonctionne partout |
Format de réponse
Ajoutez json=1 pour obtenir des réponses JSON quel que soit le format de la requête :
# 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"}
Utilisez toujours json=1 pour une analyse plus facile.
Exemples Python
Codé sous forme
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,
})
Corps JSON
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,
})
Exemples Node.js
Codé sous forme
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;
Corps JSON
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;
Image CAPTCHA : Formulaire vs JSON
Pour les CAPTCHA d’image, le format compte davantage :
Formulaire avec téléchargement de fichier (Multipart)
# 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 avec 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,
})
Formulaire avec 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,
})
Quand utiliser lequel
| Scénario | Recommandé | Pourquoi |
|---|---|---|
| Scripts simples | Codé sous forme | Plus simple, moins de dépendances |
| Intégration de l'API REST | JSON | Correspond aux modèles d'API typiques |
| Téléchargements de fichiers | Formulaire en plusieurs parties | Téléchargement binaire direct |
| Grandes images base64 | Codé sous forme | Meilleure gestion des charges utiles volumineuses |
| TypeScript/modern JS | JSON | Prise en charge des objets natifs |
| Intégration du système existant | Codé sous forme | Compatibilité universelle |
| Migration depuis 2Captcha | Codé sous forme | Même format que 2Captcha |
Erreurs courantes
| Erreur | Problème | Réparer |
|---|---|---|
Utilisation de json={} mais pas de json: 1 dans les données |
La réponse est en texte brut | Inclure "json": 1 dans les données |
Mélanger data= et json= dans les requêtes Python |
Demande mal formée | Utiliser l'un ou l'autre |
| Oublier l'en-tête Content-Type | Le serveur ne peut pas analyser le corps | Laissez votre bibliothèque HTTP le définir automatiquement |
| Envoi du corps JSON au point de terminaison d'interrogation | Le sondage utilise les paramètres GET | Utilisez toujours GET avec les paramètres de requête pour /res.php |
FAQ
Le format affecte-t-il la vitesse ou la précision de la résolution ?
Non. Les deux formats produisent des résultats identiques. Le serveur les traite de la même manière.
Puis-je mélanger des formats dans un même projet ?
Oui. Vous pouvez soumettre avec JSON et interroger avec des paramètres de requête (c'est ainsi que fonctionne toujours l'interrogation). Chaque demande est indépendante.
Quel format est utilisé par l'API compatible 2Captcha ?
L'API 2Captcha d'origine utilise le codage par formulaire. CaptchaAI ajoute le support JSON en plus. Si vous migrez depuis 2Captcha, restez avec le codage par formulaire.
Guides connexes
Choisissez votre format préféré —essayez l'API CaptchaAIaujourd'hui.