fetch_url
Fetch any URL and return clean Markdown with token count, metadata, and 6-hour caching. Automatically routes to appropriate fetcher for JS-rendered, PDF, or paywalled content.
Instructions
Fetch any URL and return clean, LLM-ready Markdown with token count, metadata, and 6h caching.
WHEN TO USE:
You have a specific URL whose content you need.
You want to cap response size to stay inside your context window.
You want repeat fetches to be cheap (cache hits ≈ $0.0001).
The URL might be JS-rendered, a PDF, or behind a paywall — this tool auto-routes to the right fetcher (Trafilatura → Jina → FireCrawl → PDF).
WHEN NOT TO USE:
You don't know which URL to fetch — use search_and_fetch instead.
You have many URLs to fetch — use fetch_multiple instead.
Args: url: The URL to fetch. max_tokens: Hard cap on response size. Default unlimited. Pass this if you're tight on context budget — cheaper than over-fetching. format: "markdown" (default — recommended), "text", or "json". use_cache: True returns a cached copy if one exists (≤6h old). Pass False only when freshness matters (live news, prices).
Returns: { "url": str, "success": bool, "markdown": str, "metadata": {title, author, published_date, domain, word_count, token_count, reading_time_seconds, content_type, language}, "cache": {hit, cached_at, expires_at}, "fetch_info": {fetcher_used, fetch_time_ms, cost_credits}, "error": str | None }
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | ||
| max_tokens | No | ||
| format | No | markdown | |
| use_cache | No |