Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
309 commits
Select commit Hold shift + click to select a range
3673753
feat: request timeout parameter min (#2710)
delong3 Jan 21, 2026
443df62
feat: word jaccard diff (#2720)
amplitudesxd Jan 21, 2026
d0d0f94
fix(api): use correct v2 path in batch scrape status next URL (#2722)
firecrawl-spring[bot] Jan 22, 2026
3f4536a
fix(js-sdk): add Zod v4 compatibility for schema conversion (#2724)
firecrawl-spring[bot] Jan 22, 2026
1978c11
patch js sdk tests
mogery Jan 22, 2026
7b77011
feat(crawl): add sitemap-only support (#2726)
firecrawl-spring[bot] Jan 22, 2026
3cd69d9
fix(deps): resolve lodash prototype pollution vulnerability (GHSA-xxj…
firecrawl-spring[bot] Jan 22, 2026
5696a70
Add manual pagination helpers for Python SDK (#2727)
firecrawl-spring[bot] Jan 22, 2026
c9df695
feat(agent): include model in status responses (#2717)
firecrawl-spring[bot] Jan 23, 2026
e2900b2
fix(api/v2/agent/status): fix model value while in-progress
mogery Jan 23, 2026
0c9c2d9
fix(js-sdk/tests/e2e): use IDMUX for reliability, re-enable usage tests
mogery Jan 23, 2026
4e2a11a
feat(errors): improve all user-facing error messages with detailed ex…
firecrawl-spring[bot] Jan 24, 2026
43b811c
chore(codeowners): add abimaelmartell as owner for branding files (#2…
firecrawl-spring[bot] Jan 26, 2026
4096f7f
fix: handle 415 Unsupported Media Type without retrying (#2737)
abimaelmartell Jan 26, 2026
c88b518
fix: use spread operator instead of Array.from for Set conversion (#2…
abimaelmartell Jan 27, 2026
8ef9ee6
chore(api/extract): remove old dumb caching mechanism
mogery Jan 27, 2026
20b2f5f
chore(test-suite): remove unnecessary stuff
mogery Jan 27, 2026
723851c
fix(test-suite): lockfile
mogery Jan 27, 2026
dbb1d27
fix(js-sdk): export Watcher and WatcherOptions from SDK entrypoint (#…
firecrawl-spring[bot] Jan 28, 2026
7b40ee5
fix(audit): Fix pnpm audit issues (#2757)
abimaelmartell Jan 28, 2026
9ada44e
temp(api/search): remove hasAnyResult
mogery Jan 29, 2026
d80aef6
fix(audit): Upgrade eslint to fix GHSA-p5wg-g6qr-c7cg vulnerability i…
abimaelmartell Jan 29, 2026
a2949b7
Update map-utils.ts
nickscamara Jan 29, 2026
9e46cbd
feat(api): add enhanced proxy option as alias for stealth (#2759)
firecrawl-spring[bot] Jan 30, 2026
a422e1e
feat(api): only load more pages if we already have one (#2767)
tomsideguide Jan 30, 2026
5f2263f
fix(api): update notification email from address (#2769)
firecrawl-spring[bot] Jan 30, 2026
7d125a8
conc boost for agent interop (#2770)
rafaelsideguide Jan 30, 2026
1871ad1
chore(api): Remove jest-junit test reporting (#2768)
abimaelmartell Jan 30, 2026
e32c694
temp
mogery Jan 30, 2026
04828ba
temp
mogery Jan 30, 2026
e7edc97
temp
mogery Jan 30, 2026
e425938
chore(api): Add logging to flaky map redirect test (#2771)
abimaelmartell Jan 30, 2026
87976f3
fix(branding): Improve Logo Detection (#2749)
abimaelmartell Jan 30, 2026
d86607c
feat(api): promote jobs in concurrency queue backfill
tomsideguide Jan 30, 2026
d89eb46
fix(security): allowlist fast-xml-parser vulnerability GHSA-37qj-frw5…
abimaelmartell Jan 30, 2026
e374660
fix(branding): improve error messages for PDFs and documents (#2776)
abimaelmartell Jan 30, 2026
2dd1a34
chore: remove firecrawl_jobs cleanup from ZDR cleaner (#2777)
firecrawl-spring[bot] Jan 31, 2026
1e90542
fix(billing): bump to update_tally_8_team (#2779)
firecrawl-spring[bot] Jan 31, 2026
26b0d0d
fix(api): add 'enhanced' to proxy enum in OpenAPI specs (#2780)
firecrawl-spring[bot] Jan 31, 2026
2f7538a
chore: bump auth_credit_usage_chunk_39 to auth_credit_usage_chunk_40 …
firecrawl-spring[bot] Feb 2, 2026
43f61e7
feat(rust-sdk): add v2 API namespace with agent support (#2778)
abimaelmartell Feb 2, 2026
508b96c
fix(html-to-md): update html-to-markdown to extract content from div …
abimaelmartell Feb 3, 2026
b46c188
fix(api): upgrade x402 packages to v2.x to resolve CVEs (#2783)
abimaelmartell Feb 4, 2026
6b3e0d6
chore(test-suite): Update dependencies (#2787)
abimaelmartell Feb 4, 2026
fa39ddc
chore(js-sdk): Update dependencies, fix advisories (#2788)
abimaelmartell Feb 4, 2026
6fe5ba8
feat(ci/js-sdk): add tailscale for idmux
mogery Feb 4, 2026
65587c9
feat(chore): Update playwright dependencies (#2790)
abimaelmartell Feb 4, 2026
b577af5
feat(billing): require auto-recharge for graceful billing (#2786)
firecrawl-spring[bot] Feb 4, 2026
61c0264
chore(test-site): Update dependencies (#2792)
abimaelmartell Feb 4, 2026
6d07b91
Update error message (#2793)
firecrawl-spring[bot] Feb 4, 2026
bf5bc80
chore(deps) Update deps to fix advisories (#2794)
abimaelmartell Feb 4, 2026
4a72f8c
chore(api): remove unused request_frequency table code (#2795)
firecrawl-spring[bot] Feb 4, 2026
77432a8
chore(api): remove unused domain frequency tracking system (#2796)
firecrawl-spring[bot] Feb 4, 2026
76c4226
Update README.md
rhys-firecrawl Feb 4, 2026
b4d1fc1
fix(deps): Update jest dependencies on api (#2799)
abimaelmartell Feb 5, 2026
db90b4d
Update README.md
rhys-firecrawl Feb 5, 2026
6c1817d
Update README.md
ericciarla Feb 6, 2026
8367603
Merge pull request #2803 from firecrawl/rhys-firecrawl-patch-1
ericciarla Feb 6, 2026
a5fb80e
feat(billing): switch to auth_credit_usage_chunk_41 and update_tally_…
firecrawl-spring[bot] Feb 6, 2026
c547eec
fix(api): add retry limits to prevent infinite scrape loops (#2660)
misza-one Feb 6, 2026
e7cd06c
fix(billing): use price metadata for auto_recharge checks (#2807)
firecrawl-spring[bot] Feb 7, 2026
3d2aae6
feat(document): add support for parsing legacy .doc files (#2808)
firecrawl-spring[bot] Feb 7, 2026
b08ff75
deps(api): update axios
tomsideguide Feb 9, 2026
904a9a0
feat(api): improved a/b testing (#2816)
tomsideguide Feb 9, 2026
0ca73d7
fix(billing): bump tally RPC from update_tally_9_team to update_tally…
firecrawl-spring[bot] Feb 10, 2026
ff07ff2
Nick: (#2822)
nickscamara Feb 11, 2026
9f6ac30
Nick:
nickscamara Feb 11, 2026
a334fb8
feat(billing): check org flags for bypassCreditChecks instead of org …
firecrawl-spring[bot] Feb 11, 2026
d3d100a
Nick:
nickscamara Feb 11, 2026
51ee211
cleanup(api): remove dead team flags from TeamFlags type (#2828)
firecrawl-spring[bot] Feb 11, 2026
2ac2afe
feat(python-sdk): add regex_on_full_url parameter to v2 crawl (#2834)
firecrawl-spring[bot] Feb 12, 2026
fc6dad3
refactor(billing): remove standalone org flags check from credit_bill…
firecrawl-spring[bot] Feb 12, 2026
6eb0a6a
Nick:
nickscamara Feb 12, 2026
14cc769
fix(api): use Chat Completions API for o3-mini to fix empty responses…
abimaelmartell Feb 12, 2026
52e514b
chore(deps): Update qs dependency (#2837)
abimaelmartell Feb 12, 2026
bb1df56
Nick:
nickscamara Feb 13, 2026
89a9ff3
Update package.json
nickscamara Feb 13, 2026
a6fa009
Merge branch 'main' into nsc/b-2
nickscamara Feb 13, 2026
277ca68
Update package.json
nickscamara Feb 13, 2026
e208909
(feat/b) bv2 (#2839)
nickscamara Feb 13, 2026
e3963fc
feat: Update JSON extract (#2831)
abimaelmartell Feb 13, 2026
42202ad
feat(branding): Improve branding to skip hidden elements (#2836)
abimaelmartell Feb 13, 2026
309bee5
Nick:
nickscamara Feb 13, 2026
e6bc763
Nick:
nickscamara Feb 13, 2026
9236cc9
initial
developersdigest Feb 13, 2026
b962caf
feat: pass scrapeId to fire engine (#2843)
tomsideguide Feb 13, 2026
cb36f6b
feat(api): log to db async (#2845)
tomsideguide Feb 13, 2026
7946dff
feat(admin): dual-write team_overrides for integration coupons (#2842)
firecrawl-spring[bot] Feb 13, 2026
45dc806
chore(auth): bump ACUC from v43 to v44 (team_overrides) (#2846)
firecrawl-spring[bot] Feb 13, 2026
d734df3
Update blocklist.ts
nickscamara Feb 13, 2026
9fc9f66
Nick:
nickscamara Feb 13, 2026
c95ef16
fix(api): add missing await to logScrape causing GCS race condition (…
firecrawl-spring[bot] Feb 14, 2026
0e06a06
fix(worker): handle logScrape promise based on skipNuq (#2848)
tomsideguide Feb 14, 2026
c9c6d44
fix(python-sdk): correct scrape timeout docstring from seconds to mil…
firecrawl-spring[bot] Feb 14, 2026
cffd344
feat: indexer queue (#2830)
delong3 Feb 16, 2026
c68420e
nb (#2858)
nickscamara Feb 16, 2026
03b9f33
Merge branch 'main' into jonathan/fire-engine-webhook
nickscamara Feb 16, 2026
48b8e75
Merge branch 'main' into jonathan/fire-engine-webhook
nickscamara Feb 16, 2026
641fac6
Nick:
nickscamara Feb 16, 2026
b0180cf
Update browser.ts
nickscamara Feb 16, 2026
6d2bee1
feat(browser): add fire-engine session destroyed (#2841)
developersdigest Feb 16, 2026
bb789a5
Nick: MAX_ACTIVE_BROWSER_SESSIONS_PER_TEAM for preview
nickscamara Feb 16, 2026
7e98e8c
Merge branch 'jonathan/fire-engine-webhook'
nickscamara Feb 16, 2026
0cec225
b-billing (#2859)
nickscamara Feb 16, 2026
0de4cd1
Nick: fixed b sdks
nickscamara Feb 16, 2026
a8ea971
Nick:
nickscamara Feb 17, 2026
31cefef
Nick:
nickscamara Feb 17, 2026
68a9d82
Nick:
nickscamara Feb 17, 2026
f4ad88b
Nick:
nickscamara Feb 17, 2026
bec84a3
Nick: version bump
nickscamara Feb 17, 2026
54aa216
Update browser.ts
nickscamara Feb 17, 2026
d71a578
Update browser.ts
nickscamara Feb 17, 2026
dc93c0e
Update browser.ts
nickscamara Feb 17, 2026
af01035
wire browser methods through proxy layer (#2864)
developersdigest Feb 17, 2026
0cc1f34
feat: add logRequest to browserCreateController
mogery Feb 17, 2026
6e8f658
fix(browser): logRequest without origin
mogery Feb 17, 2026
7595bda
Update browser.ts
nickscamara Feb 17, 2026
f52202e
Merge branch 'main' of https://github.com/firecrawl/firecrawl
nickscamara Feb 17, 2026
b6fed5b
chore(api): replace concurrency queue team id labels with total (#2867)
tomsideguide Feb 17, 2026
6f45065
feat(acuc): bump to v45 (#2865)
firecrawl-spring[bot] Feb 17, 2026
81f1438
refactor(admin): use teams.org_id instead of organization_teams.is_ac…
firecrawl-spring[bot] Feb 17, 2026
862a1ae
chore: nuq prefetch count (#2869)
delong3 Feb 18, 2026
2e3b835
chore(deps): Fix dependency audit (#2870)
abimaelmartell Feb 18, 2026
e1d600a
fix(python-sdk): wire timeout, max_retries, backoff_factor through to…
firecrawl-spring[bot] Feb 18, 2026
f4fe30d
chore(knip): Fix pre commit (#2876)
abimaelmartell Feb 19, 2026
6401ad9
fix(deps): resolve minimatch and systeminformation audit vulnerabilit…
abimaelmartell Feb 19, 2026
9119dd9
refactor(api): move job data out of concurrency queue into own keys (…
tomsideguide Feb 19, 2026
bca0355
feat(scrape): add onlyCleanContent param to pipe markdown through LLM…
firecrawl-spring[bot] Feb 19, 2026
14e0f55
updt (#2885)
abimaelmartell Feb 20, 2026
092d9f1
chore(pdf): Log MU pagesProcessed (#2886)
abimaelmartell Feb 20, 2026
920e41b
chore(api): update semaphore hold duration buckets (#2892)
tomsideguide Feb 23, 2026
102136d
chore(mu): Log MU ID to Track Failures (#2889)
abimaelmartell Feb 23, 2026
d5f7da3
chore(deps): Update @x402/express and @x402/evm (#2890)
abimaelmartell Feb 23, 2026
66da13b
feat(pdf): Track MU Errors (#2894)
abimaelmartell Feb 23, 2026
2afd831
chore(sdk): deprecate extract endpoint methods in JS and Python SDKs …
firecrawl-spring[bot] Feb 24, 2026
b65b637
fix(python-sdk): loosen tbs validation to allow sbd:1 and combined va…
firecrawl-spring[bot] Feb 24, 2026
5c69fc7
fix(sdk): add missing deduplicateSimilarURLs param to JS and Python S…
firecrawl-spring[bot] Feb 25, 2026
551cf32
fix(api): race condition on getNextConcurrentJob (#2909)
tomsideguide Feb 25, 2026
60c93d9
feat(pdf): Implement PDF Detection, and Text Extraction (#2860)
abimaelmartell Feb 26, 2026
d6e95fa
feat(sdk): Add pdf parser options to JS and Python SDKS (#2910)
abimaelmartell Feb 26, 2026
d9470bc
fix(pdf): Handle PDFs with Corrupt EOF (#2911)
abimaelmartell Feb 26, 2026
4348afd
fix(pdf): Fix inline image parsing in PDFs (#2912)
abimaelmartell Feb 26, 2026
9783933
chore(sentry): Better logging of PDF errors (#2907)
abimaelmartell Feb 26, 2026
49e8db0
fix(security): override rollup to >=4.59.0 to resolve CVE-2026-27606 …
abimaelmartell Feb 26, 2026
95b711d
fix(sdk): add missing deduplicate_similar_urls to v2 Python client cr…
devin-ai-integration[bot] Feb 26, 2026
61c0ca1
feat(browser): route interactive liveview url
mogery Feb 26, 2026
95f669d
ci(tests): add JUnit XML reporting for test server (#2918)
abimaelmartell Feb 26, 2026
57bd9c3
feat(browser): fix routing
mogery Feb 26, 2026
e491519
browser: persistentsession (#2919)
tomkosm Feb 26, 2026
2c4a0cf
persistent session python js sdks (#2920)
developersdigest Feb 26, 2026
bc2521c
Change persistent session to profile + bump python + node sdks (#2924)
developersdigest Feb 26, 2026
6a06034
Use saveChanges instead of writeMode for profiles (#2927)
developersdigest Feb 26, 2026
ccf8555
feat(api): pipeline/batch concurrency queue (#2928)
tomsideguide Feb 26, 2026
7b7a736
fix(api): use TransportableError for branding validation errors (#2923)
abimaelmartell Feb 26, 2026
774a2ef
fix: handle ZodError in v1/search controller catch block (#2926)
abimaelmartell Feb 26, 2026
0e3ea54
fix: configure x402 facilitator URL from env (#2930)
abimaelmartell Feb 26, 2026
c0d0e50
feat(pdf) Check for %PDF magic bytes on Pdf Engine (#2915)
abimaelmartell Feb 26, 2026
7cdc066
perf(admin): optimize concurrency-queue-backfill endpoint (#2931)
firecrawl-spring[bot] Feb 27, 2026
b738ff6
fix(admin): avoid extract ACUC integer overflow in backfill endpoint …
firecrawl-spring[bot] Feb 27, 2026
7e676b5
fix(api): skip precrawl team in concurrency queue backfill (#2937)
firecrawl-spring[bot] Feb 27, 2026
9bfec58
fix: update minimatch and fast-xml-parser overrides to fix audit vuln…
abimaelmartell Feb 27, 2026
1b3494f
feat(api): concurrency queue reconciler (#2929)
tomsideguide Feb 27, 2026
a8e5934
fix(api): getBackloggedJobIDsOfOwner method name (#2939)
tomsideguide Feb 27, 2026
73222bc
fix(api): cap job timeout to a maximum of 48 hours in zadd (#2940)
tomsideguide Feb 27, 2026
8bd538d
feat(nuq-postgres): add index on owner_id for backlog query optimizat…
tomsideguide Feb 27, 2026
876d43c
Add monitoring of request durations
malisper Feb 27, 2026
ed2b874
Add tracking of job duration
malisper Feb 27, 2026
2dcfbd8
Add reporting of job metrics
malisper Feb 27, 2026
3858ced
Use prom-client methods instead of generating own metrics
malisper Feb 27, 2026
4f893b6
fix(api): handle NaN/Infinity timeouts (#2942)
tomsideguide Feb 27, 2026
b9baa3d
Merge pull request #2936 from firecrawl/add-metrics
malisper Feb 27, 2026
a6fe1ff
Update browser.ts
nickscamara Feb 27, 2026
e946bd0
feat(api): promote from reconciler (#2943)
tomsideguide Feb 27, 2026
9cc1038
chore(api): validate owner IDs as UUIDs (#2944)
tomsideguide Feb 27, 2026
3b777bf
feat(sdk): add Java SDK for Firecrawl v2 API (#2904)
firecrawl-spring[bot] Feb 27, 2026
ddc9988
feat(java-sdk): add Maven Central publish workflow (#2947)
firecrawl-spring[bot] Mar 1, 2026
f202e06
fix(java-sdk): use correct Maven Central secret names in publish work…
firecrawl-spring[bot] Mar 1, 2026
725e5a5
feat(java-sdk): add workflow_dispatch trigger to publish workflow (#2…
firecrawl-spring[bot] Mar 1, 2026
5a5d4c8
Add pagesProcessed to MU v1 completed logs (#2951)
abimaelmartell Mar 2, 2026
d1d7263
feat(api): PDF shadow comparison for Rust (#2955)
abimaelmartell Mar 2, 2026
0e4b117
Add interactive live view URL support
developersdigest Mar 2, 2026
638d2e0
Nick: browser origin
nickscamara Mar 2, 2026
17d5005
chore: update pdf-inspector to latest commit (#2958)
abimaelmartell Mar 2, 2026
98a8b73
Nick: integration tracking
nickscamara Mar 2, 2026
1af8aff
Update browser.ts
nickscamara Mar 2, 2026
e432626
Update package.json
nickscamara Mar 2, 2026
c4426f3
Update browser.ts
nickscamara Mar 2, 2026
33991f2
feat(api): implement agent signup v0 endpoints and enforcement
firecrawl-spring[bot] Mar 2, 2026
670d524
fix(api): add AGENT_SPONSOR_CONFIRM to email templates and category map
firecrawl-spring[bot] Mar 2, 2026
8e66311
Nick: add back origin to the js sdks
nickscamara Mar 3, 2026
47ef9fc
chore: update pdf-inspector to 2b5fcd7 (#2967)
abimaelmartell Mar 3, 2026
5b76e0a
fix(api): skip shadow comparison for scanned/image-based PDFs (#2968)
abimaelmartell Mar 4, 2026
de8d73e
skip shadow comparison for non-TextBased PDFs (#2969)
abimaelmartell Mar 4, 2026
7231bad
feat(api/index): performance tuning
mogery Mar 4, 2026
92315ed
chore: update pdf-inspector to 7d73c6a (#2973)
abimaelmartell Mar 4, 2026
db4c77c
feat(api/native): update pdf-inspector to d5e03b8 (#2975)
abimaelmartell Mar 4, 2026
4764542
fix(pdf): update pdf-inspector to detect side-by-side tables (#2976)
abimaelmartell Mar 5, 2026
3dd330f
fix(html-to-markdown): deduplicate linked images with matching href a…
abimaelmartell Mar 5, 2026
c36a207
feat(markdown-to-html): Use plugin for markdown block parsing (#2785)
abimaelmartell Mar 5, 2026
ebf056e
fix(go): Update Go Deps (#2978)
abimaelmartell Mar 5, 2026
30ac599
fix: override http-proxy-agent to v7 to resolve audit vulnerability (…
abimaelmartell Mar 5, 2026
ceb5fe8
fix(ci): verify go.sum is in sync before go-html-to-md build (#2979)
abimaelmartell Mar 5, 2026
f361e46
Merge remote-tracking branch 'origin/main' into eric/implement-this-a…
Mar 5, 2026
10f739b
refactor(agent-signup): reorder imports and improve IP rate limiting …
erikengervall Mar 5, 2026
e11333f
fix(agent-signup): update terms of service URL to the correct path
erikengervall Mar 5, 2026
0a79e06
feat(agent-signup): integrate qs for query string handling and refact…
erikengervall Mar 5, 2026
4015a33
refactor(agent-sponsor): simplify agent sponsor status retrieval by r…
erikengervall Mar 5, 2026
8ccf5d9
fix(agent-signup): update query parameters in confirmation URLs for a…
erikengervall Mar 5, 2026
263efb4
refactor(agent-sponsor): update function signatures and parameter han…
erikengervall Mar 5, 2026
cd488d4
feat(agent-signup): clear ACUC cache upon account promotion to ensure…
erikengervall Mar 5, 2026
02efaa6
refactor(browser-sessions, agent-sponsor): replace error code checks …
erikengervall Mar 5, 2026
d1bc391
refactor(agent-signup): update service references for blocked and pen…
erikengervall Mar 5, 2026
d8bf261
fix(agent-signup): extend verification token deadline from 3 to 5 days
erikengervall Mar 5, 2026
021141c
fix(agent-signup): return error response for failed agent account cre…
erikengervall Mar 5, 2026
0b24696
refactor(agent-signup): streamline ACUC cache clearing process and en…
erikengervall Mar 5, 2026
8a07e7c
fix: update test-site deps to resolve svgo vulnerability (#2981)
abimaelmartell Mar 5, 2026
06d3a49
chore(pdf): Update pdf-inspector to b126d4b (#2982)
abimaelmartell Mar 5, 2026
27619ab
chore(pdf): Update pdf-inspector to c54e29f (#2983)
abimaelmartell Mar 5, 2026
1a61922
chore(pdf): Update pdf-inspector to 5ab92e0 (#2984)
abimaelmartell Mar 6, 2026
e26a4be
Merge remote-tracking branch 'origin/main' into eric/implement-this-a…
erikengervall Mar 6, 2026
45c2b2d
chore(agent-signup): update ToS version and add domain rate limiting …
erikengervall Mar 6, 2026
36b29b0
Merge pull request #2962 from firecrawl/eric/implement-this-agent-sig…
erikengervall Mar 6, 2026
3671c48
Add debug logs for agent sponsor email
erikengervall Mar 6, 2026
308230d
Merge pull request #2985 from firecrawl/noaa/agent-sponsor-email-debu…
erikengervall Mar 6, 2026
c55aafa
fix(docs): update social media links in README and footer/header comp…
erikengervall Mar 6, 2026
ef26e73
Merge remote-tracking branch 'origin/main' into noaa/fix-broken-twitt…
erikengervall Mar 6, 2026
eec72ed
Replace mendableai gh org with firecrawl
erikengervall Mar 6, 2026
504f043
Update apps/test-site/src/components/Footer.astro
erikengervall Mar 6, 2026
ef902a1
Merge pull request #2986 from firecrawl/noaa/fix-broken-twitter-link
erikengervall Mar 6, 2026
b058b9c
Merge pull request #2987 from firecrawl/noaa/replace-gh-org-mendablea…
erikengervall Mar 6, 2026
9eb895e
Install firecrawl in js-sdk (#2988)
nickscamara Mar 6, 2026
2cf101e
chore: update Discord invite link to discord.gg/firecrawl (#2989)
firecrawl-spring[bot] Mar 6, 2026
b5eda3c
feat: concurrency limit cap (ENG-4567) (#2990)
tomsideguide Mar 6, 2026
6a5c5df
fix(api): remove dedicated ACUC Supabase client for consistency (#2991)
firecrawl-spring[bot] Mar 6, 2026
3165e37
merge main, bump js sdk to 4.15.4
developersdigest Mar 7, 2026
549b6c6
Merge branch 'main' into add-interactiveLiveView
developersdigest Mar 7, 2026
8cf8956
Merge pull request #2961 from firecrawl/add-interactiveLiveView
developersdigest Mar 7, 2026
987eefb
fix(api): update sender email in agent signup controller
erikengervall Mar 7, 2026
2da4808
Merge pull request #2995 from firecrawl/noaa/update-agent-signup-emai…
erikengervall Mar 7, 2026
b733aa0
fix(api): change sender email in agent signup controller to new notif…
erikengervall Mar 7, 2026
8458217
Merge pull request #2996 from firecrawl/noaa/update-agent-signup-emai…
erikengervall Mar 7, 2026
090e057
Update README.md
nickscamara Mar 7, 2026
74e1c65
fix(api): update sender email in agent signup controller to new notif…
erikengervall Mar 8, 2026
14f3b7a
Merge pull request #3006 from firecrawl/noaa/agent-sponsor-email-link
erikengervall Mar 8, 2026
7282129
fix(api): enhance agent signup controller to handle email case sensit…
erikengervall Mar 8, 2026
04a1318
feat(api): implement enhanced rate limiting for agent signup, adding …
erikengervall Mar 8, 2026
dbac673
refactor(api): clarify comments on rate limiting for internal sidegui…
erikengervall Mar 8, 2026
4abd225
refactor(api): update rate limiting constants for agent signup to imp…
erikengervall Mar 8, 2026
817fc03
Merge pull request #3007 from firecrawl/noaa/agent-sponsor-testability
erikengervall Mar 8, 2026
6226f09
chore: sync fork with upstream/main (preserve custom docs/workflows)
cayman-openclaw Mar 9, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
4 changes: 4 additions & 0 deletions .github/CODEOWNERS
Original file line number Diff line number Diff line change
Expand Up @@ -112,5 +112,9 @@
# Tests
/apps/api/src/__tests__/snips/* @mogery

# Branding
**/branding* @abimaelmartell
**/branding-script* @abimaelmartell

# Examples
/examples/* @ericciarla @nickscamara
2 changes: 1 addition & 1 deletion .github/archive/js-sdk.yml
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ env:

jobs:
build:
runs-on: ubuntu-latest
runs-on: blacksmith-4vcpu-ubuntu-2404
services:
redis:
image: redis
Expand Down
2 changes: 1 addition & 1 deletion .github/archive/publish-rust-sdk.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ env:

jobs:
build-and-publish:
runs-on: ubuntu-latest
runs-on: blacksmith-4vcpu-ubuntu-2404

steps:
- name: Checkout repository
Expand Down
2 changes: 1 addition & 1 deletion .github/archive/python-sdk.yml
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ env:

jobs:
build:
runs-on: ubuntu-latest
runs-on: blacksmith-4vcpu-ubuntu-2404
strategy:
matrix:
python-version: ["3.10"]
Expand Down
2 changes: 1 addition & 1 deletion .github/archive/rust-sdk.yml
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ env:

jobs:
build:
runs-on: ubuntu-latest
runs-on: blacksmith-4vcpu-ubuntu-2404
services:
redis:
image: redis
Expand Down
38 changes: 36 additions & 2 deletions .github/scripts/check_version_has_incremented.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,11 +8,16 @@
Published version: 0.0.21
true

python .github/scripts/check_version_has_incremented.py python ./apps/python-sdk/firecrawl firecrawl-py
python .github/scripts/check_version_has_incremented.py python ./apps/python-sdk/firecrawl firecrawl-py
Local version: 0.0.11
Published version: 0.0.11
false

python .github/scripts/check_version_has_incremented.py java ./apps/java-sdk com.firecrawl:firecrawl-java
Local version: 1.0.0
Published version: 0.0.0 (0.0.0 means not yet published on Maven Central)
true

"""
import json
import os
Expand Down Expand Up @@ -53,6 +58,30 @@ def get_npm_version(package_name: str) -> str:
version = response.json()['version']
return version.strip()

def get_gradle_version(file_path: str) -> str:
"""Extract version string from build.gradle.kts."""
build_file = Path(file_path).read_text()
version_match = re.search(r'^version\s*=\s*["\']([^"\']*)["\']', build_file, re.M)
if version_match:
return version_match.group(1).strip()
raise RuntimeError("Unable to find version string in build.gradle.kts.")

def get_maven_central_version(package_name: str) -> str:
"""Get latest version of Java package from Maven Central. package_name should be groupId:artifactId."""
group_id, artifact_id = package_name.split(":")
group_path = group_id.replace(".", "/")
url = f"https://repo1.maven.org/maven2/{group_path}/{artifact_id}/maven-metadata.xml"
response = requests.get(url)
if response.status_code == 404:
return "0.0.0"
response.raise_for_status()
version_match = re.search(r"<release>(.*?)</release>", response.text)
if not version_match:
version_match = re.search(r"<latest>(.*?)</latest>", response.text)
if version_match:
return version_match.group(1).strip()
return "0.0.0"

# def get_rust_version(file_path: str) -> str:
# """Extract version string from Cargo.toml."""
# cargo_toml = toml.load(file_path)
Expand Down Expand Up @@ -87,14 +116,19 @@ def is_version_incremented(local_version: str, published_version: str) -> bool:
current_version = get_js_version(os.path.join(package_path, 'package.json'))
# Get published version from npm
published_version = get_npm_version(package_name)
elif package_type == "java":
# Get current version from build.gradle.kts
current_version = get_gradle_version(os.path.join(package_path, 'build.gradle.kts'))
# Get published version from Maven Central
published_version = get_maven_central_version(package_name)
# if package_type == "rust":
# # Get current version from Cargo.toml
# current_version = get_rust_version(os.path.join(package_path, 'Cargo.toml'))
# # Get published version from crates.io
# published_version = get_crates_version(package_name)

else:
raise ValueError("Invalid package type. Use 'python' or 'js'.")
raise ValueError("Invalid package type. Use 'python', 'js', or 'java'.")

# Print versions for debugging
# print(f"Local version: {current_version}")
Expand Down
10 changes: 4 additions & 6 deletions .github/workflows/deploy-go-service.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -14,16 +14,16 @@ on:

jobs:
push-app-image:
runs-on: ubuntu-latest
runs-on: blacksmith-4vcpu-ubuntu-2404
defaults:
run:
working-directory: "./apps/go-html-to-md-service"
steps:
- name: "Checkout GitHub Action"
uses: actions/checkout@main

- name: "Set up Docker Buildx"
uses: docker/setup-buildx-action@v3
- name: Setup Blacksmith Builder
uses: useblacksmith/setup-docker-builder@v1

- name: "Login to GitHub Container Registry"
uses: docker/login-action@v3
Expand All @@ -33,10 +33,8 @@ jobs:
password: ${{secrets.GITHUB_TOKEN}}

- name: "Build and Push Image"
uses: docker/build-push-action@v6
uses: useblacksmith/build-push-action@v2
with:
context: ./apps/go-html-to-md-service
push: true
tags: ghcr.io/firecrawl/go-html-to-md-service:latest
cache-from: type=registry,ref=ghcr.io/firecrawl/go-html-to-md-service:buildcache
cache-to: type=registry,ref=ghcr.io/firecrawl/go-html-to-md-service:buildcache,mode=max
4 changes: 2 additions & 2 deletions .github/workflows/deploy-image-staging.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ on:

jobs:
push-app-image:
runs-on: ubuntu-latest
runs-on: blacksmith-4vcpu-ubuntu-2404
defaults:
run:
working-directory: './apps/api'
Expand All @@ -26,4 +26,4 @@ jobs:
- name: 'Build Inventory Image'
run: |
docker build . --tag ghcr.io/firecrawl/firecrawl-staging:latest
docker push ghcr.io/firecrawl/firecrawl-staging:latest
docker push ghcr.io/firecrawl/firecrawl-staging:latest
100 changes: 70 additions & 30 deletions .github/workflows/deploy-image.yml
Original file line number Diff line number Diff line change
@@ -1,41 +1,81 @@
name: Deploy Images to GHCR

env:
DOTNET_VERSION: '6.0.x'

on:
push:
branches:
- main
paths:
- apps/api/**
- .github/workflows/deploy-image.yml
workflow_dispatch:

jobs:
push-app-image:
runs-on: ubuntu-latest
defaults:
run:
working-directory: './apps/api'
steps:
- name: 'Checkout GitHub Action'
uses: actions/checkout@main

- name: 'Set up Docker Buildx'
uses: docker/setup-buildx-action@v3

- name: 'Login to GitHub Container Registry'
uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{github.actor}}
password: ${{secrets.GITHUB_TOKEN}}

- name: 'Build and Push Image'
uses: docker/build-push-action@v6
with:
context: ./apps/api
push: true
tags: ghcr.io/firecrawl/firecrawl:latest
cache-from: type=registry,ref=ghcr.io/firecrawl/firecrawl:buildcache
cache-to: type=registry,ref=ghcr.io/firecrawl/firecrawl:buildcache,mode=max
build:
runs-on: ${{ matrix.runner }}
strategy:
matrix:
include:
- platform: linux/amd64
runner: blacksmith-4vcpu-ubuntu-2404
- platform: linux/arm64
runner: blacksmith-4vcpu-ubuntu-2404-arm
defaults:
run:
working-directory: './apps/api'
steps:
- name: 'Checkout GitHub Action'
uses: actions/checkout@main

- name: Setup Blacksmith Builder
uses: useblacksmith/setup-docker-builder@v1

- name: 'Login to GitHub Container Registry'
uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{github.actor}}
password: ${{secrets.GITHUB_TOKEN}}

- name: Lowercase Repo Owner
run: |
echo "REPO_OWNER=${GITHUB_REPOSITORY_OWNER,,}" >>${GITHUB_ENV}
env:
GITHUB_REPOSITORY_OWNER: '${{ github.repository_owner }}'

- name: Extract platform suffix
run: |
platform=${{ matrix.platform }}
echo "PLATFORM_SUFFIX=${platform//\//-}" >> $GITHUB_ENV

- name: 'Build and Push Image'
uses: useblacksmith/build-push-action@v2
with:
context: ./apps/api
push: true
tags: ghcr.io/${{ env.REPO_OWNER }}/firecrawl:${{ env.PLATFORM_SUFFIX }}
platforms: ${{ matrix.platform }}
provenance: false

manifest:
runs-on: blacksmith-2vcpu-ubuntu-2404
needs: build
steps:
- name: 'Login to GitHub Container Registry'
uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{github.actor}}
password: ${{secrets.GITHUB_TOKEN}}

- name: Lowercase Repo Owner
run: |
echo "REPO_OWNER=${GITHUB_REPOSITORY_OWNER,,}" >>${GITHUB_ENV}
env:
GITHUB_REPOSITORY_OWNER: '${{ github.repository_owner }}'

- name: 'Create and Push Multi-Arch Manifest'
run: |
docker manifest create ghcr.io/${{ env.REPO_OWNER }}/firecrawl:latest \
ghcr.io/${{ env.REPO_OWNER }}/firecrawl:linux-amd64 \
ghcr.io/${{ env.REPO_OWNER }}/firecrawl:linux-arm64
docker manifest push ghcr.io/${{ env.REPO_OWNER }}/firecrawl:latest
2 changes: 1 addition & 1 deletion .github/workflows/deploy-nuq-postgres.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ on:

jobs:
push-app-image:
runs-on: ubuntu-latest
runs-on: blacksmith-4vcpu-ubuntu-2404
defaults:
run:
working-directory: './apps/nuq-postgres'
Expand Down
93 changes: 70 additions & 23 deletions .github/workflows/deploy-playwright.yml
Original file line number Diff line number Diff line change
@@ -1,34 +1,81 @@
name: Deploy Playwright to GHCR

env:
DOTNET_VERSION: '6.0.x'

on:
push:
branches:
- main
paths:
- apps/playwright-service-ts/**
- .github/workflows/deploy-playwright.yml
workflow_dispatch:

jobs:
push-app-image:
runs-on: ubuntu-latest
defaults:
run:
working-directory: './apps/playwright-service-ts'
steps:
- name: 'Checkout GitHub Action'
uses: actions/checkout@main

- name: 'Login to GitHub Container Registry'
uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{github.actor}}
password: ${{secrets.GITHUB_TOKEN}}

- name: 'Build Inventory Image'
run: |
docker build . --tag ghcr.io/firecrawl/playwright-service:latest
docker push ghcr.io/firecrawl/playwright-service:latest
build:
runs-on: ${{ matrix.runner }}
strategy:
matrix:
include:
- platform: linux/amd64
runner: blacksmith-4vcpu-ubuntu-2404
- platform: linux/arm64
runner: blacksmith-4vcpu-ubuntu-2404-arm
defaults:
run:
working-directory: './apps/playwright-service-ts'
steps:
- name: 'Checkout GitHub Action'
uses: actions/checkout@main

- name: Setup Blacksmith Builder
uses: useblacksmith/setup-docker-builder@v1

- name: 'Login to GitHub Container Registry'
uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{github.actor}}
password: ${{secrets.GITHUB_TOKEN}}

- name: Lowercase Repo Owner
run: |
echo "REPO_OWNER=${GITHUB_REPOSITORY_OWNER,,}" >>${GITHUB_ENV}
env:
GITHUB_REPOSITORY_OWNER: '${{ github.repository_owner }}'

- name: Extract platform suffix
run: |
platform=${{ matrix.platform }}
echo "PLATFORM_SUFFIX=${platform//\//-}" >> $GITHUB_ENV

- name: 'Build and Push Image'
uses: useblacksmith/build-push-action@v2
with:
context: ./apps/playwright-service-ts
push: true
tags: ghcr.io/${{ env.REPO_OWNER }}/playwright-service:${{ env.PLATFORM_SUFFIX }}
platforms: ${{ matrix.platform }}
provenance: false

manifest:
runs-on: blacksmith-2vcpu-ubuntu-2404
needs: build
steps:
- name: 'Login to GitHub Container Registry'
uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{github.actor}}
password: ${{secrets.GITHUB_TOKEN}}

- name: Lowercase Repo Owner
run: |
echo "REPO_OWNER=${GITHUB_REPOSITORY_OWNER,,}" >>${GITHUB_ENV}
env:
GITHUB_REPOSITORY_OWNER: '${{ github.repository_owner }}'

- name: 'Create and Push Multi-Arch Manifest'
run: |
docker manifest create ghcr.io/${{ env.REPO_OWNER }}/playwright-service:latest \
ghcr.io/${{ env.REPO_OWNER }}/playwright-service:linux-amd64 \
ghcr.io/${{ env.REPO_OWNER }}/playwright-service:linux-arm64
docker manifest push ghcr.io/${{ env.REPO_OWNER }}/playwright-service:latest
Loading
Loading