# Recaptcha V3

## Solver API Documentation

### Introduction

The Solver API provides a solution to Google ReCaptcha challenges, supporting both **ReCaptchaV3TaskProxyless** and **ReCaptchaV3EnterpriseTaskProxyless**. 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 V3 challenges by accepting a POST request with the necessary details.
* **Timeout**: Ensure the timeout for the request is set to at least 50 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: `ReCaptchaV3TaskProxyless`, `ReCaptchaV3EnterpriseTaskProxyless`. |
| `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 true for ReCaptcha V3.                                |
| `pageAction`  | string  | **false** | The page action used in ReCaptcha V3 to specify the user action being verified.                       |

***

### Example Request

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

**Request Body:**

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

***

### 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: "ReCaptchaV3TaskProxyless",
    websiteURL: "https://www.google.com/recaptcha/api2/demo",
    websiteKey: "6Le-wvkSAAAAAPBMRTvw0Q4Muexq9bi0DJwx_mJ-",
    isInvisible: true,
    pageAction: "login"
};

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":        "ReCaptchaV3TaskProxyless",
        "websiteURL":  "https://www.google.com/recaptcha/api2/demo",
        "websiteKey":  "6Le-wvkSAAAAAPBMRTvw0Q4Muexq9bi0DJwx_mJ-",
        "isInvisible": true,
        "pageAction":  "login",
    }

    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\":\"ReCaptchaV3TaskProxyless\",\"websiteURL\":\"https://www.google.com/recaptcha/api2/demo\",\"websiteKey\":\"6Le-wvkSAAAAAPBMRTvw0Q4Muexq9bi0DJwx_mJ-\",\"isInvisible\":true,\"pageAction\":\"login\"}";

        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": "ReCaptchaV3TaskProxyless",
    "websiteURL": "https://www.google.com/recaptcha/api2/demo",
    "websiteKey": "6Le-wvkSAAAAAPBMRTvw0Q4Muexq9bi0DJwx_mJ-",
    "isInvisible": True,
    "pageAction": "login"
}

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

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

print(response.json())
```

***
