Skip to main content
Adaptive Stealth Mode is ZenRows’ automated execution mode that analyzes each request and selects the most cost-effective configuration needed for successful data extraction. Instead of manually configuring parameters, Adaptive Stealth Mode starts with basic settings and escalates only when necessary, eliminating ongoing maintenance as websites change their protection mechanisms. When you enable Adaptive Stealth Mode, ZenRows:
  • Prioritizes successful extraction above all else
  • Starts with the cheapest viable configuration for each request
  • Automatically escalates to more powerful features only when necessary
  • Bills only for the configuration that succeeds - failed attempts incur no charges
  • Adapts automatically as website behavior changes over time
  • Reduces maintenance overhead by eliminating the need to monitor and update scraping configurations
Adaptive Stealth Mode eliminates the need for manual parameter tuning in production environments.

How Adaptive Stealth Mode Works

Adaptive Stealth Mode executes each request using a progressive strategy:
  1. Target Analysis: Evaluates the target URL using known patterns and runtime signals to predict the best starting configuration.
  2. Lowest-Cost Attempt: Executes the request with the least expensive configuration likely to succeed based on the analysis.
  3. Automatic Escalation: Retries with stronger features if the initial attempt fails, progressively adding capabilities as needed.
  4. Success-Only Billing: You are billed only for the configuration that completes successfully. Failed attempts incur no charges.
This approach ensures reliable data extraction without overpaying for unnecessary features.

Basic Usage

API Usage

Add mode=auto to your request:
# pip install requests
import requests

url = 'https://www.scrapingcourse.com/ecommerce/'
apikey = 'YOUR_ZENROWS_API_KEY'
params = {
    'url': url,
    'apikey': apikey,
    'mode': 'auto',
}
response = requests.get('https://api.zenrows.com/v1/', params=params)
print(response.text)

When to Use Adaptive Stealth Mode

Recommended when:
  • Scraping multiple websites with different behaviors
  • Website requirements are unknown or change frequently
  • Reliability matters more than manual optimization
  • You’re running production workloads at scale
  • You want to minimize maintenance overhead from website changes
Consider manual configuration for:
  • Single, stable domains where you know the optimal setup
  • Scenarios requiring predictable, consistent feature usage
  • Cost-sensitive applications with well-understood requirements

Managed Parameters

Adaptive Stealth Mode automatically manages these API parameters:
ParameterPurposeWhen Applied
js_renderJavaScript rendering for dynamic contentSites using React, Vue, Angular, or AJAX loading
premium_proxyResidential IP addressesSites blocking datacenter IPs or requiring geo-location
The managed parameters above are disabled when using Adaptive Stealth Mode to prevent conflicting configurations. Other parameters remain available for use.If you set the parameters manually, Adaptive Stealth Mode will return a 400 error:
{
  "code": "REQ_INVALID_PARAMS",
  "message": "js_render and premium_proxy parameters cannot be used with automatic mode"
}

Adaptive Stealth Mode vs Manual Configuration

AspectAdaptive Stealth Mode (mode=auto)Manual Parameters
Setup timeSingle parameterRequires tuning
Success optimizationAutomaticUser-managed
Cost optimizationAutomatic, per requestFixed by chosen config
Adaptation to site changesAutomaticRequires updates
Failed attempts billedNoNo
Best forProduction, multi-domain workloadsStable, well-known targets

Troubleshooting

Common Issues

Adaptive Stealth Mode not working as expected
  • Verify the mode=auto parameter is correctly set
  • Check that other conflicting parameters aren’t overriding Adaptive Stealth Mode
  • Review the response headers for cost and feature information
Higher costs than expected
  • Monitor the X-Request-Cost header to understand feature usage
  • Consider manual configuration if cost patterns are predictable
  • Use the Builder UI to preview costs before running requests
Inconsistent results
  • Adaptive Stealth Mode adapts to website changes, which may affect feature selection
  • Use session_id to maintain consistency across related requests
  • Switch to manual configuration for completely predictable behavior

Pricing

Adaptive Stealth Mode uses transparent, usage-based pricing with these cost multipliers:
ConfigurationCost MultiplierWhen Used
Basic request1xSimple static websites
JavaScript rendering5xDynamic content requiring browser processing
Premium Proxies10xSites blocking datacenter IPs
Combined features25xHighly protected sites requiring both JS and proxies
You are billed only once, for the configuration that succeeds. If Adaptive Stealth Mode requires multiple internal attempts before success, ZenRows bills only for the successful configuration.

Frequently Asked Questions (FAQ)

No. Adaptive Stealth Mode minimizes costs by avoiding unnecessary features and charging only for successful requests. It often reduces costs compared to manually over-configuring parameters.
You retain full visibility through response headers (including request cost) and the Analytics dashboard, without needing to manage configuration decisions manually.
Adaptive Stealth Mode adapts automatically without requiring parameter updates on your end. The system learns from new blocking patterns and adjusts accordingly.
Yes, but with limitations. When you use mode=auto, only the managed parameters (js_render, and premium_proxy) are disabled to prevent conflicts. You can still use other API parameters like css_extractor, session_id, or custom request settings alongside Adaptive Stealth Mode.