Browser Crawl Engine
Crawling infrastructure

Rendered HTML from a real browser, by API.

Send up to 1,000 URLs in one request. We load each page in Chrome with JavaScript enabled, from an exit IP in the country you choose, detect when a site blocks us, rotate, retry, and hand you the HTML.

No card required to register. Accounts are reviewed before activation.

POST /v1/jobs
# one request, twenty pages
curl -X POST https://bankworks.info/v1/jobs \
  -H "Authorization: Bearer $API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "urls": ["https://example.com/p/1", "..."],
    "maxAttempts": 3,
    "options": {
      "geo": {"country": "de"},
      "enableJavaScript": true,
      "scrollToBottom": true
    }
  }'

# → {"ok":true,"jobId":"…","taskCount":20}

What you actually get

This is infrastructure, not a dataset. You name the pages; we render them and return the HTML. What you extract from it is yours.

Real Chrome

Pages render in a current Chrome build with JavaScript on. Content assembled client-side is in the HTML you download, not missing from it.

Pick a country

Request a country, a city, or a specific exit. Country-level selection lets us rotate to another exit in the same place when one gets blocked.

Blocks are detected

A challenge page that returns HTTP 200 is still a failure. We detect those, quarantine the exit IP and retry elsewhere instead of storing a useless page as a success.

1,000 URLs per call

Each URL becomes an independent task. One slow page does not hold up the other 999, and partial results are readable while the rest run.

Nothing is lost

Work is committed to a database before it is queued. A worker that dies mid-page has its task picked up again rather than dropped.

Verified downloads

Every HTML download carries an X-HTML-SHA256 header computed over the stored bytes, so you can prove what you received.

How it works

  1. Submit. POST /v1/jobs with your URLs and options. The response returns a jobId immediately — nothing blocks on rendering.
  2. We render. Each URL is claimed by a worker, loaded in Chrome through an exit in your requested country, and checked for block signals before the result is accepted.
  3. Poll or wait. GET /v1/jobs/{jobId} returns counters and per-task status.
  4. Download. GET /v1/tasks/{taskId}/html returns the stored HTML with its SHA-256.

Full quickstart, with a working script →

Honest limits

Numbers we measured on our own cluster, not marketing figures.

12.8s Median full page render Measured on a 1.25 MB listing page.
1,000 URLs per request Hard limit, enforced at validation.
10/s Default API rate limit Burst 20. Raised per account on request.
41 Countries available Exit locations across 88 profiles.

Throughput is shared across the fleet. If you need a committed rate, tell us the volume and we will quote capacity rather than guess.

What we will not do

We do not break anti-bot protection. No CAPTCHA solving, no browser fingerprint spoofing, no residential-proxy evasion. Sites that actively refuse automated access will keep refusing it.

We also do not resell consumer bandwidth. Every exit is one we operate under contract.

You are responsible for having the right to collect the pages you ask for. We respond to complaints by blocking targets.

Start with the free tier

Register, get reviewed, and receive an API key. Pricing is per delivered page — a page we could not deliver is not billed.