Skip to main content
POST
cURL

Prompt mode

Prompt mode is newly released — request/response details on this page may still change. If you’re building against it, watch this page for updates rather than pinning to undocumented behavior.
Instead of a fixed actions array, describe the task in plain language and Scrapio figures out the clicks, typing, and navigation itself:
prompt and actions are mutually exclusive — send one or the other, never both. Everything else (url, device, output, timeout_ms) works the same as the actions-based request. For targets that block non-residential traffic, add "use_proxy": true to launch the session through a residential proxy instead of the default direct connection. Requires a paid plan (Starter or higher) and adds a 65-credit surcharge on top of the base 25 (90 total) — see Rate Limits & Credits. The response carries the model’s own text answer alongside a step-by-step record of what it actually did:
  • status is "partial" (not "completed") if the task hit its step budget before finishing — check diagnostics.step_limit_reached and treat answer as best-effort in that case.
  • output only supports html and screenshot in prompt mode (no markdown/json) — the model’s own answer is the primary structured result, not a page extraction.
  • steps[].tool reflects what the model actually called (snapshot, act, scroll, wait, get_url, read_text, list_items), not a caller-supplied action list — a failed step still returns status: "completed" overall as long as the model recovers and completes the task.

Dedicated-site hints on error

If a request (either mode) targets a site we have a purpose-built API for — Amazon, Walmart, YouTube, Reddit, Booking.com, Agoda, Airbnb, AutoTrader, Target, Product Hunt, TikTok, or the Apple App Store — and the request errors, the response includes an extra hint field pointing you at that dedicated endpoint instead, since it’s faster, cheaper, and more reliable for that specific site than driving a general-purpose browser:
hint is only present on an error response, and only when the URL matches one of these sites — a successful /v1/interact call, or a call against a site with no dedicated API, never includes it.

Authorizations

Authorization
string
header
required

Bearer authentication header of the form Bearer <token>, where <token> is your auth token.

Body

application/json
url
string<uri>
required

Target page URL to open

actions
object[]
required

Ordered sequence of interaction steps to run

Minimum array length: 1
device
enum<string>

Device profile to emulate

Available options:
desktop,
mobile,
tablet
session
object

Reuse an existing browser session by id

output
enum<string>[]

Which output formats to return after actions

Minimum array length: 1

Which output formats to return

Available options:
html,
markdown,
json,
screenshot
extract
object

Structured extraction config, requires json output

timeout_ms
integer

Max time for the whole interaction, in ms

Required range: x <= 300000
use_proxy
boolean

Skip the cheap direct/stealth tiers and go straight to the strongest (proxy/Camoufox) access tier. Requires a paid plan.

Response

Action sequence completed inline.

Common envelope every workflow endpoint (crawl, map, interact, search) returns: request/step metadata plus a kind-specific result.

id
string
required
request_id
string
required
kind
enum<string>
required
Available options:
crawl,
map,
interact,
search
mode
enum<string>
required
Available options:
inline
status
enum<string>
required
Available options:
completed,
partial,
failed
result
object
required

Kind-specific payload -- see the endpoint's example.

steps
object[]
diagnostics
object