> For the complete documentation index, see [llms.txt](https://docs2.anticaptcha.top/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs2.anticaptcha.top/api-giai-captcha/api-giai-captcha-token/funcaptcha.md).

# FunCAPTCHA Token

Hướng dẫn sử dụng API Giải funCAPTCHA của anticaptcha.top

FunCaptcha hay còn gọi là Arkose Labs Captcha là một loại captcha trông giống như sau:

<figure><img src="https://content.gitbook.com/content/aiWdIa3pJ7tiyJ3OnlF8/blobs/Lq1BvuPIGNyu35f1AxGp/image.png" alt=""><figcaption><p><a href="https://anticaptcha.top/dich-vu-giai-funcaptcha-uy-tin-gia-re-sieu-nhanh-tt1724.html">giải funcaptcha</a></p></figcaption></figure>

### 1. Tìm Publickey của funCAPTCHA

Publickey có thể tìm thấy bên trong tham số <mark style="color:red;">`data-pkey`</mark> của phần tử div của funcaptcha hoặc bên trong phần tử đầu vào có tên <mark style="color:red;">`fc-token`</mark> - chỉ cần trích xuất khóa được chỉ định sau `pk` từ giá trị của phần tử này.

<figure><img src="https://content.gitbook.com/content/aiWdIa3pJ7tiyJ3OnlF8/blobs/7Z6UajlwIPD0iw1iIMd5/image.png" alt=""><figcaption></figcaption></figure>

### 2. Tạo yêu cầu/Request

<mark style="color:red;">**POST :**</mark> <mark style="color:red;"></mark><mark style="color:red;">`https://anticaptcha.top/in.php`</mark>

**Các tham số Body**:

<table data-header-hidden><thead><tr><th width="157">Tên trường dữ liệu</th><th width="131"></th><th width="105"></th><th></th></tr></thead><tbody><tr><td><strong>Tên trường dữ liệu</strong></td><td><strong>Kiểu dữ liệu</strong></td><td><strong>Bắt buộc</strong></td><td><strong>Mô tả</strong></td></tr><tr><td>key</td><td>String</td><td>x</td><td>Key duy nhất để xác định đối tác API</td></tr><tr><td>method</td><td>String</td><td>x</td><td>Giá trị: <mark style="color:red;"><strong>funcaptcha</strong></mark></td></tr><tr><td>publickey</td><td>String</td><td>x</td><td>Giá trị của tham số <em>pk</em> hoặc <em>data-pkey</em></td></tr><tr><td>pageurl</td><td>String</td><td>x</td><td><p>url của webpage hiển thị funCaptcha mà bạn muốn giải<br>Ví dụ: </p><pre class="language-postman_json"><code class="lang-postman_json">https://iframe.arkoselabs.com/3117BF26-4762-4F5A-8ED9-A85E69209A46/index.html?mkt=en
</code></pre><p></p></td></tr><tr><td>surl</td><td>String</td><td></td><td>Giá trị của tham số <em>surl</em> mà tìm thấy trên pageurl</td></tr><tr><td>data[key]</td><td>String</td><td></td><td>Tham số bổ sung có thể được yêu cầu khi triển khai Funcaptcha. Sử dụng thuộc tính này để gửi giá trị "blob" dưới dạng một mảng được xâu chuỗi. Ví dụ:  data[blob]=stringValue</td></tr><tr><td>json</td><td>Integer</td><td></td><td><mark style="color:red;"><strong>0</strong></mark>: server sẽ trả về dạng text (mặc định)<br><mark style="color:red;"><strong>1</strong></mark>: server sẽ trả về dạng JSON</td></tr></tbody></table>

```http
POST HTTP
Url: https://anticaptcha.top/in.php
Content-Type: application/json

{
	"key": "YOUR_API_KEY",
	"method": "funcaptcha", // id cho funcaptcha
	"publickey": "3117BF26-4762-4F5A-8ED9-A85E69209A46", // thay bằng puclickey funcaptcha của bạn
	"pageurl": "https://iframe.arkoselabs.com/3117BF26-4762-4F5A-8ED9-A85E69209A46/index.html?mkt=en" // thay bằng url của bạn
}
```

### Kết quả trả về/Response

{% tabs %}
{% tab title="Thành công" %}

```json
dạng text: OK|[id]
Ví dụ: OK|24380238

dạng JSON
{
	"status": 1,
	"request": "24380427", //task id
}
```

{% endtab %}

{% tab title="Thất bại" %}

```json
{
	"status": 0,
	"request": "Apikey incorrect"
}
```

hoặc

```json
{
	"status": 0,
	"request": "Balance not enough"
}
```

{% endtab %}
{% endtabs %}

### 3. Lấy kết quả giải captcha/Response

<mark style="color:red;">**GET :**</mark> <mark style="color:red;"></mark><mark style="color:red;">`https://anticaptcha.top/res.php`</mark>

**Các tham số Body**:

<table data-header-hidden><thead><tr><th width="197">Tên trường dữ liệu</th><th width="134"></th><th width="105"></th><th></th></tr></thead><tbody><tr><td><strong>Tên trường dữ liệu</strong></td><td><strong>Kiểu dữ liệu</strong></td><td><strong>Bắt buộc</strong></td><td><strong>Mô tả</strong></td></tr><tr><td>key</td><td>String</td><td>x</td><td>Key duy nhất để xác định đối tác API</td></tr><tr><td>id</td><td>String</td><td>x</td><td>Task id trả về ở bước 1</td></tr><tr><td>json</td><td>Integer</td><td></td><td><mark style="color:red;"><strong>0</strong></mark>: server sẽ trả về dạng text (mặc định)<br><mark style="color:red;"><strong>1</strong></mark>: server sẽ trả về dạng JSON</td></tr></tbody></table>

```http
GET HTTP
Url: https://anticaptcha.top/res.php?key=[apikey của bạn]&id=[task id]&json=1
```

### Kết quả trả về/Response

{% tabs %}
{% tab title="Đang xử lý" %}

```json
{
	"status": 0,
	"request": "CAPCHA_NOT_READY"
}
```

{% endtab %}

{% tab title="Thành công" %}

```json
dạng text: OK|[kết quả giải ra]
Ví dụ: OK|73417a100523688b1.8492619104|r=ap-southeast-1|meta=3|metabgclr=%23ffffff|metaiconclr=%23757575|guitextcolor=%23000000|pk=3117BF26-4762-4F5A-8ED9-A85E69209A46|dc=1|at=40|ag=101|cdn_url=https%3A%2F%2Ffuncaptcha.com%2Fcdn%2Ffc|lurl=https%3A%2F%2Faudio-ap-southeast-1.arkoselabs.com|surl=https%3A%2F%2Ffuncaptcha.com|smurl=https%3A%2F%2Ffuncaptcha.com%2Fcdn%2Ffc%2Fassets%2Fstyle-manager

dạng JSON
{
	"status": 1,
	"request": "73417a100523688b1.8492619104|r=ap-southeast-1|meta=3|metabgclr=%23ffffff|metaiconclr=%23757575|guitextcolor=%23000000|pk=3117BF26-4762-4F5A-8ED9-A85E69209A46|dc=1|at=40|ag=101|cdn_url=https%3A%2F%2Ffuncaptcha.com%2Fcdn%2Ffc|lurl=https%3A%2F%2Faudio-ap-southeast-1.arkoselabs.com|surl=https%3A%2F%2Ffuncaptcha.com|smurl=https%3A%2F%2Ffuncaptcha.com%2Fcdn%2Ffc%2Fassets%2Fstyle-manager" //kết quả giải captcha
}
```

{% endtab %}

{% tab title="Thất bại" %}

```json
{
	"status": 0,
	"request": "Apikey incorrect"
}
```

hoặc

```json
{
	"status": 0,
	"request": "Id does not exist"
}
```

{% endtab %}
{% endtabs %}

### 4. Code mẫu

{% tabs %}
{% tab title="C#" %}

```csharp
var client = new HttpClient();
var request = new HttpRequestMessage(HttpMethod.Post, "https://anticaptcha.top/in.php");
var content = new StringContent("{\r\n    \"key\": \"[api key]\",\r\n    \"method\": \"funcaptcha\",\r\n    \"publickey\": \"3117BF26-4762-4F5A-8ED9-A85E69209A46\",\r\n    \"pageurl\": \"https://iframe.arkoselabs.com/3117BF26-4762-4F5A-8ED9-A85E69209A46/index.html?mkt=en\"\r\n}", null, "application/json");
request.Content = content;
var response = await client.SendAsync(request);
response.EnsureSuccessStatusCode();
Console.WriteLine(await response.Content.ReadAsStringAsync());
```

{% endtab %}

{% tab title="PHP Curl" %}

```php
<?php

$curl = curl_init();
curl_setopt_array($curl, array(
  CURLOPT_URL => 'https://anticaptcha.top/in.php',
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => '',
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 0,
  CURLOPT_FOLLOWLOCATION => true,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => 'POST',
  CURLOPT_POSTFIELDS =>'{
    "key": "[api key]",
    "method": "funcaptcha",
    "publickey": "3117BF26-4762-4F5A-8ED9-A85E69209A46",
    "pageurl": "https://iframe.arkoselabs.com/3117BF26-4762-4F5A-8ED9-A85E69209A46/index.html?mkt=en"
}',
  CURLOPT_HTTPHEADER => array(
    'Content-Type: application/json'
  ),
));
$response = curl_exec($curl);
curl_close($curl);
echo $response;
?>
```

{% endtab %}

{% tab title="Javascript Jquery AJAX" %}

```javascript
var settings = {
  "url": "https://anticaptcha.top/in.php",
  "method": "POST",
  "timeout": 0,
  "headers": {
    "Content-Type": "application/json"
  },
  "data": JSON.stringify({
    "key": "[api key]",
    "method": "funcaptcha",
    "publickey": "3117BF26-4762-4F5A-8ED9-A85E69209A46",
    "pageurl": "https://iframe.arkoselabs.com/3117BF26-4762-4F5A-8ED9-A85E69209A46/index.html?mkt=en"
  }),
};

$.ajax(settings).done(function (response) {
  console.log(response);
});
```

{% endtab %}

{% tab title="Python" %}

```python
import requests
import json

url = "https://anticaptcha.top/in.php"

payload = json.dumps({
  "key": "[api key]",
  "method": "funcaptcha",
  "publickey": "3117BF26-4762-4F5A-8ED9-A85E69209A46",
  "pageurl": "https://iframe.arkoselabs.com/3117BF26-4762-4F5A-8ED9-A85E69209A46/index.html?mkt=en"
})
headers = {
  'Content-Type': 'application/json'
}
response = requests.request("POST", url, headers=headers, data=payload)
print(response.text)
```

{% endtab %}

{% tab title="NodeJS" %}

```javascript
var request = require('request');
var options = {
  'method': 'POST',
  'url': 'https://anticaptcha.top/in.php',
  'headers': {
    'Content-Type': 'application/json'
  },
  body: JSON.stringify({
    "key": "[api key]",
    "method": "funcaptcha",
    "publickey": "3117BF26-4762-4F5A-8ED9-A85E69209A46",
    "pageurl": "https://iframe.arkoselabs.com/3117BF26-4762-4F5A-8ED9-A85E69209A46/index.html?mkt=en"
  })

};
request(options, function (error, response) {
  if (error) throw new Error(error);
  console.log(response.body);
});
```

{% endtab %}
{% endtabs %}

### 5. Sử dụng kết quả token nhận được

Định vị phần tử có id fc-token và đưa token nhận được vào giá trị của phần tử này.\
Làm phần còn lại những gì bạn cần làm trên trang web: submit form hoặc nhấp vào nút hoặc thứ gì đó khác

{% hint style="info" %} <mark style="color:red;">**Xin lưu ý**</mark>: đôi khi nội dung trên trang được tạo động và bạn sẽ không thấy phần tử này trong mã nguồn html. Trong những trường hợp như vậy, bạn phải khám phá mã javascript mà tạo ra nội dung. Tùy chọn "Inspect" (F12) trong Google Chrome có thể giúp ích trong việc đó.
{% endhint %}

### *<mark style="color:red;">Lưu ý</mark>:* Nên sử dụng phần mềm PostMan để kiểm tra chạy test trước
