Skip to main content
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.