The Tool Desk
Outbyte PC Repair FREERepair Windows errors before they cause bigger problemsFix Now →Outbyte Driver Updater FREEFix the driver behind crashes, sound loss and screen glitchesFind Drivers →Some links on this page are affiliate links: if you buy through them we may earn a commission, at no extra cost to you.
ScrapingBee is worth considering when you need one managed API for JavaScript rendering, rotating proxies and structured extraction. Its main trade-off is credit consumption: a static request can cost 1 credit, while a successful stealth request with JavaScript costs 75. Auto-Mode reduces configuration work by trying progressively more expensive settings, but it does not choose page-specific waits, selectors, cookies or geolocation for you.
What ScrapingBee does
ScrapingBee is a hosted web-scraping API. You send a URL and an API key; its infrastructure can fetch the page through rotating proxies, run a headless browser, execute JavaScript and return rendered HTML, text, Markdown, screenshots or extracted JSON. The official documentation says JavaScript rendering is enabled by default, so applications built with React, Angular, Vue or jQuery can be rendered before extraction.
The service is most useful when a normal HTTP client receives an empty shell, when the target varies by country, or when maintaining browser and proxy infrastructure would be more work than the data pipeline itself. It is not a permission slip to collect data from every website. Check the target’s terms, robots guidance and applicable law before collecting or redistributing information.
Who should use it
- Developers scraping client-rendered pages that require a real browser.
- Teams that need proxy rotation, premium or stealth pools, or geotargeting through one API.
- Projects that want CSS/XPath extraction, screenshots or AI-assisted extraction without running their own browser fleet.
Who may not need it
If your targets are stable, public, server-rendered pages and your volume is small, a direct HTTP client can be cheaper and simpler. ScrapingBee becomes more attractive as JavaScript, anti-bot resistance, geographic variation or operational maintenance becomes the bottleneck.
#1 Best Overall
How rendering and proxy choices affect credits
ScrapingBee’s practical decision is a balance between reliability and credits. The documented HTML API costs are:
| Configuration | Credits per successful call | Typical use |
|---|---|---|
| Classic proxy, JavaScript off | 1 | Static HTML and low-friction targets |
| Classic proxy, JavaScript on | 5 | Client-rendered pages without unusually strong blocking |
| Premium proxy, JavaScript off | 10 | Static pages that need a higher-quality proxy pool |
| Premium proxy, JavaScript on | 25 | Rendered pages with more demanding access requirements |
| Stealth proxy, JavaScript on | 75 | Difficult targets where lower tiers fail |
| AI query or AI extraction | +5 | AI-assisted querying or extraction added to the request |
Start at the least expensive configuration that works. Turn on JavaScript when the content is assembled in the browser. Escalate to premium or stealth proxies only after observing failures. A successful request that uses a more expensive configuration consumes that configuration’s rate; the table is not a flat per-request subscription fee.
ScrapingBee plans and free credits
These are the listed monthly plans and concurrency limits:
PC Slower Than It Used to Be?
A free scan shows the junk files, broken settings and background clutter dragging Windows down - then fixes them in one click.Free scan · Windows 10 & 11Outdated Drivers Are Slowing You Down
One free scan finds every outdated or missing driver and matches the right update for your exact hardware.Free scan · exact hardware match| Plan | Monthly price | API credits | Concurrent requests |
|---|---|---|---|
| Hobby | $19/month | 75,000 | 25 |
| Freelance | $49/month | 250,000 | 50 |
| Startup | $99/month | 1,000,000 | 100 |
| Business | $249/month | 3,000,000 | 200 |
| Business+ | $599/month | 8,000,000 | 400 |
ScrapingBee advertises 1,000 free API credits for a trial and says a credit card is not required. Its pricing page also states that customers pay only for successful requests and can cancel at any time. Credit consumption still depends on the configuration: 1,000 credits could represent 1,000 classic non-JavaScript calls, 200 classic JavaScript calls, or roughly 13 stealth JavaScript calls.
First request with cURL
Replace the API key with your own value. The minimal request asks for the target page and returns the response body:
curl 'https://app.scrapingbee.com/api/v1?url=https%3A%2F%2Fexample.com'
-H 'Authorization: Bearer YOUR-API-KEY'
For a client-rendered product page, enable JavaScript and wait for a selector that appears after rendering:
curl 'https://app.scrapingbee.com/api/v1?url=https%3A%2F%2Fexample.com&render_js=true&wait_for=.product-card'
-H 'Authorization: Bearer YOUR-API-KEY'
The API supports additional wait controls (`wait`, `wait_browser` and `wait_for`), viewport settings, resource blocking, custom headers and cookies, and extraction rules. A selector wait is generally safer than an arbitrary long delay because it expresses the condition your parser actually needs.
Quick wins for a faster PC:
Fix the driver behind crashes, sound loss and screen glitchesFind Drivers →Clear out junk files and repair common Windows errorsFree Scan →Scan for outdated or missing drivers - takes under a minuteDriver Scan →Python example
The official Python client keeps authentication and the request simple:
from scrapingbee import ScrapingBeeClient
client = ScrapingBeeClient(api_key='YOUR-API-KEY')
response = client.get('https://example.com')
print(response.status_code)
print(response.text[:500])
For a JavaScript-heavy page, pass the same request options supported by the API, for example:
response = client.get(
'https://example.com',
params={
'render_js': 'true',
'wait_for': '.product-card',
'block_resources': 'image,media'
}
)
response.raise_for_status()
html = response.text
Blocking images or media can reduce load time when you only need text, but do not block a resource that supplies the data your page requires.
Node.js example
With a Node.js runtime that provides fetch, send the API key in the Authorization header:
const params = new URLSearchParams({
url: 'https://example.com',
render_js: 'true',
wait_for: '.product-card'
});
const response = await fetch(`https://app.scrapingbee.com/api/v1?${params}`, {
headers: { Authorization: 'Bearer YOUR-API-KEY' }
});
if (!response.ok) {
throw new Error(`ScrapingBee returned ${response.status}`);
}
const html = await response.text();
console.log(html.slice(0, 500));
Auto-Mode: convenient, not fully automatic
Auto-Mode is designed for pages where you do not know which combination will succeed:
curl 'https://app.scrapingbee.com/api/v1?url=https%3A%2F%2Fexample.com&mode=auto'
-H 'Authorization: Bearer YOUR-API-KEY'
ScrapingBee tries configurations from cheaper to more expensive, varying JavaScript rendering, premium proxies and stealth proxies, and charges for the configuration that succeeds. This can reduce trial-and-error in a crawler that handles many unrelated sites.
Auto-Mode does not infer page-specific selectors, waits, cookies, custom headers or geolocation. If a page needs wait_for=.results, an authenticated cookie or a country-specific location, supply those options yourself. A useful workflow is to discover a working configuration manually, then decide whether Auto-Mode is worth the additional uncertainty for that target set.
Rank #3
Proxy mode versus API mode
In API mode, your application calls ScrapingBee’s endpoint and receives the fetched content. Proxy mode lets an existing HTTP client send traffic through ScrapingBee’s proxy endpoints:
proxy.scrapingbee.com:8886for HTTPproxy.scrapingbee.com:8887for HTTPSsocks.scrapingbee.com:8888for SOCKS5
The API key is used as the username, and supported parameters are supplied as the password. JavaScript is on by default in proxy mode; explicitly disable it for a static request so you do not pay for browser rendering you do not need.
Proxy mode is a good fit when an existing scraper, browser or command-line tool already understands proxies and you want to change routing without rewriting its extraction code. API mode is usually easier when you want ScrapingBee to return rendered content, screenshots or extraction results directly.
Extraction, screenshots and browser controls
Beyond the URL, rendering and proxy tier, the API exposes controls for viewport dimensions, resource blocking, custom headers and cookies, and extraction rules. These let you:
- Wait for a CSS selector or a browser condition before reading the page.
- Set a viewport appropriate for a desktop or mobile layout.
- Send login, locale or authorization headers when you are permitted to do so.
- Extract selected CSS/XPath fields instead of parsing an entire document downstream.
- Return screenshots or structured data for workflows that need visual or normalized output.
AI query and AI extraction add five credits to the underlying request. Treat those features as a convenience layer, not a substitute for validating the returned fields: a changed page layout can still produce an incomplete result.
Recommended Free Tools
Reliability, performance and cost practices
Use the cheapest stable configuration
Measure success by the fields your parser needs, not merely by receiving an HTTP response. Keep static pages on classic proxy without JavaScript, enable rendering only when the content is absent without it, and move to premium or stealth pools when repeated target-specific failures justify the extra credits.
Make waits deterministic
A selector wait communicates completion better than a fixed sleep. Use a fixed delay only when the page has no reliable element that signals readiness. Keep selectors specific enough to avoid matching a placeholder element.
Control concurrency
Each plan has a documented concurrency ceiling. Queue work to that limit rather than launching an unlimited burst; otherwise you can create retries, rate pressure and unnecessary credit consumption. Rendering and stealth requests also take more time than a classic static request, so throughput will vary by configuration.
Separate failures from empty data
Record the requested URL, selected options, response status, response length and parser result. An HTTP response containing a login wall, consent page or bot challenge is not equivalent to a successful extraction. This distinction is especially important when Auto-Mode changes the configuration between attempts.
Common problems and fixes
Authentication fails
Check that the key is current, that the Authorization header is exactly Bearer YOUR-API-KEY, and that the key has not been accidentally exposed in a client-side application. Keep it server-side and rotate it if it appears in logs or source control.
The HTML contains only an app shell
The target probably renders its data in the browser. Retry with render_js=true, then add a selector wait for the element that contains the completed data. If the page still lacks content, inspect whether an API call, cookie or location is required.
The selector wait times out
Verify the selector in a normal browser, account for iframes and changing class names, and confirm that the element is present for the chosen URL and locale. Increase a wait only after confirming that the selector is correct; a longer timeout cannot fix a selector that never appears.
The target blocks classic proxies
Try a premium proxy, then stealth with JavaScript if the target’s access rules permit your collection. Do not jump directly to stealth for every URL: its 75-credit price can consume a small plan quickly.
Do these 3 things before closing this tab:
1Clear out junk files and repair common Windows errors2Scan for outdated or missing drivers - takes under a minute3Repair Windows errors before they cause bigger problemsProxy mode behaves differently from API mode
Confirm the protocol-specific port, pass the API key as the username, and explicitly disable JavaScript for static traffic. Move back to API mode when you need ScrapingBee’s extraction, screenshot or page-wait response controls in a single request.
Best Value
Results are slow or inconsistent
Reduce unnecessary resources, use a precise wait, avoid excessive concurrency and log which proxy/rendering tier succeeded. Auto-Mode may select different tiers on different attempts, so explicit settings are easier to benchmark for a single known target.
When a screenshot API is the better fit
If the deliverable is a clean image or PDF rather than scraped fields, ScreenshotNeo is the alternative to try first: it removes consent banners, newsletter popups and chat widgets before capture, bills only clean shots, and has a $5 paid plan for 3,000 shots.
Or skip the browser setup
For a screenshot, one GET request is enough. See the ScreenshotNeo documentation for all options.
curl -G "https://api.screenshotneo.com/v1/shot" -d access_key=YOUR_API_KEY --data-urlencode url=https://example.com -o shot.webp
ScreenshotNeo removes cookie and consent banners, newsletter popups and chat widgets before the shot. Bot checks, blank pages, timeouts, failed loads and cache hits are not billed, and response headers identify the page verdict and billing result. Its MCP server provides take_screenshot, get_page_info and capture_pdf tools for Claude, Cursor and other MCP clients. The Free plan includes 1,000 screenshots each month with no card; paid plans start at $5 for 3,000 shots.
Create a free ScreenshotNeo account to use the 1,000-shot monthly allowance without a card.
Legal and operational boundaries
ScrapingBee’s examples and API mechanics do not grant permission to collect a particular site’s content. Review the site’s terms, robots guidance, privacy obligations and applicable laws, especially for personal data, authenticated areas and high-volume collection. Respect access controls rather than attempting to defeat them.
Frequently Asked Questions
Are unsuccessful ScrapingBee requests charged?
The pricing page states that customers pay only for successful requests. You should still log failures and parser results so that an HTTP response containing a challenge or incomplete page is not mistaken for a successful extraction.
What’s actually slowing this PC down?
Pick the symptom - the matching free tool is one click away.
Can I cancel a ScrapingBee subscription?
ScrapingBee’s pricing statement says you can cancel at any time. Check the account’s current billing terms before changing a production plan.
Quick Recap
Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.

