Skip to main content
Scrape a single URL and return structured JSON. Billing is prepaid: the cost depends on the engine and proxy_type you pick (see Pricing). You are debited only on a real success (success: true and blocked: false) — failed or blocked requests are not billed.

Request

Headers

string
required
Your API key (starts with spy_). See Authentication.
string
required
Must be application/json.

Body

string
required
The target URL to scrape. Must be a valid http or https URL.
string
default:"static"
Rendering engine. static uses a fast HTTP fetch. js runs the page in a real headless browser (for client-side rendered content) and costs more credits.Allowed values: static, js.
object
Optional map of name → CSS selector for targeted extraction. Each result is returned under extracted[name]. Example: { "price": ".price", "title": "h1" }.
boolean
default:true
Respect the target’s robots.txt. Defaults to true (the safe choice). Set to false to ignore it.
number
default:20
Request timeout in seconds. Must be greater than 0 and at most 120.
string
default:"none"
Proxy tier. none connects directly. datacenter and residential route through the server-owned proxy pools (you never provide proxy credentials). Residential may require unlocking — see Errors (403).Allowed values: none, datacenter, residential.

Response

string
The requested URL.
string
The URL after any redirects.
integer
HTTP status returned by the target.
boolean
Whether the fetch succeeded. Only a true success (with blocked: false) is billed.
string
The engine used (static or js).
integer
Request time in milliseconds (the billing basis).
string | null
Error message when success is false, otherwise null.
boolean
true when an anti-bot page is detected. Blocked requests are not billed.
boolean
Whether a proxy was actually used for the returned request. May differ from the requested proxy_type: if the pool is unavailable, it falls back to a direct connection (billed at the none rate).
string | null
The page title.
object
Meta tags (e.g. description), as name → content.
object
Headings grouped by level, e.g. { "h1": [...], "h2": [...] }.
Links as { "text": ..., "href": ... }, with absolute URLs.
array
Absolute image URLs.
string | null
Visible page text (scripts and styles excluded).
object
Results of your selectors, keyed by the names you provided.

Examples

Example response