Análises Técnicas

API CaptchaAI JSON vs API de formulário: qual formato usar

CaptchaAI aceita solicitações nos formatos codificado por formulário e JSON. Ambos funcionam de forma idêntica – escolha com base no seu idioma e preferências.


Comparação lado a lado

Codificado em formulário (padrão)

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 conteúdo: 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 conteúdo: application/json


Principais diferenças

Fator Codificado em formulário JSON
Tipo de conteúdo application/x-www-form-urlencoded application/json
Estrutura de dados Pares de valores-chave simples Objetos aninhados possíveis
Dados binários Use multipart para upload de arquivo Codificação Base64 no campo body
Suporte de matriz Limitado Nativo
Palavra-chave Python data={} json={}
Node.js URLSearchParams JSON.stringify()
Legibilidade Simples para parâmetros planos mais adequado para dados complexos
Compatibilidade Funciona em qualquer lugar Funciona em qualquer lugar

Formato de resposta

Adicione json=1 para obter respostas JSON independentemente do formato da solicitação:

# 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"}

Sempre use json=1 para facilitar a análise.


Exemplos de Python

Codificado em formulário

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,
})

Corpo 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,
})

Exemplos de Node.js.

Codificado em formulário

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;

Corpo 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;

Imagem CAPTCHA: Formulário vs JSON

Para CAPTCHAs de imagem, o formato é mais importante:

Formulário com upload de arquivo (multiparte)

# 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 com 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,
})

Formulário com 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,
})

Quando usar qual

Cenário Recomendado Por que
Scripts simples Codificado em formulário Mais simples, menos dependências
Integração da API REST JSON Corresponde aos padrões típicos da API
Uploads de arquivos Formulário multiparte Upload binário direto
Imagens grandes em base64 Codificado em formulário mais adequado manuseio de grandes cargas úteis
TypeScript/modern JS JSON Suporte a objetos nativos
Integração de sistema legado Codificado em formulário Compatibilidade universal
Migrando do 2Captcha Codificado em formulário Mesmo formato do 2Captcha

Erros Comuns

Erro Problema Correção
Usando json={}, mas sem json: 1 nos dados A resposta é texto simples Incluir "json": 1 nos dados
Misturando data= e json= em solicitações Python Solicitação malformada Use um ou outro
Esquecendo o cabeçalho Content-Type O servidor não consegue analisar o corpo Deixe sua biblioteca HTTP configurá-la automaticamente
Enviando corpo JSON para endpoint de pesquisa A enquete usa parâmetros GET Sempre use GET com parâmetros de consulta para /res.php

Perguntas frequentes

O formato afeta a velocidade ou a precisão da resolução?

Não. Ambos os formatos produzem resultados idênticos. O servidor os processa da mesma maneira.

Posso misturar formatos no mesmo projeto?

Sim. Você pode enviar com JSON e pesquisar com parâmetros de consulta (que é como a pesquisa sempre funciona). Cada solicitação é independente.

Qual formato é usado pela API compatível com 2Captcha?

A API 2Captcha original usa codificação de formulário. CaptchaAI adiciona suporte JSON no topo. Se você estiver migrando do 2Captcha, opte pelo formulário codificado.


Guias Relacionados


Escolha o formato de sua preferência —experimente a API CaptchaAIhoje.

Os comentários estão desativados para este artigo.