Snapshot endpoint returns HTML, screenshot, Markdown, and accessibility tree
Browser Run's /snapshot endpoint now supports a formats parameter that lets you return multiple page formats in a single API call. Previously, /snapshot returned only HTML content and a screenshot. You can now also include Markdown and the accessibility tree in the same response.
These formats are particularly useful for AI agent workflows:
- Markdown provides a token-efficient representation of page content that LLMs can process directly, without parsing HTML markup.
- The accessibility tree provides a structured representation of a page's elements, including roles, labels, and hierarchy, helping LLMs understand page structure and navigate its contents.
The following example returns a screenshot, Markdown, and the accessibility tree in one call:
-
curl
<div><div><span>curl</span><span> </span><span>-X</span><span> </span><span>POST</span><span> </span><span>'https://api.cloudflare.com/client/v4/accounts/<accountId>/browser-rendering/snapshot'</span><span> </span><span>\</span></div></div><div><div><span> </span><span>-H</span><span> </span><span>'Authorization: Bearer <apiToken>'</span><span> </span><span>\</span></div></div><div><div><span> </span><span>-H</span><span> </span><span>'Content-Type: application/json'</span><span> </span><span>\</span></div></div><div><div><span> </span><span>-d</span><span> </span><span>'{</span></div></div><div><div><span><span> </span></span><span>"url": "https://example.com/",</span></div></div><div><div><span><span> </span></span><span>"formats": ["screenshot", "markdown", "accessibilityTree"]</span></div></div><div><div><span><span> </span></span><span>}'</span></div></div> -
TypeScript SDK
<div><div><span><span>import </span><span>Cloudflare</span><span> from </span></span><span>"cloudflare"</span><span>;</span></div></div><div><div> </div></div><div><div><span>const</span><span> </span><span>client</span><span> </span><span>=</span><span> </span><span>new</span><span> </span><span>Cloudflare</span><span>(</span><span>{</span></div></div><div><div><span><span> </span></span><span>apiToken</span><span>:</span><span> </span><span>process</span><span>.</span><span>env</span><span>[</span><span>"CLOUDFLARE_API_TOKEN"</span><span>]</span><span>,</span></div></div><div><div><span>}</span><span>)</span><span>;</span></div></div><div><div> </div></div><div><div><span>const</span><span> </span><span>snapshot</span><span> </span><span>=</span><span> </span><span>await</span><span> </span><span>client</span><span>.</span><span>browserRendering</span><span>.</span><span>snapshot</span><span>.</span><span>create</span><span>(</span><span>{</span></div></div><div><div><span><span> </span></span><span>account_id</span><span>:</span><span> </span><span>process</span><span>.</span><span>env</span><span>[</span><span>"CLOUDFLARE_ACCOUNT_ID"</span><span>]</span><span>,</span></div></div><div><div><span><span> </span></span><span>url</span><span>:</span><span> </span><span>"https://example.com/"</span><span>,</span></div></div><div><div><span><span> </span></span><span>formats</span><span>:</span><span> [</span><span>"screenshot"</span><span>,</span><span> </span><span>"markdown"</span><span>,</span><span> </span><span>"accessibilityTree"</span><span>]</span><span>,</span></div></div><div><div><span>}</span><span>)</span><span>;</span></div></div><div><div> </div></div><div><div><span>console</span><span>.</span><span>log</span><span>(</span><span>snapshot</span><span>.</span><span>markdown</span><span>)</span><span>;</span></div></div><div><div><span>console</span><span>.</span><span>log</span><span>(</span><span>snapshot</span><span>.</span><span>accessibilityTree</span><span>)</span><span>;</span></div></div> -
Workers Bindings
<div><div><span>interface</span><span> </span><span>Env</span><span> </span><span>{</span></div></div><div><div><span><span> </span></span><span>BROWSER</span><span>:</span><span> </span><span>BrowserRun</span><span>;</span></div></div><div><div><span>}</span></div></div><div><div> </div></div><div><div><span>export</span><span> </span><span>default</span><span> </span><span>{</span></div></div><div><div><span> </span><span>async</span><span> </span><span>fetch</span><span>(</span><span>request</span><span>,</span><span> </span><span>env</span><span>)</span><span>:</span><span> </span><span>Promise</span><span><</span><span>Response</span><span>></span><span> </span><span>{</span></div></div><div><div><span> </span><span>return</span><span> </span><span>await</span><span> </span><span>env</span><span>.</span><span>BROWSER</span><span>.</span><span>quickAction</span><span>(</span><span>"snapshot"</span><span>,</span><span> </span><span>{</span></div></div><div><div><span><span> </span></span><span>url</span><span>:</span><span> </span><span>"https://example.com/"</span><span>,</span></div></div><div><div><span><span> </span></span><span>formats</span><span>:</span><span> [</span><span>"screenshot"</span><span>,</span><span> </span><span>"markdown"</span><span>,</span><span> </span><span>"accessibilityTree"</span><span>]</span><span>,</span></div></div><div><div><span> </span><span>}</span><span>)</span><span>;</span></div></div><div><div><span> </span><span>},</span></div></div><div><div><span>}</span><span> </span><span>satisfies</span><span> </span><span>ExportedHandler</span><span><</span><span>Env</span><span>>;</span></div></div>
You must request at least two formats. If you only need one, use the respective single-format endpoint such as /screenshot or /markdown.
Refer to the /snapshot documentation for the full list of accepted values.
Fetched June 11, 2026


