Skip to main content

Main Exports

import {
  // Main API
  ReaderClient,
  scrape,
  crawl,

  // Types
  ScrapeOptions,
  ScrapeResult,
  CrawlOptions,
  CrawlResult,
  ProxyConfig,
  BrowserPoolConfig,

  // Error classes
  ReaderError,
  TimeoutError,
  NetworkError,
  CloudflareError,
  AccessDeniedError,
} from "@vakra-dev/reader";

Quick Reference

ReaderClient

The recommended way to use Reader. Manages browser lifecycle automatically.
const reader = new ReaderClient({ verbose: true });
const result = await reader.scrape({ urls: ["https://example.com"] });
await reader.close();
Full ReaderClient documentation →

scrape()

Scrape one or more URLs.
const result = await reader.scrape({
  urls: ["https://example.com"],
  formats: ["markdown"],
});
Full scrape() documentation →

crawl()

Crawl a website to discover pages.
const result = await reader.crawl({
  url: "https://example.com",
  depth: 2,
  maxPages: 50,
});
Full crawl() documentation →

Type Reference

TypeDescription
ScrapeOptionsOptions for scrape()
ScrapeResultResult from scrape()
CrawlOptionsOptions for crawl()
CrawlResultResult from crawl()

Error Classes

All errors extend ReaderError with structured properties:
try {
  await reader.scrape({ urls: ["https://example.com"] });
} catch (error) {
  if (error instanceof ReaderError) {
    console.log(error.code); // Error code
    console.log(error.url); // URL that failed
    console.log(error.retryable); // Whether retry might help
    console.log(error.toJSON()); // Structured error data
  }
}
Error ClassCodeDescription
TimeoutErrorTIMEOUTRequest timed out
NetworkErrorNETWORK_ERRORNetwork failure
CloudflareErrorCLOUDFLARE_BLOCKEDChallenge not resolved
AccessDeniedErrorACCESS_DENIED403 or blocked
ValidationErrorVALIDATION_ERRORInvalid input
InvalidUrlErrorINVALID_URLMalformed URL
RobotsBlockedErrorROBOTS_BLOCKEDBlocked by robots.txt
BrowserPoolErrorBROWSER_POOL_ERRORPool exhausted

Utility Exports

For advanced usage:
import {
  // Formatters
  formatToMarkdown,
  formatToHTML,

  // Content utilities
  extractMetadata,
  cleanContent,

  // URL utilities
  isValidUrl,
  validateUrls,
  resolveUrl,

  // Browser pool
  BrowserPool,
  HeroBrowserPool,

  // Cloudflare detection
  detectChallenge,
  waitForChallengeResolution,

  // Proxy utilities
  createProxyUrl,
  parseProxyUrl,
} from "@vakra-dev/reader";