> ## Documentation Index
> Fetch the complete documentation index at: https://docs.acedata.cloud/llms.txt
> Use this file to discover all available pages before exploring further.

# Documentação de Integração da API de Reconhecimento de Captchas Alfanuméricos

> Recognition of English numerical verification codes API guide - Ace Data Cloud

Este documento apresentará uma descrição da API de reconhecimento de captchas alfanuméricos, que é baseada em tecnologia de aprendizado profundo e pode ser usada para reconhecer captchas alfanuméricos de comprimento variável. A entrada é a imagem do captcha, e a saída é o resultado do captcha.

## Processo de Solicitação

Para usar a API de reconhecimento de captchas alfanuméricos, primeiro acesse o [Painel de Controle da Ace Data Cloud](https://platform.acedata.cloud/console/applications) para obter seu Token de API, que deve ser guardado para uso futuro.

![](https://cdn.acedata.cloud/5hmkdg.jpg)

Se você ainda não estiver logado ou registrado, será redirecionado automaticamente para a página de login, onde será convidado a se registrar e fazer login. Após a conclusão, você será redirecionado de volta para a página atual.

**Um Token de API é suficiente para acessar todos os serviços da plataforma, não sendo necessário solicitar um para cada serviço separadamente.** A primeira solicitação receberá um crédito gratuito, permitindo uma experiência sem custo; quando o crédito estiver baixo, você pode recarregar o saldo geral no [painel de controle](https://platform.acedata.cloud/console/coin).

> 📘 Documentação Completa: [API de Reconhecimento de Captchas Alfanuméricos →](https://platform.acedata.cloud/documents/captcha-recognition-image2text)

## Uso Básico

Primeiro, entenda a forma básica de uso, que é inserir a imagem do captcha alfanumérico de comprimento variável que precisa ser processada para obter o resultado processado. Primeiro, você precisa passar um campo `image`, que é a imagem do captcha alfanumérico, como mostrado na figura:

<p>
  <img src="https://cdn.acedata.cloud/c50hi9.png" width="500" className="m-auto" />
</p>

Em seguida, precisamos converter a imagem do captcha em uma codificação Base64. Para converter a codificação Base64, recomenda-se usar a extensão do Google Chrome FeHelper, e o método de uso pode ser consultado na imagem abaixo:

<p>
  <img src="https://cdn.acedata.cloud/zy2jwh.png" width="500" className="m-auto" />
</p>

<p>
  <img src="https://cdn.acedata.cloud/pr73gn.png" width="500" className="m-auto" />
</p>

<p>
  <img src="https://cdn.acedata.cloud/ic4dbw.png" width="500" className="m-auto" />
</p>

Depois, você pode copiar a codificação Base64 obtida pela extensão FeHelper, lembrando que não deve incluir o prefixo data:image/png;base64. O conteúdo específico é o seguinte:

<p>
  <img src="https://cdn.acedata.cloud/5h4x4w.png" width="500" className="m-auto" />
</p>

Podemos ver que aqui configuramos os Headers da Requisição, incluindo:

* `accept`: o formato de resposta desejado, que deve ser preenchido como `application/json`, ou seja, formato JSON.
* `authorization`: a chave para chamar a API, que pode ser selecionada diretamente após a solicitação.

Além disso, configuramos o Corpo da Requisição, incluindo:

* `image`: a imagem do captcha codificada em Base64 (sem o prefixo data:image/png;base64).

Após a seleção, você pode notar que o código correspondente também foi gerado à direita, como mostrado na figura:

<p>
  <img src="https://cdn.acedata.cloud/202y3d.png" width="500" className="m-auto" />
</p>

Clique no botão "Try" para realizar o teste, como mostrado na imagem acima, e assim obtemos o seguinte resultado:

```json theme={null}
{
  "text": "7364"
}
```

O resultado retornado contém vários campos, descritos a seguir:

* `text`: o conteúdo textual resultante do processamento da imagem do captcha alfanumérico.

Podemos ver que obtivemos o resultado da validação da imagem do captcha alfanumérico, e precisamos apenas usar o conteúdo textual do campo `text` para passar na validação.

Além disso, se você quiser gerar o código de integração correspondente, pode copiá-lo diretamente, por exemplo, o código CURL é o seguinte:

```shell theme={null}
curl -X POST 'https://api.acedata.cloud/captcha/recognition/image2text' \
-H 'accept: application/json' \
-H 'authorization: Bearer {token}' \
-H 'content-type: application/json' \
-d '{
  "image": "iVBORw0KGgoAAAANSUhEUgAAAgUAAAE3CAYAAAA6xjI2AAAAAX..."
}'
```

O código de integração em Python é o seguinte:

```python theme={null}
import requests

url = "https://api.acedata.cloud/captcha/recognition/image2text"

headers = {
    "accept": "application/json",
    "authorization": "Bearer {token}",
    "content-type": "application/json"
}

payload = {
    "image": "iVBORw0KGgoAAAANSUhEUgAAAgUAAAE3CAYAAAA6xjI2AAAAAX..."
}

response = requests.post(url, json=payload, headers=headers)
print(response.text)
```

## Modo Assíncrono (async)

Por padrão, a API é síncrona e bloqueante: uma solicitação aguardará até que o resultado do reconhecimento seja processado antes de retornar. Se você estiver fazendo uma rotação de múltiplos solucionadores (multi-solver rotation) e desejar "submeter a tarefa e imediatamente obter o task\_id, para depois agendar outros solucionadores e retornar mais tarde para obter o resultado", você pode passar `async: true` no corpo da solicitação.

Ao passar `async: true`, a interface retornará imediatamente um `task_id`, sem bloquear a espera:

```shell theme={null}
curl -X POST 'https://api.acedata.cloud/captcha/recognition/image2text' \
-H 'accept: application/json' \
-H 'authorization: Bearer {token}' \
-H 'content-type: application/json' \
-d '{
  "image": "iVBORw0KGgoAAAANSUhEUgAAAgUAAAE3CAYAAAA6xjI2AAAAAX...",
  "async": true
}'
```

```json theme={null}
{
  "success": true,
  "task_id": "61138bb6-19aa-11ec-a9c8-0242ac110002",
  "trace_id": "2efa9340-b21b-4e26-9e14-4aac95f343ab",
  "status": "processing"
}
```

Em seguida, use o `task_id` para fazer polling em `POST /captcha/tasks` (recomendado a cada 3 a 5 segundos) para obter o resultado:

```shell theme={null}
curl -X POST 'https://api.acedata.cloud/captcha/tasks' \
-H 'accept: application/json' \
-H 'authorization: Bearer {token}' \
-H 'content-type: application/json' \
-d '{
  "task_id": "61138bb6-19aa-11ec-a9c8-0242ac110002"
}'
```

Durante o processamento, será retornado `status: processing`:

```json theme={null}
{ "success": true, "task_id": "61138bb6-19aa-11ec-a9c8-0242ac110002", "status": "processing" }
```

Quando o processamento for concluído, será retornado `status: ready` e o resultado do reconhecimento `text` (a estrutura do campo é idêntica à do modo síncrono):

```json theme={null}
{
  "success": true,
  "task_id": "61138bb6-19aa-11ec-a9c8-0242ac110002",
  "status": "ready",
  "text": "7364"
}
```

Descrição de cobrança: no modo assíncrono, a criação de tarefas e o polling "em processamento" não geram custos; **apenas quando o resultado do reconhecimento for obtido com sucesso será cobrado uma vez** (o mesmo preço do modo síncrono). Portanto, cancelar tarefas que ainda não foram concluídas durante a rotação não gerará custos. `/captcha/tasks` é aplicável a todas as interfaces de captcha (token e série de reconhecimento), e você pode usar o mesmo `task_id` para polling.

## Tratamento de Erros

Ao chamar a API, se ocorrer um erro, a API retornará o código e a mensagem de erro correspondentes. Por exemplo:

* `400 token_mismatched`: Solicitação inválida, possivelmente devido a parâmetros ausentes ou inválidos.
* `400 api_not_implemented`: Solicitação inválida, possivelmente devido a parâmetros ausentes ou inválidos.
* `401 invalid_token`: Não autorizado, token de autorização inválido ou ausente.
* `429 too_many_requests`: Muitas solicitações, você excedeu o limite de taxa.
* `500 api_error`: Erro interno do servidor, algo deu errado no servidor.

### Exemplo de Resposta de Erro

```json theme={null}
{
  "success": false,
  "error": {
    "code": "api_error",
    "message": "falha na busca"
  },
  "trace_id": "2cf86e86-22a4-46e1-ac2f-032c0f2a4e89"
}
```

## Conclusão

Através deste documento, você já entendeu como usar a API de reconhecimento de código de verificação alfanumérico digital que pode ser utilizada para reconhecer códigos de verificação alfanuméricos de comprimento variável. Insira o conteúdo da imagem do código de verificação, e a saída será o resultado do código de verificação. Esperamos que este documento possa ajudá-lo a integrar e usar melhor essa API. Se tiver alguma dúvida, sinta-se à vontade para entrar em contato com nossa equipe de suporte técnico.
