Skip to main content
POST
Firecrawl Crawl submit
Crawl a whole site rooted at url and return the content of every page it keeps. url, limit and an Idempotency-Key are required; steer it with includePaths, excludePaths, maxDiscoveryDepth, crawlEntireDomain, allowSubdomains, delay and maxConcurrency. Asynchronous. Submitting returns HTTP 202 and a job envelope — id, object, endpoint, status, createdAt, completedAt, pricing, output, error — with output still null. Poll get_firecrawl_crawl_job until status is completed, failed or cancelled; output is then an array of pages, each with markdown and metadata. A 3-page crawl measured 43 KB and finished in under a minute, and pricing.billingMode is metered_result, so cost scales with what it finds — set limit. Send a fresh Idempotency-Key per distinct crawl; reusing one returns the earlier job instead of starting a new one. For a handful of known URLs post_firecrawl_batch_scrape is cheaper, and for structure alone post_firecrawl_map costs far less.
First time? Point any MCP client at https://mcp.aisa.one/mcp — Claude Code, Codex, Cursor, VS Code and the rest. Authorization is OAuth: the client opens a browser, you click Allow once, and there is no key to paste. Your agent then reaches every endpoint through a few meta tools: search, list_categories, get_details and batch_quote are free, batch_use is billed per call. Setup per client is in Connect via MCP; the live tool list and what each call costs are on aisa.one/mcp.
Set this endpoint up in your agent →

Request contract

  • Method and path: POST /apis/v1/firecrawl/crawl
  • Availability: enabled
  • Request URL template: https://api.aisa.one/apis/v1/firecrawl/crawl
  • Idempotency-Key: header; required
  • X-AISA-Max-Price-USD: header; optional
  • X-AISA-Cost-Mode: header; optional
  • Runtime facts: 82ca6e32a3422a9fdc47fb987d84d177f6e0ef05d5eae36691e5f7b3911d092f
Complete OpenAPI definition Effective request and pricing declaration (including authentication and referenced schemas):

Cost and request rules

A request reference price is not currently available; use a request quote where supported. Account-specific pricing and final settlement may differ. Published reference values are not an account-specific quote or a settled charge. For endpoints supporting X-AISA-Cost-Mode: quote, obtain a free quote for your exact request before execution; reconcile the settled cost with response metadata and Usage Logs. USD amounts use 1,000,000 integer micro-USD per dollar.

Authorizations

Authorization
string
header
required

Bearer authentication header of the form Bearer <token>, where <token> is your auth token.

Headers

Idempotency-Key
string
required

Trimmed UTF-8 length must be 1 through 191 bytes.

Pattern: \S
X-AISA-Max-Price-USD
string

Optional maximum customer authorization in USD, validated by the runtime price parser.

X-AISA-Cost-Mode
enum<string>

Return a read-only cost quote instead of submitting a job.

Available options:
quote

Body

application/json
limit
integer
required
Required range: 1 <= x <= 1000
url
string
required

HTTPS URL with a hostname, without credentials or fragment. Trimmed input ending in .pdf (case insensitive) is not supported.

Pattern: ^\s*[hH][tT][tT][pP][sS]://
allowSubdomains
boolean | null
crawlEntireDomain
boolean | null
delay
number | null
Required range: 0 <= x <= 30
excludePaths
string[] | null
Maximum array length: 20

Non-empty after trimming; no CR/LF; UTF-8 byte length is bounded.

Pattern: ^[^\r\n]*\S[^\r\n]*$(?![\s\S])
ignoreQueryParameters
boolean | null
includePaths
string[] | null
Maximum array length: 20

Non-empty after trimming; no CR/LF; UTF-8 byte length is bounded.

Pattern: ^[^\r\n]*\S[^\r\n]*$(?![\s\S])
maxConcurrency
integer | null
Required range: 1 <= x <= 20
maxDiscoveryDepth
integer | null
Required range: 0 <= x <= 10
scrapeOptions
object | null
sitemap
enum<string> | null
Available options:
null,
skip,
include,
only

Response

Read-only cost quote when X-AISA-Cost-Mode is quote; no job is created.

currency
string | null
required
estimate_kind
string | null
required
estimated_at
string<date-time> | null
required
estimated_cost_micros_usd
integer | null
required
may_exceed_estimate
boolean | null
required
object
string | null
required
max_cost_micros_usd
integer | null
metadata
object | null
pricing_version
string | null