> ## Documentation Index
> Fetch the complete documentation index at: https://developers.arg.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Firecrawl

> Scrape a page, map a site, search the web, or crawl a whole domain - all as clean markdown.

Firecrawl connects with an API key from your Firecrawl dashboard. It turns web pages into LLM-ready markdown, handling JavaScript-rendered pages and PDFs.

## What you can do

**Actions** - scrape a page, map a site, search the web, start a crawl, read a crawl.

**Triggers** - none. Use it through the assistant in chat or as an action node in an automation.

## Get your credential

<Steps>
  <Step title="Open your Firecrawl dashboard">
    Sign in at [firecrawl.dev](https://www.firecrawl.dev/app/api-keys) and open **API Keys**.
  </Step>

  <Step title="Copy a key">Copy an existing key or create a new one. Keys start with `fc-`.</Step>
</Steps>

## Connect

<Steps>
  <Step title="Open Integrations">
    In arg.ai, go to **Settings → Integrations** and click **Connect** on **Firecrawl**.
  </Step>

  <Step title="Paste the key">Enter your API key in the API key field.</Step>

  <Step title="Save">
    arg.ai verifies the key by reading your team's credit balance, which costs nothing, then
    connects it.
  </Step>
</Steps>

## Use it

* **In chat:** *"Scrape this changelog page and list every release from the last quarter."*
* **In an automation:** add a **Firecrawl** action node to map a site, then scrape the pages that matter.

## Picking the right action

* **Scrape a page** is one URL in, markdown out. Choose the formats you want (`markdown`, `html`, `rawHtml`, `links`, `summary`, `screenshot`); it defaults to markdown.
* **Map a site** lists a site's URLs. It is far cheaper than a crawl, so map first when you only need to find the pages that matter.
* **Search the web** searches and can scrape every hit in the same call - pass `scrape_formats` and results come back with full content rather than snippets.
* **Start a crawl** walks a whole domain. Narrow it with `include_paths` / `exclude_paths`, or describe what you want in `prompt` and let Firecrawl derive the options.

## Crawls are asynchronous

**Start a crawl** returns a job id immediately; the pages arrive as the crawl runs. Read it back by id with **Read a crawl**, which reports `status`, page counts, credits used, and the pages gathered so far - chain a later automation step off `status` being `completed`.
