Skip to main content

Overview

FirecrawlTools extends ToolKit and uses the Firecrawl API for scraping, crawling, mapping, web search, batch scraping, and LLM-powered extraction.
ToolKit: FirecrawlTools inherits from ToolKit. You get all base behavior (e.g. include_tools, exclude_tools, timeout, use_async). See Creating ToolKit for the full API.
Required: Set FIRECRAWL_API_KEY (env or .env). Install: pip install firecrawl-py.
Tools (13): scrape_url, crawl_website, start_crawl, get_crawl_status, cancel_crawl, map_website, search_web, batch_scrape, start_batch_scrape, get_batch_scrape_status, extract_data, start_extract, get_extract_status. Use ToolKit’s exclude_tools / include_tools to limit which tools the agent sees.

Examples

from upsonic import Agent, Task
from upsonic.tools.custom_tools.firecrawl import FirecrawlTools

agent = Agent(model="anthropic/claude-sonnet-4-6", tools=[FirecrawlTools()])
task = Task(description="Scrape https://www.nike.com.tr and summarize the main content in one short paragraph.")
result = agent.print_do(task)
print(result)

from upsonic import Agent, Task
from upsonic.tools.custom_tools.firecrawl import FirecrawlTools

tools = FirecrawlTools(
    default_scrape_limit=50,
    default_search_limit=10,
    fc_timeout=60,
    exclude_tools=["crawl_website", "start_crawl", "get_crawl_status", "cancel_crawl"],
    timeout=60.0,
)
agent = Agent(model="anthropic/claude-sonnet-4-6", tools=[tools])
task = Task(description="Search the web for 'Upsonic AI agent framework' and summarize the top 3 results.")
result = agent.print_do(task)
print(result)

Parameters

ParameterTypeDefaultDescription
api_keystr | Nonefrom env FIRECRAWL_API_KEYFirecrawl API key.
api_urlstr | NoneNoneCustom API base URL for self-hosted Firecrawl.
default_formatslist[str] | None["markdown"]Default output formats for scrape operations.
default_scrape_limitint100Default page limit for crawl operations.
default_search_limitint5Default result limit for search operations.
fc_timeoutint120Timeout in seconds for blocking operations.
poll_intervalint2Seconds between job status polls.