YepAPI

Command Palette

Search for a command to run...

POST/v1/scrape/js

JavaScript Scraping API

Scrape JavaScript-rendered pages with a headless browser. Handle React, Vue, and Angular SPAs with full DOM rendering from $0.02/call.

Render pages in a full headless browser before extracting content. Essential for SPAs built with React, Vue, Angular, or any framework that renders client-side.

Try it live

Fill in the fields and hit Run to see a real response.

POST/v1/scrape/js

Wait for JS to render before extracting (milliseconds).

Response
Example response — hit "Send Request" to see a live result
{
  "ok": true,
  "data": {
    "url": "https://react.dev",
    "statusCode": 200,
    "content": "# React\n\nThe library for web and native user interfaces...",
    "format": "markdown"
  }
}

Features

Full JavaScript execution in headless Chrome

Pages render in a real headless Chrome browser, executing all client-side JavaScript before content is extracted. This captures content that basic scrapers miss entirely on framework-driven sites.

Return content as markdown, HTML, or text

Get the fully rendered page back as clean markdown, raw HTML, or plain text. The output reflects the DOM after JavaScript has run, not the empty shell that ships in the initial response.

Configurable wait time for dynamic content

Set a `waitFor` value in milliseconds to pause before extraction, giving lazy-loaded images, async API calls, and animations time to finish. Essential for content that streams in after the initial render.

CSS selector targeting

Narrow the result to a specific element with a CSS selector, applied after the page has fully rendered. Pull just the product grid or article body from a complex app shell.

Handles SPAs, lazy loading, and dynamic rendering

Built for React, Vue, Angular, and other client-rendered frameworks that return empty HTML to standard crawlers. Lazy-loaded and dynamically injected content is captured once it appears in the DOM.

Use cases

SPA Scraping

Scrape React, Vue, and Angular apps that render content client-side and return empty HTML to basic crawlers.

Dynamic Price Monitoring

Extract prices from e-commerce sites that load product data via JavaScript after the initial page load.

Social Media Scraping

Capture content from social platforms that rely heavily on JS rendering and infinite scroll.

Dashboard Data Extraction

Scrape web dashboards and reporting tools that build their UI entirely in JavaScript.

Web App Testing

Verify that your JS-rendered pages produce the correct content by scraping and comparing output.

Quick start

Copy this snippet and start making calls.

const res = await fetch('https://api.yepapi.com/v1/scrape/js', {
  method: 'POST',
  headers: {
    'x-api-key': 'YOUR_API_KEY',
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    "url": "https://react.dev",
    "format": "markdown"
  }),
});
const data = await res.json();
console.log(data);

JavaScript Scraping API with a real headless browser

The YepAPI JavaScript Scraping API renders pages in a full headless Chrome instance before extracting their content. Modern sites built with React, Vue, or Angular often ship an empty HTML shell and build the page client-side — a basic scraper sees nothing. This endpoint executes the JavaScript first, then returns the fully rendered content as markdown, HTML, or text.

Use it whenever the data you need only appears after scripts run: SPA dashboards, dynamically loaded product prices, infinite-scroll feeds, and lazy-loaded media. For plain static pages the cheaper Web Scraping API is faster, and for JS sites that also block bots behind Cloudflare or Akamai, the Stealth Scraping API adds residential proxies and fingerprint rotation on top of full rendering.

What is a headless browser API?

A headless browser API runs a real browser like Chrome on a server, without a visible window, and lets you control it through HTTP requests. It loads a URL, executes all the page's JavaScript exactly as a user's browser would, and then returns the resulting content. This matters because a growing share of the web renders content client-side — the HTML that arrives over the wire is nearly empty, and the actual text, prices, and listings are built by JavaScript afterward. A headless browser API captures that final, rendered state, so you can scrape single-page apps and dynamic sites that defeat simple HTTP fetchers.

Build your own JavaScript scraper

Point the endpoint at a React or Vue app, set a `waitFor` delay so async data finishes loading, and you get the rendered content back as clean markdown. That's the foundation for a price tracker on a JS-driven storefront, a monitor for a client-rendered dashboard, or a crawler for social feeds that depend on infinite scroll. The CSS selector parameter lets you isolate the exact rendered element you want. No Puppeteer setup, no browser fleet to scale or patch — the rendering runs on our infrastructure.

JavaScript Scraping API pricing — from $0.02 per call

Headless rendering costs $0.02 per call, with no monthly minimum and no subscription. ScrapingBee charges around $0.025 per JS-rendered call behind a $49/month minimum, and Browserless starts at $100/month. With YepAPI you pay per request and nothing else, so a low-volume project costs cents instead of a fixed monthly fee, while high-volume jobs scale linearly with usage.

When rendering is worth the extra cost

Headless rendering is slower and pricier than a raw HTML fetch, so reach for this endpoint only when the content genuinely requires JavaScript. If a page already includes its data in the source, the standard Web Scraping API will return the same result faster and at half the price. A good rule of thumb: if viewing source in your browser shows the data, use basic scrape; if it's blank until scripts run, use this.

Try the JavaScript Scraping API free

Sign up for $5 in free credit with no credit card required — enough for 250 headless render calls. Test it against your toughest SPA and confirm you get the fully rendered content before spending anything.

Start making API calls in 30 seconds

$5 free credit on signup. No credit card required. Pay per call.

What developers say

Switched from SerpAPI and cut our SERP costs by 80%. Same data quality, way simpler billing.

Marcus T.

SEO Platform Founder

One API key for AI models, SERP data, and web scraping. Saved us from managing 4 separate providers.

Priya S.

Full-Stack Developer

The $5 free credit let us prototype our entire rank tracking feature before committing. No other API does that.

Jake R.

Indie Hacker

Frequently asked questions

Render pages in a full headless browser before extracting content. Essential for SPAs built with React, Vue, Angular, or any framework that renders client-side.

Each API call costs $0.02. No monthly minimums or subscriptions — you only pay for what you use.

Sign up for a free API key, then send a POST request to /v1/scrape/js. Check the code example above for a ready-to-use snippet in JavaScript, cURL, or Python.

YepAPI bundles SEO, AI, and web scraping APIs under one key with no monthly minimums. You get lower per-call pricing, a unified dashboard, and one billing account instead of managing multiple providers.

Ready to integrate?

Get your API key and start making calls in 30 seconds. $5 free credit on signup — no credit card required.

More web scraping endpoints