SDKs
Official SDKs wrap the webclaw REST API with typed clients, error handling, and crawl polling out of the box. Pick your language and get started with the examples below.
Python
pip install webclawSync + async clients, httpx, Python 3.9+View docsTypeScriptnpm install @webclaw/sdkZero deps, native fetch, ESM + CJSView docsGogo get github.com/0xMassi/webclaw-goZero deps, context.Context, functional optionsView docsTip
All SDKs authenticate with an API key. Create one in your dashboard and pass it when initializing the client.
At a glance
| Python | TypeScript | Go | |
|---|---|---|---|
| Package | webclaw | webclaw | webclaw-go |
| Runtime | Python 3.9+ | Node.js 18+ | Go 1.23+ |
| HTTP client | httpx | native fetch | net/http |
| Async | Yes (AsyncWebclaw) | Yes (all methods) | Blocking calls with context cancellation |
| Crawl polling | job.wait() | job.waitForCompletion() | client.WaitForCompletion() |
Supported endpoints
Common SDK methods are listed below. Endpoint and option coverage varies by SDK version; use the REST API for fields your installed SDK does not expose.
| Endpoint | Python | TypeScript | Go |
|---|---|---|---|
/v1/scrape | client.scrape() | client.scrape() | client.Scrape() |
/v1/crawl | client.crawl() | client.crawl() | client.Crawl() |
/v1/map | client.map() | client.map() | client.Map() |
/v1/batch | client.batch() | client.batch() | client.Batch() |
/v1/extract | client.extract() | client.extract() | client.Extract() |
/v1/summarize | client.summarize() | client.summarize() | client.Summarize() |
/v1/brand | client.brand() | client.brand() | client.Brand() |
REST API directly
Don't see your language? The API is plain JSON over HTTP -- any HTTP client works.
curl
curl -X POST https://api.webclaw.io/v1/scrape \
-H "Authorization: Bearer wc_your_api_key" \
-H "Content-Type: application/json" \
-d '{"url": "https://example.com", "formats": ["markdown"]}'