Skip to content
capzy
Friendly Captcha
FriendlyCaptchaTaskProxyLess

Friendly Captcha Solver, solved in 5.0s.

Solve Friendly Captcha — the proof-of-work widget with no puzzles. Returns the solution token you drop into the frc-captcha-response field.

Avg Speed~5.0s
Success99%+
Cost / 1k$2.00
Throughput12/m

Friendly Captcha is a privacy-first, GDPR-friendly captcha that shows no images or puzzles. Instead of a challenge, the visitor's browser runs a proof-of-work computation (a hash brute-force) in the background and submits a token. Sites verify that token server-side. There are two widget generations: v1 (the friendly-challenge SDK) and v2 (the frcapi.com SDK).

Quick Integration

solve.py
import requests, time

API = "https://api.capzy.ai"
KEY = "capzy_your_key_here"

# Step 1: Create task
task = requests.post(f"{API}/createTask", json={
    "clientKey": KEY,
    "task": {
        "type": "FriendlyCaptchaTaskProxyLess",
        "websiteURL": "https://example.com/signup",
        "websiteKey": "FCMST5VWFSAY7ELV"
    }
}).json()

task_id = task["taskId"]
print(f"Task created: {task_id}")

# Step 2: Poll for result
while True:
    result = requests.post(f"{API}/getTaskResult", json={
        "clientKey": KEY,
        "taskId": task_id
    }).json()

    if result["status"] == "ready":
        print("Solved!", result["solution"])
        break
    elif result["status"] == "failed":
        print("Failed:", result.get("errorDescription"))
        break

    time.sleep(1)

Using the result

use_result.py
# Step 3: Use the result — paste the token into the site's captcha form field
token = result["solution"]["token"]
# Browser side: set the textarea value or the hidden input. Then submit.
# Server-to-server: post the token alongside the form fields you normally send.
resp = requests.post("https://target.example.com/submit", data={
    "username": "...",
    "captcha_response": token,   # <-- replace with the field name your site uses
})
print(resp.status_code)

1. Send Payload

Dispatch your FriendlyCaptchaTaskProxyLess to our processing cluster via the secure API endpoint.

2. Solving Engine

We load the widget and run the same proof-of-work the browser would, then hand back the solution token. Friendly Captcha isn't IP-bound, so no proxy is required — send websiteKey + websiteURL and, if the site uses the newer widget, version: "2".

3. Get Result

Poll getTaskResult for the validated token, then finalize your automated request.

Using your own proxy

Use FriendlyCaptchaTask instead of FriendlyCaptchaTaskProxyLess to route the solve through your own proxy — useful when the target site checks that the solving IP matches the submitting IP.

solve_proxy.py
import requests, time

API = "https://api.capzy.ai"
KEY = "capzy_your_key_here"

# Step 1: Create task
task = requests.post(f"{API}/createTask", json={
    "clientKey": KEY,
    "task": {
        "type": "FriendlyCaptchaTask",
        "websiteURL": "https://example.com/signup",
        "websiteKey": "FCMST5VWFSAY7ELV",
        "proxyType": "http",
        "proxyAddress": "123.45.67.89",
        "proxyPort": "8080",
        "proxyLogin": "user",
        "proxyPassword": "pass"
    }
}).json()

task_id = task["taskId"]
print(f"Task created: {task_id}")

# Step 2: Poll for result
while True:
    result = requests.post(f"{API}/getTaskResult", json={
        "clientKey": KEY,
        "taskId": task_id
    }).json()

    if result["status"] == "ready":
        print("Solved!", result["solution"])
        break
    elif result["status"] == "failed":
        print("Failed:", result.get("errorDescription"))
        break

    time.sleep(1)

Additional proxy parameters

proxyTypetypestringreqyesProxy protocol: http, https, socks4, or socks5
proxyAddresstypestringreqyesProxy IP address or hostname
proxyPorttypenumberreqyesProxy port number
proxyLogintypestringreqnoProxy username (if auth required)
proxyPasswordtypestringreqnoProxy password (if auth required)
userAgenttypestringreqnoUser-Agent string to use. Must match the UA you use when submitting the token

Task Parameters

API Spec
typetypestringreqyesFriendlyCaptchaTaskProxyLess or FriendlyCaptchaTask
websiteURLtypestringreqyesThe page URL where the Friendly Captcha widget loads (Friendly verifies the solution against the domain)
websiteKeytypestringreqyesThe Friendly Captcha sitekey (data-sitekey on the frc-captcha element, starts with FC...)
versiontypestringreqno"1" for the friendly-challenge SDK (default) or "2" for the newer frcapi.com SDK. Match the script the site loads.

Response Shape

tokentypestringThe proof-of-work solution token. Set it as the value of the hidden frc-captcha-response input, then submit the form

Example response

{
  "errorId": 0,
  "status": "ready",
  "solution": {
    "token": "0.ABCDEfghIJKL1234567890abcdefghij...<friendly PoW solution>..."
  }
}

Error response

{
  "errorId": 1,
  "errorCode": "ERROR_CAPTCHA_UNSOLVABLE",
  "errorDescription": "Solver gave up."
}

Features

Runs the real proof-of-work — the same token a browser would submit
Supports v1 (friendly-challenge) and v2 (frcapi.com) widgets
No proxy required — Friendly Captcha isn't IP-bound
Fast: most solves complete as soon as the PoW finishes

Pricing & Stats

Per 1,000 solves$2.00
Avg solve time~5.0s
Success rate99%+
Throughput12/m

Start solving friendly captcha.

$0.10 in free credits — no card. ~250 free solves to test before you spend.

Frequently asked questions