# Welcome

Document by hmcaptcha.com

![](https://486404770-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FZfSw37qFaqBImNsbyjFj%2Fuploads%2F5gf5UuG371jwsA5zertv%2FScreenshot%202023-09-22%20155546.png?alt=media\&token=be654399-aa77-4930-826b-0d9a7a2516b6)![](https://486404770-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FZfSw37qFaqBImNsbyjFj%2Fuploads%2FNGR75VTyPafydV2h0JWd%2Fhcaptcha_grid.png?alt=media\&token=a7fc6261-c10a-447a-892e-5a2720b0e019)![](https://486404770-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FZfSw37qFaqBImNsbyjFj%2Fuploads%2F55HB0PknOI1tAwsnMRxM%2Fhcaptcha_point.png?alt=media\&token=9c60110c-17c7-48da-92db-564d98f882c1)![](https://486404770-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FZfSw37qFaqBImNsbyjFj%2Fuploads%2FtGneREzOVQnw4glFX3Rd%2FScreenshot_20220804-065513.png?alt=media\&token=6ef67bf0-aa99-4599-9255-6e7f9cb047f5)![](https://486404770-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FZfSw37qFaqBImNsbyjFj%2Fuploads%2FKtOys2FLHziFzkwPCucK%2F7.PNG?alt=media\&token=06607d0a-91f5-4857-9644-8490f97acb01)![](https://486404770-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FZfSw37qFaqBImNsbyjFj%2Fuploads%2Fle2O7tP7CdLQDAV91ZFy%2F1.jpg?alt=media\&token=c207e81e-5e65-4f67-87fc-2a78dd1f574d)![](https://486404770-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FZfSw37qFaqBImNsbyjFj%2Fuploads%2FYHq8qFkE0o3x49R1To3l%2FCapxoaytest2a.PNG?alt=media\&token=fd2799af-5664-4182-8499-b4c180fb0ec6)![](https://486404770-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FZfSw37qFaqBImNsbyjFj%2Fuploads%2FJNPMWmy5CJl7m7vZgmRb%2F59.png?alt=media\&token=337af538-26b3-4926-beec-8e181b68eeba)

<figure><img src="https://486404770-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FZfSw37qFaqBImNsbyjFj%2Fuploads%2FoSyaH2wBlAvbWyXWfBf5%2Ffun-captcha.jpg?alt=media&amp;token=1e3e9a5d-af30-4ced-b10f-12ef7b1186b7" alt=""><figcaption></figcaption></figure>


# API - Get Balance

<mark style="color:blue;">`GET`</mark> `https://hmcaptcha.com/user/balance?apikey={your_apikey}`

**Example** [`https://hmcaptcha.com/user/balance?apikey=admin-goiZ4dxa1GNHH!Rt0He8KEnrfYJCz3JE`](https://hmcaptcha.com/user/balance?apikey=admin-goiZ4dxa1GNHH!Rt0He8KEnrfYJCz3JE)

#### Query Parameters

| Name                                     | Type | Description                    |
| ---------------------------------------- | ---- | ------------------------------ |
| apikey<mark style="color:red;">\*</mark> |      | The apikey or subscription key |

{% tabs %}
{% tab title="200: OK OK" %}

```json
{
  "Code": 0,
  "Message": "Success",
  "Balance": 4.999
}
```

{% endtab %}

{% tab title="200: OK FAILED" %}

```json
{
    "Code": 1,
    "Message": "Error description"
}
```

{% endtab %}
{% endtabs %}


# Guide

Hướng dẫn thêm / Instructions for adding

**Nếu thêm tham số `wait=1` vào URL, thì kết quả sẽ về ngay sau khi captcha được giải mà không cần gọi `getResult`**

**If the 'wait=1' parameter is added to the URL, the result will return immediately after the captcha is solved without needing to call 'getResult'.**


# Tiktok Captcha

## Create task

<mark style="color:green;">`POST`</mark> `https://hmcaptcha.com/Recognition?wait=1`

**1.SLIDE CAPTCHA**

<img src="https://486404770-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FZfSw37qFaqBImNsbyjFj%2Fuploads%2FKtOys2FLHziFzkwPCucK%2F7.PNG?alt=media&amp;token=06607d0a-91f5-4857-9644-8490f97acb01" alt="" data-size="original">

**Example** `https://hmcaptcha.com/Recognition?wait=1`

`{`\
&#x20;    `"Apikey": "YOUR APIKEY",`\
&#x20;    `"Type": "ALL_CAPTCHA_SLIDE",`\
&#x20;    `"Image": "Image as base64 encoded"`\
`}`

**2.SELECT 2 OBJECT**

<div align="left"><figure><img src="https://486404770-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FZfSw37qFaqBImNsbyjFj%2Fuploads%2Fle2O7tP7CdLQDAV91ZFy%2F1.jpg?alt=media&amp;token=c207e81e-5e65-4f67-87fc-2a78dd1f574d" alt="" width="375"><figcaption></figcaption></figure></div>

**Example** `https://hmcaptcha.com/Recognition?wait=1`

`{`\
&#x20;    `"Apikey": "YOUR APIKEY",`\
&#x20;    `"Type": "TIKTOK_OBJ",`\
&#x20;    `"Image": "Image as base64 encoded",`\
&#x20;    `"URL_Image": "Required if Image is missing."`\
`}`

`` Note: chỉ cần 1 trong 2 tham số `Image` hoặc `URL_Image` ``

**3.ROTATE CAPTCHA APP**

<div align="left"><figure><img src="https://486404770-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FZfSw37qFaqBImNsbyjFj%2Fuploads%2FjbapJVIjZAFTG1qz8mT8%2Fcaptcha.png?alt=media&amp;token=05793daa-1af6-4168-9d6e-8f17ad72e1dc" alt="" width="294"><figcaption></figcaption></figure></div>

**Example** `https://hmcaptcha.com/Recognition?wait=1`

`{`\
&#x20;    `"Apikey": "YOUR APIKEY",`\
&#x20;    `"Type": "TIKTOK_ROTATE_APP",`\
&#x20;    `"Image": "Image as base64 encoded"`\
`}`

`Note: Image gửi lên là ảnh chụp màn hình hoặc ảnh chỉ lấy phần captcha`

**4.ROTATE CAPTCHA WEB**

<img src="https://486404770-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FZfSw37qFaqBImNsbyjFj%2Fuploads%2FkxFH1Oi6UpfeVniaxZZD%2FCapxoaytest25a.PNG?alt=media&amp;token=4902087b-ca72-45f8-94d3-f0c60f8781d0" alt="" data-size="original">

**Example** `https://hmcaptcha.com/Recognition?wait=1`

`{`\
&#x20;    `"Apikey": "YOUR APIKEY",`\
&#x20;    `"Type": "TIKTOK_ROTATE_WEB",`\
&#x20;    `"URL_Image1": "url image 1 of captcha (ảnh bên trong)",`\
&#x20;    `"URL_Image2": "url image 2 of captcha (ảnh bên ngoài)"`\
`}`

#### Query Parameters

| Name | Type | Description                                                                                                                                       |
| ---- | ---- | ------------------------------------------------------------------------------------------------------------------------------------------------- |
| wait | Bool | If the 'wait=1' parameter is added to the URL, the result will return immediately after the captcha is solved without needing to call 'getResult' |

#### Headers

| Name                                           | Type   | Description      |
| ---------------------------------------------- | ------ | ---------------- |
| Content-Type<mark style="color:red;">\*</mark> | String | application/json |

#### Request Body

<table data-full-width="false"><thead><tr><th width="163">Name</th><th width="87">Type</th><th>Description</th></tr></thead><tbody><tr><td>Apikey<mark style="color:red;">*</mark></td><td>String</td><td>The apikey or subscription key</td></tr><tr><td>Type<mark style="color:red;">*</mark></td><td>String</td><td><p><code>ALL_CAPTCHA_SLIDE</code><br><code>TIKTOK_OBJ</code><br><code>TIKTOK_ROTATE_APP</code></p><p><code>TIKTOK_ROTATE_WEB</code></p></td></tr><tr><td>Image</td><td>String</td><td>Image encoded as base64</td></tr><tr><td>URL_Image</td><td>String</td><td>Required if <code>Image</code> is missing. </td></tr><tr><td>Question</td><td>String</td><td><p>Questions in English,<br>Not required,</p><p>default: "<code>Select 2 objects that are the same shape</code>"</p></td></tr><tr><td>ref</td><td>String</td><td>Add to get referral money</td></tr></tbody></table>

{% tabs %}
{% tab title="200: OK OK" %}

```json
{
    "Code": 0,
    "TaskId": 123456,
    "Message": "OK"
}
```

{% endtab %}

{% tab title="200: OK FAILED" %}

```json
{
    "Code": 1,
    "Message": "Error description"
}
```

{% endtab %}
{% endtabs %}

## Get result

<mark style="color:blue;">`GET`</mark> `https://hmcaptcha.com/getResult?apikey={your_apikey}&taskid={taskid}`

**Example** `https://hmcaptcha.com/getResult?apikey=admin_goiZ4dxa1GNHHRt0He8KEnrfYJCz3JE&taskid=12345`

#### Query Parameters

| Name                                     | Type   | Description                          |
| ---------------------------------------- | ------ | ------------------------------------ |
| apikey<mark style="color:red;">\*</mark> | String | The user apikey. Get it in dashboard |
| taskid<mark style="color:red;">\*</mark> | String | The task id from Create Task step    |

{% tabs %}
{% tab title="200: OK PENDING " %}

```json
{
    "Code": 0,
    "Status": "PENDING",
    "Data": null
}
```

{% endtab %}

{% tab title="200: OK PROCESSING" %}

```json
{
    "Code": 0,
    "Status": "PROCESSING",
    "Data": null
}
```

{% endtab %}

{% tab title="200: OK ERROR" %}

```json
{
    "Code": 0,
    "Status": "ERROR",
    "Message": "Error message detail"
    "Data": null
}
```

{% endtab %}
{% endtabs %}

{% tabs %}
{% tab title="200: OK SUCCESS (slide)" %}

```json
{
    "Code": 0,
    "Status": "SUCCESS",
    "Data": {
            "offset": 78, // Drag to right 78px
            "x": 210,
            "y": 652 // point button slide
        }
}
```

{% endtab %}
{% endtabs %}

{% tabs %}
{% tab title="200: OK SUCCESS (2 obj)" %}

```json
{
    "Code": 0,
    "Status": "SUCCESS",
    "Data": {
            "x1y1x2y2":"678|427|540|564",
            "raw":"0.61413,0.62064|0.48913,0.819767" // x1,y1|x2,y2 ...
        }
}
```

{% endtab %}
{% endtabs %}

{% tabs %}
{% tab title="200: OK SUCCESS (rotate web)" %}

```json
{
    "Code": 0,
    "Status": "SUCCESS",
    "Data": {
            "angle": 78
        }
}
```

{% endtab %}

{% tab title="200: OK SUCCESS (rotate app)" %}

```json
{
    "Code": 0,
    "Status": "SUCCESS",
    "Data": {
            "angle": 78,
            "point_slide": {"x": 210, "y": 652} // point button slide
        }
}
```

{% endtab %}
{% endtabs %}

### Hướng dẫn thêm cho captcha xoay

* Kết quả nhận được sau khi giải là độ (angle), muốn chuyển đổi sang pixel để kéo cần tính theo công thức sau:&#x20;

```python
# Tính offset
offset = angle * width * 0.00446837493
# hoặc
offset = angle * (width_slide/180)
```

* Với width (độ rộng thanh trượt) được lấy như ảnh sau:

<div><figure><img src="https://486404770-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FZfSw37qFaqBImNsbyjFj%2Fuploads%2FZhS9LSRPZsIASVX45Yaa%2Fimage.png?alt=media&amp;token=9cf6b6b7-2507-4cac-b056-d0cb81546107" alt="" width="375"><figcaption></figcaption></figure> <figure><img src="https://486404770-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FZfSw37qFaqBImNsbyjFj%2Fuploads%2F4PPb4xCCu49lix3JyRu9%2FNew%20Project%20(51).png?alt=media&amp;token=bc792f5f-6a12-4c7f-b927-f6eb55efc8ca" alt="" width="375"><figcaption></figcaption></figure></div>

```python
# Some code (TIKTOK_ROTATE_APP)
response = {
    "Code": 0,
    "Status": "SUCCESS",
    "Data": {
            "angle": 78,
            "point_slide": {"x": 210, "y": 652} // point button slide
        }
}

# Lấy kết quả 'angle' trong phản hồi
angle = response["Data"]["angle"]

# Tính offset
# offset = angle * width * 0.00446837493
# hoặc
offset = angle * (width_slide/180)

# Tính lại tọa độ để kéo (trên app tiktok)
x1 = response["Data"]["point_slide"]["x"]
y1 = y2 = response["Data"]["point_slide"]["y"]
x2 = x1 + offset

ADB_exec(f"adb shell input touchscreen swipe {x1} {y1} {x2} {y2}")
```

### Hướng dẫn thêm cho captcha chọn đối tượng giống nhau

* Kết quả nhận được: `{"raw": "0.61413,0.62064|0.48913,0.819767"}`  // x1,y1|x2,y2 ...
* Tính tọa độ click như sau:

```python
# Some code (TIKTOK_OBJ)
response = {
    "raw": "0.61413,0.62064|0.48913,0.819767"
}
for pn in response['raw'].split('|'):
    xn, yn = pn.split(',')
    xn, yn = float(xn), float(yn)
    x = int(xn * image.renderWidth)
    y = int(xn * image.renderHeight)
    click(x, y)
```

<figure><img src="https://486404770-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FZfSw37qFaqBImNsbyjFj%2Fuploads%2FGUjnAAFx0lhrfv0zfBUP%2Fimage.png?alt=media&amp;token=441c2ed3-cc8d-497d-b8f8-b024880d8053" alt=""><figcaption></figcaption></figure>

### Hướng dẫn thêm cho captcha slide trên phone

```python
# Tiktok thêm một số tỉ lệ khiến cho kéo theo offset không chính xác
# (kéo 45px nhưng mảnh ghép chạy đến 57px rồi)
# Nếu bị thì fix bằng công thức sau
offset = offset * (45 / 57)

```


# SLIDE Captcha

## Create task

<mark style="color:green;">`POST`</mark> `https://hmcaptcha.com/Recognition`

**SLIDE CAPTCHA**

<img src="https://486404770-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FZfSw37qFaqBImNsbyjFj%2Fuploads%2FKtOys2FLHziFzkwPCucK%2F7.PNG?alt=media&amp;token=06607d0a-91f5-4857-9644-8490f97acb01" alt="" data-size="original">![](https://486404770-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FZfSw37qFaqBImNsbyjFj%2Fuploads%2F5vLKnxJyOkntYM2qEcJ4%2Fphoto_1_2022-12-12_15-07-13.jpg?alt=media\&token=1dfa575d-b4c1-48ce-bd57-c0d1ce10e593)![](https://486404770-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FZfSw37qFaqBImNsbyjFj%2Fuploads%2FtGneREzOVQnw4glFX3Rd%2FScreenshot_20220804-065513.png?alt=media\&token=6ef67bf0-aa99-4599-9255-6e7f9cb047f5)

![](https://486404770-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FZfSw37qFaqBImNsbyjFj%2Fuploads%2Fa7Z6gWpJZmcHVFjAn0uk%2Fz4002966392875_650d0609474ac30b46c71d294e247c6a.jpg?alt=media\&token=20f92780-892b-4e3d-9e8f-849953b8cbcd)![](https://486404770-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FZfSw37qFaqBImNsbyjFj%2Fuploads%2FJNPMWmy5CJl7m7vZgmRb%2F59.png?alt=media\&token=337af538-26b3-4926-beec-8e181b68eeba)![](https://486404770-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FZfSw37qFaqBImNsbyjFj%2Fuploads%2Fe7Dhpbd7vZMUsPb9HKMH%2F2023_04_17_00_58_IMG_4893.PNG?alt=media\&token=32d0b12d-4f10-4bee-b422-83a9c802304e)

**Example** [`https://hmcaptcha.com/recognition`](https://hmcaptcha.com/recognition)

`{`\
&#x20;    `"Apikey": "YOUR APIKEY",`\
&#x20;    `"Type": "ALL_CAPTCHA_SLIDE",`\
&#x20;    `"Image": "Image as base64 encoded"`\
`}`

#### Query Parameters

| Name | Type | Description                                                                                                                                       |
| ---- | ---- | ------------------------------------------------------------------------------------------------------------------------------------------------- |
| wait | Bool | If the 'wait=1' parameter is added to the URL, the result will return immediately after the captcha is solved without needing to call 'getResult' |

#### Headers

| Name         | Type   | Description      |
| ------------ | ------ | ---------------- |
| Content-Type | String | application/json |

#### Request Body

| Name                                     | Type   | Description                                                                                                                                    |
| ---------------------------------------- | ------ | ---------------------------------------------------------------------------------------------------------------------------------------------- |
| Apikey<mark style="color:red;">\*</mark> | String | The apikey or subscription key                                                                                                                 |
| Type<mark style="color:red;">\*</mark>   | String | <p><code>ALL\_CAPTCHA\_SLIDE</code><br><code>TIKTOK\_OBJ</code><br><code>TIKTOK\_ROTATE\_APP</code></p><p><code>TIKTOK\_ROTATE\_WEB</code></p> |
| Image                                    | String | Image encoded as base64                                                                                                                        |
| ref                                      | String | Add to get referral money                                                                                                                      |

{% tabs %}
{% tab title="200: OK OK" %}

```json
{
    "Code": 0,
    "TaskId": 123456,
    "Message": "OK"
}
```

{% endtab %}

{% tab title="200: OK FAILED" %}

```json
{
    "Code": 1,
    "Message": "Error description"
}
```

{% endtab %}
{% endtabs %}

## Get result

<mark style="color:blue;">`GET`</mark> `https://hmcaptcha.com/getResult?apikey={your_apikey}&taskid={taskid}`

**Example** [`https://hmcaptcha.com/getResult?apikey=admingoiZ4dxa1GNHH!Rt0He8KEnrfYJCz3JE&taskid=12345`](https://hmcaptcha.com/getResult?apikey=admingoiZ4dxa1GNHH!Rt0He8KEnrfYJCz3JE\&taskid=12345)

#### Query Parameters

| Name                                     | Type   | Description                          |
| ---------------------------------------- | ------ | ------------------------------------ |
| apikey<mark style="color:red;">\*</mark> | String | The user apikey. Get it in dashboard |
| taskid<mark style="color:red;">\*</mark> | String | The task id from Create Task step    |

{% tabs %}
{% tab title="200: OK PENDING - repeat the request until Status = SUCCESS or ERROR" %}

```json
{
    "Code": 0,
    "Status": "PENDING",
    "Data": null
}
```

{% endtab %}

{% tab title="200: OK PROCESSING - repeat the request until Status = SUCCESS or ERROR" %}

```json
{
    "Code": 0,
    "Status": "PROCESSING",
    "Data": null
}
```

{% endtab %}

{% tab title="200: OK SUCCESS" %}

```json
{
    "Code": 0,
    "Status": "SUCCESS",
    "Data": {
            "offset": 78, // Drag to right 78px
            "x": 210,
            "y": 652 // point button slide
        }
}
```

{% endtab %}

{% tab title="200: OK ERROR" %}

```json
{
    "Code": 0,
    "Status": "ERROR",
    "Message": "Error message detail"
    "Data": null
}
```

{% endtab %}
{% endtabs %}


# WORKER\_CASH $0.6

## Create task

<mark style="color:green;">`POST`</mark> `https://hmcaptcha.com/Recognition`

**1.WORKER CASH WEB**

&#x20;    **- Hình lớn:**

<img src="https://486404770-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FZfSw37qFaqBImNsbyjFj%2Fuploads%2Ff0GePdpfRIpLV3UEjtrs%2Fworker_cash_big.png?alt=media&amp;token=02436e93-914a-4aaf-9183-21ce11af99f0" alt="Hình lớn" data-size="original">

&#x20;    **- Hình nhỏ:**

<img src="https://486404770-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FZfSw37qFaqBImNsbyjFj%2Fuploads%2FLTf1mulwzcyWWXvZ8AXI%2Fworker_cash_small.png?alt=media&amp;token=0a2d41dd-93d1-486d-ba01-59a36b7a525f" alt="Hình nhỏ" data-size="original">

**Example** [`https://hmcaptcha.com/recognition`](https://hmcaptcha.com/recognition)

`{`\
&#x20;    `"Apikey": "YOUR APIKEY",`\
&#x20;    `"Type": "WORKER_CASH_WEB",`\
&#x20;    `"base64_image1": "base64 của captcha chính (hình lớn) lấy trong thẻ <img>",`\
&#x20;    `"base64_image2": "base64 của các hình yêu cầu (hình nhỏ) lấy trong thẻ <img>"`\
`}`

**2.WORKER CASH APP**

<img src="https://486404770-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FZfSw37qFaqBImNsbyjFj%2Fuploads%2FZA1tVGKH2k98x1JGSSDF%2Fworker_cash.png?alt=media&amp;token=6c7d19c9-498c-42ad-841d-6cf321e3eac7" alt="" data-size="original">

**Example** [`https://hmcaptcha.com/recognition`](https://hmcaptcha.com/recognition)

`{`\
&#x20;    `"Apikey": "YOUR APIKEY",`\
&#x20;    `"Type": "WORKER_CASH_APP",`\
&#x20;    `"Image": "Image as base64 encoded"`\
`}`

#### Query Parameters

| Name | Type | Description                                                                                                                                       |
| ---- | ---- | ------------------------------------------------------------------------------------------------------------------------------------------------- |
| wait | Bool | If the 'wait=1' parameter is added to the URL, the result will return immediately after the captcha is solved without needing to call 'getResult' |

#### Headers

| Name         | Type   | Description      |
| ------------ | ------ | ---------------- |
| Content-Type | String | application/json |

#### Request Body

| Name                                             | Type   | Description                                                                |
| ------------------------------------------------ | ------ | -------------------------------------------------------------------------- |
| Apikey<mark style="color:red;">\*</mark>         | String | The apikey or subscription key                                             |
| Type<mark style="color:red;">\*</mark>           | String | <p><code>WORKER\_CASH\_WEB</code></p><p><code>WORKER\_CASH\_APP</code></p> |
| Image                                            | String | (APP) Image encoded as base64                                              |
| URL\_Image                                       | String | (APP) Required if `Image` is missing.                                      |
| base64\_image1<mark style="color:red;">\*</mark> | String | (WEB) Image captcha encoded as base64                                      |
| base64\_image2<mark style="color:red;">\*</mark> | String | (WEB) Image queue encoded as base64                                        |

{% tabs %}
{% tab title="200: OK OK" %}

```json
{
    "Code": 0,
    "TaskId": 123456,
    "Message": "OK"
}
```

{% endtab %}

{% tab title="200: OK FAILED" %}

```json
{
    "Code": 1,
    "Message": "Error description"
}
```

{% endtab %}
{% endtabs %}

## Get result

<mark style="color:blue;">`GET`</mark> `https://hmcaptcha.com/getResult?apikey={your_apikey}&taskid={taskid}`

**Example** [`https://hmcaptcha.com/getResult?apikey=admingoiZ4dxa1GNHH!Rt0He8KEnrfYJCz3JE&taskid=12345`](https://hmcaptcha.com/getResult?apikey=admingoiZ4dxa1GNHH!Rt0He8KEnrfYJCz3JE\&taskid=12345)

#### Query Parameters

| Name                                     | Type   | Description                          |
| ---------------------------------------- | ------ | ------------------------------------ |
| apikey<mark style="color:red;">\*</mark> | String | The user apikey. Get it in dashboard |
| taskid<mark style="color:red;">\*</mark> | String | The task id from Create Task step    |

{% tabs %}
{% tab title="200: OK PENDING - repeat the request until Status = SUCCESS or ERROR" %}

```json
{
    "Code": 0,
    "Status": "PENDING",
    "Data": null
}
```

{% endtab %}

{% tab title="200: OK PROCESSING - repeat the request until Status = SUCCESS or ERROR" %}

```json
{
    "Code": 0,
    "Status": "PROCESSING",
    "Data": null
}
```

{% endtab %}

{% tab title="200: OK SUCCESS (WEB + APP)" %}

```json
{
    "Code": 0,
    "Status": "SUCCESS",
    "Data": {
            "list_point": [[20, 219], [96, 88], [200, 200]] // [(x1,y1), (x2,y2), (x3,y3)]
        }
}
```

{% endtab %}

{% tab title="200: OK ERROR" %}

```json
{
    "Code": 0,
    "Status": "ERROR",
    "Message": "Error message detail"
    "Data": null
}
```

{% endtab %}
{% endtabs %}


# Download Extension

## Sử dụng extension của chúng tôi để bỏ qua captcha dễ dàng.

{% embed url="<https://hmcaptcha.com/extension.html>" %}
Tải xuống tại đây
{% endembed %}


