Works with the best tools:
Works with the best tools:
Have a question?
Contact usThese options apply to the supported synchronous scraping endpoints: Raw HTML, Retail, Real Estate, Booking and Grocery. Search Engine and Social Media use their own request contracts.
| Option | Type | Default | Description |
|---|---|---|---|
| useChrome | boolean | false | Enable headless Chrome for JavaScript-rendered pages. 5 credits per request. |
| premiumProxy | boolean | false | Use a residential proxy for protected targets. 10 credits per request. |
| proxyCountry | string | null | ISO 3166-1 country code. Requires premiumProxy: true; 25 credits per request. |
| proxyState | string | null | Two-letter state code. Requires proxyCountry and premiumProxy: true; 60 credits per request. |
| waitForNetworkRequests | boolean | false | Wait for AJAX/XHR requests. Use only with useChrome: true. |
| headers | object | null | Custom target request headers on supported routes. |
| body | object | null | POST body for the target. Available only without Chrome or premium proxy. |
| Options combination | Credits / request | Notes |
|---|---|---|
| Standard request | 1 | Default mode. |
| useChrome: true | 5 | Headless Chrome rendering. |
| premiumProxy: true | 10 | Residential proxy. |
| useChrome + premiumProxy | 25 | Chrome and residential proxy together. |
| proxyCountry + premiumProxy | 25 | Country targeting replaces the normal option rate. |
| proxyState + proxyCountry + premiumProxy | 60 | State targeting replaces the normal option rate. |
Some websites can only be scraped with a premium proxy, with Chrome or from a given country. For these domains the API turns the options on by itself, whatever you send, and the request is billed for the options actually used. A country you set yourself is kept. On the domains marked "useChrome ignored", Chrome doesn't help: a request with useChrome: true runs without it and isn't billed for it.
| Domain | Turned on automatically | Credits / request |
|---|---|---|
| abritel.fr | premiumProxyuseChrome ignored | 10 |
| www.aliexpress.com | premiumProxy | 10 |
| www.amazon.fr | premiumProxy | 10 |
| www.apartments.com | premiumProxy | 10 |
| www.aritzia.com | premiumProxy | 10 |
| www.babypark.nl | premiumProxy | 10 |
| www.brownsfashion.com | premiumProxy | 10 |
| www.cdiscount.com | premiumProxy | 10 |
| www.cos.com | premiumProxy | 10 |
| www.crunchbase.com | premiumProxyuseChrome ignored | 10 |
| de.aliexpress.com | premiumProxy | 10 |
| es.aliexpress.com | premiumProxy | 10 |
| www.fnac.com | premiumProxy | 10 |
| fr.aliexpress.com | premiumProxy | 10 |
| fr.hotels.com | premiumProxyuseChrome ignored | 10 |
| www.funda.nl | premiumProxy | 10 |
| www.g2a.com | premiumProxy | 10 |
| www.hermes.com | premiumProxy | 10 |
| www.hollisterco.com | premiumProxy + useChrome | 25 |
| hotels.com | premiumProxyuseChrome ignored | 10 |
| it.aliexpress.com | premiumProxy | 10 |
| www.leboncoin.fr | premiumProxy | 10 |
| www.micromania.fr | useChrome | 5 |
| www.mrporter.com | premiumProxy | 10 |
| nl.aliexpress.com | premiumProxy | 10 |
| nl.victoriassecret.com | useChrome | 5 |
| pt.aliexpress.com | premiumProxy | 10 |
| www.ralphlauren.co.uk | premiumProxy | 10 |
| www.reddit.com | premiumProxy | 10 |
| rh.com | premiumProxy + proxyCountry: US | 25 |
| www.rightmove.co.uk | premiumProxy | 10 |
| ru.aliexpress.com | premiumProxy | 10 |
| www.saksfifthavenue.com | premiumProxy | 10 |
| www.seloger.com | premiumProxyuseChrome ignored | 10 |
| www.sephora.co.uk | premiumProxy | 10 |
| www.sephora.fr | premiumProxy | 10 |
| shop.lululemon.com | premiumProxy + proxyCountry: US | 25 |
| shopee.tw | premiumProxy | 10 |
| stockx.com | premiumProxy | 10 |
| www.tedbaker.com | useChrome | 5 |
| www.trulia.com | premiumProxy | 10 |
| www.ugg.com | premiumProxy | 10 |
| www.uniqlo.com | premiumProxy | 10 |
| www.zillow.com | premiumProxy | 10 |
proxyCountry valuesCountry targeting always requires premiumProxy: true. Use an uppercase ISO 3166-1 two-letter code.
const username = "yourUsername";
const apiKey = "yourApiKey";
const url = "https://example.com";
const auth = "Basic " + Buffer.from(`${username}:${apiKey}`).toString("base64");
async function scrape() {
const response = await fetch("https://api.scraping-bot.io/scrape/raw-html", {
method: "POST",
headers: {
"Content-Type": "application/json",
Accept: "application/json",
Authorization: auth,
},
body: JSON.stringify({
url,
options: {
useChrome: false, // set to true if you want to use headless chrome for javascript rendering
premiumProxy: true, // set to false to use standard proxies instead of premium proxies (Unblock Amazon, Google, Rakuten...)
proxyCountry: null, // allows you to choose a country proxy (example: proxyCountry: "FR")
waitForNetworkRequests: false, // wait for most ajax requests to finish until returning the Html content (this option can only be used if useChrome is set to true),
// this can slowdown or fail your scraping if some requests are never ending only use if really needed to get some price loaded asynchronously for example
},
}),
});
// the Raw HTML endpoint returns the page's HTML as plain text, not JSON
const html = await response.text();
console.log(html);
}
scrape();