> ## Documentation Index
> Fetch the complete documentation index at: https://docs.automate.ax/llms.txt
> Use this file to discover all available pages before exploring further.

> ## Agent Instructions
> Automate.ax automations are TypeScript programs.
> Use Bun for installation and command examples.
> Use Automate.ax for the product name and automate.ax for the package, CLI, and domain.
> Treat documented public APIs as current; do not invent transitional or deprecated names.

# Start Scrapfly crawl

> Start a Scrapfly crawler job and return its identity immediately.

`scrapfly.startCrawl` submits a recursive crawl, an inline URL list, or a remote URL list. It does not poll for completion.

```ts theme={null}
import { automation, onInvocation } from "automate.ax"
import { scrapfly } from "automate.ax/scrapfly"

export default automation("Start docs crawl", () => {
  onInvocation()
  scrapfly.startCrawl({
    url: "https://example.com/docs",
    contentFormats: ["markdown", "page_metadata"],
    maxDepth: 3,
    pageLimit: 500,
  })
})
```

Supply exactly one of `url`, `urlList` (up to an API-supported uploaded list), or `remoteUrlList`. Crawl controls include `maxDepth`, `pageLimit`, `maxDuration`, `maxApiCredit`, `maxConcurrency`, `delay`, path filters, domain/subdomain rules, sitemap and robots behavior, rendering, cache, ASP, proxy, headers, extraction rules, output formats, and dashboard webhook name/events. `excludePaths` and `includeOnlyPaths` are mutually exclusive.

Returns `{ crawlerId, status }`. Status is `PENDING`, `RUNNING`, `DONE`, or `CANCELLED`. Use `scrapfly.getCrawlStatus` and the content actions to inspect subsequent work.
