# firecrawl.web.crawl.start

Start a website crawl from a URL; returns the job id

> Crawl multiple URLs based on options

Page: https://telipot.com/catalog/tasks/firecrawl.web.crawl.start · Markdown: https://telipot.com/catalog/tasks/firecrawl.web.crawl.start/md · JSON: https://telipot.com/catalog/tasks/firecrawl.web.crawl.start/json

| Field | Value |
| --- | --- |
| provider | [Firecrawl](https://telipot.com/catalog/providers/firecrawl) `firecrawl` |
| capability | [`web.crawl.start`](https://telipot.com/catalog/capabilities/web.crawl.start) |
| kind | data |
| tier | core |
| price | $0.0038 / page (1 credit · docs) |
| price note | 1 credit per page crawled, billed as each page finishes, up to limit pages; the status route reports creditsUsed. A PDF costs 1 credit per PDF page. The JSON format that adds 4 credits per page is not offered by this task. |
| identity | Your plan |
| auth | `bearer · Authorization: Bearer` |
| scope | any_account |
| principal | organization |
| required_scopes | none |
| retention | standard |
| route | `POST https://api.firecrawl.dev/v2/crawl` |
| verification | Not verified yet. Not checked yet. We test with a real request before we mark it. |
| status | live |
| docs | https://docs.firecrawl.dev/api-reference/endpoint/crawl-post |

## Preview the price · nothing runs

```bash
telipot run firecrawl.web.crawl.start \
  --input-json '{"url":"https://example.com","limit":1,"maxDiscoveryDepth":1}' \
  --quote
```

## Run it

```bash
telipot run firecrawl.web.crawl.start \
  --input-json '{"url":"https://example.com","limit":1,"maxDiscoveryDepth":1}'
```

```bash
curl https://api.telipot.com/v1/tasks/firecrawl.web.crawl.start/run \
  -H "Authorization: Bearer $TELIPOT_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"url":"https://example.com","limit":1,"maxDiscoveryDepth":1}'
```

## Input

| Field | In | Type | Required | Constraints | Note |
| --- | --- | --- | --- | --- | --- |
| `url` | body | string | yes |  | The base URL to start crawling from |
| `limit` | body | integer | no | default 10000 | Maximum number of pages to crawl. Always set it; the default is 10000 pages, 10000 credits. |
| `maxDiscoveryDepth` | body | integer | no |  | Maximum depth to crawl by discovery order. The root and sitemap pages have depth 0. |
| `includePaths` | body | array | no | at most 1000 | URL pathname regex patterns; only matching URLs are crawled, and the starting URL must match too |
| `excludePaths` | body | array | no | at most 1000 | URL pathname regex patterns; matching URLs are skipped |
| `sitemap` | body | string | no | one of "skip", "include", "only"; default "include" | skip ignores the sitemap; only crawls the start URL and sitemap URLs without following links |
| `crawlEntireDomain` | body | boolean | no | default false | Follow internal links to sibling and parent URLs, not only child paths |
| `allowSubdomains` | body | boolean | no | default false | Follow links to subdomains of the main domain |
| `allowExternalLinks` | body | boolean | no | default false | Follow links to external websites, one hop |

## Input schema

```json
{
  "type": "object",
  "properties": {
    "url": {
      "type": "string",
      "description": "The base URL to start crawling from",
      "examples": [
        "https://example.com"
      ]
    },
    "limit": {
      "type": "integer",
      "description": "Maximum number of pages to crawl. Always set it; the default is 10000 pages, 10000 credits.",
      "default": 10000,
      "examples": [
        10
      ]
    },
    "maxDiscoveryDepth": {
      "type": "integer",
      "description": "Maximum depth to crawl by discovery order. The root and sitemap pages have depth 0.",
      "examples": [
        1
      ]
    },
    "includePaths": {
      "type": "array",
      "description": "URL pathname regex patterns; only matching URLs are crawled, and the starting URL must match too",
      "examples": [
        [
          "blog/.*"
        ]
      ],
      "maxItems": 1000
    },
    "excludePaths": {
      "type": "array",
      "description": "URL pathname regex patterns; matching URLs are skipped",
      "examples": [
        [
          "blog/.*"
        ]
      ],
      "maxItems": 1000
    },
    "sitemap": {
      "type": "string",
      "description": "skip ignores the sitemap; only crawls the start URL and sitemap URLs without following links",
      "enum": [
        "skip",
        "include",
        "only"
      ],
      "default": "include"
    },
    "crawlEntireDomain": {
      "type": "boolean",
      "description": "Follow internal links to sibling and parent URLs, not only child paths",
      "default": false
    },
    "allowSubdomains": {
      "type": "boolean",
      "description": "Follow links to subdomains of the main domain",
      "default": false
    },
    "allowExternalLinks": {
      "type": "boolean",
      "description": "Follow links to external websites, one hop",
      "default": false
    }
  },
  "required": [
    "url"
  ],
  "additionalProperties": false
}
```

## Output schema

```json
{
  "type": "object",
  "required": [
    "success",
    "id",
    "url"
  ],
  "properties": {
    "success": {
      "type": "boolean"
    },
    "id": {
      "type": "string",
      "description": "The crawl job id to pass to the status task"
    },
    "url": {
      "type": "string",
      "description": "The status URL of the job"
    }
  }
}
```
