> For the complete documentation index, see [llms.txt](https://asskicker.gitbook.io/asskicker-api/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://asskicker.gitbook.io/asskicker-api/recaptcha/openapi.md).

# Recaptcha V2

***

## Solver API Documentation

### Introduction

The Solver API provides a solution to Google ReCaptcha challenges, supporting both **ReCaptchaV2TaskProxyless** and **ReCaptchaV2EnterpriseTaskProxyless**. By sending a request with your client key and the necessary parameters, you will receive a token to bypass the CAPTCHA.

#### Base URL:

* **Host**: `https://asskicker.xyz/SolveCaptcha`
* **Content-Type**: `application/json`
* **Minimum Timeout**: 30 seconds.

***

### API Endpoint

#### POST `https://asskicker.xyz/SolveCaptcha`

* **Description**: This endpoint solves ReCaptcha challenges by accepting a POST request with the necessary details.
* **Timeout**: Ensure the timeout for the request is set to at least 30 seconds to give the API sufficient time to process and solve the CAPTCHA.

***

### Request Parameters

#### Header:

* `Content-Type`: `application/json`

#### Body Parameters:

| Parameter     | Type    | Required  | Description                                                                                           |
| ------------- | ------- | --------- | ----------------------------------------------------------------------------------------------------- |
| `clientKey`   | string  | **true**  | Your client key to authenticate the request.                                                          |
| `type`        | string  | **true**  | The type of task. Supported values: `ReCaptchaV2TaskProxyless`, `ReCaptchaV2EnterpriseTaskProxyless`. |
| `websiteURL`  | string  | **true**  | The URL of the website where the ReCaptcha is being served.                                           |
| `websiteKey`  | string  | **true**  | The ReCaptcha site key found on the target website.                                                   |
| `isInvisible` | boolean | **false** | Whether the ReCaptcha is invisible. Defaults to `false`.                                              |
| `pageAction`  | string  | **false** | Optional. The action used in ReCaptcha challenges for user interaction verification.                  |

***

### Example Request

#### POST `https://asskicker.xyz/SolveCaptcha`

**Request Body:**

```json
{
    "clientKey": "ClientKey",
    "type": "ReCaptchaV2TaskProxyless",
    "websiteURL": "https://www.google.com/recaptcha/api2/demo",
    "websiteKey": "6Le-wvkSAAAAAPBMRTvw0Q4Muexq9bi0DJwx_mJ-",
    "isInvisible": false
}
```

***

### Example Response

**Success Response:**

```json
{
    "token": "03AGdBq26l...",
    "error": false
}
```

**Error Response:**

```json
{
    "token": "",
    "error": true
}
```

***

### Response Parameters

| Parameter | Type    | Description                                       |
| --------- | ------- | ------------------------------------------------- |
| `token`   | string  | The token that can be used to bypass the CAPTCHA. |
| `error`   | boolean | Indicates whether the request was successful.     |

***

### Error Handling

If the request fails due to invalid parameters or other errors, the `error` parameter in the response will be set to `true`, and the `token` will be empty.

***

### Code Examples

#### Node.js Example

```javascript
const axios = require('axios');

const data = {
    clientKey: "ClientKey",
    type: "ReCaptchaV2TaskProxyless",
    websiteURL: "https://www.google.com/recaptcha/api2/demo",
    websiteKey: "6Le-wvkSAAAAAPBMRTvw0Q4Muexq9bi0DJwx_mJ-",
    isInvisible: false
};

axios.post('https://asskicker.xyz/SolveCaptcha', data, { timeout: 60000 }) // 60-second timeout
    .then(response => {
        console.log(response.data);
    })
    .catch(error => {
        console.error(error);
    });
```

#### Golang Example

```go
package main

import (
    "bytes"
    "encoding/json"
    "fmt"
    "io/ioutil"
    "net/http"
    "time"
)

func main() {
    url := "https://asskicker.xyz/SolveCaptcha"
    requestBody := map[string]interface{}{
        "clientKey":   "ClientKey",
        "type":        "ReCaptchaV2TaskProxyless",
        "websiteURL":  "https://www.google.com/recaptcha/api2/demo",
        "websiteKey":  "6Le-wvkSAAAAAPBMRTvw0Q4Muexq9bi0DJwx_mJ-",
        "isInvisible": false,
    }

    jsonData, err := json.Marshal(requestBody)
    if err != nil {
        fmt.Println("Error encoding JSON:", err)
        return
    }

    client := &http.Client{Timeout: 60 * time.Second} // 60-second timeout
    resp, err := client.Post(url, "application/json", bytes.NewBuffer(jsonData))
    if err != nil {
        fmt.Println("Error making request:", err)
        return
    }
    defer resp.Body.Close()

    body, err := ioutil.ReadAll(resp.Body)
    if err != nil {
        fmt.Println("Error reading response:", err)
        return
    }

    fmt.Println(string(body))
}
```

#### C# Example

```csharp
using System;
using System.Net.Http;
using System.Text;
using System.Threading.Tasks;

class Program
{
    static async Task Main(string[] args)
    {
        var client = new HttpClient
        {
            Timeout = TimeSpan.FromSeconds(60) // 60-second timeout
        };

        var json = "{\"clientKey\":\"ClientKey\",\"type\":\"ReCaptchaV2TaskProxyless\",\"websiteURL\":\"https://www.google.com/recaptcha/api2/demo\",\"websiteKey\":\"6Le-wvkSAAAAAPBMRTvw0Q4Muexq9bi0DJwx_mJ-\",\"isInvisible\":false}";

        var content = new StringContent(json, Encoding.UTF8, "application/json");
        var response = await client.PostAsync("https://asskicker.xyz/SolveCaptcha", content);

        var responseString = await response.Content.ReadAsStringAsync();
        Console.WriteLine(responseString);
    }
}
```

#### Python Example

```python
import requests
import json

url = 'https://asskicker.xyz/SolveCaptcha'

data = {
    "clientKey": "ClientKey",
    "type": "ReCaptchaV2TaskProxyless",
    "websiteURL": "https://www.google.com/recaptcha/api2/demo",
    "websiteKey": "6Le-wvkSAAAAAPBMRTvw0Q4Muexq9bi0DJwx_mJ-",
    "isInvisible": False
}

headers = {
    'Content-Type': 'application/json'
}

response = requests.post(url, data=json.dumps(data), headers=headers, timeout=60)

print(response.json())
```

***
