Your agent reads a broken copy of the web. Here is what ordinary markdown APIs drop, and how Expand keeps it.
Agents read the web through markdown APIs that guess what matters on a page, and guess wrong. So the agent gets stuck, or misses the answer, or states something false, and you can't tell which happened. The usual workaround is driving a full browser for every page, which is slow and expensive.
That's why we built Expand. We open your URL in a real browser. Our model Iris sees the rendered page and returns accurate Markdown: layout, tables, icons, and hidden JSON intact, trash removed. Every line links back to the exact spot on the page. So your agent answers from the real page at API speed, and you can verify every result.
HTML-to-Markdown converters decide what counts as content with heuristics, and heuristics fail in three directions. They keep things they shouldn't. They drop things they shouldn't. And some things they cannot see at all. The drops are random and silent, so you never know what your agent didn't see.
| What gets dropped | What your agent sees instead | Example |
|---|
| Table structure | Cells collapse into loose text and values detach from their column headers. | A pricing page: which plan has which feature becomes unrecoverable. |
| Icons | A checkmark column and a cross column read as identical empty cells. | Any comparison table: yes and no become indistinguishable. |
| Script-tag JSON | Data that never rendered as text does not exist. | A chart page: the entire dataset lives in a script tag. |
| JavaScript-rendered content | An empty application shell. | Any SPA fetched without a browser. |
Expand renders the full page the way a browser does and extracts from the rendered result, so the data those tools lose survives. Iris, the model we trained, looks at the rendered page and decides what to show first. The result is a clean document plus the hidden JSON from the page that other tools never consider. Oversized secondary regions go in a separate section we call the Appendix.
The goal is higher information density, not shorter Markdown at any cost.
More complete, but noisy and token-heavy. Navigation, footers, repeated UI, and raw payloads crowd out the useful answer and inflate the bill.
Cheaper but lossy. Hidden state, links, and source evidence vanish exactly when the agent needs them for the next question.
Useful first, recoverable by reference. Main Markdown and curated State JSON carry the common case; deeper evidence stays one handle away.
A web page is not just the main content. It carries app state, links, sidebars, and unwanted noise like ads and cookie banners. This often leads to choosing between two failure modes.
Keeping everything floods the model with low-signal tokens, costing you money.
Keeping only main content swings the other way. Pruning to the article body is cheap, but it throws away the links to follow next and the app state that was never in the prose.
Expand takes a third path. Iris looks at the rendered page and the internal JSON and selects what to show first.
Progressive disclosure is how Expand stays pragmatic without becoming lossy. Main Markdown is the readable default document. State JSON rides along when it is useful and fits. The rest is retrievable as needed.
The fetch output comes in two layers:
Useful content first:
Main Markdown + curated State JSON when useful and when it fits.
References to more:
Appendix, complete original HTML and JSON, and page assets (images, SVGs, etc).The first layer answers most questions. When a question needs content from the Appendix, the agent fetches it in a follow-up call.
Layout-aware Markdown keeps tables, grids, pricing pages, feature comparisons, and icons understandable instead of flattening them into loose paragraphs.
Structured page and app data that answers questions Markdown alone cannot. Part of the working context when it fits; recoverable by reference when it does not.
Navigation, links, sidebars, footers, and secondary regions stay reachable without flooding the main output.
Focused retrieval over captured evidence when the agent needs a targeted follow-up instead of another full page read.
Citations, source blocks, snapshots, screenshots, Playground, and Replay map extracted output back to the page regions it came from.
Expand Fetch uses new methods to preserve information that may have been missed otherwise.
It preserves icons and layouts that make things like pricing tables legible and it returns State JSON which answers questions Markdown alone cannot, especially for data-driven pages. There is a reason most agents currently don't use the internal JSON. It would overwhelm their context windows. So Iris selects just the useful fields and elements.
Expand's snapshotting system records the complete HTML and all page assets. You can see this for yourself in how the Playground is able to replay the page as it originally appeared.
Since page assets such as images are saved, the agent can retrieve them even if the website has been shut down.
The snapshotting enables the citations feature, which is a sourcemap for the extracted web page. Every line of Markdown and every JSON value links back to the exact spot on the original page, so you can verify what your agent saw.
The agent can include a citation in its response to precisely point to the evidence for a claim. Then humans can click on those citations to highlight the source regions in the Playground.
The benefits are:
| Use Expand for | A simpler path may be enough | Use browser automation when |
|---|---|---|
| agent research | simple static articles | the task is a long workflow |
| docs ingestion | already-clean Markdown | the goal is form filling |
| product and pricing pages | a known API exposes the exact data | extraction is secondary to interaction |
JS-rendered pages and anything with important tables, icons, layout, hidden JSON, or evidence needs are where Expand is most useful. When the source is a clean static article or a known API that already returns the exact data, a plain fetch or a simpler converter is fine.
Secondary reading: Output Model, Include Options, Browser Behavior, and Playground & Replay.
| Layout |
| Reading order scrambles and sidebars interleave with the main content. |
| Multi-column docs pages. |
| Bot-blocked pages | A challenge page or an error, sometimes returned as if it were content. | Retail and news sites behind bot protection. |
| dashboards and app-like pages | source verification does not matter | complex interaction determines the result |
| marketplaces and search/detail pages | the page is already structured for LLMs | the agent must operate the page, not just read it |