Stealth rendering, structured extraction, domain search, and multi-source research. Pay per request. No API keys.
Most AI agents can't run a browser. ClawFetch gives them eyes.
Puppeteer with anti-detection beats Cloudflare, CAPTCHAs, and JS-heavy SPAs that basic HTTP can't touch.
17 site-specific parsers: Twitter, GitHub, CoinGecko, NPM, PyPI, crates.io, Hacker News, YouTube, Wikipedia, Product Hunt, IMDb, Amazon, Crunchbase, SEC EDGAR, Zillow, Redfin, and news articles. Clean typed JSON, not messy HTML.
Check domain availability via WHOIS. Single names, bulk TLD checks, or keyword-based suggestions with auto-check.
Send a topic, get structured results from 5+ sources. One request replaces a dozen fetches.
Pre-warmed Puppeteer instances. No cold starts, sub-second for cached content, under 2s for fresh renders.
USDC on Base. No API keys, no accounts, no subscriptions. Standard X402 protocol โ any agent can pay.
Full-featured clients for TypeScript and Python. Auto-payment, retry logic, typed errors. Get started in 30 seconds.
import { ClawFetch } from '@clawfetch/sdk';
const cf = new ClawFetch({
privateKey: '0x...', // Wallet with USDC on Base
});
// Fetch any URL as clean markdown ($0.001)
const page = await cf.fetch('https://example.com');
// Extract structured data ($0.003)
const btc = await cf.extract('https://coingecko.com/en/coins/bitcoin');
console.log(btc.data); // { name, price, market_cap, ... }
// JS-rendered pages ($0.002)
const rendered = await cf.render('https://app.uniswap.org');
// Multi-source research ($0.01)
const report = await cf.research('latest AI agent frameworks');
// Domain availability check ($0.002)
const domains = await cf.domainsCheck(['coolstartup.com', 'coolstartup.ai']);
// Domain suggestions ($0.002)
const ideas = await cf.domainsSuggest('ai coding assistant');
const cf = new ClawFetch({
// Required
privateKey: '0x...',
// Optional
baseUrl: 'https://api.clawfetch.ai', // Default
timeoutMs: 30000, // Request timeout (default: 30s)
debug: false, // Console debug logging
// Retry configuration
retry: {
maxRetries: 3, // Max retry attempts
initialDelayMs: 500, // Initial backoff delay
maxDelayMs: 10000, // Maximum backoff delay
backoffMultiplier: 2, // Exponential factor
},
});
import {
ClawFetch,
ClawFetchError, // Base class for all errors
PaymentError, // 402 โ insufficient USDC, invalid signature
NetworkError, // Connection refused, DNS failure, timeout
RateLimitError, // 429 โ too many requests (includes retryAfterMs)
ApiError, // 4xx/5xx server errors
} from '@clawfetch/sdk';
try {
const result = await cf.fetch('https://example.com');
} catch (err) {
if (err instanceof PaymentError) {
console.error('Payment failed:', err.message);
} else if (err instanceof RateLimitError) {
console.error(`Rate limited. Retry after ${err.retryAfterMs}ms`);
} else if (err instanceof NetworkError) {
console.error('Network issue:', err.message);
}
}
The SDK automatically retries on 429 (rate limit) and 5xx (server error) with exponential backoff and ยฑ25% jitter. 400, 401, 402, and 404 errors are never retried.
The SDK sends a request โ gets 402 with USDC amount โ auto-signs an EIP-3009 gasless transfer on Base โ retries with payment header. No gas fees. No ETH needed.
from clawfetch import ClawFetch
with ClawFetch(private_key="0x...") as cf:
# Fetch any URL as clean markdown ($0.001)
page = cf.fetch("https://example.com")
# Extract structured data ($0.003)
btc = cf.extract("https://coingecko.com/en/coins/bitcoin")
print(btc["data"]) # { name, price, market_cap, ... }
# Multi-source research ($0.01)
report = cf.research("latest AI agent frameworks")
# Domain availability ($0.002)
domains = cf.domains_check(["coolstartup.com", "coolstartup.ai"])
# Domain suggestions ($0.002)
ideas = cf.domains_suggest("ai coding assistant")
import asyncio
from clawfetch import AsyncClawFetch
async def main():
async with AsyncClawFetch(private_key="0x...") as cf:
# All 7 endpoints available as async/await
page = await cf.fetch("https://example.com")
btc = await cf.extract("https://coingecko.com/en/coins/bitcoin")
report = await cf.research("latest AI agent frameworks")
asyncio.run(main())
from clawfetch import ClawFetch, RetryOptions
cf = ClawFetch(
private_key="0x...",
base_url="https://api.clawfetch.ai", # default
timeout=30.0, # seconds
retry=RetryOptions(
max_retries=3,
initial_delay_ms=500,
max_delay_ms=10000,
backoff_multiplier=2.0,
),
debug=False,
)
from clawfetch import (
ClawFetch,
ClawFetchError, # Base class for all errors
PaymentError, # 402 โ insufficient USDC
NetworkError, # Connection/timeout failures
RateLimitError, # 429 โ includes retry_after_ms
ApiError, # Other 4xx/5xx errors
)
try:
result = cf.fetch("https://example.com")
except PaymentError as e:
print(f"Payment failed: {e}")
except RateLimitError as e:
print(f"Rate limited. Retry after {e.retry_after_ms}ms")
except NetworkError as e:
print(f"Network issue: {e}")
Both ClawFetch and AsyncClawFetch have identical APIs โ all 7 endpoints, full x402 payment, retry with backoff, and typed errors. Pick whichever fits your runtime.
Python 3.9+ with httpx and eth_account. A wallet with USDC on Base โ even $1 gives you 1,000+ requests.
JSON in, JSON out. Every response is token-efficient and structured for agent consumption.
| Method | Endpoint | Price | Description |
|---|---|---|---|
| POST | /fetch |
$0.001 | URL โ clean markdown. No JS rendering. |
| POST | /render |
$0.002 | Headless browser render with stealth anti-detection. |
| POST | /extract |
$0.003 | Structured data from 17 supported sites. |
| POST | /research |
$0.010 | Multi-source topic research with citations. |
| POST | /domains/check |
$0.002 | Domain availability via WHOIS. |
| POST | /domains/suggest |
$0.002 | Domain name suggestions + availability check. |
| GET | /extractors |
$0.001 | List all available extractors with schemas. |
| GET | /health |
Free | Service status and browser pool stats. |
Basic HTTP fetch โ clean markdown. Fast, no JS rendering. Best for static pages, docs, and blog posts.
curl -X POST https://api.clawfetch.ai/fetch \
-H "Content-Type: application/json" \
-d '{"url": "https://docs.example.com", "maxChars": 5000}'
Full Puppeteer render with stealth anti-detection. Handles Cloudflare, bot detection, and JS-heavy SPAs. Optional CSS selector wait.
curl -X POST https://api.clawfetch.ai/render \
-H "Content-Type: application/json" \
-d '{"url": "https://app.uniswap.org", "waitFor": ".swap-page"}'
Structured extraction via site-specific parsers. Returns typed fields โ not raw text. Zero hallucinations.
curl -X POST https://api.clawfetch.ai/extract \
-H "Content-Type: application/json" \
-d '{"url": "https://github.com/anthropics/claude-code"}'
{
"type": "github",
"name": "claude-code",
"owner": "anthropics",
"stars": "24.1k",
"forks": "1,892",
"language": "TypeScript",
"topics": ["ai", "agents", "cli"]
}
Multi-source topic research. Searches the web, fetches top results, returns structured summaries from 5+ sources in one call.
curl -X POST https://api.clawfetch.ai/research \
-H "Content-Type: application/json" \
-d '{"query": "Casper Network DeFi ecosystem", "maxResults": 5}'
Check domain availability via WHOIS. Returns registrar, expiry, and creation dates for taken domains.
curl -X POST https://api.clawfetch.ai/domains/check \
-H "Content-Type: application/json" \
-d '{"name": "myproject", "tlds": ["com", "ai", "io", "dev"]}'
{
"checked": 4, "available": 2, "taken": 2,
"results": [
{"domain": "myproject.com", "available": false, "registrar": "GoDaddy"},
{"domain": "myproject.ai", "available": true},
{"domain": "myproject.io", "available": true},
{"domain": "myproject.dev", "available": false, "registrar": "Google LLC"}
]
}
Generate domain name ideas from keywords, then check availability.
curl -X POST https://api.clawfetch.ai/domains/suggest \
-H "Content-Type: application/json" \
-d '{"keywords": ["agent", "fetch"], "tlds": ["com", "ai"]}'
List all structured extractors with supported domains and output fields.
twitter x.com, twitter.com โ author, text, likes, reposts, views, media
coingecko coingecko.com โ name, price, marketCap, volume, rank
github github.com โ name, stars, forks, language, readme
news any article (public) โ title, author, date, body, source
npm npmjs.com โ name, version, downloads, dependencies
pypi pypi.org โ name, version, author, license, requires_python
crates crates.io โ name, version, downloads, features
hackernews news.ycombinator.com โ title, author, score, comments, url
youtube youtube.com, youtu.be โ title, channel, duration, views
wikipedia wikipedia.org โ title, summary, sections, references
producthunt producthunt.com โ name, tagline, votes, topics, makers
edgar sec.gov โ name, cik, ticker, filings, financials
imdb imdb.com โ title, rating, cast, plot, genres, runtime
amazon amazon.com โ title, price, rating, reviews, features
crunchbase crunchbase.com โ name, funding, founders, categories
zillow zillow.com โ address, price, zestimate, beds, baths, sqft
redfin redfin.com โ address, price, estimate, beds, baths, sqft
Raw HTML + GPT costs $0.03โ$0.38 per extraction. ClawFetch does it for $0.003. Deterministic, no hallucinations.
$167
per 1,000 extractions
Fetch HTML (~50k tokens) โ send to LLM โ parse response โ hope it doesn't hallucinate fields
$3
per 1,000 extractions
One API call โ deterministic typed JSON โ same output every time โ we fix breakage, not you
Same URL โ same structured JSON. No hallucinated fields, no varying formats. Test once, trust always.
Every field comes from the actual page โ parsed, not generated. No LLM in the extraction loop means no invented data, ever.
17 extractors return strictly typed schemas. Prices are numbers, dates are dates, lists are lists. Your agent gets clean data it can act on without guessing.
No accounts. No subscriptions. No minimums. Just USDC on Base.
1,000 fetches ยท 500 renders ยท 333 extractions ยท 100 researches
No signup, no API keys, no credit card. Just USDC in a wallet on Base.
Standard X402 โ the HTTP 402 status code, finally used as intended.
Call any endpoint. Server responds with 402 Payment Required and the exact USDC amount in the X-PAYMENT header.
The SDK signs an EIP-3009 transferWithAuthorization. No ETH needed โ just USDC in your wallet on Base.
The facilitator verifies the signature, settles on-chain, and you get your response. One round-trip.
0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913
Drop SKILL.md into your agent's skills directory. Works with OpenClaw, Claude Code, Codex, and any agent that supports the AgentSkills format.
---
name: clawfetch
description: Web intelligence API for AI agents. Stealth rendering, 17 structured
extractors (Twitter, GitHub, CoinGecko, NPM, PyPI, crates.io, Hacker News,
YouTube, Wikipedia, Product Hunt, IMDb, Amazon, Crunchbase, SEC EDGAR, Zillow,
Redfin, news), domain search, and multi-source research. Gasless USDC payments
on Base via standard X402 protocol.
metadata:
author: jean-clawd
version: "2.0"
website: https://clawfetch.ai
twitter: "@ClawFetchAI"
compatibility: Requires HTTP client, ethers.js or viem for signing, USDC on Base.
---
# ClawFetch.ai โ Web Intelligence for AI Agents
Base URL: `https://api.clawfetch.ai`
## Quick Start
### 1. Install an SDK
- **TypeScript:** `npm install @clawfetch/sdk`
- **Python:** `pip install clawfetch`
### 2. Get USDC on Base
Send USDC to your wallet on Base. Even $0.50 covers hundreds of calls.
No ETH needed โ X402 is gasless!
### 3. Make Requests (Payment is Automatic)
```typescript
import { ClawFetch } from '@clawfetch/sdk';
const cf = new ClawFetch({ privateKey: '0x...' });
const page = await cf.fetch('https://example.com');
const data = await cf.extract('https://coingecko.com/en/coins/bitcoin');
const report = await cf.research('latest AI agent frameworks');
```
```python
from clawfetch import ClawFetch
with ClawFetch(private_key="0x...") as cf:
page = cf.fetch("https://example.com")
data = cf.extract("https://coingecko.com/en/coins/bitcoin")
report = cf.research("latest AI agent frameworks")
```
## Endpoints & Pricing
| Endpoint | Price | Description |
|-----------------------|--------|--------------------------------|
| POST /fetch | $0.001 | URL โ clean markdown |
| POST /render | $0.002 | JS rendering with stealth |
| POST /extract | $0.003 | Structured JSON extraction |
| POST /research | $0.010 | Multi-source topic research |
| POST /domains/check | $0.002 | Domain availability via WHOIS |
| POST /domains/suggest | $0.002 | Generate + check domain names |
| GET /extractors | $0.001 | List available extractors |
| GET /health | Free | Service status |
## Available Extractors (17)
twitter, coingecko, github, news, npm, pypi, crates, hackernews,
youtube, wikipedia, producthunt, edgar, imdb, amazon, crunchbase,
zillow, redfin
## Cost Estimates
$1 USDC = 1,000 fetches, 500 renders, 333 extractions, or 100 researches.