
by Faro
Turn any web page into clean, LLM-ready Markdown. Firecrawl fetches a URL, renders the JavaScript, strips the chrome, and hands back the content an agent actually needs — no proxies, no headless-browser plumbing, no anti-bot fights to manage yourself. Use it whenever an agent needs the readable content of a URL (research, RAG, summarization), or to quickly discover what URLs exist on a site before deciding what to scrape.
Fetch a single URL and return its content as clean Markdown (or HTML, raw text, screenshot, or links). Handles JavaScript rendering, anti-bot, and proxy rotation automatically — the agent just supplies a URL. Ideal for reading articles, docs pages, PDFs, or any page an agent needs to reason about. Supports per-call options like `formats`, `onlyMainContent`, `waitFor` (for dynamic pages), `includeTags` / `excludeTags`, and `actions` (click, scroll, type) before extraction.
The URL to scrape
Specifies the type of proxy to use. - **basic**: Proxies for scraping sites with none to basic anti-bot solutions. Fast and usually works. - **enhanced**: Enhanced proxies for scraping sites with advanced anti-bot solutions. Slower, but more reliable on certain sites. Costs up to 5 credits per request. - **auto**: Firecrawl will automatically retry scraping with enhanced proxies if the basic proxy fails. If the retry with enhanced is successful, 5 credits will be billed for the scrape. If the first attempt with basic is successful, only the regular cost will be billed. If you do not specify a proxy, Firecrawl will default to basic.
Returns a cached version of the page if it is younger than this age in milliseconds. If a cached version of the page is older than this value, the page will be scraped. If you do not need extremely fresh data, enabling this can speed up your scrapes by 500%. Defaults to 0, which disables caching.
Set to true if you want to emulate scraping from a mobile device. Useful for testing responsive pages and taking mobile screenshots.
Actions to perform on the page before grabbing the content
Formats to include in the output.
Headers to send with the request. Can be used to send cookies, user-agent, etc.
Timeout in milliseconds for the request
Specify a delay in milliseconds before fetching the content, allowing the page sufficient time to load.
Enables ad-blocking and cookie popup blocking.
Location settings for the request. When specified, this will use an appropriate proxy if available and emulate the corresponding language and timezone settings. Defaults to 'US' if not specified.
Controls how PDF files are processed during scraping. When true, the PDF content is extracted and converted to markdown format, with billing based on the number of pages (1 credit per page). When false, the PDF file is returned in base64 encoding with a flat rate of 1 credit total.
Tags to exclude from the output.
Tags to include in the output.
JSON options object
If true, the page will be stored in the Firecrawl index and cache. Setting this to false is useful if your scraping activity may have data protection concerns. Using some parameters associated with sensitive scraping (actions, headers) will force this parameter to be false.
Only return the main content of the page excluding headers, navs, footers, etc.
Removes all base 64 images from the output, which may be overwhelmingly long. The image's alt text remains in the output, but the URL is replaced with a placeholder.
Skip TLS certificate verification when making requests
Options for change tracking (Beta). Only applicable when 'changeTracking' is included in formats. The 'markdown' format must also be specified when using change tracking.
curl -X POST "https://api.askfaro.com/invoke/firecrawl/scrapeAndExtractFromUrl" \
-H "Authorization: Bearer <your_api_key>" \
-H "Content-Type: application/json" \
-d '{
"arguments": {
"url": "<url>"
}
}'faro invoke firecrawl/scrapeAndExtractFromUrl --params '{"url":"<url>"}'Install pip install askfaro-cli, then faro auth login.
Given a starting URL, return up to N URLs from the same site without scraping their content — a fast, cheap way to discover the shape of a site before deciding what to scrape. Use it as a precursor to `scrapeAndExtractFromUrl` for crawling-style workflows, or to find all docs/blog/product URLs on a domain. Supports `search` (filter URLs by keyword), `limit`, and `includeSubdomains`.
The base URL to start crawling from
Maximum number of links to return
Search query to use for mapping. During the Alpha phase, the 'smart' part of the search functionality is limited to 1000 search results. However, if map finds more results, there is no limit applied.
Timeout in milliseconds. There is no timeout by default.
Only return links found in the website sitemap
Ignore the website sitemap when crawling.
Include subdomains of the website
curl -X POST "https://api.askfaro.com/invoke/firecrawl/mapUrls" \
-H "Authorization: Bearer <your_api_key>" \
-H "Content-Type: application/json" \
-d '{
"arguments": {
"url": "<url>"
}
}'faro invoke firecrawl/mapUrls --params '{"url":"<url>"}'Install pip install askfaro-cli, then faro auth login.
Firecrawl turns any web page into clean, LLM-ready Markdown. Give it a URL, get back the content an agent can actually reason about — no headless-browser plumbing, no anti-bot fights, no proxy management.
Two sync tools, billed per call:
| Tool | What it does | Pricing |
|---|---|---|
scrapeAndExtractFromUrl | Fetch one URL → Markdown, HTML, raw text, screenshot, or links. Handles JS rendering, anti-bot, proxies. | 6 credits per page scraped (≈ $0.006). Heavier formats (PDF, JS-render, screenshot) consume more pages internally. |
mapUrls | Discover up to N URLs on a site without scraping their content. | 6 credits per call (≈ $0.006). |
scrapeAndExtractFromUrlmapUrls, then loop into scrapeAndExtractFromUrlformats: ["markdown"] and onlyMainContent: true — strips navigation and footers.waitFor (ms) to let the page settle before extraction.actions array to click/scroll/type before scraping.data.metadata.creditsUsed so the agent can budget precisely.scrapeAndExtractFromUrl. For many URLs, loop — batch scraping is async and not exposed yet.mapUrls caps at the upstream's per-call limit (typically 5,000 URLs).waitFor explicitly.