Loading...
Loading...
Production-grade web scraping with automatic anti-bot bypass, structured JSON parsing for 40+ targets, and geo-targeting. Use when the user needs to scrape web pages, extract product data, get search results, or collect structured data from supported e-commerce and search platforms without worrying about getting blocked and when geo targeting is required.
npx skill4agent add oxylabs/agent-skills oxylabs-web-scrapercurl -u "$OXY_WSA_USERNAME:$OXY_WSA_PASSWORD" ...POST https://realtime.oxylabs.io/v1/queries # immediate response
POST https://data.oxylabs.io/v1/queries # Push-Pull jobs, callbacks, storage
Content-Type: application/json| Parameter | Required | Description |
|---|---|---|
| Yes | Target scraper (e.g., |
| Conditional | URL to scrape (for |
| Conditional | Search query or product ID (for |
| No | Enable structured data parsing (recommended for supported sources) |
| No | JavaScript rendering: |
| No | Geographic targeting: country/state/city, ZIP/postcode, coordinates, or Criteria ID where supported |
| No | Reuse the same proxy IP across multiple jobs |
| No | Set to |
| No | Device/browser preset, e.g., |
| No | Interface language / |
| No | Push-Pull callback endpoint |
| No | Push-Pull cloud upload target ( |
| No | Enable markdown or captured XHR result types |
| No | Rendered browser actions; requires |
| No | Custom parser rules or saved preset; pair with |
| No | Client-side job tag saved with the job metadata |
| Source-specific | Marketplace/search/store localization and pagination fields |
user_agent_typedesktopdesktop_chromedesktop_edgedesktop_firefoxdesktop_operadesktop_safarimobilemobile_androidmobile_iostablettablet_androidtablet_ios{ "key": "...", "value": ... }context| Key | Use |
|---|---|
| Merge custom headers with managed headers |
| Merge custom cookies with managed cookies |
| Use |
| Follow 3xx redirect chains |
| Treat specific non-standard HTTP codes as successful |
parsemarkdownxhrrender: "png"?type=raw,parsed,png,markdown,xhrPOST /v1/queries/batchqueryurlcurl -X POST 'https://realtime.oxylabs.io/v1/queries' \
-u "$OXY_WSA_USERNAME:$OXY_WSA_PASSWORD" \
-H 'Content-Type: application/json' \
-d '{"source": "universal", "url": "https://example.com"}'curl -X POST 'https://realtime.oxylabs.io/v1/queries' \
-u "$OXY_WSA_USERNAME:$OXY_WSA_PASSWORD" \
-H 'Content-Type: application/json' \
-d '{"source": "google_search", "query": "best laptops", "parse": true}'curl -X POST 'https://realtime.oxylabs.io/v1/queries' \
-u "$OXY_WSA_USERNAME:$OXY_WSA_PASSWORD" \
-H 'Content-Type: application/json' \
-d '{"source": "amazon_product", "query": "B07FZ8S74R", "parse": true}'amazon_productgoogle_searchuniversalparse: true{
"results": [{
"content": "...",
"status_code": 200,
"url": "https://..."
}]
}parse: truecontent| Code | Meaning |
|---|---|
| 200 | Success |
| 400 | Invalid parameters |
| 401 | Authentication failed |
| 403 | Access denied |
| 429 | Rate limit exceeded |
parse: true"90210""California,United States"render: "html"render: ""content_encoding: "base64"results[0].content