Launched Friendly Captcha solver

Friendly Captcha recognition and bypass service

Launched a Friendly Captcha bypass service.

Article describes the process of interaction with the API

What is Friendly Captcha

What is Friendly Captcha: Friendly Captcha is a system designed to protect websites from bots. Key feature - works silently. Unlike traditional captchas that require user interaction like solving puzzles or clicking boxes, Friendly Captcha works passively in the background. Users don't even notice it happening.

How Friendly Captcha works

  • Proof-of-work: Friendly Captcha sends a complex cryptographic puzzle to the user's device that is automatically solved in the background, using the device's resources.
  • No user action: Unlike other captchas that require clicking or typing, Friendly Captcha works entirely in the background without any user input.

How to bypass Friendly Captcha

It is not easy to bypass Friendly Captcha, but the bypass process can be automated using API.

The bypass process is as follows:

  • The customer sends a set of required parameters from the landing page to the automatic solution service;
  • The task is performed by a worker of the service, after which the answer is returned in the form of a token, which must be entered into the appropriate field for bypassing.

To use the API, one must register on site. After activating the profile, the customer receives the API key and can start working with the service.

The process of interaction with API is described below and code samples in the most popular programming languages are given.

Friendly Captcha solver API

Friendly Captcha

Token-based method to bypass Friendly Captcha.

The token received must be set as the value attribute of the input element with name frc-captcha-solution and/or passed to the callback function defined in data-callback attribute of the captcha div.

Task types

  • FriendlyCaptchaTaskProxyless - we use our own pool of proxies
  • FriendlyCaptchaTask - we use your proxies

FriendlyCaptchaTaskProxyless task type specification

Property Type Required Description
type String Yes Task type:
FriendlyCaptchaTaskProxyless
FriendlyCaptchaTask
websiteURL String Yes The full URL of target web page where the captcha is loaded. We do not open the page, not a problem if it is available only for authenticated users
websiteKey String Yes The value of data-sitekey attribute of captcha's div element on page.

FriendlyCaptchaTask task type specification

FriendlyCaptchaTask extends FriendlyCaptchaTaskProxyless adding a set of proxy-related parameters listed below

Property Type Required Description
proxyType String Yes Proxy type:
http
socks4
socks5
proxyAddress String Yes Proxy IP address or hostname
proxyPort Integer Yes Proxy port
proxyLogin String No Login for basic authentication on the proxy
proxyPassword String No Password for basic authentication on the proxy

Request examples

Method: createTask
API endpoint: https://{{api_hostname}}/createTask

FriendlyCaptchaTaskProxyless

{
    "clientKey": "YOUR_API_KEY",
    "task": {
        "type": "FriendlyCaptchaTaskProxyless",
        "websiteURL": "https://example.com",
        "websiteKey": "2FZFEVS1FZCGQ9"
    }
}

FriendlyCaptchaTask

{
    "clientKey": "YOUR_API_KEY",
    "task": {
        "type": "FriendlyCaptchaTask",
        "websiteURL": "https://example.com",
        "websiteKey": "2FZFEVS1FZCGQ9",
        "proxyType": "http",
        "proxyAddress": "1.2.3.4",
        "proxyPort": "8080",
        "proxyLogin": "user23",
        "proxyPassword": "p4$$w0rd"
    }
}

Response example

{
    "errorId": 0,
    "status": "ready",
    "solution": {
        "token": "f8b10f4ad796484bae963b1ebe3ce2bb.ZXL8Z...AAAAAA.AgAD"    },
    "cost": "0.00299",
    "ip": "1.2.3.4",
    "createTime": 1692863536,
    "endTime": 1692863556,
    "solveCount": 1
}

Using the token

Use the returned token as a value for input with name = frc-captcha-solution, then submit it's parent form, for example:

document.querySelector('input.frc-captcha-solution').value='f8b10f4ad796484bae963b1ebe3ce2bb.ZXL8Z...AAAAAA.AgAD'
document.querySelector('form').submit()

Please note, that form name can be customized with data-solution-field-name attribute, then you need to use the name set as the attribute's value.

If there's a callback function defined, you can call it passing the token as argument. For example, if data-callback="doneCallback" you should run it as:

doneCallback('f8b10f4ad796484bae963b1ebe3ce2bb.ZXL8Z...AAAAAA.AgAD')

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.