Dashboard

Crawl API

Crawl entire websites, following links and extracting content from each page.

Start a Crawl

POST /api/v1/crawl
Content-Type: application/json
x-api-key: YOUR_API_KEY

{
  "url": "https://example.com",
  "limit": 100,
  "maxDepth": 3,
  "includePaths": ["/docs/*", "/blog/*"],
  "excludePaths": ["/admin/*"],
  "scrapeOptions": {
    "formats": ["markdown"],
    "onlyMainContent": true
  }
}

Parameters

FieldTypeDefaultDescription
urlstring-Starting URL
limitnumber50Max pages to crawl
maxDepthnumber3Max link depth
includePathsstring[]-Only crawl matching paths (glob patterns)
excludePathsstring[]-Skip matching paths
allowBackwardLinksbooleanfalseFollow links to parent pages
allowExternalLinksbooleanfalseFollow links to other domains
ignoreSitemapbooleanfalseSkip sitemap discovery
scrapeOptionsobject-Scrape config for each page
webhookstring-URL to receive results when complete

Response (Sync)

{
  "success": true,
  "data": [
    {
      "url": "https://example.com",
      "markdown": "# Home\n...",
      "metadata": { "title": "Home", "statusCode": 200 }
    },
    {
      "url": "https://example.com/about",
      "markdown": "# About\n...",
      "metadata": { "title": "About", "statusCode": 200 }
    }
  ],
  "total": 2,
  "creditsUsed": 4
}

Async Crawl

POST /api/v1/crawl/async
Content-Type: application/json
x-api-key: YOUR_API_KEY

{
  "url": "https://example.com",
  "limit": 500,
  "maxDepth": 5
}

Response:

{
  "success": true,
  "data": { "id": "crawl_abc123" }
}

Check Crawl Status

GET /api/v1/crawl/async/:id

Check Crawl Errors

GET /api/v1/crawl/async/:id/errors

Cancel Crawl

DELETE /api/v1/crawl/async/:id