Skip to content
capzy
Forter Token
ForterTask
proxy required

Forter Token Solver, solved in 5.0s.

Collect Forter device-fingerprinting tokens from forter.js automatically. We load the script in a real browser with your proxy and return the ftr:tokenReady token for checkout or login.

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

Forter (forter.com) is a commerce security platform used by major retailers for fraud prevention. It injects a small forter.js script on checkout and login pages that fingerprints the device and produces a short-lived signed token. The merchant sends this token with the order — Forter's API returns an approve, decline, or challenge verdict. The token is delivered via the ftr:tokenReady DOM event fired by forter.js, and is also written to the forterToken cookie. Tokens are bound to the IP used during fingerprinting, so a residential proxy is required.

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": "ForterTask",
        "task_type": "ForterTask",
        "target_url": "https://www.arcteryx.com/us/en/checkout",
        "forter_js_url": "https://cdn.forter.com/cbf12a88ccce/forter.js",
        "site_id": "cbf12a88ccce",
        "proxyType": "http",
        "proxyAddress": "ip",
        "proxyPort": "port",
        "proxyLogin": "username",
        "proxyPassword": "password"
    }
}).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 ForterTask to our processing cluster via the secure API endpoint.

2. Solving Engine

We launch a self-owned capium browser with your residential proxy and navigate to the real target page. Before forter.js loads, we install a ftr:tokenReady listener and block WebRTC RTCPeerConnection to prevent IP leaks through STUN. We then dynamically inject forter_js_url and wait for the token event. The forterToken cookie is used as a fallback if the event misses.

3. Get Result

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

Task Parameters

API Spec
Proxy fields below are required for this captcha — userAgent must match the one you’ll use when submitting the resulting token.
target_urltypestringreqrequiredFull URL of the page where Forter is active (e.g. the checkout or login page).
forter_js_urltypestringreqrequiredFull URL to the site's forter.js bundle (e.g. https://cdn.forter.com/cbf12a88ccce/forter.js). Find it in the page source — it includes the site's ID in the path.
site_idtypestringreqrequiredForter site ID (12 hex characters, e.g. cbf12a88ccce). Embedded in the forter_js_url path.
proxyTypetypestringreqrequiredProxy protocol: http, https, socks4, or socks5
proxyAddresstypestringreqrequiredProxy IP address or hostname
proxyPorttypenumberreqrequiredProxy port number
proxyLogintypestringreqoptionalProxy username (if auth required)
proxyPasswordtypestringreqoptionalProxy password (if auth required)
userAgenttypestringreqoptionalUser-Agent string to use. Must match the UA you use when submitting the token

Response Shape

tokentypestringThe Forter token from ftr:tokenReady. Send as x-forter-token header or forterToken cookie on your checkout/order request.
userAgenttypestringThe User-Agent used during fingerprinting. Include it on your follow-up request.

Example response

{
  "errorId": 0,
  "status": "ready",
  "solution": {
    "token": "4a7fb2c09d123456789abcdef01234ab_1722345678901_0_ftr_1",
    "userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 ..."
  }
}

Error response

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

Features

Real capium browser — forter.js fingerprinting looks identical to a genuine device visit
WebRTC blocked: RTCPeerConnection is disabled before forter.js loads to prevent STUN IP leak
ftr:tokenReady listener installed before script injection — no race condition
forterToken cookie fallback if the DOM event fires before the listener attaches
No shared pool — each solve gets its own isolated browser instance and proxy IP

Pricing & Stats

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

Start solving forter token.

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

Frequently asked questions