Single URL, markdown output
result.data[] - even for a single URL you get an array. The array length matches the number of URLs you passed.
Markdown + HTML
Request both formats in one call:Access metadata
Every scrape includes rich metadata regardless of format:Disable main content extraction
By default Reader extracts only the main content. To capture the full page (including nav and footer):<main> detection isn’t picking up the right container.
Include/exclude selectors
For fine-grained control, pass CSS selectors:includeTags runs first (keep only these), then excludeTags (remove these from what’s left).
Wait for dynamic content
If a page uses JavaScript to render content after load, tell Reader to wait:waitForSelector tells Reader to wait until the specified CSS selector appears in the DOM before extracting content. Useful for SPAs that hydrate content client-side after the initial page load.
Reuse the client
Create oneReaderClient at startup and reuse it for every request. Don’t create-and-close per scrape - that defeats the browser pool:
Where to go next
Batch Scraping
Scrape many URLs in parallel with progress tracking.
Website Crawling
Discover and scrape every page on a domain.

