Firecrawl
App · AI Agents · 20 actions
Turn any website into clean, AI-ready data: scrape pages to Markdown, map and crawl whole sites, search the web with full page content, and send a research agent to find information for you.
Actions
| Action | What it does |
|---|---|
| Cancel a batch scrape | Stop a running batch scrape so it reads, and costs, no more pages. |
| Cancel a crawl | Stop a running crawl so it reads, and costs, no more pages. |
| Cancel an agent run | Stop an agent run that is still working. |
| Check a batch scrape | See how far a batch scrape has got and get the pages it has read so far. |
| Check a crawl | See how far a crawl has got and get the pages it has read so far. |
| Check an agent run | See whether an agent run has finished and get its answer. |
| Check credit usage | See how many credits are left this billing period. |
| Check the job queue | See how many of the account's jobs are running or waiting, and how many can run at once. |
| Crawl a site | Read a whole site by following its links, and get every page's content. |
| List a batch scrape's errors | See which pages a batch scrape could not read and why, and which ones robots.txt kept it out of. |
| List a crawl's errors | See which pages a crawl could not read and why, and which ones the site's robots.txt kept it out of. |
| List agent runs | List the account's agent runs, newest first, twenty at a time. |
| List recent activity | List the account's scrapes, crawls, searches and other jobs from the last 24 hours, newest first. |
| List running crawls | List every crawl on the account that is still running. |
| Map a site | List every address on a website without reading the pages. |
| Preview crawl settings | Describe in plain words what to crawl and see the settings Firecrawl would use, without starting a crawl or spending page credits. |
| Scrape a list of pages | Read a list of pages in the background, with the same options as 'Scrape a page'. |
| Scrape a page | Read a web page and get it back as clean Markdown, ready for an AI step. |
| Search the web | Search the web, news or images and get the results as data. |
| Start an agent run | Give Firecrawl's research agent a task in plain words; it searches and browses on its own and returns the data. |
Cancel a batch scrape
Stop a running batch scrape so it reads, and costs, no more pages.
Inputs
- Batch scrape
batch_idtextRequired - The batch scrape's id, as 'Scrape a list of pages' gave it back.
Outputs
batch_idtextcancelledtrue/falsestatustext
Example output
{
"batch_id": "3a6f1d90-2b4c-4f1e-9f3a-8c2d5e7b1a04",
"cancelled": true,
"status": "cancelled"
}Cancel a crawl
Stop a running crawl so it reads, and costs, no more pages. The pages already read stay available through 'Check a crawl'.
Inputs
- Crawl
crawl_idtextRequired - The crawl's id, as 'Crawl a site' gave it back.
Outputs
cancelledtrue/falsecrawl_idtextstatustext
Example output
{
"cancelled": true,
"crawl_id": "3a6f1d90-2b4c-4f1e-9f3a-8c2d5e7b1a04",
"status": "cancelled"
}Cancel an agent run
Stop an agent run that is still working.
Inputs
- Agent run
agent_idtextRequired - The run's id, as 'Start an agent run' gave it back.
Outputs
agent_idtextcancelledtrue/false
Example output
{
"agent_id": "3a6f1d90-2b4c-4f1e-9f3a-8c2d5e7b1a04",
"cancelled": true
}Check a batch scrape
See how far a batch scrape has got and get the pages it has read so far. 'is_finished' says whether more is still coming.
Inputs
- Batch scrape
batch_idtextRequired - The batch scrape's id, as 'Scrape a list of pages' gave it back.
Outputs
batch_idtext- The batch scrape checked.
completed_attextcreated_attextcredits_usednumber- Credits spent so far.
expires_attext- When Firecrawl discards the results.
has_more_pagestrue/false- True when there were more pages than one step fetches.
is_finishedtrue/false- True once nothing more will happen.
page_countnumber- How many pages are in this response.
pageslist- The pages read so far.
pages_completednumber- How many pages have been read.
pages_totalnumber- How many pages the job knows about.
statustext- scraping, completed, failed or cancelled.
Example output
{
"batch_id": "3a6f1d90-2b4c-4f1e-9f3a-8c2d5e7b1a04",
"completed_at": "2026-09-21T10:00:20Z",
"created_at": "2026-09-21T10:00:00Z",
"credits_used": 1,
"expires_at": "2026-09-22T10:00:00Z",
"has_more_pages": false,
"is_finished": true,
"page_count": 1,
"pages": [
{
"answer": null,
"description": "Plans and prices.",
"error": null,
"final_url": "https://example.com/pricing",
"html": null,
"images": [],
"json": null,
"language": "en",
"links": [
"https://example.com/signup"
],
"markdown": "# Pricing\n\nStarter is $19 a month...",
"metadata": {
"statusCode": 200,
"title": "Pricing"
},
"raw_html": null,
"screenshot": null,
"status_code": 200,
"summary": null,
"title": "Pricing",
"url": "https://example.com/pricing",
"warning": null
}
],
"pages_completed": 1,
"pages_total": 1,
"status": "completed"
}Check a crawl
See how far a crawl has got and get the pages it has read so far. 'is_finished' says whether more is still coming.
Inputs
- Crawl
crawl_idtextRequired - The crawl's id, as 'Crawl a site' gave it back.
Outputs
completed_attextcrawl_idtext- The crawl checked.
created_attextcredits_usednumber- Credits spent so far.
expires_attext- When Firecrawl discards the results.
has_more_pagestrue/false- True when there were more pages than one step fetches.
is_finishedtrue/false- True once nothing more will happen.
page_countnumber- How many pages are in this response.
pageslist- The pages read so far.
pages_completednumber- How many pages have been read.
pages_totalnumber- How many pages the job knows about.
statustext- scraping, completed, failed or cancelled.
Example output
{
"completed_at": "2026-09-21T10:00:20Z",
"crawl_id": "3a6f1d90-2b4c-4f1e-9f3a-8c2d5e7b1a04",
"created_at": "2026-09-21T10:00:00Z",
"credits_used": 1,
"expires_at": "2026-09-22T10:00:00Z",
"has_more_pages": false,
"is_finished": true,
"page_count": 1,
"pages": [
{
"answer": null,
"description": "Plans and prices.",
"error": null,
"final_url": "https://example.com/pricing",
"html": null,
"images": [],
"json": null,
"language": "en",
"links": [
"https://example.com/signup"
],
"markdown": "# Pricing\n\nStarter is $19 a month...",
"metadata": {
"statusCode": 200,
"title": "Pricing"
},
"raw_html": null,
"screenshot": null,
"status_code": 200,
"summary": null,
"title": "Pricing",
"url": "https://example.com/pricing",
"warning": null
}
],
"pages_completed": 1,
"pages_total": 1,
"status": "completed"
}Check an agent run
See whether an agent run has finished and get its answer. Answers are kept for 24 hours.
Inputs
- Agent run
agent_idtextRequired - The run's id, as 'Start an agent run' gave it back.
Outputs
agent_idtextcredits_usednumberefforttexterrortext- Why the run failed.
expires_attextis_finishedtrue/falsemodeltextresultobject- The agent's answer, once it has finished.
statustext- processing, completed or failed.
Example output
{
"agent_id": "3a6f1d90-2b4c-4f1e-9f3a-8c2d5e7b1a04",
"credits_used": 15,
"effort": "low",
"error": null,
"expires_at": "2026-09-22T10:00:00Z",
"is_finished": true,
"model": "spark-2",
"result": {
"founders": [
{
"name": "Ada Lovelace"
}
]
},
"status": "completed"
}Check credit usage
See how many credits are left this billing period. Costs nothing, so it also makes a good first step for checking the connection.
Inputs
None.
Outputs
billing_period_endtextbilling_period_starttextplan_creditsnumberremaining_creditsnumber
Example output
{
"billing_period_end": "2026-10-01T00:00:00Z",
"billing_period_start": "2026-09-01T00:00:00Z",
"plan_credits": 1000,
"remaining_credits": 940
}Check the job queue
See how many of the account's jobs are running or waiting, and how many can run at once.
Inputs
None.
Outputs
active_jobsnumberjobs_in_queuenumbermax_concurrencynumbermost_recent_successtextwaiting_jobsnumber
Example output
{
"active_jobs": 1,
"jobs_in_queue": 1,
"max_concurrency": 2,
"most_recent_success": "2026-09-21T10:00:20Z",
"waiting_jobs": 0
}Crawl a site
Read a whole site by following its links, and get every page's content. The crawl keeps running after this step, so follow it with a Wait step and 'Check a crawl'.
Inputs
- Start at
urltextRequired - Where the crawl begins. Only pages under this address are read unless 'Crawl the whole domain' is on.
- Stop after
page_limitnumber - The most pages to read. Each page costs a credit, so start small and raise it once the results look right.From 1 to 10000. Default:
10. - Describe what to crawl
prompttext - Say in plain words which pages you want, such as 'only the blog posts'. Firecrawl turns it into settings; any setting below overrides it.
- Only pages matching
include_pathslist - Patterns a page's path must match, such as ^/blog/.*. Leave empty to read everything found.
- Skip pages matching
exclude_pathslist - Patterns for paths to leave out, such as ^/tag/.*.
- Links deep
max_discovery_depthnumber - How many links away from the start page to go. 0 reads only the start page and its sitemap.From 0 to 100.
- Sitemap
sitemaptext - How to use the site's sitemap. Firecrawl uses it and follows links if unset.One of:
include(Use the sitemap and follow links),skip(Ignore the sitemap, follow links only),only(Use only the sitemap). - Crawl the whole domain
crawl_entire_domaintrue/false - Follow links anywhere on the site, not only under the starting address.Default:
false. - Follow subdomains
allow_subdomainstrue/false - Follow links to subdomains such as blog.example.com.Default:
false. - Follow links to other sites
allow_external_linkstrue/false - Let the crawl leave the site. Keep the page limit small.Default:
false. - Treat ?query variants as one page
ignore_query_parameterstrue/false - Read an address once, whatever follows its '?'.Default:
false. - Pause between pages
delay_secondsnumber - Seconds to wait between pages, to go easy on a small site. Setting it reads one page at a time.From 0 to 60. Default:
0. - Pages at once
max_concurrencynumber - The most pages to read at the same time. Leave empty for your plan's limit (2 on the free plan).From 1 to 100.
- Bring back
formatslist - What each page should come back as. Readable text is Markdown with the clutter stripped out, which is what most steps want. A summary or a screenshot costs extra credits.One or more of:
markdown(Readable text (Markdown)),summary(A short summary),html(Tidied HTML),rawHtml(Raw HTML),links(Every link on the page),images(Every image on the page),screenshot,screenshot@fullPage(Full-page screenshot). Default:["markdown"]. - Skip navigation and footers
only_main_contenttrue/false - Keep only the main body of each page. Turn this off when what you need lives in a header, a sidebar or a footer.Default:
true.
Outputs
crawl_idtext- Pass this to 'Check a crawl' to read the pages.
page_limitnumber- The most pages this crawl will read.
urltext- Where the crawl started.
Example output
{
"crawl_id": "3a6f1d90-2b4c-4f1e-9f3a-8c2d5e7b1a04",
"page_limit": 10,
"url": "https://example.com/docs/"
}List a batch scrape's errors
See which pages a batch scrape could not read and why, and which ones robots.txt kept it out of.
Inputs
- Batch scrape
batch_idtextRequired - The batch scrape's id, as 'Scrape a list of pages' gave it back.
Outputs
batch_idtextblocked_by_robotslist- Addresses the site's robots.txt ruled out.
blocked_countnumberfailed_countnumberfailed_pageslist- Each page that failed, with its address and reason.
Example output
{
"batch_id": "3a6f1d90-2b4c-4f1e-9f3a-8c2d5e7b1a04",
"blocked_by_robots": [
"https://example.com/private"
],
"blocked_count": 1,
"failed_count": 1,
"failed_pages": [
{
"error": "404 Not Found",
"id": "9d1f0c2e-4b1a-4e8e-9d52-7b1c1c0e2a11",
"timestamp": "2026-09-21T10:00:10Z",
"url": "https://example.com/docs/old"
}
]
}List a crawl's errors
See which pages a crawl could not read and why, and which ones the site's robots.txt kept it out of.
Inputs
- Crawl
crawl_idtextRequired - The crawl's id, as 'Crawl a site' gave it back.
Outputs
blocked_by_robotslist- Addresses the site's robots.txt ruled out.
blocked_countnumbercrawl_idtextfailed_countnumberfailed_pageslist- Each page that failed, with its address and reason.
Example output
{
"blocked_by_robots": [
"https://example.com/private"
],
"blocked_count": 1,
"crawl_id": "3a6f1d90-2b4c-4f1e-9f3a-8c2d5e7b1a04",
"failed_count": 1,
"failed_pages": [
{
"error": "404 Not Found",
"id": "9d1f0c2e-4b1a-4e8e-9d52-7b1c1c0e2a11",
"timestamp": "2026-09-21T10:00:10Z",
"url": "https://example.com/docs/old"
}
]
}List agent runs
List the account's agent runs, newest first, twenty at a time.
Inputs
- Started before
beforedate and time - Only runs started before this moment. Pass the previous step's 'next_before' to get the next twenty.
Outputs
has_moretrue/falsenext_beforetext- Pass this as 'Started before' to get the next twenty.
run_countnumberrunslist- The runs, newest first.
Example output
{
"has_more": false,
"next_before": null,
"run_count": 1,
"runs": [
{
"agent_id": "3a6f1d90-2b4c-4f1e-9f3a-8c2d5e7b1a04",
"created_at": "2026-09-21T10:00:00Z",
"effort": "low",
"label": null,
"origin": "api",
"prompt": "Find the founders of example.com",
"status": "completed",
"urls": []
}
]
}List recent activity
List the account's scrapes, crawls, searches and other jobs from the last 24 hours, newest first.
Inputs
- Only
endpointtext - Only this kind of job. Every kind if unset.One of:
scrape(Page reads),batch_scrape(Batch reads),crawl(Crawls),map(Site maps),search(Searches),agent(Agent runs). - At most
limitnumber - The most jobs to return.From 1 to 100. Default:
50. - Continue from
cursortext - The previous step's 'next_cursor', to get the next page.
Outputs
activitieslist- Jobs from the last 24 hours, newest first.
activity_countnumberhas_moretrue/falsenext_cursortext- Pass this as 'Continue from' to get the next page.
Example output
{
"activities": [
{
"api_version": "v2",
"created_at": "2026-09-21T10:00:00Z",
"endpoint": "scrape",
"job_id": "3a6f1d90-2b4c-4f1e-9f3a-8c2d5e7b1a04",
"target": "https://example.com"
}
],
"activity_count": 1,
"has_more": false,
"next_cursor": null
}List running crawls
List every crawl on the account that is still running.
Inputs
None.
Outputs
crawl_countnumbercrawlslist- The crawls still running.
Example output
{
"crawl_count": 1,
"crawls": [
{
"crawl_id": "3a6f1d90-2b4c-4f1e-9f3a-8c2d5e7b1a04",
"options": {},
"status": null,
"url": "https://example.com/docs/"
}
]
}Map a site
List every address on a website without reading the pages. Quick and cheap; use it to find the pages worth scraping, or search the list for a topic.
Inputs
- Site address
urltextRequired - The website to map.
- Most relevant to
searchtext - Order the addresses by how well they match this, such as 'pricing' or 'blog'.
- At most
limitnumber - The most addresses to return.From 1 to 100000. Default:
100. - Sitemap
sitemaptext - How to use the site's sitemap. Firecrawl uses it and follows links if unset.One of:
include(Use the sitemap and follow links),skip(Ignore the sitemap, follow links only),only(Use only the sitemap). - Include subdomains
include_subdomainstrue/false - Also list addresses on subdomains such as blog.example.com.Default:
true. - Treat ?query variants as one page
ignore_query_parameterstrue/false - List an address once, whatever follows its '?'.Default:
true. - Give up after
timeout_secondsnumber - Seconds to try for before giving up.From 1 to 300.
- Browse from
countrytext - Load pages from this country, for sites that show different prices or content by location. Firecrawl uses the United States if unset.One of:
AR(Argentina),AU(Australia),AT(Austria),BD(Bangladesh),BE(Belgium),BR(Brazil),BG(Bulgaria),CA(Canada),CL(Chile),CN(China), and 52 more.
Outputs
link_countnumberlinkslist- Every address found, with its title where known.
urltexturlslist- The same addresses, as plain text.
Example output
{
"link_count": 1,
"links": [
{
"description": "Plans and prices.",
"title": "Pricing",
"url": "https://example.com/pricing"
}
],
"url": "https://example.com",
"urls": [
"https://example.com/pricing"
]
}Preview crawl settings
Describe in plain words what to crawl and see the settings Firecrawl would use, without starting a crawl or spending page credits.
Inputs
- Start at
urltextRequired - Where the crawl would begin.
- Describe what to crawl
prompttextRequired - Which pages you want, such as 'only the blog posts from 2025'.
Outputs
allow_external_linkstrue/falseallow_subdomainstrue/falsecrawl_entire_domaintrue/falsedelay_secondsnumberexclude_pathslist- Pages matching these are skipped.
ignore_query_parameterstrue/falseinclude_pathslist- Only pages matching these.
max_discovery_depthnumberpage_limitnumbersettingsobject- Everything Firecrawl suggested, in its own words.
sitemaptexturltext
Example output
{
"allow_external_links": false,
"allow_subdomains": false,
"crawl_entire_domain": false,
"delay_seconds": null,
"exclude_paths": [],
"ignore_query_parameters": null,
"include_paths": [
"^/blog/.*"
],
"max_discovery_depth": null,
"page_limit": null,
"settings": {
"includePaths": [
"^/blog/.*"
],
"url": "https://example.com"
},
"sitemap": "include",
"url": "https://example.com"
}Scrape a list of pages
Read a list of pages in the background, with the same options as 'Scrape a page'. Follow it with a Wait step and 'Check a batch scrape' to get the pages.
Inputs
- Page addresses
urlslistRequired - The pages to read, up to 1,000. Feed this the addresses from 'Map a site'.
- Bring back
formatslist - What each page should come back as. Readable text is Markdown with the clutter stripped out, which is what most steps want. A summary or a screenshot costs extra credits.One or more of:
markdown(Readable text (Markdown)),summary(A short summary),html(Tidied HTML),rawHtml(Raw HTML),links(Every link on the page),images(Every image on the page),screenshot,screenshot@fullPage(Full-page screenshot). Default:["markdown"]. - Skip navigation and footers
only_main_contenttrue/false - Keep only the main body of each page. Turn this off when what you need lives in a header, a sidebar or a footer.Default:
true. - Ask about the page
questiontext - A question to answer from the page's content, such as 'What does the cheapest plan cost?'. The answer comes back as 'answer'.
- Pull out data
extract_prompttext - Describe the data to pull out of the page, such as 'every plan's name and monthly price'. It comes back as 'json'.
- Data shape
extract_schemaobject - Optional JSON Schema the pulled-out data must follow, for results the next step can rely on field by field.
- Only these parts
include_tagslist - HTML tags, classes or ids to keep, such as article or .price. Leave empty to keep the whole page.
- Leave out these parts
exclude_tagslist - HTML tags, classes or ids to drop, such as nav or #cookie-banner.
- Wait before reading
wait_secondsnumber - Seconds to let the page finish loading before it is read. Raise it for a page that fills itself in after it opens.From 0 to 60. Default:
0. - Give up after
timeout_secondsnumber - Seconds to try for before giving up. Firecrawl's default is 60.From 1 to 300.
- Read as a phone
mobiletrue/false - Load the page as a phone would see it.Default:
false. - Browse from
countrytext - Load pages from this country, for sites that show different prices or content by location. Firecrawl uses the United States if unset.One of:
AR(Argentina),AU(Australia),AT(Austria),BD(Bangladesh),BE(Belgium),BR(Brazil),BG(Bulgaria),CA(Canada),CL(Chile),CN(China), and 52 more. - Way in
proxytext - How Firecrawl reaches the page. Automatic tries Basic first and switches to Enhanced if the site blocks it.One of:
auto(Automatic (recommended)),basic(Basic, the fastest),enhanced(Enhanced, for sites that block scrapers). - Block ads and cookie pop-ups
block_adstrue/false - Strip ads and cookie banners before the page is read.Default:
true. - Accept a cached copy up to
max_age_hoursnumber - Hours old a cached copy of the page may be. Firecrawl reuses copies up to 48 hours old unless told otherwise; 0 always reads it fresh.From 0 to 720.
- Pages at once
max_concurrencynumber - The most pages to read at the same time. Leave empty for your plan's limit (2 on the free plan).From 1 to 100.
- Skip bad addresses
skip_invalid_urlstrue/false - Leave out addresses that are not valid and read the rest, rather than refusing the whole list.Default:
true.
Outputs
batch_idtext- Pass this to 'Check a batch scrape' to read the pages.
invalid_urlslist- Addresses Firecrawl could not treat as pages.
url_countnumber- How many addresses were sent.
Example output
{
"batch_id": "3a6f1d90-2b4c-4f1e-9f3a-8c2d5e7b1a04",
"invalid_urls": [],
"url_count": 2
}Scrape a page
Read a web page and get it back as clean Markdown, ready for an AI step. Can also summarise it, answer a question about it, pull out structured data, or take a screenshot.
Inputs
- Page address
urltextRequired - The address of the page to read.
- Bring back
formatslist - What each page should come back as. Readable text is Markdown with the clutter stripped out, which is what most steps want. A summary or a screenshot costs extra credits.One or more of:
markdown(Readable text (Markdown)),summary(A short summary),html(Tidied HTML),rawHtml(Raw HTML),links(Every link on the page),images(Every image on the page),screenshot,screenshot@fullPage(Full-page screenshot). Default:["markdown"]. - Skip navigation and footers
only_main_contenttrue/false - Keep only the main body of each page. Turn this off when what you need lives in a header, a sidebar or a footer.Default:
true. - Ask about the page
questiontext - A question to answer from the page's content, such as 'What does the cheapest plan cost?'. The answer comes back as 'answer'.
- Pull out data
extract_prompttext - Describe the data to pull out of the page, such as 'every plan's name and monthly price'. It comes back as 'json'.
- Data shape
extract_schemaobject - Optional JSON Schema the pulled-out data must follow, for results the next step can rely on field by field.
- Only these parts
include_tagslist - HTML tags, classes or ids to keep, such as article or .price. Leave empty to keep the whole page.
- Leave out these parts
exclude_tagslist - HTML tags, classes or ids to drop, such as nav or #cookie-banner.
- Wait before reading
wait_secondsnumber - Seconds to let the page finish loading before it is read. Raise it for a page that fills itself in after it opens.From 0 to 60. Default:
0. - Give up after
timeout_secondsnumber - Seconds to try for before giving up. Firecrawl's default is 60.From 1 to 300.
- Read as a phone
mobiletrue/false - Load the page as a phone would see it.Default:
false. - Browse from
countrytext - Load pages from this country, for sites that show different prices or content by location. Firecrawl uses the United States if unset.One of:
AR(Argentina),AU(Australia),AT(Austria),BD(Bangladesh),BE(Belgium),BR(Brazil),BG(Bulgaria),CA(Canada),CL(Chile),CN(China), and 52 more. - Way in
proxytext - How Firecrawl reaches the page. Automatic tries Basic first and switches to Enhanced if the site blocks it.One of:
auto(Automatic (recommended)),basic(Basic, the fastest),enhanced(Enhanced, for sites that block scrapers). - Block ads and cookie pop-ups
block_adstrue/false - Strip ads and cookie banners before the page is read.Default:
true. - Accept a cached copy up to
max_age_hoursnumber - Hours old a cached copy of the page may be. Firecrawl reuses copies up to 48 hours old unless told otherwise; 0 always reads it fresh.From 0 to 720.
Outputs
answertext- The answer to the question asked about the page.
descriptiontext- The page's own one-line summary, where it has one.
errortext- What went wrong with this page, if anything did.
final_urltext- Where the address ended up after any redirects.
htmltext- The page's tidied HTML.
imageslist- Every image on the page, when asked for.
jsonobject- The data extracted from the page, when a prompt or schema was given.
languagetext- The page's language.
linkslist- Every link on the page, when asked for.
markdowntext- The page's readable text, as Markdown.
metadataobject- Everything else the page declared about itself.
raw_htmltext- The page's HTML exactly as sent.
screenshottext- The address of a screenshot of the page, when asked for.
status_codenumber- The HTTP status the site answered with.
summarytext- A short summary of the page, when asked for.
titletext- The page's title.
urltext- The address that was read.
warningtext- Anything Firecrawl wants you to know about this read.
Example output
{
"answer": null,
"description": "Plans and prices.",
"error": null,
"final_url": "https://example.com/pricing",
"html": null,
"images": [],
"json": null,
"language": "en",
"links": [
"https://example.com/signup"
],
"markdown": "# Pricing\n\nStarter is $19 a month...",
"metadata": {
"statusCode": 200,
"title": "Pricing"
},
"raw_html": null,
"screenshot": null,
"status_code": 200,
"summary": null,
"title": "Pricing",
"url": "https://example.com/pricing",
"warning": null
}Search the web
Search the web, news or images and get the results as data. Optionally read every result's page in the same step, so the next step gets the full text rather than a snippet.
Inputs
- Search for
querytextRequired - What to search for. Operators such as site: and "quoted phrases" work.
- Search in
sourceslist - Where to search. Web pages if unset.One or more of:
web(Web pages),news,images. Default:["web"]. - Results
limitnumber - How many results to return from each place searched.From 1 to 100. Default:
5. - Only these kinds of site
categorieslist - Narrow web results to these kinds of site.One or more of:
developer(Developer sites and code),research(Research papers),pdf(PDFs). - From the
time_rangetext - Only results from this recent period.One of:
hour(Past hour),day(Past 24 hours),week(Past week),month(Past month),year(Past year). - Published on or after
published_afterdate - Only results from this date on. Use instead of 'From the'.
- Published on or before
published_beforedate - Only results up to this date. Use instead of 'From the'.
- Only these sites
include_domainslist - Only results from these domains, such as example.com.
- Not these sites
exclude_domainslist - Leave out results from these domains. Use this or 'Only these sites', not both.
- Search from
countrytext - Get the results someone in this country would see.One of:
AR(Argentina),AU(Australia),AT(Austria),BD(Bangladesh),BE(Belgium),BR(Brazil),BG(Bulgaria),CA(Canada),CL(Chile),CN(China), and 52 more. - Search near
locationtext - A place to search as if you were in it, such as San Francisco,California,United States.
- Hide explicit results
safe_searchtrue/false - Turn safe search on.Default:
false. - Also read each result as
result_formatslist - Read every result's page too, and return it in these formats. Each page read costs extra credits; leave empty for titles, links and snippets only.One or more of:
markdown(Readable text (Markdown)),summary(A short summary),html(Tidied HTML),rawHtml(Raw HTML),links(Every link on the page),screenshot. - Skip navigation and footers
only_main_contenttrue/false - When reading result pages, keep only their main body.Default:
true. - Give up after
timeout_secondsnumber - Seconds to try for before giving up. Firecrawl's default is 60.From 1 to 300.
Outputs
credits_usednumberimageslist- Image results, when images were searched.
newslist- News results, when news was searched.
querytextresult_countnumbersearch_idtextwarningtextweblist- Web results, best first.
Example output
{
"credits_used": 2,
"images": [],
"news": [],
"query": "firecrawl",
"result_count": 1,
"search_id": "3a6f1d90-2b4c-4f1e-9f3a-8c2d5e7b1a04",
"warning": null,
"web": [
{
"description": "Turn websites into LLM-ready data.",
"title": "Firecrawl",
"url": "https://www.firecrawl.dev"
}
]
}Start an agent run
Give Firecrawl's research agent a task in plain words; it searches and browses on its own and returns the data. Runs in the background, so follow it with 'Check an agent run'. The free plan includes 5 runs a day.
Inputs
- Task
prompttextRequired - What to find, such as 'the founders of example.com and their LinkedIn profiles'.
- Start from
urlslist - Pages the agent should start from. Optional.
- Stay on those pages
stay_on_urlstrue/false - Keep the agent to the pages under 'Start from'.Default:
false. - Answer shape
output_schemaobject - Optional JSON Schema the answer must follow, for results the next step can rely on field by field.
- Effort
efforttext - How hard the agent should work. Higher effort costs more.One of:
low(Low: quickest and cheapest),medium,high(High: most thorough). - Spend at most
max_creditsnumber - The most credits this run may spend. Firecrawl's default is 2,500; a run that hits the cap fails and is refunded.From 1 to 100000.
Outputs
agent_idtext- Pass this to 'Check an agent run' for the answer.
Example output
{
"agent_id": "3a6f1d90-2b4c-4f1e-9f3a-8c2d5e7b1a04"
}