Before you submit — these must be correct
If any of these are wrong, your token may be accepted by our solver but rejected or scored poorly by the target site.
- Use the same proxy for the Forter solve AND your follow-up checkout/order request. The token is IP-bound — a different exit IP will cause Forter to flag the session.
- Include the returned User-Agent on your follow-up request for full fingerprint coherence.
- Generate a fresh token within 60 seconds of using it — tokens expire in approximately 1-2 minutes.
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.
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
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
# 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 Spectarget_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 socks5proxyAddresstypestringreqrequiredProxy IP address or hostnameproxyPorttypenumberreqrequiredProxy port numberproxyLogintypestringreqoptionalProxy username (if auth required)proxyPasswordtypestringreqoptionalProxy password (if auth required)userAgenttypestringreqoptionalUser-Agent string to use. Must match the UA you use when submitting the tokenResponse 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
Pricing & Stats
Start solving forter token.
$0.10 in free credits — no card. ~250 free solves to test before you spend.