> ## Documentation Index
> Fetch the complete documentation index at: https://learn.workflow.dog/llms.txt
> Use this file to discover all available pages before exploring further.

# Get Page Content

> Render a URL with Cloudflare Browser Rendering and return HTML, Markdown, JSON, or a PDF.

**Get Page Content** loads a public URL in a browser operated by Cloudflare and
returns the page in the format you choose. It is useful when a normal HTTP
request is not enough because the page depends on JavaScript.

## Inputs

| Input                         | Type                                 | Required | Description                                                                                   |
| ----------------------------- | ------------------------------------ | -------- | --------------------------------------------------------------------------------------------- |
| **Third-party account**       | Cloudflare account                   | Yes      | The Cloudflare account and API credentials used for browser rendering.                        |
| **URL**                       | String                               | Yes      | The complete page URL to render.                                                              |
| **Format**                    | `HTML`, `Markdown`, `JSON`, or `PDF` | Yes      | Controls both the rendering endpoint and the node's output. Defaults to `HTML`.               |
| **Prompt Or Schema**          | String                               | No       | For `JSON` only. A JSON schema or natural-language prompt that describes the data to extract. |
| **Wait For Selector**         | String                               | No       | A CSS selector that must appear before Cloudflare captures the result.                        |
| **Wait Time**                 | Number                               | No       | Extra time to wait after the page loads, from `0` to `30000` milliseconds.                    |
| **Viewport Width**            | Number                               | No       | Browser viewport width, up to `1920`. Defaults to `1920`.                                     |
| **Viewport Height**           | Number                               | No       | Browser viewport height, up to `1080`. Defaults to `1080`.                                    |
| **JavaScript Code**           | String                               | No       | JavaScript inserted into the rendered page as a script.                                       |
| **Additional API Parameters** | Object                               | No       | Extra fields passed to Cloudflare's Browser Rendering API.                                    |

When **Format** is `JSON`, the node first tries to parse **Prompt Or Schema** as
JSON. Valid JSON is sent as a JSON schema; any other string is sent as an
extraction prompt.

<Warning>
  JavaScript Code runs inside the remote page. Only use code and input values
  you trust, and do not place secrets in code that the page could read.
</Warning>

## Outputs

The selected format changes which output is available:

| Format     | Output       | Type   | Description                             |
| ---------- | ------------ | ------ | --------------------------------------- |
| `HTML`     | **Content**  | String | Rendered page HTML.                     |
| `Markdown` | **Content**  | String | Page content converted to Markdown.     |
| `JSON`     | **Data**     | Object | Structured data returned by Cloudflare. |
| `PDF`      | **PDF File** | File   | A PDF named after the page's hostname.  |

## Example: extract product data

Choose `JSON`, then set **Prompt Or Schema** to a schema such as:

```json theme={null}
{
  "type": "object",
  "properties": {
    "name": { "type": "string" },
    "price": { "type": "string" },
    "inStock": { "type": "boolean" }
  },
  "required": ["name", "price"]
}
```

If the page renders its product card asynchronously, set **Wait For Selector**
to the product card's CSS selector before extracting it.

## Troubleshooting

<AccordionGroup>
  <Accordion title="The result was captured before the page finished loading">
    Wait for a stable CSS selector, or add a short **Wait Time**. A selector is
    usually more reliable than a fixed delay on pages with variable load times.
  </Accordion>

  <Accordion title="JSON extraction ignored my schema">
    Confirm that **Prompt Or Schema** is valid JSON. If parsing fails, the node
    treats the entire value as a natural-language prompt.
  </Accordion>

  <Accordion title="The page looks different from my browser">
    Match the page's expected viewport, then use **JavaScript Code** or
    **Additional API Parameters** for site-specific browser behavior.
  </Accordion>
</AccordionGroup>
