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

# Инструкция по интеграции API для распознавания цифровых английских капчи

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

В этой статье будет представлена инструкция по интеграции API для распознавания цифровых английских капчи, основанная на технологиях глубокого обучения, которая может использоваться для распознавания капчи с переменной длиной. Входные данные — изображение капчи, выходные данные — результат распознавания капчи.

## Процесс подачи заявки

Чтобы использовать API для распознавания цифровых английских капчи, сначала перейдите в [консоль Ace Data Cloud](https://platform.acedata.cloud/console/applications), чтобы получить ваш API Token и сохранить его на всякий случай.

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

Если вы еще не вошли в систему или не зарегистрированы, вас автоматически перенаправит на страницу входа, где вас пригласят зарегистрироваться и войти. После завершения вы будете автоматически возвращены на текущую страницу.

**Один API Token позволяет использовать все услуги платформы, не нужно отдельно запрашивать для каждой услуги.** При первом запросе предоставляется бесплатный лимит, чтобы вы могли попробовать; если лимит исчерпан, вы можете пополнить общий баланс в [консоли](https://platform.acedata.cloud/console/coin).

> 📘 Полная документация: [API для распознавания цифровых английских капчи →](https://platform.acedata.cloud/documents/captcha-recognition-image2text)

## Основное использование

Сначала ознакомьтесь с основным способом использования: вам нужно ввести изображение капчи с переменной длиной, и вы получите обработанный результат. Сначала необходимо просто передать поле `image`, которое представляет собой конкретное изображение капчи, как показано на рисунке:

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

Затем нам нужно преобразовать изображение капчи в кодировку Base64. Для преобразования в кодировку Base64 рекомендуется использовать плагин для браузера Google Chrome FeHelper, подробности использования можно увидеть на следующем изображении:

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

После этого вы можете скопировать кодировку Base64, полученную с помощью плагина FeHelper, помните, что она не должна содержать префикс data:image/png;base64, конкретное содержимое выглядит следующим образом:

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

Как видно, мы настроили заголовки запроса, включая:

* `accept`: формат ответа, который вы хотите получить, здесь указано `application/json`, то есть формат JSON.
* `authorization`: ключ для вызова API, после запроса вы можете выбрать его из выпадающего списка.

Также настроено тело запроса, включая:

* `image`: изображение капчи в кодировке Base64 (без префикса data:image/png;base64).

После выбора вы можете заметить, что справа также сгенерирован соответствующий код, как показано на рисунке:

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

Нажмите кнопку «Try», чтобы провести тестирование, как показано на рисунке, и мы получили следующий результат:

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

Возвращаемый результат содержит несколько полей, описание которых приведено ниже:

* `text`: текстовое содержимое, полученное в результате обработки изображения капчи с переменной длиной.

Как видно, мы получили результат распознавания изображения капчи с переменной длиной, и нам нужно просто использовать текстовое содержимое из поля `text`, чтобы пройти проверку.

Кроме того, если вы хотите сгенерировать соответствующий код для интеграции, вы можете просто скопировать его, например, код CURL выглядит следующим образом:

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

Код для интеграции на Python выглядит следующим образом:

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

## Асинхронный режим (async)

По умолчанию API работает в синхронном блокирующем режиме: один запрос будет ждать, пока не завершится обработка результата распознавания. Если вы используете несколько ротаций капчи (multi-solver rotation) и хотите «сразу получить task\_id после отправки задачи, чтобы сначала переключиться на другие капчи, а затем вернуться за результатом», вы можете передать `async: true` в теле запроса.

При передаче `async: true` интерфейс сразу вернет `task_id`, не блокируя ожидание:

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

Затем используйте этот `task_id` для опроса `POST /captcha/tasks` (рекомендуется каждые 3-5 секунд), чтобы получить результат:

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

Во время обработки будет возвращен `status: processing`:

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

После завершения обработки будет возвращен `status: ready` и результат распознавания `text` (структура полей полностью совпадает с синхронным режимом):

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

Условия оплаты: в асинхронном режиме создание задачи и опрос «в процессе обработки» не тарифицируются; **только при успешном получении результата распознавания взимается плата один раз** (по той же цене, что и в синхронном режиме). Поэтому отмена незавершенных задач в ротации не приведет к расходам. `/captcha/tasks` универсален для всех интерфейсов капчи (token и recognition серии), можно использовать один и тот же `task_id` для опроса.

## Обработка ошибок

При вызове API, если возникнет ошибка, API вернет соответствующий код ошибки и информацию. Например:

* `400 token_mismatched`: Неверный запрос, возможно, из-за отсутствия или недействительных параметров.
* `400 api_not_implemented`: Неверный запрос, возможно, из-за отсутствия или недействительных параметров.
* `401 invalid_token`: Неавторизовано, недействительный или отсутствующий токен авторизации.
* `429 too_many_requests`: Слишком много запросов, вы превысили лимит частоты.
* `500 api_error`: Внутренняя ошибка сервера, что-то пошло не так на сервере.

### Пример ответа об ошибке

```json theme={null}
{
  "success": false,
  "error": {
    "code": "api_error",
    "message": "не удалось получить"
  },
  "trace_id": "2cf86e86-22a4-46e1-ac2f-032c0f2a4e89"
}
```

## Заключение

С помощью этого документа вы узнали, как использовать API для распознавания цифровых английских капчи, который может быть использован для распознавания капчи с переменной длиной. Введите содержимое изображения капчи, получите результат капчи. Надеемся, что этот документ поможет вам лучше интегрировать и использовать данный API. Если у вас есть какие-либо вопросы, пожалуйста, не стесняйтесь обращаться в нашу техническую поддержку.
