---
title: "Read a JavaScript-rendered page"
method: POST
path: "/api/v1/render/read-page"
tags: ["render"]
---

# Read a JavaScript-rendered page

`POST /api/v1/render/read-page`

## Request

- Base URL: `https://toolforte.com`
- URL: `https://toolforte.com/api/v1/render/read-page`
- Auth: one of:
  - HTTP bearer
  - none

Load a page in headless Chrome and return its readable content as text or Markdown. Use when a plain fetch returns an empty shell: single page apps and client-side rendered sites only produce content after scripts run. Navigation, scripts and cookie banners are stripped. Same metering as the other render endpoints.

## Request body

- object
  - `url` string, required: Public http(s) URL
  - `format` 'markdown' | 'text'
  - `maxChars` integer

## Response `200`

Extracted page content with title and links

## Other responses

- `400`: Invalid or private URL
- `429`: Render limit reached
- `502`: Could not read the page

---

[API](https://skmtc.dev/toolforte/apis/toolforte-api.md) · [All operations](https://skmtc.dev/toolforte/apis/toolforte-api/llms.txt) · [OpenAPI document](https://skmtc.dev/toolforte/apis/toolforte-api/revisions/4d814d484dfc?raw)
