> ## 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.

# Documentación de integración de la API de reconocimiento de CAPTCHA alfanumérico

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

Este documento presentará una descripción de la integración de la API de reconocimiento de CAPTCHA alfanumérico, que se basa en tecnología de aprendizaje profundo y se puede utilizar para reconocer CAPTCHA alfanuméricos de longitud variable. Se ingresa el contenido de la imagen del CAPTCHA y se obtiene el resultado del CAPTCHA.

## Proceso de solicitud

Para utilizar la API de reconocimiento de CAPTCHA alfanumérico, primero dirígete a [la consola de Ace Data Cloud](https://platform.acedata.cloud/console/applications) para obtener tu token de API y guardarlo como respaldo.

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

Si aún no has iniciado sesión o registrado, serás redirigido automáticamente a la página de inicio de sesión que te invitará a registrarte e iniciar sesión; una vez completado, serás redirigido automáticamente a la página actual.

**Un token de API es suficiente para acceder a todos los servicios de la plataforma, no es necesario solicitar uno por cada servicio.** La primera solicitud incluirá un crédito gratuito para que puedas probarlo; si el crédito es insuficiente, puedes recargar el saldo general en [la consola](https://platform.acedata.cloud/console/coin).

> 📘 Documentación completa: [API de reconocimiento de CAPTCHA alfanumérico →](https://platform.acedata.cloud/documents/captcha-recognition-image2text)

## Uso básico

Primero, debes entender la forma básica de uso, que consiste en ingresar la imagen del CAPTCHA alfanumérico de longitud variable que deseas procesar para obtener el resultado procesado. Primero, necesitas pasar un campo `image`, que es la imagen del CAPTCHA alfanumérico específica, como se muestra en la imagen:

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

Luego, necesitamos convertir la imagen del CAPTCHA en una imagen codificada en Base64. Se recomienda utilizar la extensión de Chrome FeHelper para realizar la conversión; puedes consultar la siguiente imagen para obtener más detalles sobre cómo usarla:

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

Después, puedes copiar el código Base64 obtenido de la extensión de Chrome FeHelper, recordando que no debe incluir el prefijo data:image/png;base64. El contenido específico es el siguiente:

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

Como puedes ver, aquí hemos configurado los encabezados de la solicitud, que incluyen:

* `accept`: el formato de respuesta que deseas recibir, aquí se establece como `application/json`, es decir, formato JSON.
* `authorization`: la clave para llamar a la API, que puedes seleccionar directamente después de solicitarla.

Además, se ha configurado el cuerpo de la solicitud, que incluye:

* `image`: la imagen del CAPTCHA codificada en Base64 (sin incluir el prefijo data:image/png;base64).

Después de seleccionar, puedes notar que también se ha generado el código correspondiente a la derecha, como se muestra en la imagen:

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

Haz clic en el botón "Try" para realizar la prueba, como se muestra en la imagen anterior, y aquí obtuvimos el siguiente resultado:

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

El resultado devuelto tiene varios campos, que se describen a continuación:

* `text`, el contenido textual resultante del procesamiento de la imagen del CAPTCHA alfanumérico.

Como puedes ver, hemos obtenido el resultado de la verificación del CAPTCHA alfanumérico procesado; solo necesitamos verificar el contenido textual en `text` para pasar la verificación.

Además, si deseas generar el código de integración correspondiente, puedes copiarlo directamente, por ejemplo, el código CURL es el siguiente:

```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..."
}'
```

El código de integración en Python es el siguiente:

```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 asíncrono (async)

Por defecto, la API es sincrónica y bloqueante: una solicitud esperará hasta que se complete el procesamiento del resultado de reconocimiento antes de devolverlo. Si estás realizando una rotación de múltiples solucionadores (multi-solver rotation) y deseas "enviar la tarea y obtener inmediatamente el task\_id, luego programar otros solucionadores y volver más tarde a obtener el resultado", puedes pasar `async: true` en el cuerpo de la solicitud.

Al pasar `async: true`, la interfaz devolverá inmediatamente un `task_id`, sin bloquear la 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"
}
```

Luego, utiliza ese `task_id` para hacer polling en `POST /captcha/tasks` (se recomienda cada 3 a 5 segundos) para obtener el 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"
}'
```

Mientras se procesa, se devolverá `status: processing`:

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

Cuando se complete el procesamiento, se devolverá `status: ready` y el resultado de reconocimiento `text` (la estructura de los campos es completamente idéntica al modo sincrónico):

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

Descripción de facturación: en modo asíncrono, la creación de tareas y el polling "en procesamiento" no generan costos; **solo se cobrará una vez al obtener con éxito el resultado de reconocimiento** (el precio es el mismo que en el modo sincrónico). Por lo tanto, cancelar tareas que aún no se han completado durante la rotación no generará costos. `/captcha/tasks` es común para todas las interfaces de CAPTCHA (token y serie de reconocimiento), y puedes hacer polling con el mismo `task_id`.

## Manejo de errores

Al llamar a la API, si encuentras un error, la API devolverá el código de error y la información correspondiente. Por ejemplo:

* `400 token_mismatched`: Solicitud incorrecta, posiblemente debido a parámetros faltantes o inválidos.
* `400 api_not_implemented`: Solicitud incorrecta, posiblemente debido a parámetros faltantes o inválidos.
* `401 invalid_token`: No autorizado, token de autorización inválido o faltante.
* `429 too_many_requests`: Demasiadas solicitudes, has superado el límite de tasa.
* `500 api_error`: Error interno del servidor, algo salió mal en el servidor.

### Ejemplo de respuesta de error

```json theme={null}
{
  "success": false,
  "error": {
    "code": "api_error",
    "message": "la recuperación falló"
  },
  "trace_id": "2cf86e86-22a4-46e1-ac2f-032c0f2a4e89"
}
```

## Conclusión

A través de este documento, usted ha aprendido cómo utilizar la API de reconocimiento de códigos de verificación alfanuméricos digitales que se puede usar para reconocer códigos de verificación alfanuméricos de longitud variable. Ingrese el contenido de la imagen del código de verificación, y la salida será el resultado del código de verificación. Esperamos que este documento le ayude a integrar y utilizar mejor esta API. Si tiene alguna pregunta, no dude en ponerse en contacto con nuestro equipo de soporte técnico.
