Skip to content
Tunneling + extraction API

Tunneling and extraction, one key.

Tunnel any HTTP client through our rotating network of exit IPs, or send a URL and get back the page, clean Markdown, or exactly the fields you ask for as JSON. IPs, retries, blocks and real browsers are handled for you.

1 endpointone integration, any site
up to 9× cheaperthan Zyte / Bright Data
valid onlypay for responses that land
your request the open web
POST /v1/extract → 200 · 14 fields
POST/v1/extract
{
  "url": "https://shop.example.com/onyx",
  "fields": {
    "title": "h1",
    "price": ".price",
    "rating": ".stars@data-rating",
    "stock": ".stock",
    "sku": ".sku"
  }
}
https://shop.example.com/onyx
Onyx Wireless Earbuds
$129.00
★★★★☆
In stock · Bluetooth 5.3 · 32h battery · SKU ONX-441
200 OK · application/json · extracting…
{
  "data": {
    "title": "Onyx Wireless Earbuds",
    "price": "$129.00",
    "rating": "4.0",
    "stock": "In stock",
    "sku": "SKU ONX-441"
  }
}

CSS and XPath fields work on every plan, Free included. You get the text of each element, or any attribute you name.

How it works

Give us a URL. Get back data.

No collection network to manage, no blocks to fight, no request that dies mid-crawl. You call one endpoint; we do the hard part.

STEP 01

Send a URL

Point your client at scrape.land, either tunneling to the raw page or through the /v1/extract API with the fields you want. One integration, and it works in every language.

STEP 02

We collect it

Your request goes through a rotating global network that keeps re-checking itself and works around blocks for you. Pin a country if you need one.

STEP 03

Clean data, valid only

You get the page, or the structured JSON you asked for. If something gets blocked or fails, we quietly try again, and you only pay for the responses that come back good.

No-code tools

Find leads without writing code.

Pick a type of business and a city. Every one lands on the map with its website, phone and email, and one click keeps only the ones without a website. Then read each site for emails, or turn any list of pages into a spreadsheet.

Example data
BusinessWebsitePhone

Local businesses

Every dentist, plumber or restaurant in a city, on a map, filtered by website and phone.

Lead Finder

Paste a directory or a "top 50" list. Get each company's public email, phone and social links.

Extract to table

Paste pages, describe the columns in plain words, download the spreadsheet.

Included in every paid plan. Free includes a preview. Every search uses request units from your plan, like the API.

Everything included

The collection layer, finally boring.

Geo, sessions, retries and everything else the big players meter separately, all in one flat per-1,000-request price. A real browser costs more because it costs us more: 5 units, or 1 when you block images and fonts.

Tunneling

Pipe anything through. It comes out somewhere else.

Point any HTTP client at one address. Each request leaves from a different IP, in the country you choose, or keeps one IP for a whole session. No SDK: it is an ordinary HTTP, HTTPS or SOCKS5 tunnel.

the site sees 203.0.113.24 DE

Rotating: a new exit on every request.

  • Rotate or stick. A fresh exit on every request, or add -session-abc to keep one IP through a login or a checkout.
  • Pick a country. Add -country-de and the page loads the way a visitor there sees it: local prices, local results.
  • Any client. curl, Python requests, Node, Puppeteer, Playwright, Scrapy: any client that can route through a tunnel works unchanged.
  • HTTP, HTTPS and SOCKS5. Port 8080, or 443 on networks that filter it.
Structured extraction

Name the fields, or just describe them.

Name the fields with CSS or XPath and get clean JSON back. No HTML parsing on your side.

terminal
# one call: a URL and the fields you want
$ curl https://scrape.land/v1/extract \
    -H "Authorization: Bearer $KEY" \
    -d '{
      "url": "https://shop.example/item/42",
      "fields": {
        "title": "h1",
        "price": ".price"
      }
    }'
200 OK · 1.2s
{
  "title": "Trail Runner 2",
  "price": "€129"
}
Browser or not

With a real browser, or without.

You say what you want; we pick the exit, retry what gets blocked, and run a browser only when you ask for one. Most pages don't need it, and a plain fetch is faster and cheaper.

Plain fetch1 request-unit · fastest
https://app.example.com/deals

The HTML exactly as the server sent it. Right for most sites, but a page that builds itself with JavaScript is still an empty shell here.

"render": true5 request-units · 1 with block_resources
https://app.example.com/deals

A real browser loads the page and runs its JavaScript first, then we read what a visitor would see. Add wait_for to hold for a slow element.

CAPTCHA solving

CAPTCHAs, solved before you read the page.

Add one flag. The browser finds reCAPTCHA and Cloudflare Turnstile widgets, solves them and hands the answer to the page, then runs your actions, so the form behind it can be submitted. You pay only when a widget was actually solved.

"solve_captchas": true
reCAPTCHA: 60 request-units per solve
Turnstile: 30 request-units per solve

Geo-targeting

Collect as any country per request, or let it rotate around the globe. Local prices, local content, no VPN.

Sessions & retries

Hold an identity across a multi-step flow, or let every request rotate. Failed collections retry invisibly.

Pay for valid only

If a page can't be collected, you don't pay for it. Your invoice is the data you actually received.

Pricing

Simple plans. One flat rate, cheaper as you grow.

Billed per 1,000 delivered requests, with blocks and errors free, and the rate drops as you grow. Or take Pool: a flat $19 with no request count.

Annual billing: pay for 10 months, get 12 Monthly Annual 2 months free

Annual is billed once for the year at ten months’ price. Your included requests stay monthly and are topped up each month: annual changes what you pay, not how much you can use at once.

Start here
Free
$0/mo
1,000 requests
No card required
  • CSS & XPath extraction
  • Lead generation preview
  • High-latency pool (prototyping & testing)
  • 5 req/s
  • No priority exits
  • Browser rendering
  • No anti-bot bypass (e.g. Cloudflare)
  • No CAPTCHA solving
  • No AI extraction
Start for free
New
Pool
$19/mo$190/yr
Unlimited requests
No per-request billing
  • Lead generation tools
  • CSS & XPath extraction
  • Markdown and raw tunneling
  • Non-Priority exit
  • 10 req/s
  • No browser rendering
  • No anti-bot bypass (e.g. Cloudflare)
  • No CAPTCHA solving
  • No AI extraction
Start for free
$29/mo$290/yr $99/mo$990/yr
175,000 requests per month 600,000 requests per month
$0.166 / 1,000$0.138 / 1,000 $0.165 / 1,000$0.138 / 1,000
  • Lead generation tools
  • CSS & XPath extraction
  • Priority exits (premium ISP)
  • 25 req/s50 req/s
  • Rollover of unused requests
  • Browser rendering
  • Anti-bot bypass (e.g. Cloudflare)
  • CAPTCHA solving (reCAPTCHA, Turnstile)
  • No AI extraction
Start free
Growth
$249/mo$2,490/yr
1,600,000 requests per month
$0.156 / 1,000$0.130 / 1,000
  • Lead generation tools
  • CSS & XPath extraction
  • Priority exits (premium ISP)
  • 100 req/s
  • Rollover of unused requests
  • Browser rendering
  • Anti-bot bypass (e.g. Cloudflare)
  • CAPTCHA solving (reCAPTCHA, Turnstile)
  • AI extraction (prompts & auto-extract)
Start free
Best value
Scale
$499/mo$4,990/yr
3,400,000 requests per month
$0.147 / 1,000$0.122 / 1,000
  • Lead generation tools
  • Priority exits (premium ISP)
  • 200 req/s
  • Rollover of unused requests
  • Browser rendering
  • Anti-bot bypass (e.g. Cloudflare)
  • CAPTCHA solving (reCAPTCHA, Turnstile)
  • AI extraction (prompts & auto-extract)
Start free
Business
$999/mo$9,990/yr
7,200,000 requests per month
$0.139 / 1,000$0.116 / 1,000
  • Lead generation tools
  • Priority exits · best rate
  • 1,000 req/s
  • Rollover of unused requests
  • Browser rendering
  • Anti-bot bypass (e.g. Cloudflare)
  • CAPTCHA solving (reCAPTCHA, Turnstile)
  • AI extraction (prompts & auto-extract)
Start free
High volume

Millions of pages a month.

Same flat per-1,000 billing, our best rates, 1,000 requests/sec, and AI extraction included as on Scale and Business. Talk to us if you need more than this.

Business XL $1,999/mo$19,990/yr 15,000,000 requests per month $0.133 / 1,000$0.111 / 1,000 Start free
Business XXL $3,499/mo$34,990/yr 30,000,000 requests per month $0.117 / 1,000$0.097 / 1,000 Start free
Business Ultra $9,999/mo$99,990/yr 100,000,000 requests per month $0.100 / 1,000$0.083 / 1,000 Start free
Honest comparison

Same data. A fraction of the invoice.

We took the incumbents' best ideas and cut the price, the bandwidth meter, and the enterprise sales call.

1,000,000
Your monthly cost
$249
about $1,151 cheaper a month, roughly 6× less
scrape.land$249
Zyte (est.)≈ $300
Bright Data (est.)≈ $1,400
Featurescrape.landZyteBright Data
Billing modelFlat per 1,000 delivered requestsPer request + site difficulty tiersPer request
Entry price / 1kfrom $0.100Depends on site tierfrom $1.30
Requests for $499/mo3,400,000Depends on site tier383,000

Vendor pricing pages, checked 7 August 2026. See the full comparison, including where we are the weaker choice.

Ready when you are

Turn your first website into data in under a minute.

1,000 requests free, no card. Scale to millions from $0.100 per 1,000 whenever you're ready.

Extract API · Python
import requests
r=requests.post('https://scrape.land/v1/extract',
  headers={'Authorization':'Bearer KEY'},
  json={'url':url,'fields':{'title':'h1'}})
print(r.json())
Raw page · tunneling
p='http://YOUR_KEY:@gateway.scrape.land:443'
r=requests.get('https://shop.example.com/…',
  proxies={'http':p,'https':p})
print(r.status_code, len(r.text))