Browser page Fetches save a Snapshot you can replay, cite, and read again without fetching twice.
Each browser page Fetch saves a Snapshot: the rendered page and its assets, with the Main Markdown, State JSON, and evidence made from it. When the live site changes, the Snapshot still shows what your agent read. A successful Fetch response carries a snapshotId.
With a browser page Snapshot you can:
expand.land/s/<snapshotId>, or open it next to the Markdown in the Playground.snapshotId too, but no replayable page or WACZ archive.For a browser page, the first response carries the Main Markdown and State JSON. Its Snapshot also keeps everything else from the capture, and each part is one public GET away, with no API key:
| Part | What it is for |
|---|---|
| The original HTML | Re-parse it with your own tools, or diff it against a later Fetch. |
| A HAR | Every HTTP exchange behind the page, to debug a bad capture or replay it elsewhere. |
| Network records | The JSON APIs the page loaded, so you can call them directly next time. |
| Assets | The images, PDFs, and scripts the page referenced. |
How to read each part is on Progressive disclosure.
A browser page Fetch response carries two different IDs for its Snapshot:
| ID | Where | Used by |
|---|---|---|
meta.snapshotId | The JSON object, and snapshotId in Markdown text frontmatter | Highlights, the Playground, and replay |
meta.resources.snapshotId | The JSON object, and the more URL in Markdown text frontmatter | The public read URLs on Progressive disclosure |
404, and the public read URLs do not accept the capture ID.Snapshot links are shareable citation links. Treat them like public links to captured source material.
/content or archive.wacz.A browser page Fetch's JSON object carries the replay link as meta.playground. In Markdown text, it is the playground line of the frontmatter.
import { ExpandClient } from '@expandai/sdk'
const expand = new ExpandClient()
const page = await expand.fetchJson({ url: 'https://news.ycombinator.com' })
console.log(page.meta.playground) // https://expand.land/s/ng0EFjewTRF6expandai fetch https://news.ycombinator.com --format json
# meta.playground in the output is the replay link// Arguments for the fetch tool
{
"
meta.snapshotId.| Evidence |
| The source blocks and State JSON entries that citations point to. |
| A WACZ archive | The whole capture, which powers replay. |
curl https://api.expand.ai/v1/fetch/json \
-H "x-expand-api-key: $EXPAND_API_KEY" \
-H "Content-Type: application/json" \
-d '{"url":"https://news.ycombinator.com"}'