Stop wasting tokens on HTML garbage. ContextZip strips ads, nav, and boilerplate — delivering only the content your AI agent actually needs. From $0.001/request.
# Extract clean Markdown from any URL curl -X POST https://contextzip.com/v1/extract \ -H "X-API-Key: YOUR_KEY" \ -d '{"url":"https://techcrunch.com/article","mode":"clean"}' ↓ response in ~800ms { "status": "success", "data": { "markdown": "# Headline Clean content...", "tokens_saved": 84210 }, "cost": 0.005, "cached": false }
No SDKs. No configuration. Just POST a URL and get back clean Markdown.
POST any web URL to /v1/extract with your API key and desired extraction mode.
Our Playwright cluster fully renders the page — executing JavaScript, handling SPAs, and bypassing bot protection.
Mozilla Readability isolates the main content. Custom cleaners strip ads, nav, footers, and cookie banners.
Clean, structured Markdown returned instantly. Result cached for 24h — subsequent requests cost nothing.
See exactly how much you'll save per month compared to processing raw HTML with your LLM.
Pay only for fresh extractions. Cache hits are always free. No subscriptions. No minimums.
From research agents to RAG pipelines — ContextZip fits any architecture that reads the web.
Let Claude, GPT-4 or any agent read dozens of web sources without burning through your context window.
Add ContextZip as a tool in your OpenClaw agent in under 5 minutes. Ready-made tool definition included.
Feed clean, structured Markdown into your vector DB. No preprocessing needed — ContextZip handles it all.
No SDKs to install. Works with curl, Python, JavaScript, or any HTTP client.
# 1. Get your API key from the admin panel # 2. Make your first request curl -X POST https://contextzip.com/v1/extract \ -H "X-API-Key: czk_your_key_here" \ -H "Content-Type: application/json" \ -d '{ "url": "https://example.com/article", "mode": "clean" }' # Response { "status": "success", "data": { "title": "Article Title", "markdown": "# Clean content...", "tokens_saved": 84210 }, "cached": false, "cost": 0.005 }
import requests # Initialize client CONTEXTZIP_KEY = "czk_your_key_here" BASE_URL = "https://contextzip.com/v1" def extract_markdown(url: str, mode: str = "clean") -> str: """Extract clean Markdown from any URL.""" response = requests.post( f"{BASE_URL}/extract", headers={"X-API-Key": CONTEXTZIP_KEY}, json={"url": url, "mode": mode}, timeout=30 ) response.raise_for_status() data = response.json() return data["data"]["markdown"] # Usage content = extract_markdown("https://techcrunch.com/article") print(f"Got {len(content)} chars of clean content")
// Works in Node.js, Deno, Bun, and browser const CONTEXTZIP_KEY = "czk_your_key_here"; async function extractMarkdown(url, mode = "clean") { const res = await fetch("https://contextzip.com/v1/extract", { method: "POST", headers: { "X-API-Key": CONTEXTZIP_KEY, "Content-Type": "application/json", }, body: JSON.stringify({ url, mode }), }); if (!res.ok) throw new Error(`HTTP ${res.status}`); const { data } = await res.json(); return data.markdown; } // Usage const content = await extractMarkdown("https://example.com"); console.log(`Extracted ${content.length} chars`);
# OpenClaw tool definition — add to your agent config tools: - name: read_url description: "Fetch and extract clean Markdown content from any URL. Use this when you need to read web pages, articles, or documentation." endpoint: https://contextzip.com/v1/extract method: POST headers: X-API-Key: ${CONTEXTZIP_API_KEY} Content-Type: application/json body_template: url: ${url} mode: "clean" response_path: data.markdown parameters: - name: url type: string description: "The URL to read" required: true # Set env variable export CONTEXTZIP_API_KEY="czk_your_key_here"