Expand AI logo
DocsDocs
Glow Active
API Reference
Login

Documentation

Get started

IntroductionWhy ExpandQuickstartAuthenticationConnect your agent (MCP)

Products

OverviewFetching a URLBatched Fetch
API reference
OverviewPlayground & replayProgressive disclosure

SDKs & tools

TypeScript SDK
MCP tools & resourcesDocs for agents

Reference

API referenceErrors & retriesPricing & UsageLimitsConcurrency tiersFAQ
Browse docs

Get started

IntroductionWhy ExpandQuickstartAuthenticationConnect your agent (MCP)

Products

OverviewFetching a URLBatched Fetch
API reference
OverviewPlayground & replayProgressive disclosure

SDKs & tools

TypeScript SDK
MCP tools & resourcesDocs for agents

Reference

API referenceErrors & retriesPricing & UsageLimitsConcurrency tiersFAQ

Playground & replay

Replay the page Fetch captured, see where each line of Markdown came from, and give your users a link to the exact evidence behind an answer.

A Snapshot can be opened by a person. Replay shows the page as Fetch captured it. The Playground puts that replay next to the Markdown, so you can see where each line came from. A citation link opens one piece of evidence, so a reader can check an agent's claim against the page.

  1. 1

    Snapshot

    snapshotId
  2. 2

    Replay

    /s/<snapshotId>
  3. 3

    Playground

    /s/<snapshotId>/playground
  4. 4

Citation link

/s/<snapshotId>?id=<evidenceId>
  • 5

    Evidence

    location.evidenceId
    1. 1

      Snapshot

      snapshotId
    2. 2

      Replay

      /s/<snapshotId>
    3. 3

      Playground

      /s/<snapshotId>/playground
    4. 4

      Citation link

      /s/<snapshotId>?id=<evidenceId>
    5. 5

      Evidence

      location.evidenceId

    The Playground layout

    expand.land/s/<snapshotId>/playground
    Snapshot/Hacker Newsnews.ycombinator.com
    meta ✓ · json 3
    YHacker Newsnew | past | comments | ask | show

    1. Show HN: A tiny database in one file

    128 points by example · 2 hours ago · 41 comments

    2. The rendering gap in web scrapers

    128 points by example · 2 hours ago · 41 comments

    3. Ask HN: How do you cite sources?

    128 points by example · 2 hours ago · 41 comments

    Hover a Markdown block to see where it came from on the page.Citation link: expand.land/s/<snapshotId>?id=858

    The Playground is two synchronized panes: the Markdown on the left, the replayed page on the right. The left pane opens in raw Markdown; you can switch to rendered Markdown or copy the Markdown. Hovering or selecting a source block in the Markdown highlights the region it came from in the replay. A State JSON citation opens the matched State JSON entry instead.

    URLs

    Every URL is built from the snapshotId:

    What you getURL
    Replay of the whole pagehttps://expand.land/s/<snapshotId>
    The Playgroundhttps://expand.land/s/<snapshotId>/playground
    One piece of evidencehttps://expand.land/s/<snapshotId>?id=<evidenceId>
    The WACZ archive

    Replay opens the captured page from the Snapshot's WACZ archive, so you see the page state Fetch saw.

    Evidence is one block of the page. Add ?id=<evidenceId> to the replay URL and it opens there: a Markdown or Appendix block is highlighted in the replay, and a State JSON entry opens as JSON.

    Note
    The Playground may change the URL's hash while it synchronizes its panes. That hash is not a citation link. Citation links always use ?id=.

    Citation links

    A citation link is more than a footnote. It lets a reader open the exact captured evidence behind an agent's claim.

    Every Highlights snippet carries a location.evidenceId, whatever its source. The citation link is the replay URL plus that ID:

    https://expand.land/s/<snapshotId>?id=<evidenceId>

    How each surface gives you the link is on Working with snippets: Citing a snippet.

    You do not need a snippet to cite. Expand stamps an evidence ID into the captured Markdown next to the text it belongs to, written as {1199}, and every response carries the playground URL for the Snapshot. Any citation is those two joined. That works for anything you read, not only snippets, which is why the markers are inline in the Markdown.

    If there is no precise evidence, link to the whole Snapshot at /s/<snapshotId>.

    Reading a Snapshot as text

    The same URLs serve machines. A browser gets the replay, and a client that asks for Markdown gets the Main Markdown:

    # The full Main Markdown.
    curl -H "Accept: text/markdown" "https://expand.land/s/<snapshotId>/content"
    
    # One block, by its evidence ID. A State JSON entry comes back as JSON.
    curl -H "Accept: text/markdown" "https://expand.land/s/<snapshotId>/content?id=<evidenceId>"

    An invalid or missing evidence ID returns not found. For everything else a Snapshot saves, such as the original HTML and the network requests, see Progressive disclosure.

    WACZ archive

    The WACZ archive is the whole capture: the page, its assets, the Markdown, the State JSON, and the evidence. It is what replay loads from, and you can download it from /s/<snapshotId>/archive.wacz.

    Note
    The Snapshot service does not serve screenshots. Fetch returns a screenshot when you request one. See Browser-rendered pages: Screenshots.

    Embedding evidence in your product

    If you build a research agent, return citation links with the answer, so your users can click a claim and inspect the source behind it. A citation card needs the claim, the link, a source label, and the snippet text:

    Enterprise includes 50 seats. [View evidence]
    
    Source: pricing page
    Evidence: State JSON
    Link: https://expand.land/s/019...?id=3

    To build it:

    • Store the snapshotId with the research result.
    • Store each snippet's source, text, location, and citationUrl when there is one.
    • With the API, build the link from location.evidenceId. The CLI and MCP give you citationUrl.
    • Show the links in your product's UI, not only in logs.
    Note
    This is an example of a UI you could build on Expand. The Playground itself does not render citation cards.

    Snapshot links are public to anyone who has them. See Who can read a Snapshot before you share them.

    Next steps

    • Working with snippets: what a snippet contains, and how to cite one.
    • Progressive disclosure: read everything a Snapshot saves, from code or from an agent.
    • Browser-rendered pages: how a page is captured in the first place.
    PreviousWayback Machine: Overview
    NextProgressive disclosure

    On This Page

    The Playground layoutURLsCitation linksReading a Snapshot as textWACZ archiveEmbedding evidence in your productNext steps
    https://expand.land/s/<snapshotId>/archive.wacz