Skip to content
API
Funcaptcha

Funcaptcha Image

Visão Geral

O FunCaptcha (também conhecido como Arkose Labs Captcha) é um tipo de captcha interativo que requer que os usuários realizem ações como girar imagens, arrastar e soltar objetos para resolver desafios. É utilizado por muitos sites importantes como Roblox, Epic Games, Outlook, etc.

🎮

O FunCaptcha é projetado tanto para proteger contra bots quanto para criar uma experiência "divertida" para os usuários através de mini-jogos interativos.

1. Criar Solicitação

Solicitação

POST https://api.achicaptcha.com/createTask

Parâmetros

Nome do parâmetroTipo de dadosObrigatório?Descrição
clientKeystringsimChave da API
task.typestringsimFuncaptchaImageTask
task.subTypestringsimValor igual a 1
task.imagestringsimBase64 da imagem
task.otherstringsimPergunta
Exemplo: "Use the arrows to rotate the object to face in the direction of the hand"

Exemplo de Solicitação

POST /createTask HTTP/1.1
Host: api.achicaptcha.com
Content-Type: application/json
 
{
  "clientKey": "SUA_CHAVE_API",
  "task": {
    "type": "FuncaptchaImageTask",
    "subType": "1",
    "image": "/9j/4AAQSkZJRgABAQAAAQABAAD/2wBD...",
    "other": "Use the arrows to rotate the object to face in the direction of the hand"
  }
}

Resposta

Em caso de sucesso, o servidor retorna errorId = 0 e taskId

{
  "errorId": 0,
  "taskId": "f2fc70d6-c76b-4fba-9480-205ac1fe9fb9"
}

2. Obter Resultado

Solicitação

POST https://api.achicaptcha.com/getTaskResult

Parâmetros

Nome do parâmetroTipo de dadosObrigatório?Descrição
clientKeystringsimChave da API
taskIdstringsimTaskId obtido em (1)

Exemplo de Solicitação

POST /getTaskResult HTTP/1.1
Host: api.achicaptcha.com
Content-Type: application/json
 
{
  "clientKey": "SUA_CHAVE_API",
  "taskId": "f2fc70d6-c76b-4fba-9480-205ac1fe9fb9"
}

Resposta

{ 
  "errorId": 0, 
  "status": "ready", 
  "solution": "1" // Índice da imagem para clicar (Começando do 0) 
}

Explicação do Status

  • errorId = 0 e status = ready: Resolvido com sucesso, leia o resultado em solution.answer (array de índices de imagem)
  • errorId = 0 e status = processing: Resolvendo captcha, aguarde 2 segundos e tente novamente
  • errorId > 0: Erro do sistema, retorna código de erro e descrição do erro

Exemplos de Integração

import requests
import time
 
 
def solve_funcaptcha_image(image_base64, question, api_key='SUA_CHAVE_API'):
    # Passo 1: Criar tarefa
    create_task_url = 'https://api.achicaptcha.com/createTask'
    create_task_payload = {
        'clientKey': api_key,
        'task': {
            'type': 'FuncaptchaImageTask',
            'subType': '1',
            'image': image_base64,
            'other': question
        }
    }
    
    response = requests.post(create_task_url, json=create_task_payload)
    result = response.json()
    
    if result['errorId'] != 0:
        raise Exception(result['errorDescription'])
    
    task_id = result['taskId']
    
    # Passo 2: Obter resultado
    get_result_url = 'https://api.achicaptcha.com/getTaskResult'
    
    while True:
        time.sleep(2)  # Aguardar 2 segundos
        
        get_result_payload = {
            'clientKey': api_key,
            'taskId': task_id
        }
        
        response = requests.post(get_result_url, json=get_result_payload)
        result = response.json()
        
        if result['errorId'] != 0:
            raise Exception(result['errorDescription'])
        
        if result['status'] == 'ready':
            return result['solution']
        
        # Se status == 'processing', continuar o loop
 
# Uso
image_base64 = '/9j/4AAQSkZJRgABAQAAAQABAAD/2wBD...'  # Base64 da imagem
question = 'Use the arrows to rotate the object to face in the direction of the hand'
solution = solve_funcaptcha_image(image_base64, question, 'SUA_CHAVE_API')
print('Solução do FunCaptcha:', solution)

Códigos de Erro Comuns

Código de ErroDescriçãoNotas
0successSucesso
1processingProcessando
2missing required fieldsCampos obrigatórios ausentes, verifique os parâmetros novamente
3task not supportedTipo de tarefa não suportado
4task creation failedFalha na criação da tarefa
5client key does not existA chave da API não existe, verifique a chave novamente
6insufficient account balanceSaldo da conta insuficiente, adicione mais créditos
7task failed, please create a new taskTarefa falhou, por favor crie uma nova tarefa
8task ID does not existID da tarefa não existe

Melhores Práticas

Para obter os melhores resultados ao usar a API Achicaptcha para FunCaptcha Image, siga estes princípios:

1. Processamento de Imagem Base64

  • Aceita apenas uma única imagem. Para usuários de celular, combine em uma imagem grande antes de enviar
  • Garanta que a imagem esteja devidamente codificada no formato Base64
  • Remova o prefixo data:image/...;base64, se presente
  • Verifique se o tamanho da imagem é razoável (não muito grande)

2. Pergunta (Question)

  • Forneça a pergunta exata do desafio FunCaptcha
  • A pergunta ajuda o sistema a entender melhor o tipo de desafio
  • Exemplo: "Use the arrows to rotate the object to face in the direction of the hand"

3. Intervalo de Polling

  • Aguarde pelo menos 2 segundos entre as verificações de resultado
  • Não inunde a API com muitas solicitações consecutivas
  • Defina um tempo limite (timeout) para evitar loops infinitos (recomendado 60 segundos para tarefas de imagem)

4. Processamento do Resultado

  • O resultado retornado é um número único (índice começando do 0)
  • Use este resultado para enviar ao FunCaptcha

5. Lógica de Tentativa (Retry)

  • Implemente tentativas para erros temporários como ERROR_NO_SLOT_AVAILABLE
  • Use backoff exponencial ao tentar novamente
  • Limite o número máximo de tentativas

6. Segurança da Chave API

  • Não codifique a chave API diretamente no código
  • Use variáveis de ambiente
  • Não exponha a chave API no lado do cliente (client-side)

Links Úteis: