{
  "url": "https://telipot.com/catalog/capabilities/web.crawl.start",
  "id": "web.crawl.start",
  "description": "Start crawling a website and extracting its pages",
  "platform": "web",
  "providers": [
    {
      "slug": "firecrawl",
      "name": "Firecrawl"
    }
  ],
  "tasks": 1,
  "taskPages": [
    {
      "id": "firecrawl.web.crawl.start",
      "name": "Start a website crawl from a URL; returns the job id",
      "provider": {
        "slug": "firecrawl",
        "name": "Firecrawl"
      },
      "capability": "web.crawl.start",
      "platform": "web",
      "kind": "data",
      "tier": "core",
      "identity": "key",
      "identityLabel": "Your plan",
      "price": {
        "type": "per_result",
        "confidence": "documented",
        "source": "docs",
        "sourceUrl": "https://docs.firecrawl.dev/billing",
        "checked": "2026-10-05",
        "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.",
        "state": "paid",
        "label": "$0.0038 / page",
        "amount": "$0.0038",
        "unit": "page",
        "usdPerUnit": {
          "floor": 0.0038,
          "ceiling": 0.0038
        },
        "native": {
          "text": "1 credit per page",
          "figure": "1 credit",
          "per": "page",
          "currency": "credits"
        },
        "detail": "1 credit · docs"
      },
      "providers": 1,
      "retention": "standard",
      "runsOn": "byoc",
      "live": true,
      "summary": "Crawl multiple URLs based on options",
      "method": "POST",
      "path": "/crawl",
      "host": "https://api.firecrawl.dev/v2",
      "docsUrl": "https://docs.firecrawl.dev/api-reference/endpoint/crawl-post",
      "auth": {
        "scheme": "bearer",
        "label": "bearer · Authorization: Bearer",
        "short": "bearer · Authorization"
      },
      "scope": "any_account",
      "principal": "organization",
      "requiredScopes": [],
      "verification": {
        "state": "none",
        "label": "Not verified yet",
        "detail": "Not checked yet. We test with a real request before we mark it."
      },
      "input": [
        {
          "name": "url",
          "location": "body",
          "type": "string",
          "required": true,
          "constraints": [],
          "note": "The base URL to start crawling from"
        },
        {
          "name": "limit",
          "location": "body",
          "type": "integer",
          "required": false,
          "constraints": [
            "default 10000"
          ],
          "note": "Maximum number of pages to crawl. Always set it; the default is 10000 pages, 10000 credits."
        },
        {
          "name": "maxDiscoveryDepth",
          "location": "body",
          "type": "integer",
          "required": false,
          "constraints": [],
          "note": "Maximum depth to crawl by discovery order. The root and sitemap pages have depth 0."
        },
        {
          "name": "includePaths",
          "location": "body",
          "type": "array",
          "required": false,
          "constraints": [
            "at most 1000"
          ],
          "note": "URL pathname regex patterns; only matching URLs are crawled, and the starting URL must match too"
        },
        {
          "name": "excludePaths",
          "location": "body",
          "type": "array",
          "required": false,
          "constraints": [
            "at most 1000"
          ],
          "note": "URL pathname regex patterns; matching URLs are skipped"
        },
        {
          "name": "sitemap",
          "location": "body",
          "type": "string",
          "required": false,
          "constraints": [
            "one of \"skip\", \"include\", \"only\"",
            "default \"include\""
          ],
          "note": "skip ignores the sitemap; only crawls the start URL and sitemap URLs without following links"
        },
        {
          "name": "crawlEntireDomain",
          "location": "body",
          "type": "boolean",
          "required": false,
          "constraints": [
            "default false"
          ],
          "note": "Follow internal links to sibling and parent URLs, not only child paths"
        },
        {
          "name": "allowSubdomains",
          "location": "body",
          "type": "boolean",
          "required": false,
          "constraints": [
            "default false"
          ],
          "note": "Follow links to subdomains of the main domain"
        },
        {
          "name": "allowExternalLinks",
          "location": "body",
          "type": "boolean",
          "required": false,
          "constraints": [
            "default false"
          ],
          "note": "Follow links to external websites, one hop"
        }
      ],
      "sampleInput": {
        "url": "https://example.com",
        "limit": 1,
        "maxDiscoveryDepth": 1
      },
      "inputSchema": {
        "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": [
        {
          "name": "success",
          "type": "boolean"
        },
        {
          "name": "id",
          "type": "string",
          "description": "The crawl job id to pass to the status task"
        },
        {
          "name": "url",
          "type": "string",
          "description": "The status URL of the job"
        }
      ],
      "outputSchema": {
        "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"
          }
        }
      },
      "commands": {
        "mode": "run",
        "cli": "telipot run firecrawl.web.crawl.start \\\n  --input-json '{\"url\":\"https://example.com\",\"limit\":1,\"maxDiscoveryDepth\":1}'",
        "http": "curl https://api.telipot.com/v1/tasks/firecrawl.web.crawl.start/run \\\n  -H \"Authorization: Bearer $TELIPOT_TOKEN\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"url\":\"https://example.com\",\"limit\":1,\"maxDiscoveryDepth\":1}'",
        "quote": "telipot run firecrawl.web.crawl.start \\\n  --input-json '{\"url\":\"https://example.com\",\"limit\":1,\"maxDiscoveryDepth\":1}' \\\n  --quote"
      },
      "siblings": []
    }
  ]
}
