releases.shpreview

Snapshot endpoint returns HTML, screenshot, Markdown, and accessibility tree

1 featureThis release1 featureNew capabilitiesAI-tallied from the release notes

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