{
  "url": "https://telipot.com/catalog/tasks/firecrawl.web.page.batch.start",
  "id": "firecrawl.web.page.batch.start",
  "name": "Start a batch scrape of many URLs; returns the job id",
  "provider": {
    "slug": "firecrawl",
    "name": "Firecrawl"
  },
  "capability": "web.page.batch.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, billed as each page finishes, not when the job is submitted; the status route reports creditsUsed. A PDF costs 1 credit per PDF page. The JSON and other formats that add credits are 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": "Scrape multiple URLs and optionally extract information using an LLM",
  "method": "POST",
  "path": "/batch/scrape",
  "host": "https://api.firecrawl.dev/v2",
  "docsUrl": "https://docs.firecrawl.dev/api-reference/endpoint/batch-scrape",
  "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": "urls",
      "location": "body",
      "type": "array",
      "required": true,
      "constraints": [],
      "note": "The URLs to scrape"
    },
    {
      "name": "ignoreInvalidURLs",
      "location": "body",
      "type": "boolean",
      "required": false,
      "constraints": [
        "default true"
      ],
      "note": "Skip invalid URLs and list them in invalidURLs instead of failing the request"
    },
    {
      "name": "maxConcurrency",
      "location": "body",
      "type": "integer",
      "required": false,
      "constraints": [],
      "note": "Maximum number of concurrent scrapes; defaults to the team's concurrency limit"
    },
    {
      "name": "onlyMainContent",
      "location": "body",
      "type": "boolean",
      "required": false,
      "constraints": [
        "default true"
      ],
      "note": "Only return the main content of each page, excluding headers, navs and footers"
    },
    {
      "name": "waitFor",
      "location": "body",
      "type": "integer",
      "required": false,
      "constraints": [
        "default 0"
      ],
      "note": "Delay in milliseconds before fetching each page"
    },
    {
      "name": "maxAge",
      "location": "body",
      "type": "integer",
      "required": false,
      "constraints": [
        "default 172800000"
      ],
      "note": "Accept a cached copy younger than this many milliseconds (default 2 days)"
    },
    {
      "name": "timeout",
      "location": "body",
      "type": "integer",
      "required": false,
      "constraints": [
        "1000 to 300000",
        "default 60000"
      ],
      "note": "Timeout in milliseconds"
    },
    {
      "name": "mobile",
      "location": "body",
      "type": "boolean",
      "required": false,
      "constraints": [
        "default false"
      ],
      "note": "Emulate scraping from a mobile device"
    },
    {
      "name": "proxy",
      "location": "body",
      "type": "string",
      "required": false,
      "constraints": [
        "one of \"basic\", \"enhanced\", \"auto\"",
        "default \"auto\""
      ],
      "note": "auto retries with enhanced proxies when basic fails; enhanced is billed like basic"
    }
  ],
  "sampleInput": {
    "urls": [
      "https://example.com"
    ]
  },
  "inputSchema": {
    "type": "object",
    "properties": {
      "urls": {
        "type": "array",
        "description": "The URLs to scrape",
        "examples": [
          [
            "https://example.com"
          ]
        ]
      },
      "ignoreInvalidURLs": {
        "type": "boolean",
        "description": "Skip invalid URLs and list them in invalidURLs instead of failing the request",
        "default": true
      },
      "maxConcurrency": {
        "type": "integer",
        "description": "Maximum number of concurrent scrapes; defaults to the team's concurrency limit"
      },
      "onlyMainContent": {
        "type": "boolean",
        "description": "Only return the main content of each page, excluding headers, navs and footers",
        "default": true
      },
      "waitFor": {
        "type": "integer",
        "description": "Delay in milliseconds before fetching each page",
        "default": 0
      },
      "maxAge": {
        "type": "integer",
        "description": "Accept a cached copy younger than this many milliseconds (default 2 days)",
        "default": 172800000
      },
      "timeout": {
        "type": "integer",
        "description": "Timeout in milliseconds",
        "default": 60000,
        "minimum": 1000,
        "maximum": 300000
      },
      "mobile": {
        "type": "boolean",
        "description": "Emulate scraping from a mobile device",
        "default": false
      },
      "proxy": {
        "type": "string",
        "description": "auto retries with enhanced proxies when basic fails; enhanced is billed like basic",
        "enum": [
          "basic",
          "enhanced",
          "auto"
        ],
        "default": "auto"
      }
    },
    "required": [
      "urls"
    ],
    "additionalProperties": false
  },
  "output": [
    {
      "name": "success",
      "type": "boolean"
    },
    {
      "name": "id",
      "type": "string",
      "description": "The batch job id to pass to the status task"
    },
    {
      "name": "url",
      "type": "string",
      "description": "The status URL of the job"
    },
    {
      "name": "invalidURLs",
      "type": "array | null"
    }
  ],
  "outputSchema": {
    "type": "object",
    "required": [
      "success",
      "id",
      "url"
    ],
    "properties": {
      "success": {
        "type": "boolean"
      },
      "id": {
        "type": "string",
        "description": "The batch job id to pass to the status task"
      },
      "url": {
        "type": "string",
        "description": "The status URL of the job"
      },
      "invalidURLs": {
        "type": [
          "array",
          "null"
        ],
        "items": {
          "type": "string"
        }
      }
    }
  },
  "commands": {
    "mode": "run",
    "cli": "telipot run firecrawl.web.page.batch.start \\\n  --input-json '{\"urls\":[\"https://example.com\"]}'",
    "http": "curl https://api.telipot.com/v1/tasks/firecrawl.web.page.batch.start/run \\\n  -H \"Authorization: Bearer $TELIPOT_TOKEN\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"urls\":[\"https://example.com\"]}'",
    "quote": "telipot run firecrawl.web.page.batch.start \\\n  --input-json '{\"urls\":[\"https://example.com\"]}' \\\n  --quote"
  },
  "siblings": []
}
