Firecrawl
Scrape, crawl, and search web pages with AI-friendly extraction via Firecrawl.
On this page
Connect
Auth type: API key (secret_text). Paste the API key (or token) from the provider's settings into the connect dialog. It is encrypted at rest and only decrypted on the server when an action runs.
- In the editor: Backend panel, Integrations tab, then Connect. This connects it for the project.
- For every project in a workspace: Workspace settings, Integrations.
- Owners and admins choose which integrations members may connect in the admin panel (Integrations tab), and can attach their own OAuth app there.
Call it from a workflow
Pass the action name and its input. The call resolves with { success, output, error? }; a missing connection resolves with success false and the reason. See ctx.integrations.invoke and ctx.integrations.call.
// .workflow.js (native ctx)
export async function run(ctx) {
const res = await ctx.integrations.invoke("firecrawl", "crawl", {
"url": "<url>",
"formats": "<formats>"
});
if (!res.success) throw new Error(res.error);
ctx.log.info("Firecrawl answered", { output: res.output });
}// defineWorkflow module (@app/sdk ctx)
import { defineWorkflow } from "@app/sdk";
export default defineWorkflow({
id: "firecrawl-crawl",
name: "Firecrawl: Crawl",
description: "Calls Firecrawl when a row is created.",
trigger: { type: "entity_event", entity: "tickets", event: "created" },
async run(ctx, event) {
const res = await ctx.integrations.call("firecrawl", {
"action": "crawl",
"url": "<url>",
"formats": "<formats>"
}) as { success: boolean; error?: string };
if (!res.success) throw new Error(res.error);
},
});curl -X POST "$APP_ORIGIN/__appbricx/connector-proxy/firecrawl/crawl" \
-H "Authorization: Bearer $APP_KEY" \
-H "content-type: application/json" \
-d '{"props":{"url":"<url>","formats":"<formats>"}}'Actions
crawlin catalog
Crawl. Crawl multiple pages from a website based on specified rules and patterns.
| Input | Type | Description |
|---|---|---|
urlrequired | text | The base URL to start crawling from. |
promptoptional | long text | Describe what information you want to extract. |
limitoptional | number | Maximum number of pages to crawl. Default limit is 10. |
formatsrequired | id (picked from your account) | Choose what format you want your output in. |
onlyMainContentoptional | boolean | Only return the main content of the page, excluding headers, navs, footers, etc. |
extractModeoptional | object (depends on other props) | Data schema type. |
extractSchemaoptional | object (depends on other props) | Data Definition |
timeoutoptional | number | Timeout in seconds after which the task will be cancelled |
useWebhookoptional | boolean | Enable to send crawl results to a webhook URL. |
webhookPropertiesoptional | object (depends on other props) | Properties for webhook configuration. |
scrapein catalog
Scrape Website. Scrape a website by performing a series of actions like clicking, typing, taking screenshots, and extracting data.
| Input | Type | Description |
|---|---|---|
urlrequired | text | The webpage URL to scrape. |
timeoutoptional | number | Maximum time to wait for the page to load (in milliseconds). |
useActionsoptional | boolean | Enable to perform a sequence of actions on the page before scraping (like clicking buttons, filling forms, etc.). See [Firecrawl Actions Documentation](https://docs.firecrawl.dev/api-reference/endpoi… |
actionPropertiesoptional | object (depends on other props) | Properties for actions that will be performed on the page. |
formatsrequired | id (picked from your account) | Choose what format you want your output in. |
extractPromptoptional | object (depends on other props) | Prompt for extracting data. |
extractModeoptional | object (depends on other props) | Data schema type. |
extractSchemaoptional | object (depends on other props) | Data Definition |
crawlResults
Crawl Results. Get the results of a crawl job.
| Input | Type | Description |
|---|---|---|
crawlIdrequired | text | The ID of the crawl job to check. |
custom_api_call
Custom API Call. Make a custom API call to a specific endpoint
| Input | Type | Description |
|---|---|---|
urlrequired | object (depends on other props) | url |
methodrequired | one of "GET" | "POST" | "PATCH" | "PUT" | "DELETE" | "HEAD" | Method |
headersrequired | object | Authorization headers are injected automatically from your connection. |
queryParamsrequired | object | Query Parameters |
body_typeoptional | one of "none" | "json" | "form_data" | "raw" | Body Type |
bodyoptional | object (depends on other props) | Body |
response_is_binaryoptional | boolean | Enable for files like PDFs, images, etc. |
failsafeoptional | boolean | No Error on Failure |
timeoutoptional | number | Timeout (in seconds) |
followRedirectsoptional | boolean | Follow redirects |
extract
Extract Structured Data. Extract structured data from multiple URLs using AI.
| Input | Type | Description |
|---|---|---|
urlsrequired | array | Add one or more URLs to extract data from. |
promptoptional | long text | Describe what information you want to extract. |
enableWebSearchoptional | boolean | Enable web search to find additional context. |
timeoutoptional | number | Timeout in seconds after which the task will be cancelled |
moderequired | one of "simple" | "advanced" | For complex schema, you can use advanced mode. |
schemarequired | object (depends on other props) | Data Definition |
map
Map Websites. Input a website and get all the urls on the website.
| Input | Type | Description |
|---|---|---|
urlrequired | text | The webpage URL to start scraping from. |
subdomainoptional | boolean | Include and crawl pages from subdomains of the target website (e.g., blog.example.com, shop.example.com) in addition to the main domain. |
limitoptional | number | Maximum number of links to return (max: 100,000) |
Details
- Id
firecrawl- Category
- AI and ML
- Tags
- scraping, crawling, web, extraction, ai
- Package
@activepieces/piece-firecrawl@0.3.5- Tier
- Built in