Rendered HTML 

Get the HTML of JavaScript pages.
=================================

A plain HTTP request returns the empty shell of a single page application. screeenly loads the page in Chrome, lets the scripts run and hands you the HTML as the user sees it.

 [ Start for free → ](https://3.screeenly.com/app/register) [ Try the playground ](https://3.screeenly.com/playground) 

 Plain request

```

```

 screeenly

```

  Pricing
  …12 plans…

```

  01 · Send a URL or HTML POST a URL, or a string of HTML, to `/v1/rendered-html`.

 02 · Chrome runs the page Scripts execute, requests finish and the DOM settles. You decide how long to wait.

 03 · Read the HTML The JSON response holds the final markup in `rendered_html`.

    API requests handled 21,732,869   Launched as open source July 2014 

Every request runs in real Chrome. Revenue, customers and usage are public too.

 [See the open startup numbers →](https://3.screeenly.com/open) 

  [Code examples](#code) [Waiting for content](#waiting) [Protected pages](#protected) [Use cases](#use-cases) [Questions](#faq) 

One request, the real DOM
-------------------------

 curl 

```
curl --request POST \
  --url https://3.screeenly.com/api/v1/rendered-html \
  --header "authorization: Bearer $token" \
  --data url=https://example.com/app \
  --data wait_until_network_idle=1
```

 javascript 

```
const res = await fetch('https://3.screeenly.com/api/v1/rendered-html', {
  method: 'POST',
  headers: {
    Authorization: `Bearer ${token}`,
    'Content-Type': 'application/x-www-form-urlencoded',
  },
  body: new URLSearchParams({ url: 'https://example.com/app' }),
});

const { data } = await res.json();
console.log(data.rendered_html);
```

Wait for the content you need
-----------------------------

 Some pages fetch their data after the first paint. Tell the browser when the page is ready. The free plan allows a delay of up to 2,000 ms and a timeout of up to 15 seconds.

 ParameterWhat it does  `wait_until_network_idle`Wait until the page has stopped loading resources. `wait_until_network_idle_strict`Wait until there is no network activity at all. `wait_for_selector`Wait until an element, such as `#results`, exists. Fails after the timeout. `delay`Wait a fixed number of milliseconds, up to 30,000. `timeout`Give up after this many seconds, up to 60. `disable_javascript`Return the HTML without running scripts. `browser_language`Set the language the browser reports, such as `de`.  

Protected pages
---------------

 Pass cookies, custom HTTP headers or basic authentication credentials and the browser sends them with its requests. You can also post your own HTML and let screeenly run the scripts inside it.

What you can build with it
--------------------------

Content for AI agents

Give your agent the text of a page after its scripts ran.

Monitoring your own pages

Check that the values on your pages show up after the scripts ran.

SEO checks

See the title, headings and links that a browser, and a crawler that runs JavaScript, sees.

Prerendering

Generate static HTML snapshots of a single page application.

screeenly is not a web scraper

screeenly loads pages the way a regular browser does. It cannot get past bot protection such as Cloudflare challenges, CAPTCHAs or other checks that decide a visitor is not human, and it does not try to. Use it on your own pages and on pages you are allowed to load.

Questions
---------

   What do I get back?  A JSON object with `rendered_html`, the full document as a string, plus usage information for your plan.

   Is the HTML stored?  The rendered HTML is kept with your request log for 24 hours. Store it on your side if you need it longer.

   Can I get a screenshot of the same page?  Yes, with a second request to the screenshot endpoint. Each endpoint call counts as one API request.

   Can screeenly get past Cloudflare or CAPTCHAs?  No. screeenly does not bypass bot protection, challenges or CAPTCHAs, and it is not meant for scraping. If a page shows a challenge to a normal browser visit, you will get the challenge page.

   More from screeenly [     Screenshots ](https://3.screeenly.com/features/screenshots) [     PDFs ](https://3.screeenly.com/features/pdf) [     Your own HTML ](https://3.screeenly.com/features/your-own-html) [     MCP for agents New ](https://3.screeenly.com/features/mcp) [     OG image templates Soon ](https://3.screeenly.com/features/og-image-templates) [     No-code integrations Soon ](https://3.screeenly.com/features/no-code-integrations)
