Web scraping,
handled.

Add, search, crawl, extract, and convert pages to markdown with one TypeScript client.

Install Scrape SDK

ScrapetheURL.Searchifyouneedto.Failoverbeforetheagentdies.

Everything your scraping flow needs. One API.

Scrape SDK keeps platform-specific APIs at the edge of your system and returns a clean markdown model your agent can consume directly.

scrape.tsTypeScript
import { createScrapeClient } from "scrape-sdk";
import { firecrawl } from "scrape-sdk/firecrawl";
import { jina } from "scrape-sdk/jina";
import { local } from "scrape-sdk/local";

const scraper = createScrapeClient({
  providers: [
    firecrawl({ apiKey: process.env.FIRECRAWL_API_KEY! }),
    jina(),
    local(),
  ],
});

const page = await scraper.scrape("https://stripe.com", {
  format: "markdown",
  onlyMainContent: true,
});
Zero boilerplate. Seamless provider failover.
stripe.com/pricingready
Primary (Firecrawl)429 Rate Limit
Failover ProviderJina Reader
Extracted Tokens1,840 tokens (124ms)

Honest failover

If your primary provider rate-limits or times out, Scrape SDK shifts to fallback providers before your agent crashes.

Change the adapter.
Keep the workflow.

firecrawl()jina()

Standardized options and responses across all 6 scraping providers.

Clean markdown your UI and agent can trust

Explore model
MARKDOWN# Stripe Payment Intents APIclean ATX headers
METADATAtitle, description, linksstructured
ZERO BLOATscripts & styles stripped0 wasted tokens

Your complete scraping workflow, already handled.

Your application owns agent logic and orchestration. Scrape SDK talks to configured providers. The provider remains the source of truth.

Compare providers
Your applicationagent rules + LLM prompt
Scrape SDKone typed contract
Firecrawl
Jina Reader
Tavily
Local

Everything needed for the lifecycle. Nothing pretending to be magic.

01 / Add
app.target.comadded

Attach a URL

Validate once, pass custom headers, and safely execute across configured adapters.

02 / Extract
MARKDOWNclean ATX

Return exact markdown

Strip navigation, styles, and boilerplate. Give your agent token-efficient text.

03 / Failover
Primary 429➔ Fallback

Auto-recover

Seamlessly route requests to backup providers if rate limits or timeouts occur.

04 / Clean
Local fallback0 tokens

Zero token waste

Static Cheerio engine strips HTML clutter without consuming any external tokens.

Interactive Extraction Sandbox

Test live extraction directly in the browser.

Presets:

Ready for agents & SDKs

import { createScrapeClient } from "scrape-sdk";
import { firecrawl } from "scrape-sdk/firecrawl";
import { jina } from "scrape-sdk/jina";
import { local } from "scrape-sdk/local";

const scraper = createScrapeClient({
  providers: [
    firecrawl({ apiKey: process.env.FIRECRAWL_API_KEY! }),
    jina(),
    local(),
  ],
});

const page = await scraper.scrape("https://stripe.com", {
  format: "markdown",
  onlyMainContent: true,
});

console.log(page.markdown);
console.log(`via ${page.provider} in ${page.latencyMs}ms`);

Add the URL. Show the markdown. Never fail.

Ship web scraping without rebuilding the workflow.

Start buildingView source

Read raw SKILL.md first ↗