canonical: https://jentic.com/apis/firecrawl.dev/firecrawl

# Firecrawl API

Firecrawl turns websites into clean, structured data for LLMs and agents. Point it at a single URL to scrape the page as markdown or JSON, crawl an entire site and its subpages, or map a domain to discover every reachable link. Beyond raw content it runs LLM-backed extraction to pull structured fields from pages, deep research over a query, web search with optional scraping of the results, and LLMs.txt generation for a site. Long-running scrape, crawl, extract, and research jobs are asynchronous: you start a job and poll its status endpoint for progress and results, with error and cancellation endpoints for each. Team endpoints report remaining credits and tokens so you can track usage.

## For AI agents

Scrape, crawl, and map websites into clean markdown or structured JSON, extract fields with LLMs, run web search and deep research, and poll async job status.

## Scope

Covers scraping, crawling, mapping, extraction, search, deep research, and job management. Billing, account provisioning, and dashboard settings are handled on the Firecrawl platform, not this API.

## Capabilities

- Scrape a single URL into markdown or structured JSON, with optional LLM extraction
- Crawl a website and all reachable subpages, then poll the job for aggregated results
- Map a domain to enumerate every discoverable URL before scraping
- Extract structured fields from one or many pages using an LLM schema
- Run web search and optionally scrape each result in the same call
- Start deep research over a query and retrieve the synthesized findings
- Generate an LLMs.txt file that summarizes a site for language models

## Use cases

### AI Agent Grounded in Live Web Content

A research or support agent needs current information that is not in its training data. Through Jentic it calls Firecrawl to scrape a specific page or search the web and scrape the results, receiving clean markdown it can read directly instead of raw HTML. The agent discovers the scrape and search operations by intent, so it fetches grounding content on demand without a developer wiring HTTP calls or parsing pages.

Example prompt: Search the web for a query, scrape the top three results into markdown, and summarize them with citations back to each source URL

### Documentation and Knowledge-Base Ingestion

A team wants a whole documentation site turned into structured content for a RAG index. Firecrawl crawls the domain, follows subpages, and returns each page as markdown. Because crawls are asynchronous, the pipeline starts a crawl, polls its status until complete, and reads the aggregated pages, handling errors through the crawl errors endpoint.

Example prompt: Start a crawl of a docs domain, poll the crawl status until it finishes, and store each returned page as markdown for indexing

### Structured Data Extraction at Scale

A pipeline needs specific fields from many pages, such as product name, price, and availability across a catalog. Firecrawl's extract endpoint takes a schema and uses an LLM to pull matching fields, and batch scrape processes many URLs at once. The workflow submits URLs, polls the extract or batch job, and receives normalized records ready to load.

Example prompt: Submit a list of product URLs to the extract endpoint with a name, price, and stock schema, poll the job, and return the normalized rows

### Deep Research on a Topic

An analyst wants a synthesized answer that pulls from many sources. Firecrawl's deep research operation takes a query, searches and reads across the web, and returns findings the agent can present. The workflow starts the research job and polls its status endpoint until the synthesized results are ready.

Example prompt: Start a deep research job for a market question, poll until it completes, and return the synthesized findings with source links

## Key endpoints

| Method | Path | Description |
| --- | --- | --- |
| POST | `/scrape` | Scrape a single URL, optionally extracting fields with an LLM |
| POST | `/crawl` | Start a crawl across a site and its subpages |
| GET | `/crawl/{id}` | Get the status and results of a crawl job |
| POST | `/map` | Discover every reachable URL for a domain |
| POST | `/extract` | Extract structured data from pages using an LLM schema |
| POST | `/search` | Search the web and optionally scrape the results |
| POST | `/batch/scrape` | Scrape many URLs in one asynchronous job |

## Key resources

- **Scrape** — Single-URL and batch scraping into markdown or JSON, with optional LLM extraction
- **Crawl** — Site-wide crawl jobs with status, errors, active-crawl listing, and cancellation
- **Map** — URL discovery that enumerates reachable links for a domain
- **Extract** — Schema-driven structured-field extraction from pages using an LLM
- **Search and research** — Web search with optional scraping and asynchronous deep research over a query
- **Team** — Remaining credit and token usage for the authenticated team

## Why Jentic

- **Setup:** Using Firecrawl by hand means managing async job polling, bearer-token auth, and the difference between scrape, crawl, extract, and search yourself. Through Jentic you install once, import the API from the Directory, and your agent calls the right operation and follows the job to completion.
- **Permission scoping:** You choose which Firecrawl operations the agent may call, so a scraping task can be limited to POST /scrape and POST /search while crawl cancellation and feedback stay out of the allowed set. Rules run on your own instance and every call is logged.
- **Credential handling:** Your Firecrawl API key is stored once, encrypted, by your own Jentic One instance and injected as the bearer token at execution time, so it never enters the agent's prompt, logs, or context.
- **Discovery method:** Agents search Jentic by intent such as 'scrape a URL to markdown' or 'extract structured data from pages', and Jentic returns the matching Firecrawl operation with its input schema so the agent calls the right endpoint without reading reference docs.

## Related APIs

- **ScraperAPI** — Proxy-based scraping API that returns raw HTML with rotating IPs and rendering
- **WebScraping.AI** — Scraping API with built-in question answering over page content
- **SerpApi** — Structured search-engine results across Google, Bing, and more

## FAQ

### What authentication does the Firecrawl API use?

Per its OpenAPI spec every endpoint uses HTTP bearer authentication: you send your Firecrawl API key as a bearer token. Through Jentic that key is stored encrypted on your own instance and injected at call time, so it never appears in the agent's prompt or logs.

### How do I scrape a website into markdown with the Firecrawl API?

Call POST /scrape with the target URL and Firecrawl returns the page as clean markdown or JSON. For a whole site use POST /crawl to start a job, then poll GET `/crawl/{id}` for the aggregated pages. Through Jentic you search for the intent 'scrape a URL' and the agent gets the operation and its input schema.

### Are Firecrawl scrape and crawl jobs synchronous or asynchronous?

Scrape of a single URL returns directly, but crawl, batch scrape, extract, and deep research are asynchronous. You start a job and then poll its status endpoint, such as GET `/crawl/{id}` or GET `/extract/{id}`, until the results are ready, and each has matching error and cancel endpoints.

### Can the Firecrawl API extract structured data, not just page content?

Yes. POST /extract takes a schema and uses an LLM to pull matching fields from one or many pages, and POST /scrape can extract fields from a single URL in the same call. This returns normalized records rather than raw HTML, which is what agents and data pipelines usually want.

### What are the rate limits for the Firecrawl API?

The OpenAPI spec does not define numeric rate limits; usage is governed by your plan's credits and tokens, which you can read from GET `/team/credit-usage` and GET `/team/token-usage.` Check https://firecrawl.dev for current plan limits.

### Can I limit what my agent is allowed to do with the Firecrawl API through Jentic?

Yes. You control which operations the agent may call, so you can allow POST /scrape and POST /search for read-style work while withholding cancellation and feedback endpoints. Every call the agent makes runs through your own instance and is logged, so its permissions stay under your control.

### Is there a Firecrawl MCP server?

You don't need a separate MCP server to give your agent Firecrawl. Jentic connects it directly from the API Directory: import the API and your agent calls scrape, crawl, and extract on demand without loading another server's tool definitions into its context.
