web_fetch
Read a selected HTML document as bounded Markdown, preview or expand a specific excerpt, and manage returned text length for model context.
Instructions
Read one selected HTML document as bounded Markdown text.
USE THIS when you already know which document you want to read, preview, or
expand around a collected excerpt. If you know the source but need to find
its chapter, appendix, next page, reference, or related document first, use web_links instead.
If you do not yet know a source, use web_search.
Preview with max_chars=500 to limit model context; this does not reduce the
initial network download. When more retained text is useful, copy
continuation.arguments into the indicated tool rather than recalculating the
next offset. Null continuation means the retained text has ended.
continuation and excerpt.expand use expected_content_hash. If the retained
text version changed, content_changed returns no slice: reacquire the document
and choose coordinates again. A matching hash protects coordinates, not
origin freshness.
A page can have too little readable text for web_fetch while still exposing
useful ordinary HTML links through web_links; treat such pages as possible
navigation hubs instead of assuming the source has no usable structure.
Returns content, title, final URL, source category, Unicode-coordinate paging,
cache/hash fields and continuation. truncated means more retained text can be
continued; text_truncated means a tail was discarded by the hard retention
ceiling and cannot be recovered by pagination. Expected failures return
{error, hint}.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | HTTP(S) page URL, a search result.url or research source.url. Supports HTML/XHTML; no PDF or JavaScript rendering. | |
| max_chars | No | Maximum returned characters: default 10000, configured cap 20000. Use 500 for preview. Ready actions include a budget; smaller output saves context, not the initial download. | |
| start_offset | No | Unicode-character offset; default 0. Ready continuation/expand arguments provide it. For manual reading, use next_start or excerpt.start_char. | |
| expected_content_hash | No | Optional retained-text version guard. Ready actions supply it; mismatch returns content_changed without a slice. Omit for unguarded reading. |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||