Hosted: https://api.fastcrw.com · Self-hosted: http://localhost:3000
Auth (hosted only): Authorization: Bearer $CRW_API_KEY
Self-hosted: no auth required by default.
Use the hosted API at api.fastcrw.com (no install), or run the
self-hosted single binary:
docker run -p 3000:3000 ghcr.io/us/crw:latest
# now: http://localhost:3000/v1/scrape
Sign in at https://fastcrw.com, copy the key from the dashboard,
and export it:
export CRW_API_KEY=crw_live_...
Self-hosted: skip this; auth is off by default.
curl:
curl -X POST https://api.fastcrw.com/v1/scrape \
-H "Authorization: Bearer $CRW_API_KEY" \
-H "Content-Type: application/json" \
-d '{"url":"https://example.com","formats":["markdown"]}'
Python (stdlib):
#!/usr/bin/env python3
import json, os, urllib.request
req = urllib.request.Request(
"https://api.fastcrw.com/v1/scrape",
data=json.dumps({"url": "https://example.com", "formats": ["markdown"]}).encode(),
headers={"Content-Type": "application/json",
"Authorization": f"Bearer {os.environ['CRW_API_KEY']}"},
method="POST",
)
with urllib.request.urlopen(req) as r:
body = json.loads(r.read())
print(body["data"]["markdown"][:500])
# Run with: python3 quickstart.py
Expected response shape: {"success": true, "data": {"markdown": "...",
"metadata": { ... }}}. From here, jump to
crawl for multi-page jobs,
map for URL discovery,
extract for structured JSON, or
search for web search.
→ Canonical page: /quick-start