CaptchaAI acepta solicitudes tanto en formato form-encoded como en JSON. Ambos funcionan de forma idéntica: elige según tu lenguaje y preferencias.
Comparación lado a lado
Codificado en formulario (predeterminado)
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,
})
Tipo de contenido: 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,
})
Tipo de contenido: application/json
Diferencias clave
| factores | Codificado en formato | JSON |
|---|---|---|
| Tipo de contenido | application/x-www-form-urlencoded |
application/json |
| estructura de datos | Pares clave-valor planos | Objetos anidados posibles |
| datos binarios | Utilice multiparte para cargar archivos | Codificación Base64 en el campo del cuerpo. |
| Soporte de matriz | Limitado | Nativo |
| Palabra clave de Python | data={} |
json={} |
| Nodo.js | URLSearchParams |
JSON.stringify() |
| Legibilidad | Simple para parámetros planos. | Mejor para datos complejos |
| Compatibilidad | Funciona en todas partes | Funciona en todas partes |
Formato de respuesta
Agregue json=1 para obtener respuestas JSON independientemente del formato de solicitud:
# 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"}
Utilice siempre json=1 para facilitar el análisis.
Ejemplos de Python
Codificado en formato
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,
})
Cuerpo 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,
})
Ejemplos de Node.js
Codificado en formato
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;
Cuerpo 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;
Imagen CAPTCHA: Formulario vs JSON
Para los CAPTCHA de imágenes, el formato importa más:
Formulario con carga de archivo (varias partes)
# 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 con 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,
})
Formulario con 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,
})
Cuándo usar cuál
| Escenario | Recomendado | ¿Por qué? |
|---|---|---|
| Guiones simples | Codificado en formato | Más simple, menos dependencias |
| Integración de API REST | JSON | Coincide con los patrones típicos de API |
| Cargas de archivos | Formulario de varias partes | Carga binaria directa |
| Imágenes grandes en base64 | Codificado en formato | Mejor manejo de grandes cargas útiles |
| TypeScript/modern JS | JSON | Soporte de objetos nativos |
| Integración de sistemas heredados | Codificado en formato | Compatibilidad universal |
| Migrando desde 2Captcha | Codificado en formato | Mismo formato que 2Captcha |
Errores comunes
| error | problema | Solución |
|---|---|---|
Usando json={} pero sin json: 1 en los datos |
La respuesta es texto plano. | Incluir "json": 1 en los datos |
Mezclando data= y json= en solicitudes de Python |
Solicitud mal formada | Usa uno u otro |
| Olvidar el encabezado de tipo de contenido | El servidor no puede analizar el cuerpo | Deje que su biblioteca HTTP lo configure automáticamente |
| Envío del cuerpo JSON al punto final de la consulta | La consulta utiliza parámetros GET | Utilice siempre GET con parámetros de consulta para /res.php |
Preguntas frecuentes
¿El formato afecta la velocidad o la precisión de resolución?
No. Ambos formatos producen resultados idénticos. El servidor los procesa de la misma manera.
¿Puedo mezclar formatos en un mismo proyecto?
Sí. Puede enviar con JSON y sondear con parámetros de consulta (que es como siempre funciona el sondeo). Cada solicitud es independiente.
¿Qué formato utiliza la API compatible con 2Captcha?
La API 2Captcha original utiliza formulario codificado. CaptchaAI agrega soporte JSON además. Si está migrando desde 2Captcha, quédese con el formulario codificado.
Guías relacionadas
- Códigos de error de CaptchaAI: referencia completa
Elige tu formato preferido. Prueba la API CaptchaAI hoy.