Headless Chrome. Without the headaches.
The workhorse: real Chromium, real residential proxies, real cookie state. Fetch any URL, render JS, return HTML or screenshot. The thing you reach for when you just need the page.
GET /scrape
?url=https://shop.example.com/p/lamp-12
&js=true
&proxy_type=premium
&proxy_country=US
&wait_for=.price
→ 200 OK · Ujb-Credits: 25 · 2.1s
<!doctype html>
<html lang="en">
...
<span class="price">$49.00</span>
...
</html>
See it work, before you sign up.
Drop in a URL, run a real call against the live API, and watch the JSON come back in about a second. No API key required.
Not a fingerprint shim. We run actual headed Chrome with mouse jitter, page-load timing, and human-grade TLS. Most sites can't tell.
Set auto_proxy=true and we move up through the proxy options until one returns the page. You are billed only for the proxy that returned the response. Off by default; pin a tier with proxy_type when you know what a site needs.
proxy_type is the cost lever. A plain fetch is 1 credit, 5 with JavaScript rendering (js=true). With JavaScript, premium proxies are 25 credits and residential proxies 30. Start cheap on easy targets and escalate (or set auto_proxy=true) when a site genuinely needs it. The exact cost of each call is in the Ujb-Credits response header.
Set proxy_country=US or proxy_country=DE (premium and residential proxies) to route the request through an IP in that country. Proxy country (geo-targeting) is available on paid plans.
wait_for: ".price" blocks until that selector appears. wait_for_network_idle waits for fetch storms to settle. No setTimeout(5000).
Full-page or viewport screenshots, or a PDF of the rendered page. Useful for debugging blocks and capturing content for archival.
Pass session_id to keep cookies and localStorage across requests. Perfect for paywalled or login-gated content.
Playwright gives you a browser; it doesn't give you proxies, anti-bot bypass, JA4 fingerprint patching, CAPTCHA-solving, or pay-on-success billing. We run a real Chromium under our own anti-detection stack and our credit pool, so the same code that works on a small site keeps working when the site adds Cloudflare.
Copy. Paste. Ship.
import { UjeebuClient } from "@ujeebu-org/ujeebu-sdk";
const client = new UjeebuClient(process.env.UJEEBU_API_KEY);
const response = await client.scrape("https://shop.example.com/p/lamp-12", {
js: true,
proxy_type: "premium",
proxy_country: "US",
wait_for: ".price"
});
console.log(response.headers["ujb-credits"]); // 25
import os
from ujeebu_python import UjeebuClient
client = UjeebuClient(os.environ["UJEEBU_API_KEY"])
response = client.scrape(
"https://shop.example.com/p/lamp-12",
params={"js": True, "proxy_type": "premium",
"proxy_country": "US", "wait_for": ".price"},
)
print(response.status_code) # 200
curl -G https://api.ujeebu.com/scrape \
-H "ApiKey: $UJEEBU_API_KEY" \
--data-urlencode "url=https://shop.example.com/p/lamp-12" \
-d "js=true&proxy_type=premium&proxy_country=US&wait_for=.price"
client := ujeebu.NewClient(os.Getenv("UJEEBU_API_KEY"))
page, err := client.Scrape(ujeebu.ScrapeParams{
URL: "https://shop.example.com/p/lamp-12",
JS: true,
ProxyType: "premium",
ProxyCountry: "US",
WaitFor: ".price",
})
Real things real teams shipped this quarter.
Crawl a sitemap of 100k URLs and pipe HTML into your indexing job. Concurrent requests scale linearly with your plan tier.
Authenticate once via session_id, then scrape behind the wall. Cookies persist across calls until they expire.
Same URL, 12 geos, 12 prices. Loop with the proxy_country param (paid plans), store with locale. Never get redirected to the wrong currency again.
Take daily full-page screenshots of your competitors' pricing pages. Diff with pixelmatch. Get notified when anything changes.
Guides for popular sites
Live status from our own checks of each site, the settings that work today, and extraction recipes validated on real pages, with code to copy.
News and finance
- AFP Fact CheckrecipePartly working
- BBC NewsrecipeWorking
- CNBCrecipeWorking
- GlobeNewswirerecipePartly working
Social and video
2 moreDeveloper and reference
E-commerce
4 moreEntertainment, books and games
1 credit per Generic Scraper call. Here's what that buys.
One credit pool covers every endpoint. Failed calls cost 0. No per-feature upcharges, no premium-proxy tax. See full pricing →
Ship Generic Scraper tonight.
5,000 credits free. No card. Real residential proxies on the free tier.