Parameters
The Scraper API offers comprehensive control through a rich set of parameters. This reference covers all available options organized by category.
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
url |
string | Yes | - | Target URL to scrape (must include http:// or https://) |
mode |
string | No | auto |
Modes: request, browser, or auto |
language |
string | No | follows proxy locale | Language: language tags like de-CH,de — override the locale per mode |
timezone |
string | No | derived from proxy_country |
Timezone: IANA timezone like Asia/Tokyo — override the browser clock (browser/auto mode only) |
proxy_state |
string | No | - | Geo Targeting: state/province targeting like california (residential only) |
proxy_city |
string | No | - | Geo Targeting: city targeting like san.jose (residential only) |
delivery |
string | No | raw |
Delivery: raw (direct content) or json (wrapped) |
async |
boolean | No | false |
Submit task for background processing |
content |
string | No | html |
Delivery: html, markdown, pdf or screenshot |
include_content |
boolean | No | false |
Delivery: Include full content in JSON responses |
excluded_tags |
array/string | No | [] | Filtering: HTML tag names to remove (e.g., [“script”, “form”]) |
excluded_selectors |
array/string | No | [] | Filtering: CSS selectors to remove (e.g., [".tracker", “#ads”]) |
extract_scheme |
object | No | - | Extraction scheme using CSS, XPath, and Regex. |
scheme_id |
str | No | - | Extraction scheme ID using CSS, XPath, and Regex. From /schemes/. |
js_instructions |
array | No | - | JavaScript Structured actions to perform (click, fill, wait) |
execute_js |
string | No | - | Raw JavaScript code to execute |
networkCapture |
array | No | - | Network Filters to capture browser network responses (max 10 filters) |
capture_headers |
bool | No | - | Captures the HTTP response and cookie headers |
block_resources |
array/string | No | [] | Resource to block, options: document, stylesheet, image, media, font, script, texttrack, xhr, fetch, eventsource, websocket, manifest |
use_default_storage |
boolean | No | false | Use your default Cloud Storage configuration to use for uploading results. |
storage_id |
string | No | - | Specific Cloud Storage configuration ID to use for uploading results. |
webhook |
object | No | - | Webhooks configuration for real-time notifications |
Proxy Configuration Permalink to Proxy Configuration
| Parameter | Type | Default | Description |
|---|---|---|---|
proxy_type |
string | residential |
Proxy type: residential or datacenter |
proxy_country |
string | US |
Two-letter ISO country code (e.g., GB, DE, JP) |
proxy_state |
string | - | State/province targeting, e.g. california, new.york (display names like New York are normalized; unknown values are rejected). Residential only |
proxy_city |
string | - | City targeting, e.g. san.jose, berlin (display names like Los Angeles are normalized; unknown values are rejected). Residential only |
proxy_session_id |
string | - | Session ID (6-8 characters) for IP persistence |
proxy_overwrite |
string | - | Full proxy URL to override default proxies (geo targeting parameters are ignored) |
Geo Targeting Permalink to Geo Targeting
proxy_country, proxy_state and proxy_city target the requested location
in all modes (request, browser, auto). Only available with residential
proxies. Any well-formed value is passed through — unsupported locations
fail at the proxy. Supported countries, regions and cities are listed in the
Evomi settings API.
Geo targeting does not apply when using proxy_overwrite.
Language Permalink to Language
| Parameter | Type | Default | Description |
|---|---|---|---|
language |
string | follows proxy | Comma-separated language tags, e.g. de-CH,de or fr-CA,fr,en (max 128 characters, no q-values) |
Overrides the locale presented to the target site. If you don’t set language, the locale follows your proxy automatically — you only need this parameter to force a language that differs from the proxy’s location:
| Mode | When language IS set |
When language is NOT set (default) |
|---|---|---|
request |
Sent as the Accept-Language header on the outgoing request |
Accept-Language is derived from proxy_country using the country’s official languages — e.g. CH → de-CH,de;q=0.9,fr;q=0.8,it;q=0.7,en;q=0.6, US → en-US,en;q=0.9. Unknown or missing country → en-US,en;q=0.9 |
browser / auto |
Sets the browser languages & locale | Browser locale follows the proxy IP / browser profile locale automatically |
Example — force German (Switzerland) through a US proxy:
{
"url": "https://example.com",
"mode": "request",
"proxy_country": "US",
"language": "de-CH,de"
}Notes:
- Tags are plain BCP-47 style codes separated by commas — no
q=quality values (de-CH,de✅,de-CH,de;q=0.9❌). - In
requestmode, an explicitAccept-Languageinadditional_headersalways wins overlanguage.
Timezone Permalink to Timezone
| Parameter | Type | Default | Description |
|---|---|---|---|
timezone |
string | derived from proxy_country |
IANA timezone, e.g. Europe/Berlin, Asia/Tokyo or UTC (max 64 characters) |
Sets the browser clock used by Date, Intl and all JavaScript time APIs. If you don’t set timezone, the clock matches your proxy country — the country’s primary IANA zone is used:
| Mode | When timezone IS set |
When timezone is NOT set (default) |
|---|---|---|
request |
No effect — plain HTTP requests carry no timezone | No effect |
browser / auto |
Sets the browser clock to the given IANA zone | Clock derived from proxy_country — e.g. DE → Europe/Berlin, JP → Asia/Tokyo, US → America/New_York |
Example — Tokyo clock through a US proxy:
{
"url": "https://example.com",
"mode": "browser",
"proxy_country": "US",
"timezone": "Asia/Tokyo"
}Notes:
- The value must be a real IANA timezone name; well-formed but nonexistent zones (
Europe/Berlint) are rejected with a validation error. - Multi-zone countries use the primary zone (
US→America/New_York,AU→Australia/Sydney). Pass an explicittimezonewhen you need a specific region. - Using
proxy_overwrite(your own proxy) withouttimezoneorproxy_country? The clock defaults to US Eastern — passproxy_countryortimezoneto match your exit IP.
Browser Timing Permalink to Browser Timing
| Parameter | Type | Default | Range | Description |
|---|---|---|---|---|
wait_seconds |
integer | 0 |
0-30 | Seconds to wait after page load |
wait_until |
string | domcontentloaded |
- | Page ready state options |
domcontentloaded |
- | - | - | DOM is ready (recommended) - Most dynamic sites |
load |
- | - | - | All resources loaded - Complete page with images |
networkidle |
- | - | - | No network activity - Heavy AJAX/API calls |
commit |
- | - | - | Navigation committed (fastest) - Simple static pages |
Example:
{
"mode": "browser",
"wait_until": "networkidle",
"wait_seconds": 3
}Device Emulation Permalink to Device Emulation
| Parameter | Type | Default | Description |
|---|---|---|---|
device |
string | windows |
Device to emulate options |
windows |
- | - | Viewport: 1920×1080, User-Agent: Chrome/Windows, Scrolling: Enabled (5000px), Best For: Desktop sites, dashboards |
macos |
- | - | Viewport: 1920×1080, User-Agent: Safari/macOS, Scrolling: Enabled (5000px), Best For: macOS-specific content |
android |
- | - | Viewport: 375×667, User-Agent: Chrome/Android, Scrolling: Disabled, Best For: Mobile-first sites, apps |
AI Enhancement Permalink to AI Enhancement
| Parameter | Type | Default | Required When | Description |
|---|---|---|---|---|
ai_enhance |
boolean | false |
- | Enable AI processing |
ai_source |
string | - | ai_enhance=true | Source: markdown or screenshot |
ai_prompt |
string | - | No | Custom prompt for AI processing |
ai_force_json |
boolean | true |
No | Force JSON output format |
Custom Headers Permalink to Custom Headers
| Parameter | Type | Default | Description |
|---|---|---|---|
additional_headers |
object | - | Custom HTTP headers to send with the request |
Example:
{
"additional_headers": {
"Authorization": "Bearer token123",
"Accept-Language": "en-US,en;q=0.9",
"Custom-Header": "value"
}
}Common use cases: API authentication, language preferences, custom tracking headers.
Visual Capture Permalink to Visual Capture
| Parameter | Type | Default | Description |
|---|---|---|---|
screenshot |
boolean | false |
Capture full-page screenshot (requires mode=browser) |
Screenshots are:
- Full-page PNG images (not just viewport)
- Stored in Cloudflare R2 for 30 days
- Accessible via
screenshot_uriin response - Cost: +1 credit
PDF Capture Permalink to PDF Capture
| Parameter | Type | Default | Description |
|---|---|---|---|
pdf |
boolean | false |
Capture full-page PDF document (requires mode=browser) |
PDFs are:
- Full-page vector documents (searchable and scalable)
- Stored in Cloudflare R2 for 30 days
- Accessible via
pdf_uriin response - Cost: +1 credit
Content Formats Permalink to Content Formats
html - Raw HTML with absolute URLs
markdown - Clean, readable text format (ideal for AI processing)
screenshot - Full-page PNG image (requires mode=browser)
pdf - Full-page PDF document (requires mode=browser)
Parameter Validation Permalink to Parameter Validation
The API validates all parameters before processing. Common validation errors:
- Invalid URL: Must include
http://orhttps:// - Invalid mode: Must be
request,browser, orauto - Invalid proxy_country: Must be a 2-letter ISO code
- Invalid proxy_session_id: Must be 6-8 alphanumeric characters
- Invalid language: Must be comma-separated language tags (2-3 letters, optional subtags), max 128 characters, no q-values
- Capture without browser:
screenshot=true|pdf=truerequiremode=browser - AI without source:
ai_enhance=truerequiresai_source - Invalid filter:
excluded_tags|excluded_selectorsrequirecontent=markdown|content=html
Validation errors return 422 Unprocessable Entity with details in the response.