Browser Run – New formats parameter for the Browser Run /snapshot endpoint

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.

Comments

Leave a Reply

Your email address will not be published. Required fields are marked *