Fetch renders live pages and returns agent-ready Markdown, State JSON, and replayable Snapshots with evidence.
Send a browser page URL and get back context your agent can use: the page as clean Markdown, the data behind it as State JSON, and a saved Snapshot that every line links back to. Fetch also converts files and YouTube videos to Markdown.
More answers, fewer tokens. Other tools guess what matters from the HTML. Iris and X-Ray look at the rendered page, keep what your agent needs, and hold the rest one call away.
If your agent needs to click through a page rather than read it, browser automation is the better tool. See Why Expand.
Give Fetch any URL, and it returns the page as Markdown your agent can actually reason over.
import { ExpandClient } from '@expandai/sdk'
const expand = new ExpandClient()
const markdown = await expand.fetch({ url: 'https://news.ycombinator.com' })expandai fetch https://news.ycombinator.com// Arguments for the fetch tool
{
"url": "https://news.ycombinator.com"
}
To get an API key and run this yourself, follow the Quickstart. You can also call Fetch from the CLI, MCP, or your agent. See Ways to use Expand.
Most extraction tools make a bad trade. They keep everything and flood your agent's context, or keep only the main text and lose the details that matter. Fetch does neither.
Complete, but expensive. Raw payloads, navigation, footers, duplicated UI, and low-signal text crowd out the answer.
Concise, but lossy. Tables, icons, app state, links, and source evidence disappear when the agent needs the next step.
Useful first, complete when needed. Main Markdown and compact State JSON carry the common case. Progressive disclosure keeps the rest one call away.
Rather than returning one flat stream, Fetch turns a page into layers. The first layer is short and answers most questions. Each subsequent layer goes deeper, so your agent reads only as much as the task requires. We call this progressive disclosure.
The Main Markdown is the page's content, and the first layer your agent reads.
Iris, our vision model, sees the rendered page. It understands design and layout, so tables and icons stay intact instead of collapsing into loose paragraphs. Navigation and footers move to the Appendix. Ads and banners are dropped.
| Plan | Price | Seats |
| ---- | ----- | ----- |
| Pro | $20 | 5 |
| Team | $40 | 20 |Fetch is powered by two System 1 models. Every other product is built on Fetch.
Save a browser page as a snapshot you can replay, cite, and read again.
Narrow a Fetch to what matches your query and get ranked, cited passages instead of the whole document.
Fetch the pages Crawl finds on a site, as a stream of events.
A crawl that keeps rechecking its pages and streams what changes.
{
"product": "PRS516",
"price": 1850,
"inStock": true
}State JSON is the hidden data behind the page. It supplements the Main Markdown your agent reads.
Prices, stock levels, and coordinates often live in API responses, not in the visible text. X-Ray, our second model, finds that data and keeps what's useful. Analytics and configuration are dropped.
The Appendix is everything around the content: navigation, sidebars, related links, and footers.
Iris moves it out of the Main Markdown so your agent reads less. Appendix content remains available: a marker shows where each piece was, and your agent opens the Appendix when it needs a link or a menu.
# Main document
[appendix omitted: 14 links]
———————————————
# Appendix
- Navigation
- Footer links"$1,850 list price"
└ source src_3f2a9
└ snapshot 9c1b… ▶ ReplayA browser page Snapshot is the page exactly as your agent saw it. Replay it or share it, even after the site changes. Snapshots live in the Wayback Machine.
Evidence links every line of the Main Markdown and State JSON back to its spot in the Snapshot, so you can check where each answer came from.