NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
PyPI · #4164 most downloaded on PyPI
Python SDK for the Firecrawl API: web scraping, crawling, web search, and scientific literature search over a research paper index of PubMed, bioRxiv, medRxiv and arXiv abstracts
Last release 3 days ago
14 Sep 2026
Ships fairly regularly
a new release about every 2 weeks
No release notes found
nothing matched a version
Nothing withdrawn
no release was ever pulled
2 years old
174 releases · first in 2024
One column per month.
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
The legacy /v2/research/* mount is kept as a deprecated alias.
/scrape, /search, /interact, and /parse without an API key from official MCP, CLI, and SDK clients.redactPII option that strips personal and sensitive data like names, emails, phone numbers, addresses, and secrets out of scraped content before it's returned.deterministicJson format — Added a format that returns structured JSON without running an LLM on every request. Firecrawl generates a reusable extractor for your schema and caches it per site, so repeat scrapes are cheaper and return consistent results.video format to find videos on any page, not just supported providers like YouTube, returning each video's URL, title, thumbnail, duration, and more.cdpUrl) to browser session responses, so you can drive a live Firecrawl browser session directly with Playwright, Puppeteer, or any other CDP client.goal to monitors so an LLM judges each detected change as meaningful or noise against what you actually care about, cutting alert spam and surfacing the changes that matter first in summary emails.Monitor responses now report each recipient's subscription status.daily at 9am and daily at 5:30pm, converted to the correct UTC cron expression.crawl() scrape kwargs — Added direct scrape kwargs (formats, headers, include_tags, exclude_tags, etc.) to crawl() and start_crawl(), removing the need to wrap them in ScrapeOptions(...)..data errors — Improved the error raised when accessing .data on a search result to point at .web, .news, and .images with their counts, instead of returning a silent None.type= argument on JsonFormat and ChangeTrackingFormat, defaulting it like ScreenshotFormat.ChangeTrackingFormat casing — Added acceptance of both change_tracking and changeTracking for the format type so payloads round-trip between snake_case and camelCase clients.axios, esbuild, ws, openssl, and other dependencies.metadata.ogImage on roughly half of Wikimedia URLs.status reports cancelled immediately.skipped_no_credits and stop the run.changed verdicts when field values were identical but reordered; diffs now use order-insensitive equality.changed on every run.monitor.page and monitor.check.completed payloads in an array to match the crawl/batch shape.GET /v2/monitor/:id/checks/:checkId; bad data now surfaces as no diff.td cells; the markdown converter now promotes it to a header so column labels survive into document.markdown.ChangeTrackingFormat options (modes, prompt, and related fields) being dropped through Python SDK serialization round-trips.pii format with redactPII (boolean or { mode?, entities?, replaceStyle? }) on POST /v2/scrape, /v2/batch/scrape, /v2/crawl, /v2/parse, and /v2/extract; when enabled, document.markdown returns redacted text (defaults mode: "accurate", replaceStyle: "tag"). The old pii format and document.pii block are removed, and requests including "pii" in formats are now rejected.deterministicJson format ({ type: "deterministicJson", schema?, prompt? }) to POST /v2/scrape, /v2/batch/scrape, /v2/crawl, /v2/parse, and /v2/extract, populating document.json. Cannot be combined with the json format.document.videos: VideoItem[] (with url, sourceURL, source, and optional title, thumbnail, duration, dimensions, and more) to POST /v2/scrape and the endpoints sharing its options when the video format is requested. The legacy document.video string remains for supported providers.createdAt, completedAt, and duration (seconds) to GET /v2/crawl/{id} and GET /v2/batch/scrape/{id}; completedAt is present only on terminal states./v2/search/research proxy — GET /v2/search/research/papers, /papers/:id, /papers/:id/similar, and /github — billed against SEARCH_CREDITS at 2 credits per 10 results (10 per 10 for ZDR teams). The legacy /v2/research/* mount is kept as a deprecated alias.POST/GET /interact, POST /interact/:sessionId/execute, and DELETE /interact/:sessionId as full aliases for the /v2/browser session endpoints; behavior, rate limits, and the 2-credit session-create charge are identical.cdpUrl (Python: cdp_url) to the POST /v2/scrape/:jobId/interact and /v2/browser execute responses, exposing the raw CDP WebSocket URL alongside the existing live-view URLs.POST /v2/feedback covering search, scrape, parse, and map jobs with shared recording and refund logic; the legacy POST /v2/search/:jobId/feedback keeps working and writes to the same store.POST /v2/parse, matching scrape and search, and tightened keyless credit accounting so concurrent requests stay within the per-IP daily cap.WWW-Authenticate: Bearer realm="firecrawl" header to all 401 responses across /v0, /v1, and /v2 so agent clients can discover the credential scheme.searchZDR values "forced-zdr" and "forced-anon" and deprecated "forced" (now an alias for "forced-zdr"); the resolved mode drives both billing and routing.goal and judgeEnabled to POST /v2/monitor and PATCH /v2/monitor/:id; judgeEnabled defaults to true when goal is set, and goal: null clears it.judgment, meaningfulChange (with a per-change reason), meaningfulChanges[], a structured diff object (text and/or json), and a snapshot field to monitor check pages; JSON-mode checks return field-level diffs plus a current-value snapshot.POST /v2/monitor/email/confirm and POST /v2/monitor/email/unsubscribe (token accepted in the request body only), plus an emailRecipientSubscriptions array on Monitor responses reporting each recipient's email, status (pending/confirmed/unsubscribed), source, and confirmationEmailSent.origin to monitor create/update bodies, matching the other v2 endpoints.delay for POST /v2/crawl and POST /v1/crawl; non-numeric, negative, or values over 86400 are now rejected with a schema error instead of being silently applied.include_domains and exclude_domains to the Python SDK's sync Firecrawl.search(), matching the async client and the /v2/search payload.scrape_url/scrapeUrl, crawl_url/crawlUrl, batch_scrape_urls, map_url, etc.) on the V2 Python and JS clients; aliases emit a DeprecationWarning.data in an array; monitor.page now includes isMeaningful, judgment, and a diff object.scrapeOptions.formats so changeTracking json mode is rewritten to json, and the mixed ["json", "git-diff"] form now runs both diffs instead of silently falling back to one.Full Changelog: https://github.com/firecrawl/firecrawl/compare/v2.10...v2.11.0
Firecrawl v2.11.0 ships the Firecrawl Research Index, keyless endpoint access, automatic PII redaction, a deterministicJson format, and video discovery on any page - plus much more.
Firecrawl Research Index — Search across 3M+ arXiv papers and the GitHub code behind them (issues, merged PRs, and READMEs, refreshed daily), fetch a paper's details or related work, and check claims against full text. It has state-of-the-art recall on arXivQA, outperforming the next best provider by 18% at comparable cost.
Keyless access for core endpoints — Use /scrape , /search , /interact , and /parse without an API key from official MCP, CLI, and SDK clients.
Automatic PII redaction — A new redactPII option strips personal and sensitive data like names, emails, phone numbers, addresses, and secrets out of scraped content before it's returned.
deterministicJson format — Get structured JSON without running an LLM on every request. Firecrawl generates a reusable extractor for your schema and caches it per site, so repeat scrapes are cheaper and return consistent results.
Video discovery on any page — The video format now finds videos on any page, not just supported providers like YouTube, returning each video's URL, title, thumbnail, duration, and more.
Read the full changelog here .
Jun 16, 2026
Nothing published for this version
Resolved multiple CVEs across dependencies including handlebars, path-to-regexp, fast-xml-parser, rollup (CVE-2026-27606), undici, and others.
/interact endpoint — Scrape a page, then call /interact to take actions on it — click buttons, fill forms, navigate deeper, or extract dynamic content. Describe what you want in natural language via prompt, or write Playwright code (Node.js, Python) and Bash (agent-browser) for full control. Sessions persist across calls, with live view and interactive live view URLs for real-time browser streaming. Persistent profiles let you save and reuse browser state (cookies, localStorage) across scrapes. Available in JS, Python, Java, and Rust SDKs.query format — Added query format to the /scrape endpoint — pass a natural-language prompt and get a direct answer back in data.answer.audio format — Added audio format option to scrape responses, returning audio output as a field on the document.onlyCleanContent parameter — Added onlyCleanContent parameter to the /scrape endpoint, which strips navigation, ads, cookie banners, and other non-semantic content from markdown output.fast, auto, ocr) and a maxPages option to control extraction depth and OCR behavior..doc file support — Added support for parsing legacy .doc files.contentType in scrape responses — Added contentType to scrape responses for PDFs and documents.timeout, max_retries, and backoff_factor — these were previously accepted but silently ignored.o3-mini model on extract jobs.time_taken in /v1/map always returning ~0.failed status with an error message and partial data when a crawl-level failure occurs.maxPages not being passed to the PDF extractor — previously, full PDF content was returned while only charging for the limited page count.maxCredits threshold.colors.secondary not being populated.removeBase64Images running after deriveDiff in the transformer pipeline, causing diff issues.ZodError in /v1/search controller.handlebars, path-to-regexp, fast-xml-parser, rollup (CVE-2026-27606), undici, and others.GET /v2/team/activity endpoint for listing recent scrape, crawl, and extract jobs with cursor-based pagination (last 24 hours, up to 100 results per page, filterable by endpoint type).regexOnFullURL parameter on crawl requests to apply includePaths/excludePaths filtering against the full URL including query parameters. Available in JS, Python, Java, and Elixir SDKs.deduplicateSimilarURLs parameter on crawl requests. Available in JS, Python, Java, and Elixir SDKs.extract endpoint — use the /agent endpoint instead. Existing extract methods in JS and Python SDKs are marked deprecated.persistentSession to profile on browser/interact requests (writeMode is now saveChanges). The old parameter name remains functional but is no longer documented.Full Changelog: https://github.com/firecrawl/firecrawl/compare/v2.8.0...v2.9.0
Firecrawl v2.9.0 includes browser interaction via /interact , new scrape formats, smarter PDF handling, two new SDKs, and a long list of reliability fixes.
Browser Interaction via /interact — Scrape a page, then call /interact to click buttons, fill forms, navigate, or extract dynamic content. Use natural language or write Playwright / Bash code for full control. Sessions persist across calls with live view URLs and reusable browser profiles.
Question Format — Pass a natural-language prompt to /scrape and get a direct answer back in data.answer .
Audio Format — Request audio output from any scrape, returned as a field on the document.
onlyCleanContent Parameter — Strip navigation, ads, cookie banners, and other non-semantic content from markdown output in a single flag.
PDF Parsing Modes — Choose fast , auto , or ocr parsing with a maxPages option for fine-grained extraction control.
Java & Elixir SDKs — Official SDKs with full v2 API support, joining JS, Python, Go, and Rust.
Read the full changelog here .
Mar 25, 2026
Nothing published for this version
Updated Express version and patched vulnerable packages.
And a lot more enhacements, check it out below!
Improved Branding Extract
Better logo and color detection for more accurate brand extraction results.
NOQ Scrape System (Experimental)
New scrape pipeline with improved stability and integrated concurrency checks.
Enhanced Redirect Handling
URLs now resolve before mapping, with safer redirect-chain detection and new abort timeouts.
Enterprise Search Parameters
New enterprise-level options available for the /search endpoint.
Integration-Based User Creation
Users can now be automatically created when coming from referring integrations.
minAge Scrape Parameter
Allows requiring a minimum cached age before re-scraping.
Extract Billing Credits
Extract jobs now use the same credit billing system as other endpoints.
Self-Host: Configurable Crawl Concurrency
Self-hosted deployments can now set custom concurrency limits.
Sentry Enhancements
Added Vercel AI integration, configurable sampling rates, and improved exception filtering.
UUIDv7 IDs
All new resources use lexicographically sortable UUIDv7.
maxAge fixes, recursive sitemap support, Vue/Angular router normalization, and skipping subdomain logic for IP addresses./v2/batch/scrape/:jobId/errors endpointdocument event handling.ignoreQueryParameter.Full Changelog: https://github.com/firecrawl/firecrawl/compare/v2.6.0...v2.7.0
Full Changelog: https://github.com/firecrawl/firecrawl/compare/v2.6.0...v2.7.0
ZDR Search Support - Enterprise customers can now search with Zero Data Retention enabled end to end. If you're interested, contact alex@firecrawl.dev to enable for your team.
Partner Integrations API - Available in closed beta for native integrations. Get in touch with us at partnerships@firecrawl.dev if you are intested in offering Firecrawl as a native integration in your product.
Improved Branding Format - Better detection and support across all platforms.
Faster Screenshots - Enhanced viewport and full page screenshots with improved speed and accuracy.
Self-hosted Improvements - Significant enhancements for deployments and infrastructure.
Performance Enhancements - Platform-wide improvements for better user experience.
Read the full changelog here
Nov 14, 2025
Unified Billing Model - Credits and tokens merged into single system. Extract now uses credits (15 tokens = 1 credit), existing tokens work everywhere
python-sdk with model selection by @Chadha93 in https://github.com/firecrawl/firecrawl/pull/2266Full Changelog: https://github.com/firecrawl/firecrawl/compare/v2.5.0...v2.6.0
Unified Billing Model - Credits and tokens merged into single system. Extract now uses credits (15 tokens = 1 credit), existing tokens work everywhere.
Enhanced Branding Format - Full support across Playground, MCP, JS and Python SDKs.
Reliability and Speed Improvements - All endpoints significantly faster with improved reliability.
Instant Credit Purchases - Buy credit packs directly from dashboard without waiting for auto-recharge.
Improved Markdown Parsing - Enhanced markdown conversion and main content extraction accuracy.
Change Tracking - Faster and more reliable detection of web page content updates.
Core Stability Fixes - Fixed tons of core stability issues, PDF timeouts, and improved error handling.
Read the full changelog here
Oct 25, 2025
Nothing published for this version
Nothing published for this version
Nothing published for this version
Your coding agent can read these notes before it upgrades. Set up the MCP server →