scrape_template
Pre-built scrapers for 10 of the most-requested sites. No schema, no selectors, no LLM — just pass a template name and a URL. Built-in extractors handle the parsing and return clean, typed JSON for 1 credit per call.
Use Cases
Quick E-Commerce Data
Pull Amazon product price, rating, and stock without writing a single selector.
Developer Profile Aggregation
Combine GitHub repos, npm packages, and Stack Overflow activity into one developer view.
Social Media Monitoring
Track tweets, Reddit threads, and Product Hunt launches with a single endpoint per source.
Endpoint
/api/v1/tools/scrape_templateParameters
list. Send template: "list" alone to discover available templates.| Name | Type | Required | Default | Description |
|---|---|---|---|---|
template | string | Required | - | Template name. One of the 10 supported templates, or "list" to discover them programmatically. Example: github-repo |
url | string | Optional | - | URL to scrape. Required unless template === "list". Example: https://github.com/crawlforge/mcp-server |
timeout | number | Optional | 15000 | Request timeout in milliseconds (5000–60000). Example: 15000 |
Supported Templates
10 templates available — Each template returns a normalized JSON shape tuned for that site.
amazon-productlinkedin-profilegithub-repoyoutube-videotweetreddit-threadhacker-news-front-pageproducthunt-launchstackoverflow-questionnpm-package{ "template": "list" } (no url required) to fetch this list programmatically. Useful for keeping client SDKs in sync.Request Examples
cURL — github-repo
curl -X POST https://crawlforge.dev/api/v1/tools/scrape_template \
-H "X-API-Key: cf_test_YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{
"template": "github-repo",
"url": "https://github.com/crawlforge/mcp-server"
}'TypeScript — amazon-product
const response = await fetch('https://crawlforge.dev/api/v1/tools/scrape_template', {
method: 'POST',
headers: {
'X-API-Key': process.env.CRAWLFORGE_API_KEY!,
'Content-Type': 'application/json',
},
body: JSON.stringify({
template: 'amazon-product',
url: 'https://www.amazon.com/dp/B08XYZ1234',
timeout: 20000,
}),
});
const data = await response.json();
if (data.success) {
const product = data.data.extracted;
console.log(product.title, product.price, product.rating);
}cURL — discover templates
curl -X POST https://crawlforge.dev/api/v1/tools/scrape_template \
-H "X-API-Key: cf_test_YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{ "template": "list" }'Response Example
{ "success": true, "data": { "template": "github-repo", "url": "https://github.com/crawlforge/mcp-server", "extracted": { "name": "crawlforge/mcp-server", "stars": 12843, "forks": 1024, "language": "TypeScript", "description": "Powerful web scraping MCP server", "last_commit": "2026-05-15T10:23:00Z" }, "scraped_at": "2026-05-18T12:00:00.000Z" }, "credits_used": 1, "credits_remaining": 999, "processing_time": 812}data.extractedNormalized shape tuned for the chosen templatedata.scraped_atISO 8601 timestamp of when the scrape finishedcredits_usedFlat 1 credit per call regardless of templateCredit Cost
Tip: Need a site that isn't supported? Use scrape_structured for custom selectors (2 credits) or extract_with_llm for LLM-powered extraction.