# JS Rendering

## Enable JavaScript Rendering

To enable JavaScript rendering, add the **`render=true`** parameter to your requests. The API will then route your request through a Chromium instance and render any JavaScript on the page, before returning the HTML response back to you.

## Extra JavaScript Rendering Costs

All JS Rendered requests cost 10 API Credits. However, if you use JS Rendering with premium proxies, it will cost 25 API Credits, and if you use ultra premium proxies with JS Rendering, the cost will be 75 API Credits. We highly recommend that you only use JS rendering if you absolutely need it to extract your target data, as JS rendering will increase your latency and can reduce your success rates which can reduce the volume of requests you can process through the API.

## Click elements on the page

Our **Java Script Rendering Instruction Set** allows you to interact with the page and perform actions such as click, input data, scroll and wait for certain events to finish before returning the rendered response back to you. To find out more, please follow [this](/javascript-rendering/rendering-instruction-set.md) link.

## Page Elemets still missng

To avoid rendering unnecessary images, tracking scripts, etc. that will slow your requests down, the API doesn’t render everything on the page by default. Sometimes this might include some data that you actually need. If you find yourself in such situation, you can instruct the API to wait for a specific selector to appear on the page through the use of the **`wait_for_selector=x`** parameter, before the final rendered response is returned back to you.&#x20;

{% hint style="danger" %}
Please note, that you need to include the **`render=true`** parameter whenever you are specifying **`wait_for_selector`**, otherwise the API will ignore it.
{% endhint %}

If you find yourself in need of help, you can [contact our support team here](https://dashboard.scraperapi.com/contact-support).[<br>](https://app.gitbook.com/o/plTeg4T0y4kGJcVocjqg/s/gUyKYALPCkHf4Jcm5ucz/js-rendering/clicking-page-elements)

## JS Rendering Concurrency

The rendering concurency (burst limit) is set to 10req/sec by default. This burst limit controls the number of rendered requests you can start each second. For example, if each rendered request takes 25 seconds to complete, and you are consistently sending 10 requests per second, you could have up to 250 rendered requests running concurrently at any given time (10 requests/sec \* 25 seconds). If you need to handle more rendered requests concurrently (Enteprise users only) please [contact our support team](https://dashboard.scraperapi.com/contact-support) for assistance.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.scraperapi.com/resources/faq/js-rendering.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
