Web Crawling API
Follow links from one page across a site and get every page's clean Markdown, with depth, scope patterns and robots.txt rules.
- 1 credit per call
- Failed calls are free
- Updated
- web.crawl
{ "completion_reason": "page_limit", "final_url": "https://docs.stripe.com/payments", "traversal_complete": false, "pages": [ { "title": "Payments | Stripe Documentation", "content_type": "text/html; charset=utf-8", "depth": 0, "description": "Use Stripe to start accepting payments.", "final_url": "https://docs.stripe.com/payments", "language": "en-US", "markdown": "# Payments | Stripe Documentation\n\nPayments\n\n## Use Stripe to start accepting payments.\n\nGet started\n\nIntegrate with Stripe to start accept…", "rendered": false, "status_code": 200, "url": "https://docs.stripe.com/payments" }, { "title": "Stripe Documentation", "content_type": "text/html; charset=utf-8", "depth": 1, "description": "Explore our guides and examples to integrate Stripe.", "final_url": "https://docs.stripe.com/", "language": "en-US", "markdown": "# Stripe Documentation\n\n\n\n[Sign in](https://dashb…", "parent_url": "https://docs.stripe.com/payments", "rendered": false, "status_code": 200, "url": "https://docs.stripe.com/" } ]}
| # | Title | URL | Depth | Description | Language | Content type | Markdown | Rendered | Status code | Final url |
|---|---|---|---|---|---|---|---|---|---|---|
| 1 | Payments | Stripe Documentation | https://docs.stripe.com/payments | 0 | Use Stripe to start accepting payments. | en-US | text/html; charset=utf-8 | # Payments | Stripe Documentation Payments ## Use Stripe to sta… | false | 200 | https://docs.stripe.com/payments |
| 2 | Stripe Documentation | https://docs.stripe.com/ | 1 | Explore our guides and examples to integrate Stripe. | en-US | text/html; charset=utf-8 | # Stripe Documentation response = requests.post( "https://data.upscrape.com/execute", headers={ "Authorization": f"Bearer {os.environ['UPSCRAPE_API_KEY']}", "Content-Type": "application/json", "Prefer": "wait=30", }, json=payload,)response.raise_for_status()print(json.dumps(response.json(), indent=2))
const response = await fetch("https://data.upscrape.com/execute", { method: "POST", headers: { "Authorization": `Bearer ${process.env.UPSCRAPE_API_KEY}`, "Content-Type": "application/json", "Prefer": "wait=30", }, body: JSON.stringify({ "capability": "web.crawl", "input": { "max_pages": 10, "url": "https://docs.stripe.com/payments" }}),});if (!response.ok) { throw new Error(`Upscrape request failed: ${response.status}`);}console.log(JSON.stringify(await response.json(), null, 2));
https://data.upscrape.com/mcp
With Upscrape, crawl docs.stripe.com/payments for up to 10 pages and list each page's title and URL.
The other website tools
Web Crawling API FAQ
The short answers. The docs have the long ones.
How much does the Web Crawling API cost?
1 credit per successful call, shown before it runs. You buy credits once, and paid credits never expire.
What do I send?
Send url. The input fields below list every option with its type and limits.
Which sites does it work on?
Any public page a visitor can open without logging in. A page that is blocked or gone fails with its reason.
Can my AI agent call it?
Yes, over MCP: the agent finds web.crawl, checks its price and runs it with the same credits as the REST API.
Your first page is free.
Up to 100 free credits to start, no card needed.