A successful reusable challenge returns a session_id. Reusing it avoids
repeating the page fetch, regional lookup, fingerprint selection, and challenge
build for each follow-up request. Embedded interstitial challenges are one-time
and return one_time: true instead; they cannot be resumed.
Start a session
Create a session with the complete request context. A fresh solve requires:
task_type
proxy
target_url
shape_js_url (unless target_url returns an embedded interstitial)
target_api
ua
The response includes a new session_id unless the detected challenge is a
one-time interstitial.
Continue a session
For subsequent calls, send:
Evade restores the original proxy, page, challenge, referrer, title, and browser
identity from the session. You may omit those fields. If you include one, it must
exactly match the value used to create the session.
target_api remains required because each generated header set is bound to its
destination. target_api_method defaults to GET and supports GET or POST.
Expiration and recovery
Sessions are short-lived and may also be evicted when server capacity is needed.
An expired or unknown ID returns 400 invalid_request with a message indicating
that it does not identify an active solve session.
When that happens, create a new session using the full request context. Do not
retry an expired ID indefinitely.
Debug session reuse
Set debug to true to receive session_reused, detailed timing, the resolved
loader and VM URLs, and the generation mode. Debug diagnostics are intended for
integration troubleshooting and should not be required during normal operation.