Capterra Rating

JavaScript Rendering
Web Scraping API

Scrape dynamic websites built with React, Vue, Angular, Next.js.
Headless Chrome per request. No infrastructure needed.

Scrape JavaScript-rendered pages
without managing browsers!

Unlimited scraping concurrency
Built-in browser & JavaScript rendering
Headless Chrome per request
Wait-for-selector support
Custom JS snippet execution
Rotating proxies & geo-targeting

Scrape React, Next.js, Vue, Angular & More

Modern websites render content client-side using JavaScript frameworks. Our API executes JavaScript just like a real browser, so you get the fully rendered HTML every time.
# Enable browser rendering with browser=true
curl -X GET "https://api.scrapingant.com/v2/general?url=https://spa-example.com&browser=true" \
  -H "x-api-key: YOUR_API_KEY"
Works with any SPA, AJAX-heavy site, or infinite scroll page.

No Selenium or Playwright Needed

Forget about managing browser binaries, Docker containers, or cloud infrastructure. ScrapingAnt handles all the complexity. Just call our API and get rendered HTML back.
No browser management
No Docker or Kubernetes setup
No Puppeteer/Playwright code

Headless Chrome Per Request

Every request with browser=true spins up a fresh Headless Chrome instance. Your target site sees a real browser fingerprint, making detection much harder.
Real browser fingerprint
Fresh session per request
Anti-bot avoidance built-in

Wait for Dynamic Content with wait_for_selector

SPAs and AJAX-heavy pages often load content after the initial page load. Use wait_for_selector to tell ScrapingAnt to wait until a specific element appears before returning the HTML.
Perfect for:
  • Infinite scroll pages
  • Lazy-loaded product listings
  • AJAX-loaded data tables
  • Client-side rendered dashboards
# Wait for element before returning HTML
curl -X GET "https://api.scrapingant.com/v2/general" \
  -d "url=https://spa-app.com/products" \
  -d "browser=true" \
  -d "wait_for_selector=.product-card" \
  -H "x-api-key: YOUR_API_KEY"

Execute Custom JavaScript with js_snippet

Need to click a button, scroll the page, or interact with elements before scraping? Use js_snippet to run your own JavaScript code inside the browser.
import requests
import base64

# JavaScript to scroll and click "Load More"
js_code = """
window.scrollTo(0, document.body.scrollHeight);
document.querySelector('.load-more-btn').click();
"""

response = requests.get(
    "https://api.scrapingant.com/v2/general",
    params={
        "url": "https://example.com/feed",
        "browser": "true",
        "js_snippet": base64.b64encode(js_code.encode()).decode()
    },
    headers={"x-api-key": "YOUR_API_KEY"}
)
The js_snippet parameter accepts base64-encoded JavaScript.

Advanced Browser Options

return_page_source

Get the original HTML as sent by the server, before any JavaScript execution. Useful for comparing rendered vs. raw HTML or debugging.

block_resource

Speed up page loads by blocking images, stylesheets, fonts, or media. Reduce bandwidth and credits while getting the data you need faster.

proxy_type

Choose between datacenter proxies (fast & cheap) or residential proxies (higher success rates) depending on your target site's anti-bot measures.

proxy_country

Access geo-restricted content by routing requests through proxies in specific countries. Perfect for price comparison and localized content scraping.

Get Started in Minutes

cURL

curl -X GET \
  "https://api.scrapingant.com/v2/general\
?url=https://example.com&browser=true" \
  -H "x-api-key: YOUR_API_KEY"

Python

import requests

response = requests.get(
    "https://api.scrapingant.com/v2/general",
    params={
        "url": "https://example.com",
        "browser": "true"
    },
    headers={"x-api-key": "YOUR_API_KEY"}
)
print(response.text)

Node.js

const axios = require('axios');

axios.get('https://api.scrapingant.com/v2/general', {
  params: {
    url: 'https://example.com',
    browser: 'true'
  },
  headers: { 'x-api-key': 'YOUR_API_KEY' }
}).then(res => console.log(res.data));

Ready to Scrape?

Sign up for free and get 10,000 API credits to test JavaScript rendering on your target sites.
Start Free Trial
Pricing

Industry leading pricing that scales with your business.

Compare plans side by side. Every tier includes 10,000 free credits to start.
👈Swipe to compare all 5 plans👉
Plans
Enthusiast
100K credits / mo
$19/mo
★ Most Popular
Startup
500K credits / mo
$49/mo
Business
3M credits / mo
$249/mo
Business Pro
8M credits / mo
$599/mo
Custom
10M+ credits / mo
$699+/mo
Monthly API credits100,000500,0003,000,0008,000,00010M+
Support channelEmailPriority emailPriority emailPriority emailPriority + dedicated
Integration helpDocs onlyCustom code snippetsDebug sessionsPriority debug sessionsFull enterprise onboarding
Expert assistanceincludedincludedincludedincluded
Custom proxy poolsincludedincludedincluded
Custom anti-bot avoidancesincludedincludedincluded
Dedicated account managerincludedincludedincluded
Start FreeStart Free →Start FreeStart FreeTalk to Sales
Hit your limit mid-month?
Restart your plan instantly — no waiting for the next billing cycle. Credits refresh the moment you pay, so scraping never has to stop.
10,000 free credits every month
No credit card required
Pay only for successful scrapes — failed requests cost 0
★ ★ ★ ★ ★

"Onboarding and API integration was smooth and clear. Everything works great. The support was excellent. Overall a great scraper."

Illia K., Android Software Developer
★ ★ ★ ★ ★

"Great communication with co-founders helped me to get the job done. Great proxy diversity and good price."

Andrii M., Senior Software Engineer
★ ★ ★ ★ ★

"This product helps me to scale and extend my business. The API is easy to integrate and support is really good."

Dmytro T., Senior Software Engineer

Frequently asked questions.

If you have any further questions, Get in touch with our friendly team
What do I get back from a JavaScript rendering request?

When you use browser=true, ScrapingAnt returns the fully rendered HTML after all JavaScript has executed. This includes dynamically loaded content, AJAX responses, and any DOM modifications made by client-side scripts. You get the same HTML you'd see if you opened "View Source" in a real browser after the page finished loading.

How long can a rendered request run?

By default, browser rendering requests have a timeout of 30 seconds. If you need more time (for complex SPAs or slow-loading pages), you can use the timeout parameter to extend this up to 180 seconds. Combined with wait_for_selector, you can ensure all content loads before the response is returned.

Can I turn browser rendering off?

Yes. By default, browser=false, which means requests use simple HTTP fetching without JavaScript execution. This is faster and uses fewer API credits. Only enable browser=true when your target site requires JavaScript rendering to display the content you need.

How many API credits does JavaScript rendering cost?

Requests with browser=true cost 10 API credits by default (with standard proxies). Using residential proxies with browser rendering costs 125 credits per request. You can reduce costs by using block_resource to skip loading unnecessary assets like images and stylesheets.

What's the difference between ScrapingAnt and running my own Puppeteer/Playwright?

With ScrapingAnt, you don't need to manage browser binaries, handle crashes, configure proxies, or scale infrastructure. We handle all of that. You just call our API and get rendered HTML back. Plus, our system automatically rotates proxies and handles anti-bot detection, which would require significant additional work with self-hosted solutions.

"Our clients are pleasantly surprised by the response speed of our team."

Oleg Kulyk,
ScrapingAnt Founder
* Our team will contact you ASAP.
Thank you! Your submission has been received!
Oops! Something went wrong while submitting the form.
By browsing this site, you agree to our Cookies Policy