Skip to content

Start a batch scrape of many URLs; returns the job id.

Scrape multiple URLs and optionally extract information using an LLM

Job web.page.batch.start

Your AI asks

checks the price first
telipot run firecrawl.web.page.batch.start \
  --input-json '{"urls":["https://example.com"]}' \
  --quote

Price

$0.0038 / page
Priced· before it runs

firecrawl.web.page.batch.start

$0.0038 / pageYour plan

Whose account it uses

1The person asking
not needed
2Your company’s Firecrawl plan
Selected identity for this example
3Our account
not used

What it sends

{
  "urls": ["https://example.com"]
}

Your Firecrawl login is added for you. Your AI never sees it.

What it costs

$0.0038

per page · billed per result

rate1 credit per page, billed per result
sourcedocs · docs.firecrawl.dev/billing · checked 2026-10-05
confidencedocumented
note1 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.

Preview the price first. --quote runs nothing.

For developers · run it

Shell · runs the task on the named account

telipot run firecrawl.web.page.batch.start \
  --input-json '{"urls":["https://example.com"]}'

urls

array · required

The URLs to scrape

ignoreInvalidURLs

boolean · default true

Skip invalid URLs and list them in invalidURLs instead of failing the request

maxConcurrency

integer

Maximum number of concurrent scrapes; defaults to the team's concurrency limit

onlyMainContent

boolean · default true

Only return the main content of each page, excluding headers, navs and footers

waitFor

integer · default 0

Delay in milliseconds before fetching each page

maxAge

integer · default 172800000

Accept a cached copy younger than this many milliseconds (default 2 days)

timeout

integer · 1000 to 300000 · default 60000

Timeout in milliseconds

mobile

boolean · default false

Emulate scraping from a mobile device

proxy

string · one of "basic", "enhanced", "auto" · default "auto"

auto retries with enhanced proxies when basic fails; enhanced is billed like basic

success

boolean

id

string

The batch job id to pass to the status task

url

string

The status URL of the job

invalidURLs

array | null

Full output schema · JSONNested fields and constraints

Output JSON Schema

{
  "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"
      }
    }
  }
}

A real answer

No example captured yet: one is recorded when telipot catalog verify passes.