> ## 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 인코딩 변환은 구글 크롬 플러그인 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>

그 후, 구글 크롬 플러그인 FeHelper에서 얻은 Base64 인코딩을 복사해 오면 됩니다. 단, `data:image/png;base64`의 접두사는 포함하지 않아야 하며, 구체적인 내용은 다음과 같습니다:

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

여기서 Request Headers를 설정한 것을 볼 수 있습니다. 포함된 내용은 다음과 같습니다:

* `accept`: 어떤 형식의 응답 결과를 받고 싶은지, 여기서는 `application/json`으로 JSON 형식으로 입력합니다.
* `authorization`: API 호출을 위한 키로, 신청 후 직접 드롭다운에서 선택할 수 있습니다.

또한 Request Body를 설정했습니다. 포함된 내용은 다음과 같습니다:

* `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는 동기 차단 방식입니다: 한 번의 요청은 인식 결과 처리가 완료될 때까지 기다립니다. 만약 여러 인증 코드 솔버를 회전시키는 경우(다중 솔버 회전), "작업을 제출한 후 즉시 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`는 모든 인증 코드 인터페이스(토큰 및 인식 시리즈)에 공통으로 사용되며, 동일한 `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를 더 잘 연동하고 사용할 수 있도록 도움이 되기를 바랍니다. 질문이 있으시면 언제든지 저희 기술 지원 팀에 문의해 주십시오.
