Launched Friendly Captcha solver
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
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.2captcha.com/createTask
FriendlyCaptchaTaskProxyless
            
            
              json
              
              
              
            
          
          {
    "clientKey": "YOUR_API_KEY",
    "task": {
        "type": "FriendlyCaptchaTaskProxyless",
        "websiteURL": "https://example.com",
        "websiteKey": "2FZFEVS1FZCGQ9"
    }
}
        FriendlyCaptchaTask
            
            
              json
              
              
              
            
          
          {
    "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
            
            
              json
              
              
              
            
          
          {
    "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:
            
            
              js
              
              
              
            
          
          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:
            
            
              js
              
              
              
            
          
          doneCallback('f8b10f4ad796484bae963b1ebe3ce2bb.ZXL8Z...AAAAAA.AgAD')
        References
Additional information:
Support
If you still have questions about the service, you can ask a question:
- Create a ticket
 - Send an e-mail to support@2captcha.com
 - Skype
 
We value feedback and want to make sure the service is perfect for your needs.