One API Call. Clean Data. Every Time.
Send us a URL, pick your output format, and get back structured data. Bot protections are solved automatically. You only pay when it succeeds.
123456789101112131415161718import requests
response = requests.post(
"https://api.omniscrape.io/v1/scrape",
headers={"X-API-Key": "YOUR_API_KEY"},
json={
"url": "https://protected-site.com/data",
"mode": "auto",
"output_format": "autoparse",
"css_selectors": {
"title": "h1",
"price": ".price"
}
}
)
data = response.json()
print(data["data"]["css_extracted"])
How It Works
Four steps from URL to data. Everything complex happens in the middle.
Send a request
POST a target URL to our API with your preferred output format. Set mode to 'auto' and we handle everything else.
We route it automatically
Our routing engine analyzes the target. Pages without heavy protection get a lightweight, fast path. Protected or JavaScript-heavy pages get a full browser render.
Challenges are solved
If the page has a bot challenge, our solvers handle it automatically. Cloudflare, AWS WAF, DataDome — none of it reaches your code.
You get clean data
The response comes back as structured JSON, raw HTML, Markdown, or plain text. CSS selectors are extracted as named fields you can use directly.
Get Data in the Format You Need
Pick one per request. No extra steps.
Raw page source, exactly as the server returns it.
Auto-parsed: title, links, images, tables, and meta fields.
Clean, readable text — ideal for LLM inputs and content pipelines.
Just the text content, stripped of all markup and boilerplate.
How We Compare
Side-by-side with the tools you might already be using.
| Feature | OmniScrape | Bright Data | ScrapingBee |
|---|---|---|---|
| Price per 1K requests | $3.50 | $15.00 | ~$49/mo |
| Standard route speed | ~0.5s | ~2s | ~3s |
| Full render speed | ~5s | ~8s | ~6s |
| Auto-parse to JSON | ✓ | ✓ | ✗ |
| CSS selector extraction | ✓ | ✓ | ✓ |
| Screenshot capture | ✓ | ✓ | ✓ |
| XHR / Fetch capture | ✓ | ✓ | ✗ |
| Pay-per-request billing | ✓ | ✗ | ✗ |