Skip to main content

POST /v1/inspect

Drive the session’s browser to a URL, capture all network traffic for a period, and return a report of the site’s API calls, auth signals and asset loading. Use it to find the JSON endpoints behind a page before you scrape it. Auth: Bearer API key. Request: Request:
Response (synchronous):
With async_mode: true the answer is a job envelope:
and the poll’s result is the report above once status is done. Concurrency: three captures may run at once per API key, counted across the whole service. A fourth answers 429 too_many_concurrent_inspects with Retry-After: 5, X-RateLimit-Limit: 3, X-RateLimit-Remaining: 0. Run concurrent captures on separate sessions; captures on one session contend for the same browser and can time out against each other. Errors: Notes:
  • Timing: a 3 second capture answers in about 4.5 seconds. Anything that may run past 57 seconds in total must use async_mode, so in practice a synchronous duration above about 10 seconds is a risk.
  • Billing: 1 action credit per capture on credit-funded accounts. Browser time is metered separately.

POST /v1/solve

Clear a challenge widget or interstitial blocking the page the session is on: hCaptcha, reCAPTCHA v2 and v3, Turnstile, a Cloudflare interstitial. You do not have to name the wall. Call it after a /navigate or /act hit a challenge, or after a /v1/fetch came back blocked, and carry on with the same session: the clearance stays on the tab that earned it. Auth: Bearer API key. Request: Response: A page without a challenge:
Errors: Notes:
  • Timing: the default budget is 45 seconds, capped at 50 for synchronous calls and 180 for async calls. A timeout can return solved: false, reason: "deadline", a separate detail, and session_kept: true. Compare reason to "deadline" exactly. Retry with async_mode: true and a larger timeout (up to 180), or use POST /v1/fetch with async_mode: true for exit escalation within its 900-second job budget. For an IP-tied block, prefer fetch or rotate the exit.
  • Billing: 20 credits when solved is true (a solver ran and the wall is gone), including the case where the navigation itself cleared the wall. Nothing for already_clear or a failed solve.
  • A /v1/fetch that comes back blocked has usually already tried the solvers on its own; /v1/solve is for the page you are driving by hand.