Integrations / Firecrawl
Firecrawl
Scrape, search, map and crawl websites into clean markdown for AI.
5 actions
API key
4 read1 write
Calls api.firecrawl.dev
Connect
const conn = await setu.connections.initiate({ userId: "user_1", toolkit: "firecrawl" });
console.log(conn.connectUrl); // show this to your user
await conn.waitUntilActive();Permissions requested
This toolkit uses a single credential and requests no scopes.
Actions
Get crawl statusreadfirecrawl.get_crawl_statusCheck a crawl job by id and get its status, progress counts and the pages scraped so far.
| Input | Type | Description | |
|---|---|---|---|
id | string | Required | Crawl job id returned by start_crawl |
await setu.execute({
userId: "user_1",
action: "firecrawl.get_crawl_status",
input: {
"id": "<id>"
},
});Map a websitereadfirecrawl.mapList the URLs of a website quickly, optionally ordered by relevance to a search term.
| Input | Type | Description | |
|---|---|---|---|
url | string | Required | Base URL to map |
search | string | Optional | Order results by relevance to this query |
sitemap | string | Optional | How to use the sitemap |
includeSubdomains | boolean | Optional | Include subdomains (default true) |
limit | integer | Optional | Maximum links, up to 100000 (default 5000) |
await setu.execute({
userId: "user_1",
action: "firecrawl.map",
input: {
"url": "<url>"
},
});Scrape a pagereadfirecrawl.scrapeScrape one URL and return its content as markdown (or other formats) plus metadata.
| Input | Type | Description | |
|---|---|---|---|
url | string | Required | URL to scrape |
formats | array of string | Optional | Output formats, e.g. markdown, html, links, summary (default markdown) |
onlyMainContent | boolean | Optional | Return only the main content (default true) |
waitFor | integer | Optional | Milliseconds to wait before scraping |
timeout | integer | Optional | Timeout in milliseconds |
await setu.execute({
userId: "user_1",
action: "firecrawl.scrape",
input: {
"url": "<url>"
},
});Search the webreadfirecrawl.searchSearch the web and optionally scrape each result into markdown. Returns web results with titles, URLs and descriptions.
| Input | Type | Description | |
|---|---|---|---|
query | string | Required | Search query (max 500 characters) |
limit | integer | Optional | Number of results, 1 to 100 (default 10) |
includeDomains | array of string | Optional | Only these hostnames (not with excludeDomains) |
excludeDomains | array of string | Optional | Never these hostnames |
tbs | string | Optional | Time filter, e.g. qdr:w for the past week |
country | string | Optional | ISO country code (default US) |
scrapeOptions | object | Optional | Scrape settings for each result, e.g. {"formats": ["markdown"]} |
await setu.execute({
userId: "user_1",
action: "firecrawl.search",
input: {
"query": "<query>"
},
});Start a crawlwritefirecrawl.start_crawlStart an asynchronous crawl of a website from a base URL. Returns a job id to poll with get_crawl_status.
| Input | Type | Description | |
|---|---|---|---|
url | string | Required | Base URL to start crawling from |
limit | integer | Optional | Maximum pages to crawl |
maxDiscoveryDepth | integer | Optional | Maximum link depth from the start page |
includePaths | array of string | Optional | Regex patterns of paths to include |
excludePaths | array of string | Optional | Regex patterns of paths to exclude |
allowExternalLinks | boolean | Optional | Follow external links one hop |
allowSubdomains | boolean | Optional | Follow subdomains |
scrapeOptions | object | Optional | Per-page scrape settings, e.g. {"formats": ["markdown"]} |
await setu.execute({
userId: "user_1",
action: "firecrawl.start_crawl",
input: {
"url": "<url>"
},
});