Chame a API de resolução de CAPTCHA pelo n8n
Use o nó HTTP Request do n8n para criar a tarefa e depois ramifique pelo status. Se ela ainda estiver pendente ou em resolução, aguarde e consulte o mesmo ID de tarefa — não envie outro POST.
Nesta página
Configure o site e a credencial
- 1.
Ative o perfil do site
Configure o hostname de destino no console do solvethree e verifique se o perfil dele está ativo no seu workspace. Enviar um hostname e uma ação em uma tarefa não cria o perfil.
- 2.
Crie uma credencial Header Auth no n8n
Configure-a para enviar um cabeçalho
Authorizationcom o valorBearerseguido da chave de API do seu workspace. Armazene a chave na credencial, não no JSON da tarefa.
Configure a requisição de criação
Nomeie o nó HTTP Request como Create task. O nó de consulta periódica usará esse nome para recuperar o ID da tarefa original.
| Campo | Configuração |
|---|---|
| Método | POST |
| URL | https://api.solvethree.com/v1/tasks |
| Autenticação | Tipo de credencial genérica |
| Tipo de autenticação genérica | Header Auth; selecione a credencial que você criou |
| Enviar parâmetros de consulta | Ative; adicione waitMs com o valor 15000 |
| Enviar corpo | Ative; selecione JSON e use o corpo abaixo |
{
"site": "accounts.example.com",
"action": "login",
"proxy": "http://user:[email protected]:8080",
"requestId": "example_login_001"
}Substitua site, action e proxy pelo hostname, pela ação e pelo proxy da sua requisição. Envie exatamente um dos campos: proxy ou proxyCandidates; este exemplo usa um proxy. Não adicione type nem url. O tipo padrão de reCAPTCHA é Enterprise v3.
Substitua o requestId do exemplo por um valor exclusivo para cada nova tarefa lógica. Mantenha esse valor inalterado se precisar recuperar esta tarefa após um timeout. Ele aceita de 1–64 letras ASCII, números, sublinhados ou hífens.
waitMs deve ficar na query da URL, não no corpo JSON. Defina o timeout da requisição HTTP acima da espera solicitada de 15 segundos para acomodar a sobrecarga de rede; 30 segundos é uma configuração inicial razoável, não uma garantia de tempo de resolução. A credencial Header Auth fornece a autenticação, então não é necessário duplicá-la em Enviar cabeçalhos.
Ramifique pelo status, não pelo sucesso HTTP
Trate respostas HTTP sem sucesso antes de inspecionar o payload da tarefa. Para uma resposta bem-sucedida, conecte um nó IF ou Switch e inspecione {{ $json.status }}.
| Status | Próxima ação |
|---|---|
| ready | Saia do loop de consultas e use a solução. |
| failed | Pare as consultas. Registre errorCode e error para diagnóstico. |
| pending ou solving | Verifique o prazo das consultas, aguarde e faça um GET da tarefa existente. |
Para uma tarefa de reCAPTCHA pronta, envie o token retornado usando a identidade retornada em userAgent e secChUa e o proxy que funcionou. Uma tarefa pronta significa que uma solução foi gerada; isso não comprova que o site aceitou a requisição subsequente.
Resoluções que falham são reembolsadas. Diagnostique o erro informado em vez de tentar novamente com os mesmos dados de entrada ou presumir que o workspace não tem crédito suficiente.
Aguarde e faça um GET do ID original
- 1.
Salve um prazo fixo
Antes de executar Create task, armazene no workflow um prazo para as consultas — por exemplo, dois minutos após o início da criação. Essa é a política de parada do seu workflow, não um limite da API do solvethree. Mantenha o prazo fora da resposta HTTP para que respostas posteriores não o sobrescrevam.
- 2.
Verifique cada ciclo de consulta
Para os estados pendente ou em resolução, use um nó IF para comparar a hora atual com o prazo salvo. Se o prazo tiver expirado, encerre o loop e mantenha o ID da tarefa. Caso contrário, use um nó Wait para pausar por dois segundos e verifique o prazo novamente antes do GET.
- 3.
Consulte a tarefa existente
Configure um segundo nó HTTP Request com as configurações abaixo. Encaminhe a resposta dele de volta pela mesma ramificação de status. Nunca encaminhe a ramificação de consulta de volta para Create task.
| Campo | Configuração |
|---|---|
| Método | GET |
| URL | https://api.solvethree.com/v1/tasks/{{ $('Create task').item.json.id }} |
| Autenticação | Tipo de credencial genérica |
| Tipo de autenticação genérica | Header Auth; selecione a mesma credencial |
| Enviar parâmetros de consulta | Ative; adicione waitMs com o valor 15000 |
| Enviar corpo | Desative |
A expressão do ID da tarefa é {{ $('Create task').item.json.id }}. Ela lê id do nó de criação nomeado, mesmo quando o item mais recente contém uma resposta de consulta ou outros dados do workflow. Mantenha o nome do nó na expressão consistente com o seu workflow.
GET aceita uma espera de até 15 segundos. Dê a esta requisição HTTP a mesma margem de timeout da requisição de criação. O prazo impede novas tentativas de consulta; uma requisição já em andamento pode terminar depois dele.
A requisição GET equivalente fora do n8n é:
curl --fail-with-body --max-time 30 \
"https://api.solvethree.com/v1/tasks/$TASK_ID?waitMs=15000" \
-H "Authorization: Bearer $SOLVETHREE_API_KEY"Recupere um POST que atingiu o timeout sem criar outra tarefa
Um timeout de conexão não prova que a criação falhou. Se você recebeu um ID, consulte essa tarefa. Caso contrário, repita o POST com os mesmos dados de entrada da tarefa e o mesmo requestId para recuperar a tarefa existente. Reutilizar esse ID com dados de entrada diferentes causa um conflito.
Da mesma forma, atingir o prazo das consultas é uma condição de parada local, não um status de falha da tarefa. Mantenha o ID original para que uma execução posterior possa consultá-lo em vez de pagar por outra resolução.
Fontes e referência da API
Execute sua primeira tarefa.
Comece com $5 em créditos no espaço de trabalho.