1.Product shape comparison
Smartproxy teams often start with proxies directly in Scrapy or requests, then add Site Unblocker when targets harden. OmniScrape assumes you want the unlock layer first — proxies are a field on the same /v1/scrape call.
2.What Smartproxy does well
Approachable pricing and documentation for mid-market buyers. Site Unblocker simplifies protected fetches without building your own solver stack. Proxy pools work well when you already manage fetch logic and only need clean IPs.
- Mid-market friendly proxy pricing
- Site Unblocker for anti-bot without full browser ops
- Good docs for proxy username/password integration
- Familiar brand for teams graduating from datacenter pools
3.Where teams struggle
Proxies and Site Unblocker are separate SKUs — two sets of credentials, two usage views, more glue code in your middleware.
URL-encoded unblocker patterns encourage putting targets in query strings alongside tokens — harder to audit than JSON POST bodies.
Without per-request mode metadata in your app logs, you may not know whether a page needed full render or would have worked on a fast path.
4.OmniScrape differences
One API key, one dashboard log stream: Web Unlocker calls show mode (fast / js_rendering), cost, and status together.
Auto mode tries HTTP before browser — Smartproxy unblocker solves protection but teams still benefit from knowing when js_rendering was necessary via metadata.method_used.
Per-success billing on unlock with billing.charged in the response JSON. Pair with price monitoring metrics for unit economics.
5.Side-by-side request bodies
Move the target URL from query encoding into JSON. Move token to X-API-Key header.
1234567891011121314151617# Smartproxy Site Unblocker (conceptual)
GET https://scraper-api.smartproxy.com/v2/scrape
?token=TOKEN
&url=https://shop.example.com/item/22
# OmniScrape
POST https://api.omniscrape.io/v1/scrape
X-API-Key: KEY
Content-Type: application/json
{
"url": "https://shop.example.com/item/22",
"mode": "auto",
"output_format": "html",
"proxy": "residential:us",
"enable_solver": true
}
6.Migration from Site Unblocker URL pattern
Wrap both implementations behind fetch_html() during shadow testing.
1234567891011121314151617181920import requests, os
def smartproxy_unblocker(url: str) -> str:
endpoint = "https://scraper-api.smartproxy.com/v2/scrape"
r = requests.get(endpoint, params={"token": os.environ["SP_TOKEN"], "url": url}, timeout=120)
r.raise_for_status()
return r.text
def omniscrape_unlock(url: str) -> str:
r = requests.post(
"https://api.omniscrape.io/v1/scrape",
headers={"X-API-Key": os.environ["OMNISCRAPE_KEY"]},
json={"url": url, "mode": "auto", "output_format": "html"},
timeout=120,
)
r.raise_for_status()
j = r.json()
if not j["success"]:
raise RuntimeError(j)
return j["data"]["content"]
7.If you used Smartproxy proxies directly
Teams piping requests through http://user:pass@gate.smartproxy.com can switch to OmniScrape embedded proxy field or use OmniScrape dedicated proxy endpoints from the dashboard with the same API key.
8.Shadow migration plan
Run shadow test during a normal week — not only during sales when blocks spike artificially.
- Replace unblocker on 10% of workers first
- Compare HTML hash or key field extraction rate
- Measure effective $/1k successes including retries
- Decommission separate proxy middleware if embedded proxy suffices
9.Add structured extraction
Site Unblocker returns HTML you parse locally. OmniScrape css_extractor removes parser code for stable fields — valuable when Smartproxy middleware fed Scrapy parsers.
123456{
"url": "https://shop.example.com/item/22",
"mode": "auto",
"output_format": "css_extractor",
"css_selectors": { "price": ".price", "title": "h1" }
}
10.Which to pick
OmniScrape when you want one integration for unlock + proxies + logs. Smartproxy when you have favorable proxy contracts and only need unblocker for a slice of traffic — still shadow test OmniScrape on that slice.
Frequently asked questions
Can I keep Smartproxy proxies with OmniScrape unlock?
Most migrations use OmniScrape proxy: residential:cc on the same call. If contract requires Smartproxy IPs temporarily, run shadow tests before hybrid complexity.
How does token auth map?
Smartproxy token query param → OmniScrape X-API-Key header. Never log full keys.
Is Site Unblocker the same as Web Unlocker?
Conceptually yes — both return HTML past anti-bot. Differences are pricing model, routing intelligence, and log visibility.
What about Scrapy middleware?
Replace Smartproxy middleware with a POST to /v1/scrape per request. See Scrapy guide.
Will I save money switching?
Auto mode on mixed catalogs often reduces spend vs always-unblock pricing. Shadow test — your SKU mix decides.
Related guides