megachangelog
Feature

Browser Run /snapshot endpoint now supports multiple formats parameter

The Browser Run /snapshot endpoint now accepts a formats parameter to return multiple page formats in a single API call, including Markdown and accessibility tree alongside screenshots. This enables more efficient workflows for AI agents by providing token-efficient content representation and structured page element data.

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

    curl -X POST 'https://api.cloudflare.com/client/v4/accounts/<accountId>/browser-rendering/snapshot' \  -H 'Authorization: Bearer <apiToken>' \  -H 'Content-Type: application/json' \  -d '{    "url": "https://example.com/",    "formats": ["screenshot", "markdown", "accessibilityTree"]  }'
  • TypeScript SDK

    import Cloudflare from "cloudflare";
    const client = new Cloudflare({  apiToken: process.env["CLOUDFLARE_API_TOKEN"],});
    const snapshot = await client.browserRendering.snapshot.create({  account_id: process.env["CLOUDFLARE_ACCOUNT_ID"],  url: "https://example.com/",  formats: ["screenshot", "markdown", "accessibilityTree"],});
    console.log(snapshot.markdown);console.log(snapshot.accessibilityTree);
  • Workers Bindings

    interface Env {  BROWSER: BrowserRun;}
    export default {  async fetch(request, env): Promise<Response> {    return await env.BROWSER.quickAction("snapshot", {      url: "https://example.com/",      formats: ["screenshot", "markdown", "accessibilityTree"],    });  },} satisfies ExportedHandler<Env>;

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.

apibrowser-runai-agentsfeature-expansion

Source: original entry ↗