Skip to main content

Overview

Crawl traverses a site starting from a URL, follows links up to a depth you set, and returns each page in the formats you request. Crawls are async — you start a job, then poll (or get notified via webhook) until it completes.
Try Crawl instantly in our interactive playground.

Pricing

A Crawl job costs 2 credits to start, plus the per-page Scrape cost for every page processed. Per-page format costs: When a page is requested in multiple formats, the per-format costs are summed. Enabling stealth in fetchConfig adds 5 credits per page; render mode (auto/fast/js) does not affect the cost. See the pricing page for the full breakdown.

Getting Started

Quick Start

Parameters

Get your API key from the dashboard.

Fetching page content

GET /api/crawl/:id is designed for status polling and returns lightweight page metadata. To fetch the actual per-page content, call the paginated pages endpoint:
cURL
The response is cursor-paginated:
limit controls how many crawl pages are returned in one response. It defaults to 50, with a maximum of 100. cursor is a zero-based index into the ordered crawl page list. Start with cursor=0, then use pagination.nextCursor as the next request’s cursor until it returns null.
See the Get crawl pages API reference for the full response shape. If you only need one page’s underlying Scrape request, fetch that page’s scrapeRefId through History:

Managing Crawl Jobs

Advanced Usage

URL patterns and fetch config

Async Support (Python)

Key Features

Multi-Page Crawling

Traverse entire sites, following links automatically.

Flexible Formats

Request markdown, HTML, links, images, and more per page.

Job Control

Start, stop, resume, and delete crawl jobs.

URL Filtering

Include or exclude by URL pattern.

Integration Options

Official SDKs

AI Framework Integrations

Support & Resources

Documentation

Guides and tutorials

API Reference

Detailed API documentation

Community

Join our Discord community

GitHub

Check out our open-source projects