Extract markdown, text, or structured JSON from any webpage. JavaScript rendering included. One API call, clean output. Built for AI agents.
# Scrape any URL to clean markdown $ curl -X POST agent-scraper.167.148.41.86.nip.io/api/scrape \ -H "Content-Type: application/json" \ -d '{"url": "https://example.com", "format": "markdown"}' { "content": "# Example Domain\n\nThis domain is for use in...", "contentLength": 1256, "format": "markdown", "meta": { "title": "Example Domain", "language": "en" } }
One endpoint, multiple output formats, full JavaScript rendering
Clean markdown via Turndown. Headings, links, lists, code blocks preserved. Ready to feed directly into any LLM context window.
Get headings, paragraphs, lists, and code blocks as structured arrays. Perfect for data pipelines and analysis.
Headless Chromium renders SPAs, React apps, and dynamic content. Get the actual page, not raw HTML.
Target specific elements with CSS selectors. Extract just the article body, a pricing table, or any DOM element.
Pull all links and images from a page. Get URLs, alt text, and metadata in a single call.
No API keys from providers needed. No Puppeteer to configure. No headless browser to manage. Just POST a URL and get data.
Three steps to extract content from any webpage
POST any public URL. Choose markdown, text, or structured JSON output.
Headless Chromium loads the page, executes JS, and extracts clean content.
Receive formatted content with metadata. Feed directly into your AI pipeline.
Try it now — real API, real results
Drop-in code for your language of choice
# Get markdown from any URL curl -X POST http://agent-scraper.167.148.41.86.nip.io/api/scrape \ -H "Content-Type: application/json" \ -d '{"url":"https://docs.python.org/3/tutorial/","format":"markdown"}' # Extract links + metadata curl -X POST http://agent-scraper.167.148.41.86.nip.io/api/scrape \ -H "Content-Type: application/json" \ -d '{"url":"https://github.com","extractLinks":true,"extractMeta":true}' # Simple GET request curl "http://agent-scraper.167.148.41.86.nip.io/api/scrape?url=https://example.com&format=text"
import requests API = "http://agent-scraper.167.148.41.86.nip.io" # Scrape to markdown resp = requests.post(f"{API}/api/scrape", json={ "url": "https://docs.python.org/3/tutorial/", "format": "markdown", "extractMeta": True }) data = resp.json() print(f"Title: {data['meta']['title']}") print(f"Length: {data['contentLength']} chars") print(data["content"][:500]) # Feed into your LLM context = data["content"] prompt = f"Summarize this:\n\n{context}"
const API = "http://agent-scraper.167.148.41.86.nip.io"; // Scrape to markdown const { content, meta, contentLength } = await fetch( `${API}/api/scrape`, { method: "POST", headers: { "Content-Type": "application/json" }, body: JSON.stringify({ url: "https://docs.python.org/3/tutorial/", format: "markdown", extractMeta: true }) } ).then(r => r.json()); console.log(`Title: ${meta.title}`); console.log(`${contentLength} chars extracted`); // Feed into your agent's context const messages = [ { role: "user", content: `Summarize:\n\n${content}` } ];
Start free. Scale with USDC when you need more.
35+ APIs built for AI agents. All with free tiers. All accepting USDC.