Scraper API vs Proxies vs Datasets
Proxies give your own scraper new IP addresses and bill per GB of traffic; a scraper API fetches the page for you and bills per successful result; a dataset is data someone else already collected, sold per file or per record. Choose proxies when you have developers and many light pages, a scraper API when pages need a browser or nobody can maintain scrapers, and a dataset when standard data at the seller's refresh rate is enough. ProxyField sells residential proxies from $1.95/GB and is building scraper APIs priced per 1,000 successful results, from $0.20 for plain HTTP pages (in development; Contact sales); start with the Easy Trial: 1 GB for $2.95.
- residential IPs
- 412M+
- from, traffic never expires
- $1.95/GB
- Easy Trial
- 1 GB for $2.95
On this page 11 sections
- The three options in one table
- Proxies: you run the scraper, you pay per GB
- Scraper API: the provider runs the scraper, you pay per result
- Datasets: someone else collected it
- What each costs: one job, four bills
- How to scrape JavaScript-heavy websites cheaply
- Why web data collection is expensive
- How proxies and a scraper API work together
- How to choose
- What to check before either route
- Scraper API vs Proxies vs Datasets FAQ
Rule of thumb:
- Small or occasional jobs, hard targets, little engineering time: a scraper API.
- Stable targets, high volume of light pages, developers on the team: your own scraper on proxies.
- Most teams in the long run: both, split by target: start with an API, move the simple, high-volume targets to your own scraper on proxies, and keep the API for the hard sites.
- JavaScript-heavy pages: call the page's JSON endpoint first and render only as a fallback; 100,000 JSON calls at 10 KB use about 1 GB of proxy traffic, $2.95 (steps).
The three options in one table
The options differ in what you pay for and in who keeps the scraper working when the target site changes.
| Feature | Proxies with your own scraper | Scraper API | Dataset |
|---|---|---|---|
| What you buy | IP addresses for your requests | Fetched pages or parsed data, per URL | Data already collected |
| Billing unit | Per GB of traffic (rotating) or per IP per month (dedicated) | Per request or per successful result | Per dataset, per record or by subscription |
| You run | The scraper, its servers, retries, rendering and parsing | Calls to the API, parsing (unless it returns fields), storage | Only the analysis |
| Provider runs | The IP pool and the gateway | Browsers, IPs, retries, often parsing | Collection, cleaning, refresh |
| Freshness | Whenever you run it | Whenever you call it | The seller's refresh schedule |
| Control | Full: headers, sessions, timing, location | Through the API's parameters | None over collection |
| Best for | High volume, custom logic, teams with developers | Hard targets, small teams, fast start | Standard data needed once or rarely |
| ProxyField | Residential, mobile, datacenter and ISP proxies | Web scraping API, Google SERP API, Amazon and others, in development | Not sold |
Proxies: you run the scraper, you pay per GB
A proxy is a server that forwards your scraper's requests, so the target site sees the proxy's IP instead of yours. With a rotating pool, each request can leave from a different IP, which keeps any one address under the site's limits. Everything else stays with you: the code, the headless browsers for JavaScript pages, the retries and the parsing.
Rotating proxies are billed per GB, so the cost follows page size, not page count. ProxyField residential proxies cost $2.95/GB for 1 GB, $2.79 from 10 GB, $2.65 from 50 GB, $2.49 from 100 GB, $2.29 from 250 GB, $2.09 from 500 GB and $1.95 from 1,000 GB; the tier rate applies to the whole purchase, there is no subscription and the traffic never expires. Mobile proxies cost $3.45/GB down to $2.45, and rotating datacenter proxies $0.29/GB down to $0.22.
A proxy only changes the IP your request comes from. With proxies, you handle yourself:
- blocks: rate limits, challenges and empty responses, and when to slow down or switch IPs;
- browser fingerprints and headers, which a new IP does not change;
- JavaScript: running a headless browser where the data is not in the HTML;
- retries, with a cap, because failed requests still use traffic;
- monitoring: success rate and bytes per target, so a silent failure does not run for a week;
- site changes: selectors that break when the layout changes.
Proxies win when:
- you scrape a few sites at high volume and can maintain the code;
- pages are light HTML or JSON, so each GB covers many pages;
- you need control over sessions, timing, headers and location, down to the city.
Scraper API: the provider runs the scraper, you pay per result
A scraper API takes a URL, or a query such as a search term, and returns the page or structured data. The provider runs the IP pool, the browsers and the retries, and many APIs parse common pages into JSON fields. You pay per request or per successful result, so the cost follows page count, not page size.
ProxyField's scraper APIs are in development and priced already: billed on successful results only, per 1,000 successful results, entry price → volume price:
| API | What it returns | Price per 1,000 |
|---|---|---|
| Google SERP API | The Google results page as JSON, with the AI Overview, the People Also Ask block and the local pack parsed | $1.20 → from $0.80 |
| Google AI Mode, ChatGPT and Perplexity scraper APIs | The answer of each AI search engine | $1.50 → from $1.00 |
| Web scraping API | Any URL, plain HTTP or with JavaScript rendering | HTTP $0.50 → $0.20; JS $2.00 → $1.00 |
| Amazon scraper API | Amazon product and search pages | $0.60 → $0.30 |
| Google Maps scraper API | Google Maps search results | $1.50 → $1.00 |
The volume price applies from 10,000 successful results in one purchase. The APIs are paid from the same crypto balance as proxies, with no subscription; the planned design is in the API documentation. Contact sales.
A scraper API wins when:
- the targets block hard and you would rather not tune browsers and sessions;
- pages are heavy, so per-result billing costs less than per-GB traffic;
- nobody on the team can maintain scrapers, or you need results this week.
Datasets: someone else collected it
A dataset is a file or a feed of data already scraped and cleaned, such as a catalog of products or a list of companies. It is the fastest route when the data is standard and you do not need it fresher than the seller's schedule. You give up control over what is collected, how and when, and you still have to check that the fields and coverage answer your question. ProxyField sells proxies and is building scraper APIs; it does not sell datasets.
What each costs: one job, four bills
Take 100,000 product pages a month. The page sizes below are examples; measure a sample of your real targets before you buy. For scale, the HTTP Archive's Web Almanac 2025 puts the median home page at 2.56 MB on mobile and 2.86 MB on desktop, with the median HTML response at 33 KB on mobile and 35 KB on desktop (third-party transfer sizes, not ProxyField figures).
| Route | Assumption | Monthly cost |
|---|---|---|
| Proxies, plain HTML | 100 KB per page → about 10 GB | 10 GB × $2.79 = $27.90, plus servers and maintenance |
| Proxies, headless browser | 2 MB per page with images and scripts → about 200 GB | 200 GB × $2.49 = $498.00, plus heavier servers |
| Web scraping API, HTTP | 100,000 successful results in one purchase | 100 × $0.20 = $20.00 at the volume price |
| Web scraping API, JS rendering | 100,000 successful results in one purchase | 100 × $1.00 = $100.00 at the volume price |
Where the lines cross. Per 1,000 pages, proxies cost $2.79 × the GB those pages use:
| Page size through the proxy | Proxies per 1,000 pages | API per 1,000 results (entry → volume) | Cheaper |
|---|---|---|---|
| 30 KB (lean HTML) | about $0.08 | HTTP $0.50 → $0.20 | proxies |
| 100 KB (heavier HTML) | about $0.28 | HTTP $0.50 → $0.20 | proxies against the entry price, the API at its volume price |
| 500 KB (browser, media blocked) | about $1.40 | JS $2.00 → $1.00 | proxies at the entry price, the API at its volume price |
| 2 MB (full browser page) | about $5.58 | JS $2.00 → $1.00 | the API |
At the API's volume prices the crossover sits near 70 KB per page for plain HTML and near 360 KB per page for rendered pages, before you count servers and the time someone spends fixing scrapers, which is often the largest line.
How to scrape JavaScript-heavy websites cheaply
Answer: skip the browser. At an example 10 KB per JSON call, 100,000 calls use about 1 GB of proxy traffic, $2.95, against about 200 GB, $498, for the same pages in a full browser at an example 2 MB per page. Many JavaScript-heavy pages load their data from a JSON request you can call directly; render a page only when no such request exists, and keep the browser light. The Scrapy documentation on dynamic content gives the same order: reproduce the request first, use a headless browser last.
Find the data request. Open the page in Chrome, press F12, choose Network, filter by Fetch/XHR and reload. Click requests until one returns your data as JSON (Chrome DevTools: Network panel).
Copy it. Right-click the request, Copy > Copy as cURL. In Scrapy,
Request.from_curl()turns that line into a request. To test whether the data is already in the raw HTML, runscrapy fetch --nolog https://www.example.com/product/1 > response.htmland search the file for a value you can see on the page.Call it directly, through the proxy, and change the page or ID parameters to walk through the data:
import requests proxy = "http://<login>-country-us:<password>@gate.proxyfield.io:7000" r = requests.get("https://www.example.com/api/products?page=2", headers={"Accept": "application/json"}, proxies={"http": proxy, "https": proxy}, timeout=30) items = r.json()No separate request? Look inside the HTML. Many sites ship the data as JSON in a
<script>tag, such as__NEXT_DATA__on Next.js sites; parse it from the plain HTML, still without a browser. Valid JSON goes throughjson.loads(); a JavaScript object that is not valid JSON (unquoted keys, single quotes) goes throughchompjs.parse_js_object()from the chompjs library:import json, re, chompjs, requests html = requests.get("https://www.example.com/product/1", proxies={"http": proxy, "https": proxy}, timeout=30).text m = re.search(r'<script id="__NEXT_DATA__"[^>]*>(.*?)</script>', html, re.S) if m: data = json.loads(m.group(1)) # valid JSON else: js = re.search(r"window\.__INITIAL_STATE__\s*=\s*(\{.*?\});", html, re.S).group(1) data = chompjs.parse_js_object(js) # a JavaScript object literalStill in a browser for some other reason? Let the page make its own data request and keep the JSON: Playwright's
page.expect_response()(orpage.on("response", ...)) returns the response, andresponse.json()gives the data without parsing the DOM (Playwright: network).Render only what is left, in a headless browser such as Playwright, and keep it light: reuse one browser for many pages, block images, fonts and media, and wait for the one element you need instead of a fixed delay.
from playwright.sync_api import sync_playwright BLOCK = {"image", "font", "media"} with sync_playwright() as p: browser = p.chromium.launch(proxy={"server": "http://gate.proxyfield.io:7000", "username": "<login>-country-us", "password": "<password>"}) page = browser.new_page() page.route("**/*", lambda route: route.abort() if route.request.resource_type in BLOCK else route.continue_()) for url in ["https://www.example.com/product/1", "https://www.example.com/product/2"]: page.goto(url, wait_until="domcontentloaded") page.wait_for_selector(".price") print(page.inner_text(".price")) browser.close()In Scrapy, the
scrapy-playwrightplugin renders only the requests you mark withmeta={"playwright": True}; it needs the asyncio reactor (TWISTED_REACTOR = "twisted.internet.asyncioreactor.AsyncioSelectorReactor") and its download handlers insettings.py(Scrapy for JavaScript pages).Or hand the rendering to an API billed per result: JS rendering on the web scraping API is priced at $2.00 per 1,000 successful results, $1.00 from 10,000 results (in development; Contact sales).
What each step saves on 100,000 pages a month, with example sizes:
| Method | Example size per page | Traffic | Cost |
|---|---|---|---|
| JSON endpoint, no browser | 10 KB | about 1 GB | 1 GB × $2.95 = $2.95 |
| Headless browser, images, fonts and media blocked | 500 KB | about 50 GB | 50 GB × $2.65 = $132.50 |
| Headless browser, full page | 2 MB | about 200 GB | 200 GB × $2.49 = $498.00 |
| JS-rendering API | per result | – | 100 × $1.00 = $100.00 |
More: scraping dynamic web pages, scraping hidden APIs and headless browser scraping.
Why web data collection is expensive
Collecting web data costs more than the bandwidth suggests, because:
- Sites limit requests per IP, so volume needs a pool of IPs, and protected sites need residential or mobile IPs, which cost more than datacenter ones.
- JavaScript pages need a browser, which uses more CPU, memory and traffic than a plain request.
- Failures repeat work: blocked or empty responses must be retried, and you pay for the traffic either way with proxies.
- Layouts change, and every change means engineering time to fix selectors.
- Data needs cleaning, deduplication and storage before anyone can use it.
A scraper API moves the first three to the provider and charges for successful results; proxies keep them with you and charge for traffic.
How proxies and a scraper API work together
Many teams use both. The scraper API handles the hardest targets, such as search engines, and the pages that need rendering; their own scraper on rotating proxies handles the high-volume, simple pages where per-GB billing is lowest. For AI agents the split is similar: an API returns clean results in one call, while a proxy lets the agent's own browser act like one visitor across several pages.
How to choose
-
Is the data standard and fine at the seller's refresh rate?
Buy a dataset.
-
Does the target block hard, or does every page need a browser?
Look for a JSON endpoint first; if there is none, a scraper API is the simpler route.
-
Do you have developers and a high volume of light pages?
Run your own scraper on proxies.
-
Not sure?
Measure 1,000 of your real URLs on the proxy route with the Easy Trial, 1 GB for $2.95, and compare the cost per page with the API's per-result price.
Proxies by job and what each job costs are worked through on proxies for web scraping. All purchases are final; in return, proxy traffic never expires.
What to check before either route
- The site's terms. Public pages only, and follow the site's terms; the route you pick does not change them.
- robots.txt. It says which paths the site asks crawlers to leave alone and sometimes a crawl delay; read it before you size a job.
- Personal data. Names, profiles and reviews are personal data under the GDPR in the EU and the UK; collect only the fields your purpose needs.
- Logins and access controls. Data behind a login you are not entitled to is off limits on either route, under ProxyField's acceptable use policy.
- Rate. Keep a modest rate per IP and per site; a pool of IPs is for spreading load, not multiplying it.
- The provider's billing. What counts as a billed result (ProxyField's APIs bill successful results only; a target's 404 or 410 counts as a result), whether traffic expires, and the smallest purchase. ProxyField's proxy traffic never expires and the smallest purchase is 1 GB.
The law differs by country and by what you collect: Is Web Scraping Legal? US, EU and UK Rules (2026). This is not legal advice.
Scraper API vs Proxies vs Datasets FAQ
Should I use a scraper API or residential proxies with my own scraper?
ProxyField sells residential proxies from $1.95/GB and is building scraper APIs priced from $0.20 per 1,000 successful results for plain HTTP pages (Contact sales). As a rule, use a scraper API for small or occasional jobs, hard targets and teams without scraper developers; use your own scraper on proxies for stable targets and a high volume of light pages. Many teams use both, splitting the work by target.
How do I scrape JavaScript-heavy websites cheaply?
Skip the browser where you can: in Chrome DevTools, open Network, filter Fetch/XHR, reload, and call the JSON request that carries the data directly; 100,000 such calls at an example 10 KB use about 1 GB of proxy traffic ($2.95), against about 200 GB ($498) in a full browser. Per 1,000 pages at $2.79/GB, example sizes cost about $0.08 at 30 KB, $1.40 at 500 KB (a browser with media blocked) and $5.58 at 2 MB (a full browser page). If you must render, use Playwright, reuse one browser, block images, fonts and media, and wait for one element; for heavy pages, a JS-rendering API billed per result (ProxyField's is priced at $2.00 per 1,000, $1.00 at volume; in development) can cost less than per-GB traffic.
How do I check whether a page's data is in the HTML or loaded by JavaScript?
Fetch the page without a browser and search the result for a value you can see on screen: scrapy fetch --nolog <url> > response.html, or curl through the proxy, then search the file. If the value is there, parse the HTML; if not, look for it in the Fetch/XHR requests in Chrome DevTools, and render the page only if neither has it.
How do I parse data from a JavaScript object in a page's script tag?
Cut the object out of the <script> tag with a regular expression, then use json.loads() if it is valid JSON, such as __NEXT_DATA__ on Next.js sites, or chompjs.parse_js_object() if it is a JavaScript object literal with unquoted keys or single quotes. Both run on plain HTML, so the page costs a few KB of traffic instead of a rendered browser page.
When is a scraper API cheaper than proxies?
When pages are heavy. At $2.79/GB, plain HTML through proxies costs less than the $0.20-per-1,000 API price below about 70 KB per page, and rendered pages cost less than the $1.00-per-1,000 JS price below about 360 KB per page. Above those sizes, or once you count servers and maintenance, the API is usually cheaper.
Is a scraping API the same as a proxy?
No. A proxy only forwards your requests through another IP; your scraper still fetches, renders and parses the page. A scraping API does the fetching for you, using its own proxies, browsers and retries, and returns the page or parsed data.
Does a web scraping API include proxies?
Yes. A scraping API sends your requests through its own IP pool and includes those IPs in its per-request or per-result price, so you do not buy proxies separately. You usually choose the country through an API parameter.
Can scraping APIs replace residential proxies?
For many jobs, yes: if the API covers your targets, you no longer manage IPs. Proxies stay the better fit when you need full control over sessions and browser behavior, run custom multi-step flows, or scrape large volumes of light pages where per-GB billing costs less.
How do proxies and a scraping API work together?
Split the work by target. Send hard targets and pages that need rendering to the API, and run your own scraper on rotating proxies for simple, high-volume pages. Both feed the same pipeline, and comparing their cost per successful page tells you where each URL type belongs.
Why is web data collection expensive?
Because sites limit requests per IP, JavaScript pages need browsers, blocked requests must be retried, layouts change and break scrapers, and data needs cleaning before use. Engineering time to maintain scrapers is often the largest cost, larger than traffic.
Show 3 more questionsShow fewer questions
What is a proxy vs API?
A proxy is a server that relays your requests so they come from another IP; it does not change what you request or what you get back. An API is an interface that returns data in a structured format, either the site's own API or a scraping API that fetches pages for you.
Should an AI agent use a scraping API or proxies?
A scraping API suits agents that need clean page content or search results in one call, because it returns text or JSON ready for a model. Proxies suit agents that drive their own browser through multi-step tasks, where the agent must look like one visitor across several pages.
When is a ready-made dataset the right choice?
When the data is standard, such as a product catalog or a company list, you need it once or rarely, and the seller's refresh schedule is fresh enough. If you need current prices, rankings by location or fields no seller offers, scrape them yourself or through an API.
Related pages
Easy Trial: 1 GB for $2.95.
Try for the price of 1 GB, no subscription, traffic never expires.