Primeiros Passos

Migrar de CapMonster Cloud para CaptchaAI

CaptchaAI usa um formato de API compatível que facilita a mudança do CapMonster Cloud. A maioria das migrações exige apenas a alteração do URL base e da chave de API. Este guia cobre as etapas exatas.


O que muda

Componente Nuvem CapMonster CaptchaAI
Enviar URL https://api.capmonster.cloud/createTask https://ocr.captchaai.com/in.php
URL de resultado https://api.capmonster.cloud/getTaskResult https://ocr.captchaai.com/res.php
Parâmetro da chave API clientKey key
Formato API Corpo JSON Codificado em formulário (ou JSON)
Campo ID da tarefa taskId request (em resposta)
Campo de resultado Objeto solution request (sequência de token)

Migração rápida: altere duas linhas

Se o seu código usa um wrapper ou SDK, o caminho com menor latência é substituir o URL base e a chave:

# Before (CapMonster Cloud)
API_URL = "https://api.capmonster.cloud"
CLIENT_KEY = "your_capmonster_key"

# After (CaptchaAI)
SUBMIT_URL = "https://ocr.captchaai.com/in.php"
RESULT_URL = "https://ocr.captchaai.com/res.php"
API_KEY = "your_captchaai_key"

Migração completa: reCAPTCHA v2

Nuvem CapMonster (antes)

import requests
import time

resp = requests.post("https://api.capmonster.cloud/createTask", json={
    "clientKey": "CAPMONSTER_KEY",
    "task": {
        "type": "RecaptchaV2TaskProxyless",
        "websiteURL": "https://example.com",
        "websiteKey": "6Le-SITEKEY",
    }
}).json()
task_id = resp["taskId"]

while True:
    time.sleep(5)
    result = requests.post("https://api.capmonster.cloud/getTaskResult", json={
        "clientKey": "CAPMONSTER_KEY",
        "taskId": task_id,
    }).json()
    if result["status"] == "ready":
        token = result["solution"]["gRecaptchaResponse"]
        break

CaptchaAI (depois)

import requests
import time

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

while True:
    time.sleep(5)
    result = requests.get("https://ocr.captchaai.com/res.php", params={
        "key": "YOUR_API_KEY",
        "action": "get",
        "id": task_id,
        "json": "1",
    }).json()
    if result["status"] == 1:
        token = result["request"]
        break
    if result["request"] != "CAPCHA_NOT_READY":
        raise Exception(result["request"])

Mapeamento de parâmetros

reCAPTCHA v2

Nuvem CapMonster CaptchaAI
task.type: "RecaptchaV2TaskProxyless" method: "userrecaptcha"
task.websiteKey googlekey
task.websiteURL pageurl
task.isInvisible: true invisible: "1"

Cloudflare Turnstile

Nuvem CapMonster CaptchaAI
task.type: "TurnstileTaskProxyless" method: "turnstile"
task.websiteKey sitekey
task.websiteURL pageurl

Imagem CAPTCHA

Nuvem CapMonster CaptchaAI
task.type: "ImageToTextTask" method: "base64"
task.body body

Migração JavaScript

Nuvem CapMonster (antes)

const axios = require('axios');

const resp = await axios.post('https://api.capmonster.cloud/createTask', {
  clientKey: 'CAPMONSTER_KEY',
  task: {
    type: 'RecaptchaV2TaskProxyless',
    websiteURL: 'https://example.com',
    websiteKey: '6Le-SITEKEY',
  }
});
const taskId = resp.data.taskId;

CaptchaAI (depois)

const axios = require('axios');

const resp = await axios.post('https://ocr.captchaai.com/in.php', null, {
  params: {
    key: 'YOUR_API_KEY',
    method: 'userrecaptcha',
    googlekey: '6Le-SITEKEY',
    pageurl: 'https://example.com',
    json: 1,
  }
});
const taskId = resp.data.request;

Mapeamento de código de erro

Nuvem CapMonster Equivalente a CaptchaAI
ERROR_KEY_DOES_NOT_EXIST ERROR_KEY_DOES_NOT_EXIST
ERROR_ZERO_BALANCE ERROR_ZERO_BALANCE
ERROR_RECAPTCHA_TIMEOUT ERROR_CAPTCHA_UNSOLVABLE
ERROR_NO_SLOT_AVAILABLE ERROR_NO_SLOT_AVAILABLE
CAPTCHA_NOT_READY CAPCHA_NOT_READY

Observe a diferença ortográfica: CaptchaAI usa CAPCHA_NOT_READY (sem T).


Verificação de saldo

Nuvem CapMonster

resp = requests.post("https://api.capmonster.cloud/getBalance", json={
    "clientKey": "CAPMONSTER_KEY"
}).json()
balance = resp["balance"]

CaptchaAI

resp = requests.get("https://ocr.captchaai.com/res.php", params={
    "key": "YOUR_API_KEY",
    "action": "getbalance",
    "json": "1",
}).json()
balance = float(resp["request"])

Lista de verificação de migração

  • [] Obtenha a chave API CaptchaAI decaptchaai.com
  • [] Substitua o URL de envio: api.capmonster.cloud/createTaskocr.captchaai.com/in.php
  • [] Substituir URL de resultado: api.capmonster.cloud/getTaskResultocr.captchaai.com/res.php
  • [] Alterar autenticação: clientKeykey
  • [] Alterar formato de solicitação: objeto de tarefa JSON → parâmetros codificados em formulário
  • [] Atualizar análise de resposta: taskIdrequest, solution.gRecaptchaResponserequest
  • [] Tratamento de erros de atualização: CAPTCHA_NOT_READYCAPCHA_NOT_READY
  • [] Teste com uma única solução antes de mudar o tráfego de produção

Perguntas frequentes

CaptchaAI é um substituto imediato para CapMonster Cloud?

O formato da API é diferente (codificado por formulário versus JSON), mas os conceitos são os mesmos. A migração normalmente leva de 15 a 30 minutos.

Posso executar os dois serviços simultaneamente durante a migração?

Sim. Direcione uma porcentagem do tráfego para CaptchaAI enquanto mantém o CapMonster Cloud como substituto e, em seguida, mude totalmente depois de validar os resultados.


Mude para CaptchaAI e comece a resolver em minutos

Obtenha sua chave API emcaptchaai.com.


Guias relacionados

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