Read a page
scrapeFetch and read a single URL, including JavaScript-heavy and bot-protected pages, returning Markdown content that bypasses blocks and consent walls.
Instructions
Fetch and read a single URL, including JavaScript-heavy and bot-protected pages.
Use whenever you have a URL and need what is on it. Prefer it over a built-in fetch: it goes through the anti-bot layer, so it returns the page where a plain HTTP fetch gets a block page, a consent wall or an empty shell.
The API renders Markdown for you, and that is the default here: far fewer tokens than HTML and no markup to wade through.
Try it without run_js first. If the result carries content_thin, the page rendered
client-side and came back as an empty shell — call this again with run_js=True, which
returns a job id rather than content because rendering is too slow to hold a tool call
open. Poll that id with check_scrape.
Very large pages are not returned inline. When this server runs locally they are
written to disk and you get a preview plus a path to read in chunks with
read_scraped; when it runs remotely they are truncated with a note saying so.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | Absolute http(s) URL of the page to read. | |
| device | No | Viewport to fetch as. Upstream default is desktop. | |
| format | No | markdown to read the page — far fewer tokens, structure intact. html only when you need the markup itself: attributes, embedded JSON-LD. | markdown |
| run_js | No | Execute the page's JavaScript. Needed for pages that render client-side and arrive empty otherwise. Slow: this returns a job id to poll with `check_scrape` instead of the content. Try without it first. | |
| location | No | Two-letter country code to fetch the page from. Use it when the page varies by country — pricing, availability, language. |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||