AXTree
The axtree output is a compact browser accessibility-tree for the page. Every
node gets a reference (@e1, @e2, …) with its browser role, accessible name, and important HTML attributes.
zshot -f - \
--output-type axtree \
https://zshot-cli.com/example_assets/gazette/{
"url": "https://zshot-cli.com/example_assets/gazette/",
"output_type": "axtree"
}curl -X POST http://127.0.0.1:3000/ \
-H "Content-Type: application/json" \
-d '{"url":"https://zshot-cli.com/example_assets/gazette/","output_type":"axtree"}'You can request an AXTree alongside a render by using the --axtree flag.
Example output:
Page: The ZShot Gazette
URL: https://zshot-cli.com/example_assets/gazette/
@e1 [banner]
@e2 [StaticText] "DAILY EDITION · NO. 1"
@e3 [StaticText] "THURSDAY, JUNE 18, 2026"
@e4 [StaticText] "PRICE: ONE (1) FREE LICENSE"
@e5 [heading] "The ZShot Gazette" [level=1]
@e6 [paragraph]
@e7 [StaticText] "All The Markup That's Fit To Render · zshot-cli.com"
@e8 [navigation] "Sections"
@e9 [link] "SPORTS" href="#"
@e10 [link] "WEATHER" href="#"
@e11 [link] "LIFESTYLE" href="#"
@e12 [link] "FOOD" href="#"
@e13 [link] "TECHNOLOGY" href="#"
@e14 [link] "POLITICS" href="#"
@e15 [main]
@e16 [article]
@e17 [paragraph]
@e18 [StaticText] "POLITICS"
@e19 [heading] "Mayor Blamed For Bandwidth Deficit" [level=2]
@e20 [link] "Mayor Blamed For Bandwidth Deficit" href="#"
....MORE....Each line is @eN [role] "name" attr="value" [state]:
@eN— a unique element reference.[role]— the browser role of the element."name"— the accessible name.attr="value"— selected HTML attributes:type,name,placeholder,href,alt,title.[state]— element state when present:level,checked,expanded,selected,disabled,required.
Elements that are interactable through CSS or handlers but absent from the accessibility tree (cursor-interactive divs, contenteditable, tabindex) are surfaced with a clickable/editable/focusable marker. An element marked draggable="true" is surfaced with draggable and, when unnamed, named by its text.
JSON
axtree_json produces a more expansive tree of nodes carrying additional information about the state of the page.
zshot -f - \
--output-type axtree_json \
https://zshot-cli.com/example_assets/gazette/{
"url": "https://zshot-cli.com/example_assets/gazette/",
"output_type": "axtree_json"
}curl -X POST http://127.0.0.1:3000/ \
-H "Content-Type: application/json" \
-d '{"url":"https://zshot-cli.com/example_assets/gazette/","output_type":"axtree_json"}'Example output:
{
"page_title": "The ZShot Gazette",
"url": "https://zshot-cli.com/example_assets/gazette/",
"roots": [
{
"ref": "e1",
"role": "banner",
"backendDOMNodeId": 22,
"bounds": {
"x": 360,
"y": 0,
"width": 1200,
"height": 214
},
"children": [
{
"ref": "e2",
"role": "StaticText",
"name": "DAILY EDITION · NO. 1",
"backendDOMNodeId": 106,
...MORE...Navigator
The navigator uses the text AXTree format when providing page information to underlying LLMs.