# GeeTest V4 Proxyless

{% hint style="warning" %}
GeeTest solver doesn't require your own proxies, so there's only the proxyless task.
{% endhint %}

Rest API Endpoint: `https://captcha.datalabs.net/createTask`

## Creating The Task <a href="#creating-the-task" id="creating-the-task"></a>

```json
POST https://captcha.datalabs.net/createTask
Host: captcha.datalabs.net
Content-Type: application/json

{
    "clientKey": "YOUR_API_KEY",
    "task": {
        "type":"GeetestTaskProxyless",
        "websiteURL":"WEBSITE_URL",
        "captchaId":"CAPTCHA_ID"
    }
}
```

### Task Parameter Table <a href="#task-parameter-table" id="task-parameter-table"></a>

<table><thead><tr><th width="260">Parameters</th><th width="114.66666666666666">Required</th><th>Description</th></tr></thead><tbody><tr><td>type</td><td>true</td><td>GeeTestTaskProxyLess</td></tr><tr><td>websiteURL</td><td>true</td><td>The website address in which you're solving the captcha for.</td></tr><tr><td>captchaId</td><td>true</td><td>Captcha ID parameter to be passed to our solver, only for GeeTest V4.</td></tr><tr><td>geetestApiServerSubdomain</td><td>false</td><td>Optional custom subdomain for solver.</td></tr></tbody></table>

### Task Created Response <a href="#task-created-response" id="task-created-response"></a>

```json
{
  "errorId":0,
  "taskId":997993082
}
```

<table><thead><tr><th width="184">Parameters</th><th width="370">Description</th></tr></thead><tbody><tr><td>errorId</td><td>0: Without error.<br>1: Error with request.</td></tr><tr><td>errorCode</td><td>Short code for error type.</td></tr><tr><td>errorDescription</td><td>More detailed description of the error that occurred.</td></tr><tr><td>taskId</td><td>Task ID, provided for synchronous tasks to be pushed to /getTaskResult</td></tr></tbody></table>

## Retrieving the Solution

```json
POST https://captcha.datalabs.net/getTaskResult
Host: captcha.datalabs.net
Content-Type: application/json

{
  "clientKey": "DATALABS_API_KEY",
  "taskId": "997993082"
}
```

### Successful Solution Response <a href="#retrieved-solution-response-structure" id="retrieved-solution-response-structure"></a>

```json
{
  "errorId": 0,
  "status": "ready",
  "solution": {
    "captcha_id": "e392e1d7fd421dc63325744d5a2b9c73",
    "captcha_output": "AoN_jUGyObLxV8m431BLICC_NXDjolCDId...",
    "gen_time": "1717557055",
    "lot_number": "6faeebf6255f45aa9859ef2abc5f66ce",
    "pass_token": "1809c1398e9d6121bd09fef2808b8a4460c271cf5e1bf78017000a628825d985",
    "risk_type": "slide"
  }
}
```

<table><thead><tr><th width="246">Parameters</th><th>Description</th></tr></thead><tbody><tr><td>captcha_id</td><td>The captcha ID originally passed to the solver.</td></tr><tr><td>captcha_output</td><td>Likely to be required for verification.</td></tr><tr><td>gen_time</td><td>Likely to be required for verification.</td></tr><tr><td>lot_number</td><td>Likely to be required for verification.</td></tr><tr><td>pass_token</td><td>Likely to be required for verification.</td></tr><tr><td>risk_type</td><td>Likely to be required for verification.</td></tr></tbody></table>
