Bypassing Funcaptcha in 2 ways solutions

Arkose Labs introduces different types of captcha protection.
2Captcha is Arkose Labs captcha (Funcaptcha) solver.
In this article, we will look at 2 options for completing tasks for the user.
The instructions describe the process of interacting with API.

Details about the tasks

Funcaptcha has two main options:

  1. Standard grid captcha
  2. funcaptcha_compare

Grid captcha type:

In this case, the user is offered a set of images divided into sections with numeric labels. He must select an image corresponding to the provided text description.

Example: On the left side there is an image with the number 8, and on the right there is a set of images with various objects. The user needs to select an image where the sum of the object values is 8.
Image example:

Funcaptcha_compare type:

In this version, there is also an image at the bottom, but this time with a set of icons. At the top of the image, there is a set of icons with different permutations. Users must match the icons on the left side with those on the top right side.

Example: Fruit icons are shown, and on the top on the right side are the same icons, but in a different sequence. The user needs to match each icon.
Image example:

How to solve a captcha using the API?

1. Get the image of captcha​

To solve the captcha in this way, you need to transfer the ENTIRE image.

  • Open the "Network" tab in your browser's developer tools.
  • Find a request with a captcha image, this is a request with a URL
    https://client-api.arkoselabs.com/rtig/image...
  • In the section 'Headers', you will find a field containing the URL of the captcha image.
  • Open the image and save it, after you can convert it to base64.

2. Get the text instruction

  • Find the element with instructions for the captcha
var taskElement = document.querySelector('.sc-1io4bok-0');
  • Get text from element
var taskText = taskElement.textContent || taskElement.innerText;

Important: The textinstructions must be in English!

Request examples

Necessary to send the original image files and not screenshots.

Using APIv1

  • API endpoint: https://2captcha.com/in.php

Using APIv2

  • Method: createTask
    API endpoint: https://api.2captcha.com/createTask

GridTask

APIv1

{
    "method": "base64",
    "key": "key",
    "recaptcha": 1,
    "json": 1,
    "img_type": "funcaptcha",
    "textinstructions": "pick the image where the darts add up to 8",
    "body": "/9j/4AAQSkZJRgABAQEAYABgAAD/4QBoRXhpZgAA"
}

APIv2

{
    "clientKey": "key",
    "task": {
        "type": "GridTask",
        "body": "/9j/4AAQSkZJRgABAQEAYABgAAD/4QBoRXhpZg",
        "comment": "pick the image where the darts add up to 8",
        "imgType": "funcaptcha"
    }
}

Funcaptcha_compare type

APIv1

{
    "method": "base64",
    "key": "key",
    "recaptcha": 1,
    "json": 1,
    "img_type": "funcaptcha_compare",
    "textinstructions": "Match the icons on the left with the icons on the top faces of the dice (1 of 1)",
    "body": "/9j/2wCEAAoHBwgHBgoICAgLCgoLDhgQDg0NDh0VFhEYIx8lJCIfIiEmKzcvJik0KSEiMEExNDk7Pj4+JS5ESUM8SDc9PjsBCgsL"
}

APIv2

{
    "clientKey": "key",
    "task": {
        "type": "GridTask",
        "body": "/9j/2wCEAAoHBwgHBgoICAgLCgoLDhgQDg0",
        "comment": "Match the icons on the left with the icons on the top faces of the dice (1 of 1)",
        "imgType": "funcaptcha_compare"
    }
}

Note: The picture must be intact, without changes in size or cropping.

Response example

From the received response, we take the captcha ID and, using it, request a response with a GET request of the form:

For APIv1

https://2captcha.com/res.php?

For APIv2

https://api.2captcha.com/getTaskResult

The result contains the number of clicks that need to be clicked, for example:

{
  "status": 1,
  "request": "click:3"
}

Using the Response

The result of the request is represented by a set of coordinates in the "click" format:2". The number indicates how many times you should click on the arrow to successfully solve the captcha.

References

Additional information:

Support

If you still have questions about the service, you can ask a question:

We value feedback and want to make sure the service is perfect for your needs.