# Start a Firecrawl agent task

Start an agent task for agentic data extraction. Needs prompt.

Start an agent task for agentic data extraction

- Tool ID: `firecrawl/start-agent`
- Name in the catalog: Start an agent task for agentic data extraction
- Provider: [Firecrawl](/providers/firecrawl.md)
- Capability: [Deep research & cited answers](/tools/web-search/deep-research.md)
- Price: $0.0025 per credit
- Authentication: an authorised Agentik workspace is required for execution, including zero-price tools.

## Pricing contract

The provider’s price, with no markup. Billed for measured usage.


```json
{
  "model": "per_unit",
  "amountUsd": 0.0025,
  "unitsPath": "creditsUsed",
  "maxUnitsField": "maxCredits",
  "maxUnits": 2500,
  "requireUnits": true
}
```

Pricing source: [https://docs.firecrawl.dev/billing](https://docs.firecrawl.dev/billing). Standard monthly allowance $100/100,000 = $0.001/credit; marginal Standard overage $5/2,000 = $0.0025/credit. Gateway uses marginal cost; no automatic reload changed..

Price verification date: 2026-10-05.

## Complete input schema


```json
{
  "type": "object",
  "properties": {
    "urls": {
      "type": "array",
      "items": {
        "type": "string",
        "format": "uri"
      },
      "description": "Optional list of URLs to constrain the agent to"
    },
    "prompt": {
      "type": "string",
      "description": "The prompt describing what data to extract",
      "maxLength": 10000
    },
    "schema": {
      "type": "object",
      "description": "Optional JSON schema to structure the extracted data"
    },
    "maxCredits": {
      "type": "number",
      "description": "Maximum credits to spend on this agent task. Defaults to 2500 if not set. Values above 2,500 are always billed as paid requests.",
      "minimum": 1,
      "maximum": 2500,
      "default": 100
    },
    "strictConstrainToURLs": {
      "type": "boolean",
      "description": "If true, agent will only visit URLs provided in the urls array"
    },
    "model": {
      "type": "string",
      "enum": [
        "spark-2",
        "spark-1-mini",
        "spark-1-pro"
      ],
      "default": "spark-2",
      "description": "The model to use for the agent task. spark-2 is the default and the model every run executes on. The Spark 1 model names remain accepted for backwards compatibility but are deprecated and route to spark-2."
    },
    "effort": {
      "type": "string",
      "enum": [
        "low",
        "medium",
        "high"
      ],
      "description": "Reasoning budget for the agent task. Every run executes on spark-2, so effort can be sent with or without model."
    },
    "webhook": {
      "type": "object",
      "description": "A webhook specification object. Subscribes to agent lifecycle events (agent.started, agent.action, agent.completed, agent.failed, agent.cancelled).",
      "properties": {
        "url": {
          "type": "string",
          "format": "uri",
          "description": "The URL to send webhook events to."
        },
        "headers": {
          "type": "object",
          "description": "Headers to send to the webhook URL.",
          "additionalProperties": {
            "type": "string"
          }
        },
        "metadata": {
          "type": "object",
          "description": "Custom metadata that will be included in all webhook payloads for this agent job.",
          "additionalProperties": {
            "type": "string"
          }
        },
        "events": {
          "type": "array",
          "description": "The events to send to the webhook URL. Defaults to all events.",
          "items": {
            "type": "string",
            "enum": [
              "started",
              "action",
              "completed",
              "failed",
              "cancelled"
            ]
          },
          "default": [
            "started",
            "action",
            "completed",
            "failed",
            "cancelled"
          ]
        }
      },
      "required": [
        "url"
      ]
    },
    "auditMetadata": {
      "type": "object",
      "description": "User attribution included with SIEM logging events when SIEM Logging is enabled for the organization.",
      "additionalProperties": false,
      "required": [
        "username"
      ],
      "properties": {
        "username": {
          "type": "string",
          "maxLength": 1024,
          "description": "The username associated with the request."
        }
      }
    },
    "threatProtection": {
      "type": "object",
      "title": "Threat Protection Override",
      "description": "Per-request [Threat Protection](https://docs.firecrawl.dev/features/threat-protection) override. Fields you provide replace the corresponding fields of your organization's policy for this request only; omitted fields keep their organization-level values. Requires Threat Protection to be enabled for your team (enterprise feature) — otherwise the request is rejected with a 403. If your organization has disabled request overrides, any request that includes this object is rejected with a 403. If Threat Protection is enforced for your team, `mode` may not be set to `off`.",
      "properties": {
        "mode": {
          "type": "string",
          "enum": [
            "off",
            "normal"
          ],
          "description": "URL scanning mode for this request. `normal` checks URLs against Google Web Risk (+2 credits per URL scanned)."
        },
        "riskScoreThreshold": {
          "type": "integer",
          "minimum": 0,
          "maximum": 100,
          "description": "Normalized risk score (0–100) at or above which a classifier verdict blocks the URL. Lower is stricter."
        },
        "blacklist": {
          "type": "array",
          "maxItems": 1000,
          "items": {
            "type": "string"
          },
          "description": "Domains to always block, as plain domains (`example.com`) or wildcard globs (`*.example.com`). No protocol, path, or port."
        },
        "whitelist": {
          "type": "array",
          "maxItems": 1000,
          "items": {
            "type": "string"
          },
          "description": "Domains to always allow, as plain domains or wildcard globs. Wins over every other rule."
        },
        "blockedTlds": {
          "type": "array",
          "maxItems": 1000,
          "items": {
            "type": "string"
          },
          "description": "Top-level domains to block outright, lowercase without the leading dot (e.g. `zip`)."
        },
        "failurePolicy": {
          "type": "string",
          "enum": [
            "open",
            "closed"
          ],
          "description": "What to do when the classifier can't be reached: `closed` blocks the request, `open` allows it."
        }
      }
    }
  },
  "required": [
    "prompt"
  ],
  "additionalProperties": false
}
```

## Published example

No example input is published for this tool. Ask for the inputs required by its schema.

## Execute and retrieve

Inspect again before execution, explain the price and obtain the required authority. Use MCP run_tool or POST /v1/run with this tool ID, valid input and an idempotency key. Save the returned run ID and follow the actual state. If Agentik answers that the tool is temporarily unavailable, do not retry it blindly; use discovery to propose an alternative.

This tool uses deferred settlement. Follow its returned task/run instructions; preserve the existing reservation until the result is reconciled.

A partial or uncertain result can still have consumed provider resources. Consult [billing](/docs/billing.md), [idempotency](/docs/idempotency.md) and [asynchronous results](/docs/async.md).

[Provider documentation](https://docs.firecrawl.dev/api-reference/v2-introduction)

[REST inspection](https://api.agentik.cc/v1/tools/firecrawl/start-agent) · [OpenAPI](/openapi.json) · [Connection guide](/connect.md)

---

[HTML page](/providers/firecrawl/start-agent) · [Agent index](/llms.txt)
