Appearance
Welcome to BitFetcher
BitFetcher gets you data from the web without the infrastructure that usually comes with it. Websites block scrapers by their IP address, their browser fingerprint or their lack of JavaScript; we run the proxies and the browsers so that your requests look like a real visitor's, and you only write the part that matters to you: what to fetch and what to keep.
There are two ways to use it. Both share your API key and credits, the same proxy pools, and the same browser for pages that need JavaScript.
Which one should I use?
| Scraping API | Hosted Browser (Beta) | |
|---|---|---|
| You send | A URL, and options | Puppeteer or Playwright commands, over CDP |
| You get | The page: HTML, JSON, a screenshot or extracted data | A live browser session |
| Best for | Fetching many pages; adding scraping to any language with an HTTP client | Logins, multi-step flows, existing Puppeteer or Playwright code |
| Page interaction | A JavaScript Scenario: a list of actions in the request | Anything your script does |
| Billing | Per request | Per MB of traffic |
Getting started
Sign up and copy your API key from the dashboard. Then make a first call with either product.
sh
curl -G "https://api.bitfetcher.io/v1/" \
-d api_key=YOUR_API_KEY \
-d url=https://httpbin.io/anythingjs
import puppeteer from 'puppeteer-core';
const res = await fetch('https://api.bitfetcher.io/v1/browsers?api_key=YOUR_API_KEY', {
method: 'POST',
headers: { 'content-type': 'application/json' },
body: JSON.stringify({ proxy: 'premium' }),
});
const { connect_url } = await res.json();
const browser = await puppeteer.connect({ browserWSEndpoint: connect_url, defaultViewport: null });
const [page] = await browser.pages();
await page.goto('https://httpbin.io/anything');
console.log(await page.content());
await browser.close();Next: the Scraping API introduction, or the Hosted Browser quick start.

