v2.4.0
v2.4.0
New Features
- New PDF Search Category - You can now search for only pdfs via our v2/search endpoints by specifying .pdf category
- Gemini 2.5 Flash CLI Image Editor โ Create and edit images directly in the CLI using Firecrawl + Gemini 2.5 Flash integration (#2172)
- x402 Search Endpoint (
/v2/x402) โ Added a next-gen search API with improved accuracy and speed (#2218) - RabbitMQ Event System โ Firecrawl jobs now support event-based communication and prefetching from Postgres (#2230, #2233)
- Improved Crawl Status API โ More accurate and real-time crawl status reporting using the new
crawl_status_2RPC (#2239) - Low-Results & Robots.txt Warnings โ Users now receive clear feedback when crawls are limited by robots.txt or yield few results (#2248)
- Enhanced Tracing (OpenTelemetry) โ Much-improved distributed tracing for better observability across services (#2219)
- Metrics & Analytics โ Added request-level metrics for both Scrape and Search endpoints (#2216)
- Self-Hosted Webhook Support โ Webhooks can now be delivered to private IP addresses for self-hosted environments (#2232)
Improvements
- Reduced Docker Image Size โ Playwright service image size reduced by 1 GB by only installing Chromium (#2210)
- Python SDK Enhancements โ Added
"cancelled"job status handling and poll interval fixes (#2240, #2265) - Faster Node SDK Timeouts โ Axios timeouts now propagate correctly, improving reliability under heavy loads (#2235)
- Improved Crawl Parameter Previews โ Enhanced prompts and validation for crawl parameter previews (#2220)
- Zod Schema Validation โ Stricter API parameter validation with rejection of extra fields (#2058)
- Better Redis Job Handling โ Fixed edge cases in
getDoneJobsOrderedUntilfor more stable Redis retrieval (#2258)
Fixes
- Fixed recursive
$refschema validation edge cases (#2238) - Fixed enum arrays being incorrectly converted to objects (#2224)
- Fixed harness timeouts and self-hosted
docker-compose.yamlissues (#2242, #2252)
New Contributors
๐ Full Changelog: v2.3.0 โ v2.4.0
What's Changed
- fix: add missing
poll_intervalparam in watcher by @Chadha93 in https://github.com/firecrawl/firecrawl/pull/2155 - feat: Add Firecrawl + Gemini 2.5 Flash Image CLI Editor by @MAVRICK-1 in https://github.com/firecrawl/firecrawl/pull/2172
- Add environment variable to disable blocklist by @amplitudesxd in https://github.com/firecrawl/firecrawl/pull/2197
- Fix ARM builds by @amplitudesxd in https://github.com/firecrawl/firecrawl/pull/2198
- fix(v1/search): if f-e search is available, only use that by @mogery in https://github.com/firecrawl/firecrawl/pull/2199
- Upgrade html-to-markdown dependency (ENG-3563) by @amplitudesxd in https://github.com/firecrawl/firecrawl/pull/2195
- feat(map): add crawler and scrape options to job logging by @ftonato in https://github.com/firecrawl/firecrawl/pull/2203
- refactor: integrate facilitator in payment middleware by @ftonato in https://github.com/firecrawl/firecrawl/pull/2213
- (feat/metrics) Scrape and Search Request Metrics by @nickscamara in https://github.com/firecrawl/firecrawl/pull/2216
- (feat/big-query) Big Query by @nickscamara in https://github.com/firecrawl/firecrawl/pull/2217
- feat(api): add x402 search endpoint to /v2 by @ftonato in https://github.com/firecrawl/firecrawl/pull/2218
- feat(api/otel): much improved tracing by @mogery in https://github.com/firecrawl/firecrawl/pull/2219
- fix: Add Zod validation to reject additionalProperties in schema parameters by @devin-ai-integration[bot] in https://github.com/firecrawl/firecrawl/pull/2058
- Reduce playwright-service image size by 1 GB by installing only Chromium by @bernie43 in https://github.com/firecrawl/firecrawl/pull/2210
- fix: enum arrays being converted to objects by @Chadha93 in https://github.com/firecrawl/firecrawl/pull/2224
- feat(nuq): RabbitMQ support for job finish events and waiting by @mogery in https://github.com/firecrawl/firecrawl/pull/2230
- fix: Use port from env.PORT for API by @abimaelmartell in https://github.com/firecrawl/firecrawl/pull/2209
- feat(nuq/rabbitmq): add prefetching jobs from psql to rabbitmq by @mogery in https://github.com/firecrawl/firecrawl/pull/2233
- fix: skip summary generation when markdown is empty by @devin-ai-integration[bot] in https://github.com/firecrawl/firecrawl/pull/2226
- Propagate timeout to Axios in Node SDK (ENG-3474) by @amplitudesxd in https://github.com/firecrawl/firecrawl/pull/2235
- feat(api/crawl-status): use crawl_status_2 RPC by @mogery in https://github.com/firecrawl/firecrawl/pull/2239
- Allow self-hosted webhook delivery to private IP addresses by @abimaelmartell in https://github.com/firecrawl/firecrawl/pull/2232
- Update harness timeout by @amplitudesxd in https://github.com/firecrawl/firecrawl/pull/2242
New Contributors
- @Chadha93 made their first contribution in https://github.com/firecrawl/firecrawl/pull/2155
- @MAVRICK-1 made their first contribution in https://github.com/firecrawl/firecrawl/pull/2172
- @bernie43 made their first contribution in https://github.com/firecrawl/firecrawl/pull/2210
- @abimaelmartell made their first contribution in https://github.com/firecrawl/firecrawl/pull/2209
- @th3w1zard1 made their first contribution in https://github.com/firecrawl/firecrawl/pull/2252
Full Changelog: https://github.com/firecrawl/firecrawl/compare/v2.3.0...v2.4.0