---
name: Browser Automation & Scraping
slug: browser-automation
description: Headless browsers, crawlers, and scraping APIs — the data layer for AI agents.
member_count: 3
canonical: https://releases.sh/collections/browser-automation
---

# Browser Automation & Scraping

Headless browsers, crawlers, and scraping APIs — the data layer for AI agents.

## Members (3)

- [Firecrawl](https://releases.sh/firecrawl) — firecrawl.dev
- [Browserbase](https://releases.sh/browserbase) — browserbase.com
- [Apify](https://releases.sh/apify) — apify.com

## Fetching more

Append `.md` (markdown), `.json` (raw data), or `.atom` (feed) to any URL on this page.

- Aggregated release feed: `https://releases.sh/collections/browser-automation.atom`

## Recent Releases

---
collection: browser-automation
collection_name: Browser Automation & Scraping
release_count: 20
has_more: true
canonical: https://releases.sh/collections/browser-automation
---

<Release version="v3.17.0" date="June 4, 2026" published="2026-06-04T09:16:58.000Z" url="https://github.com/apify/crawlee/releases/tag/v3.17.0" org="apify" source="crawlee">
# [3.17.0](https://github.com/apify/crawlee/compare/v3.16.0...v3.17.0) (2026-06-04)


### Bug Fixes

* add network timeouts to discoverValidSitemaps to prevent indefinite hangs ([#3429](https://github.com/apify/crawlee/issues/3429)) ([ee90835](https://github.com/apify/crawlee/commit/ee90835d2cbbea55815f6e417450b8c3d6b140ce))
* bind `Browser.pages()` correctly in `PuppeteerPlugin` ([#3439](https://github.com/apify/crawlee/issues/3439)) ([c3a4b3b](https://github.com/apify/crawlee/commit/c3a4b3b0d5be63f1f7a779ff43560ab2b426f3bb))
* **browser-pool:** allow unsetting launch context proxy URL ([#3621](https://github.com/apify/crawlee/issues/3621)) ([d5ab219](https://github.com/apify/crawlee/commit/d5ab219ec65289a6117c9273a93e2a70dbb5793a))
* **browser-pool:** preserve caller's AbortContext across p-limit queue ([#3673](https://github.com/apify/crawlee/issues/3673)) ([c4d58d9](https://github.com/apify/crawlee/commit/c4d58d96a53800d48c375f2e0357546a9e754417)), closes [#3670](https://github.com/apify/crawlee/issues/3670)
* BrowserCrawler closes ctx.page before errorHandler runs on navig… ([#3655](https://github.com/apify/crawlee/issues/3655)) ([ab34886](https://github.com/apify/crawlee/commit/ab348864b31edebb45e2e11f3ded3489131dcc0f))
* change sequential approach to parallel for Iterator first page ([#3402](https://github.com/apify/crawlee/issues/3402)) ([adf3dae](https://github.com/apify/crawlee/commit/adf3daeb0b3000124817b1b2011b2196342e8715)), closes [#3395](https://github.com/apify/crawlee/issues/3395)
* **core:** apply object searchParams in HTTP request options ([#3622](https://github.com/apify/crawlee/issues/3622)) ([d32946e](https://github.com/apify/crawlee/commit/d32946efbdc95bf71dfcae67b4509244e1857956))
* **core:** release storage open queue slot on failure ([#3662](https://github.com/apify/crawlee/issues/3662)) ([18ebc61](https://github.com/apify/crawlee/commit/18ebc61b27263437f6b3814fb774e65c2c4f3b88)), closes [#3661](https://github.com/apify/crawlee/issues/3661)
* correct failed requests delta count in periodic log message ([#3482](https://github.com/apify/crawlee/issues/3482)) ([a098f42](https://github.com/apify/crawlee/commit/a098f420efdcec4b1827327c012c6eb365460838))
* Correctly track the number of requests handled by a crawler ([#3410](https://github.com/apify/crawlee/issues/3410)) ([b2296ce](https://github.com/apify/crawlee/commit/b2296cea708fa1e83bfdf20d94067bfa51a2e2ed)), closes [#3083](https://github.com/apify/crawlee/issues/3083) [#3330](https://github.com/apify/crawlee/issues/3330)
* **e2e:** resolve flaky Camoufox tests due to GitHub rate limits ([#3527](https://github.com/apify/crawlee/issues/3527)) ([08c98cf](https://github.com/apify/crawlee/commit/08c98cf52de5fc227afa97b2ff71c52bbe832ba3)), closes [#3524](https://github.com/apify/crawlee/issues/3524)
* honor custom respectRobotsTxtFile userAgent in enqueueLinks ([#3578](https://github.com/apify/crawlee/issues/3578)) ([1d2528b](https://github.com/apify/crawlee/commit/1d2528b9a0e13841a0acf918e754d42862e84912))
* log warning when Sitemap.load returns empty sitemap due to loading error ([#3462](https://github.com/apify/crawlee/issues/3462)) ([2cf9c1c](https://github.com/apify/crawlee/commit/2cf9c1cd9fca21ea5113ee1404dae3a6a652fec0))
* parse proxy URLs correctly when using `useIncognitoPages` ([#3433](https://github.com/apify/crawlee/issues/3433)) ([db2bb68](https://github.com/apify/crawlee/commit/db2bb6817e0d193471330aeed30d1ead8ecee465))
* Prevent accidental request dropping with `maxRequestsPerCrawl` ([#3531](https://github.com/apify/crawlee/issues/3531)) ([b23319b](https://github.com/apify/crawlee/commit/b23319bbe8c171541f17f343f718867e25bdb620))
* prevent iframe expansion failure on pages with Trusted Types CSP ([#3590](https://github.com/apify/crawlee/issues/3590)) ([c0b9b50](https://github.com/apify/crawlee/commit/c0b9b50518bab6e62c62125aeefba6b919046d63)), closes [#3588](https://github.com/apify/crawlee/issues/3588)
* prevent v3 sitemap discovery init hangs in discoverValidSitemaps ([#3434](https://github.com/apify/crawlee/issues/3434)) ([6c04f92](https://github.com/apify/crawlee/commit/6c04f923ceca6963e25ad73ebd41e480b0d7c0e4)), closes [#3412](https://github.com/apify/crawlee/issues/3412)
* unref BrowserController.close() fallback timer to avoid keeping Node alive longer than needed ([#3671](https://github.com/apify/crawlee/issues/3671)) ([eef94d4](https://github.com/apify/crawlee/commit/eef94d441503c3ee879f396d86a96a5ac7d0edc8))
* using GET for candidate checks - sitemaps ([#3464](https://github.com/apify/crawlee/issues/3464)) ([f82eb04](https://github.com/apify/crawlee/commit/f82eb04673b6a9afd0e56dac374a2fa5c91b42e0)), closes [#3463](https://github.com/apify/crawlee/issues/3463)


### Features

* **adaptive-crawler:** add shouldPropagateError callback to prevent browser fallback ([#3635](https://github.com/apify/crawlee/issues/3635)) ([d3a29d9](https://github.com/apify/crawlee/commit/d3a29d9623bfd3b9b75c496a1c48134532c824e5))
* add `ignoreProxyCertificate` option for the internal `proxy-chain` instance ([#3418](https://github.com/apify/crawlee/issues/3418)) ([02eec66](https://github.com/apify/crawlee/commit/02eec66ecfaef94dd9903940d7969e72cf4b1fd1)), closes [#3369](https://github.com/apify/crawlee/issues/3369)
* add abortDownload context helper to FileDownload ([#3528](https://github.com/apify/crawlee/issues/3528)) ([3b3d8f6](https://github.com/apify/crawlee/commit/3b3d8f685b079dea6594758a5897ba2a3181c3ac))
* Dynamic memory snapshots ([#3471](https://github.com/apify/crawlee/issues/3471)) ([87c67dc](https://github.com/apify/crawlee/commit/87c67dc4084b11f04cc62926489d657041e60e2c)), closes [#3408](https://github.com/apify/crawlee/issues/3408)
* expose Download objects on PlaywrightCrawlingContext ([#3596](https://github.com/apify/crawlee/issues/3596)) ([5dc1627](https://github.com/apify/crawlee/commit/5dc1627deccd3d04d12fefec99b0e119fb87cbe4)), closes [#3583](https://github.com/apify/crawlee/issues/3583)
* Modularize SystemStatus to allow custom backpressure mechanisms ([#3529](https://github.com/apify/crawlee/issues/3529)) ([7159a13](https://github.com/apify/crawlee/commit/7159a13e0fb13661b9d6fa8cae1a0713bdbfb4eb))
* **templates:** use ImpitHttpClient and install optional deps in Docker ([#3603](https://github.com/apify/crawlee/issues/3603)) ([113dca6](https://github.com/apify/crawlee/commit/113dca699960f2018341ee8342b9b6af70252153)), closes [#3601](https://github.com/apify/crawlee/issues/3601)
* **utils:** add sitemapFilter option to parseSitemap ([#3557](https://github.com/apify/crawlee/issues/3557)) ([1d4f6b9](https://github.com/apify/crawlee/commit/1d4f6b9ca44b8224f14584c337bd80209eea3819))


### Performance Improvements

* add lazyIterablePromise to kvs iterators ([#3413](https://github.com/apify/crawlee/issues/3413)) ([2658610](https://github.com/apify/crawlee/commit/2658610a62ae8dca2702f5af222d64f88d91f4a8))




</Release>

<Release version="@browserbasehq/browse-cli@0.6.1" date="June 3, 2026" published="2026-06-03T21:33:49.000Z" url="https://github.com/browserbase/stagehand/releases/tag/%40browserbasehq/browse-cli%400.6.1" org="browserbase" source="stagehand">
### Patch Changes

-   Updated dependencies \[[`3a53ed4`](https://github.com/browserbase/stagehand/commit/3a53ed4ea97e079b295059a338f1ef8e768f8919), [`6e75725`](https://github.com/browserbase/stagehand/commit/6e75725b39898b3cbad681272009a69d94ca8238), [`8fc16d2`](https://github.com/browserbase/stagehand/commit/8fc16d2e1845807103da6e62928b28e0de03ab90), [`78bcde8`](https://github.com/browserbase/stagehand/commit/78bcde88e28f147acc6ca9aef9753cd96c870c35), [`3e95a87`](https://github.com/browserbase/stagehand/commit/3e95a8722a46bd7fca4d79644fe4605d7dc61bf6), [`ebbdcd3`](https://github.com/browserbase/stagehand/commit/ebbdcd33cbd137d36c9469c5ef0f531ee45a0bd8), [`12703a6`](https://github.com/browserbase/stagehand/commit/12703a6659853e2afe2d28df71d8a9b916f9df65), [`1db5f1c`](https://github.com/browserbase/stagehand/commit/1db5f1c1937b3943e13d8a43cbdeee0a6906ff75), [`cb586a1`](https://github.com/browserbase/stagehand/commit/cb586a14e46e616caa712afa6b7ceb4dc42b7fc6), [`765861c`](https://github.com/browserbase/stagehand/commit/765861c04c46851663919277f330d27a87bae823), [`2cd60a3`](https://github.com/browserbase/stagehand/commit/2cd60a34b0cfd7ae9399dd1a1779df096e86369b), [`e102a89`](https://github.com/browserbase/stagehand/commit/e102a89c903d2f5badb335dd7b7f52f16b275151), [`49575d6`](https://github.com/browserbase/stagehand/commit/49575d62f56efbd3a91359a816823cbf70fde4fd), [`dc1445d`](https://github.com/browserbase/stagehand/commit/dc1445df805cd3ad1f577278f978932244023a2e)]:
    -   @browserbasehq/stagehand@3.5.0

</Release>

<Release version="@browserbasehq/stagehand@3.5.0" date="June 3, 2026" published="2026-06-03T21:33:46.000Z" url="https://github.com/browserbase/stagehand/releases/tag/%40browserbasehq/stagehand%403.5.0" org="browserbase" source="stagehand">
### Minor Changes

-   [#2149](https://github.com/browserbase/stagehand/pull/2149) [`6e75725`](https://github.com/browserbase/stagehand/commit/6e75725b39898b3cbad681272009a69d94ca8238) Thanks [@miguelg719](https://github.com/miguelg719)! - Added a `screenshot` option to `extract()` that sends the current viewport screenshot with the a11y tree for extraction.

-   [#2127](https://github.com/browserbase/stagehand/pull/2127) [`78bcde8`](https://github.com/browserbase/stagehand/commit/78bcde88e28f147acc6ca9aef9753cd96c870c35) Thanks [@seanmcguire12](https://github.com/seanmcguire12)! - Add `ignoreDefaultArgs` option to selectively remove chrome-launcher's built-in default flags (e.g. `--disable-extensions`) when running locally

-   [#2160](https://github.com/browserbase/stagehand/pull/2160) [`49575d6`](https://github.com/browserbase/stagehand/commit/49575d62f56efbd3a91359a816823cbf70fde4fd) Thanks [@monadoid](https://github.com/monadoid)! - Forward constructor and request model configuration when initializing API-backed sessions.

-   [#2171](https://github.com/browserbase/stagehand/pull/2171) [`dc1445d`](https://github.com/browserbase/stagehand/commit/dc1445df805cd3ad1f577278f978932244023a2e) Thanks [@seanmcguire12](https://github.com/seanmcguire12)! - add native clipboard API

### Patch Changes

-   [#2146](https://github.com/browserbase/stagehand/pull/2146) [`3a53ed4`](https://github.com/browserbase/stagehand/commit/3a53ed4ea97e079b295059a338f1ef8e768f8919) Thanks [@shriyatheunicorn](https://github.com/shriyatheunicorn)! - Pass local browser launch options through when attaching over CDP so explicit viewport settings are respected.

-   [#2107](https://github.com/browserbase/stagehand/pull/2107) [`8fc16d2`](https://github.com/browserbase/stagehand/commit/8fc16d2e1845807103da6e62928b28e0de03ab90) Thanks [@miguelg719](https://github.com/miguelg719)! - Fix Anthropic CUA `triple_click` action mapping.

-   [#2118](https://github.com/browserbase/stagehand/pull/2118) [`3e95a87`](https://github.com/browserbase/stagehand/commit/3e95a8722a46bd7fca4d79644fe4605d7dc61bf6) Thanks [@monadoid](https://github.com/monadoid)! - Add Vertex auth parameters to the core and server API schemas.

-   [#2126](https://github.com/browserbase/stagehand/pull/2126) [`ebbdcd3`](https://github.com/browserbase/stagehand/commit/ebbdcd33cbd137d36c9469c5ef0f531ee45a0bd8) Thanks [@seanmcguire12](https://github.com/seanmcguire12)! - fix(core): import ToolSet from ai public export

-   [#2120](https://github.com/browserbase/stagehand/pull/2120) [`12703a6`](https://github.com/browserbase/stagehand/commit/12703a6659853e2afe2d28df71d8a9b916f9df65) Thanks [@miguelg719](https://github.com/miguelg719)! - Fix structuredOutputMode for newer Anthropic models

-   [#2170](https://github.com/browserbase/stagehand/pull/2170) [`1db5f1c`](https://github.com/browserbase/stagehand/commit/1db5f1c1937b3943e13d8a43cbdeee0a6906ff75) Thanks [@Kylejeong2](https://github.com/Kylejeong2)! - Add Claude Opus 4.8 to the supported CUA model whitelist.

-   [#2116](https://github.com/browserbase/stagehand/pull/2116) [`cb586a1`](https://github.com/browserbase/stagehand/commit/cb586a14e46e616caa712afa6b7ceb4dc42b7fc6) Thanks [@seanmcguire12](https://github.com/seanmcguire12)! - include "[selected]" or "[checked]" state in snapshot

-   [#2129](https://github.com/browserbase/stagehand/pull/2129) [`765861c`](https://github.com/browserbase/stagehand/commit/765861c04c46851663919277f330d27a87bae823) Thanks [@miguelg719](https://github.com/miguelg719)! - Add a backend-selectable v3 evaluator facade while preserving the legacy evaluator path.

-   [#2157](https://github.com/browserbase/stagehand/pull/2157) [`2cd60a3`](https://github.com/browserbase/stagehand/commit/2cd60a34b0cfd7ae9399dd1a1779df096e86369b) Thanks [@miguelg719](https://github.com/miguelg719)! - Add verifier trajectory, rubric, and evaluation-result types with normalized public naming.

-   [#2131](https://github.com/browserbase/stagehand/pull/2131) [`e102a89`](https://github.com/browserbase/stagehand/commit/e102a89c903d2f5badb335dd7b7f52f16b275151) Thanks [@miguelg719](https://github.com/miguelg719)! - Capture verifier trajectory evidence from agent evidence callbacks for offline scoring.

</Release>

<Release version="v3.4.1" date="May 29, 2026" published="2026-05-29T10:05:29.000Z" url="https://github.com/apify/apify-sdk-python/releases/tag/v3.4.1" org="apify" source="apify-sdk">
## 3.4.1

## [3.4.1](https://github.com/apify/apify-sdk-python/releases/tag/v3.4.1) (2026-05-29)

### 🐛 Bug Fixes

- Forward missing run kwargs in Actor.start&#x2F;call&#x2F;call_task ([#906](https://github.com/apify/apify-sdk-python/pull/906)) ([7a13809](https://github.com/apify/apify-sdk-python/commit/7a13809898f5579138febbb077f7ab7e4e72cbe1)) by @vdusek
- Update `push_data` annotation with `JsonSerializable` instead of Any ([#899](https://github.com/apify/apify-sdk-python/pull/899)) ([b4f5485](https://github.com/apify/apify-sdk-python/commit/b4f5485175cfd248893bc8a2b3017fa797d1000e)) by @Mantisus


</Release>

<Release version="stagehand-server-v3/v3.7.1" date="May 28, 2026" published="2026-05-28T17:06:52.000Z" url="https://github.com/browserbase/stagehand/releases/tag/stagehand-server-v3/v3.7.1" org="browserbase" source="stagehand">
## stagehand/server-v3 v3.7.1

## What's Changed
* STG-1746 Add SEA --version flag by @monadoid in https://github.com/browserbase/stagehand/pull/2167


**Full Changelog**: https://github.com/browserbase/stagehand/compare/stagehand-server-v3/v3.7.0...stagehand-server-v3/v3.7.1
</Release>

<Release version="stagehand-server-v3/v3.7.0" date="May 27, 2026" published="2026-05-27T19:48:00.000Z" url="https://github.com/browserbase/stagehand/releases/tag/stagehand-server-v3/v3.7.0" org="browserbase" source="stagehand">
## stagehand/server-v3 v3.7.0

## What's Changed
* Add `screenshot` option to Extract by @miguelg719 in https://github.com/browserbase/stagehand/pull/2149
* feat(verifier): add evaluator backend facade by @miguelg719 in https://github.com/browserbase/stagehand/pull/2129
* Workflow: publish eval results by @miguelg719 in https://github.com/browserbase/stagehand/pull/2093
* fix[evals] remove braintrust api key requirement (#2145) by @miguelg719 in https://github.com/browserbase/stagehand/pull/2153
* Delete packages/server-v4 entirely for now by @pirate in https://github.com/browserbase/stagehand/pull/2151
* feat(verifier): add verifier evaluator shell and types by @miguelg719 in https://github.com/browserbase/stagehand/pull/2157
* feat(verifier): record agent trajectories by @miguelg719 in https://github.com/browserbase/stagehand/pull/2131
* Fix SDK API reference parameter labels by @monadoid in https://github.com/browserbase/stagehand/pull/2164
* [chore]: update lockfile by @seanmcguire12 in https://github.com/browserbase/stagehand/pull/2168
* [chore]: bump `ws` dep by @seanmcguire12 in https://github.com/browserbase/stagehand/pull/2169
* [STG-1756] forward Vertex model config by @monadoid in https://github.com/browserbase/stagehand/pull/2160


**Full Changelog**: https://github.com/browserbase/stagehand/compare/stagehand-server-v3/v3.6.10...stagehand-server-v3/v3.7.0
</Release>

<Release date="May 26, 2026" published="2026-05-26T00:00:00.000Z" url="https://www.firecrawl.dev/changelog#introducing-monitor" org="firecrawl" source="firecrawl-changelog">
## Introducing /monitor

Enter a URL, describe what you want to track, and `/monitor` notifies your AI agent via webhook the moment pages or sites change. Use up to 90% fewer LLM tokens by only ingesting what actually changes.

**Key Features:**
- Set a goal in plain English — Describe what to watch and `/monitor` configures the URLs, schema, and schedule for you
- Up to 90% fewer LLM tokens — Your agent only ingests what changes on a page
- Any cadence, with cost upfront — 5 minutes, hourly, daily, or custom cron schedule with estimated monthly cost shown upfront
- Webhook or email delivery — Signed webhooks with custom headers or email with diff in body
- Permalinks for every change — Diffs are first-class objects you can share or hand to another agent
</Release>

<Release date="May 21, 2026" published="2026-05-21T00:00:00.000Z" url="https://www.browserbase.com/changelog#fetch-api-now-returns-markdown-and-json" org="browserbase" source="browserbase-changelog">
## Fetch API now returns markdown and JSON

Use the updated Fetch API to fetch and return web content as markdown or structured JSON from any URL. Faster and cheaper than spinning up a browser, in formats that are easier for humans and models to read.

Data cap raised from 1MB to 5MB.

Extract ~$4 / 1k pages, ~$7 / 1k with proxies.
</Release>

<Release version="stagehand-server-v3/v3.6.10" date="May 20, 2026" published="2026-05-20T19:22:59.000Z" url="https://github.com/browserbase/stagehand/releases/tag/stagehand-server-v3/v3.6.10" org="browserbase" source="stagehand">
## stagehand/server-v3 v3.6.10

## What's Changed
* Version Packages by @github-actions[bot] in https://github.com/browserbase/stagehand/pull/2067
* [chore]: bump mcp sdk & fastify by @seanmcguire12 in https://github.com/browserbase/stagehand/pull/2106
* Evals TUI tree traversal by @miguelg719 in https://github.com/browserbase/stagehand/pull/2100
* [docs]: add docs for `ignoreSelectors` by @seanmcguire12 in https://github.com/browserbase/stagehand/pull/2097
* [docs]: add `ignoreSelectors` to docs for `extract()` by @seanmcguire12 in https://github.com/browserbase/stagehand/pull/2088
* [fix] Anthropic CUA `triple_click` mapping (#2104) by @miguelg719 in https://github.com/browserbase/stagehand/pull/2107
* [evals] Onboarding flow by @miguelg719 in https://github.com/browserbase/stagehand/pull/2103
* Updated readme for evals package by @miguelg719 in https://github.com/browserbase/stagehand/pull/2112
* [chore]: bump more deps by @seanmcguire12 in https://github.com/browserbase/stagehand/pull/2114
* [chore]: bump mintlify version by @seanmcguire12 in https://github.com/browserbase/stagehand/pull/2115
* [fix]: include native selector state into snapshot by @seanmcguire12 in https://github.com/browserbase/stagehand/pull/2116
* Pin github action/workflow versions by @miguelg719 in https://github.com/browserbase/stagehand/pull/2121
* Fix `structuredOutputMode` for newer Anthropic models by @miguelg719 in https://github.com/browserbase/stagehand/pull/2120
* [chore]: omit test files from published package by @seanmcguire12 in https://github.com/browserbase/stagehand/pull/2122
* [chore]: rm deepmerge from peer deps by @seanmcguire12 in https://github.com/browserbase/stagehand/pull/2124
* [chore]: rm langchain deps by @seanmcguire12 in https://github.com/browserbase/stagehand/pull/2123
* [fix]: import `ToolSet` from ai public export by @seanmcguire12 in https://github.com/browserbase/stagehand/pull/2126
* [feat]: forward `ignoreDefaultArgs` to chrome-launcher by @seanmcguire12 in https://github.com/browserbase/stagehand/pull/2127
* [chore]: rm cli release workflow by @seanmcguire12 in https://github.com/browserbase/stagehand/pull/2143
* Pass local launch options when attaching over CDP by @shriyatheunicorn in https://github.com/browserbase/stagehand/pull/2146
* [STG-1756] add Vertex auth params to Stagehand spec by @monadoid in https://github.com/browserbase/stagehand/pull/2118

## New Contributors
* @shriyatheunicorn made their first contribution in https://github.com/browserbase/stagehand/pull/2146

**Full Changelog**: https://github.com/browserbase/stagehand/compare/stagehand-server-v3/v3.6.9...stagehand-server-v3/v3.6.10
</Release>

<Release version="v2.10" date="May 15, 2026" published="2026-05-15T17:34:45.000Z" url="https://github.com/firecrawl/firecrawl/releases/tag/v2.10" org="firecrawl" source="firecrawl-github-releases">
## Firecrawl v2.10

# Firecrawl v2.10

## Improvements

- **`/parse` endpoint** — Upload local files (PDF, DOCX, DOC, ODT, RTF, XLSX, XLS, HTML) up to 50 MB and get back clean, LLM-ready Markdown, JSON, or a summary. Tables and reading order are preserved, with full Zero Data Retention support for enterprise plans. Available in JS, Python, Go, Rust, Java, .NET, PHP, Ruby, and Elixir SDKs.
- **Lockdown Mode** — Set `lockdown: true` on `/scrape` to serve results exclusively from Firecrawl's index with zero outbound requests and zero data retention by default. Gated outbound paths include HTTP fetches, robots.txt, audio downloads, and media. Available in every SDK, the CLI (`--lockdown`), and MCP.
- **`question` format** — Pass a natural-language prompt to `/scrape` and get a grounded, hallucination-free answer back in `data.question`. Runs on a managed model chain with automatic fallback, prompt-injection isolation via XML tagging and zero-width-space escaping, and up to 100x fewer tokens per call.
- **`highlights` format** — Returns the exact sentences, code blocks, and table rows on a page that match your query. Consecutive sentences re-join into paragraphs, code lines wrap in fenced blocks with their original language, and table rows rebuild into Markdown tables with headers — all from the source page, using up to 100x fewer tokens per call.
- **`video` format** — Added `video` to scrape formats. Returns a signed downloadable video URL for supported sites (e.g. YouTube), with cookie forwarding for authenticated downloads and explicit Lockdown gating.
- **`/search` domain filters** — Added `includeDomains` and `excludeDomains` parameters to `/search` for scoping results to a specific set of sites.
- **`/search` feedback endpoint** — Submit a rating on a search result with `POST /v2/search/:jobId/feedback`. Each accepted submission refunds 1 credit, capped per UTC day, with idempotent retries.
- **Custom robots.txt user agent** — Added `robotsUserAgent` to crawl requests to evaluate robots.txt rules and crawl delays against a custom agent string, and a separate `customRobotsAgent` org flag independent from `ignoreRobots`. Available in JS, Python, and Java SDKs.
- **Official Go SDK** — Added a first-party Go SDK for the v2 API, replacing the community module. Includes context-aware retry backoff and proper `MapData.Links` typing.
- **Ruby SDK** — Added the official Firecrawl Ruby SDK v2 with full endpoint coverage and v2-native typing.
- **PHP SDK** — Added the official PHP SDK with Laravel support, scrape/search/crawl/map/parse coverage, and a published `firecrawl/firecrawl-sdk` Composer package.
- **.NET SDK** — Added the official .NET SDK with v2 API support, parse, and an `firecrawl-sdk` NuGet package.
- **Rust SDK v2** — The Rust SDK has been promoted to the official v2 SDK with parity across scrape, search, crawl, map, agent, and parse.
- **`/interact` suggestion** — Calls to `/scrape` that pass an `actions` array now return a warning suggesting `/interact` for stateful browser automation.
- **PDF size cap** — Raised the PDF upload size limit from 10 MB to 30 MB.
- **PDF page-processed billing** — Updated PDF billing to reflect pages processed instead of raw page count.
- **Docker harness** — Exposed `HARNESS_STARTUP_TIMEOUT_MS` through `docker-compose` for self-hosted users who need longer startup windows.
- **Elixir SDK** — Added `parse_file/3` to the Elixir SDK for the `/parse` endpoint.
- **JS SDK request timeout** — Added an explicit request timeout option to the JS SDK to prevent hanging requests.

## Fixes

- Resolved multiple CVEs across the API and SDKs including `axios`, `postcss`, `fast-xml-parser`, `protobufjs`, `follow-redirects`, `langsmith`, `lodash`, `fast-uri`, and `fast-xml-builder`.
- Fixed branding `colors.secondary` being incorrectly populated when the LLM omitted a value — `secondary` is now optional and is no longer applied as a default.
- Fixed the Playwright service ignoring the caller's `User-Agent` request header.
- Fixed `screenshot` signed URLs returning stale results from cache by forcing a cache miss when the signed URL has expired.
- Fixed Lockdown requests being billed twice for ZDR by treating Lockdown as zero data retention by default.
- Fixed proxy billing for cached scrapes incorrectly charging proxy credits when no proxy egress occurred.
- Fixed YouTube transcript scripts running on audio-only scrapes and audio downloads not receiving CDP cookies.
- Fixed `html-to-md` conversion service ignoring zero data retention.
- Fixed a stack overflow in `marked.parse` when handling certain PDF outputs.
- Fixed `robotsUserAgent` not being honored by the native link filter and not being included in JS SDK crawl payloads.
- Fixed `/v1` status endpoints returning 500 on non-UUID job IDs — now returns a proper 400.
- Fixed empty `actions: []` arrays being treated as actions in feature flags.
- Fixed JS SDK watcher emitting duplicate events, leaking timeouts, and hanging `start()` on watcher timeouts.
- Fixed Ruby SDK unwrapping of `credit_usage` data fields and defaulted `skipTlsVerification` to `false`.
- Fixed missing negative-limit validation in Python, Java, and Go SDKs.
- Fixed Java SDK accepting empty API keys and missing async lifecycle methods.
- Fixed billing period timestamps, subscription lookups, and plan credit reporting.
- Fixed crawl-backlog timeouts being unbounded — now capped at 48h.

## API

- Added `POST /v2/parse` for multipart file uploads up to 50 MB. Returns a standard Document. Disallowed scrape options on parse: `changeTracking`, `screenshot`, `branding`, `actions`, `waitFor`, `location`, `mobile`; `proxy` is restricted to `auto` or `basic`. Errors with `PARSE_UNSUPPORTED_OPTIONS` on disallowed input.
- Added `lockdown: boolean` to `/scrape`. Cache misses return `404` with `SCRAPE_LOCKDOWN_CACHE_MISS`. Billing: +4 credits when `lockdown` is enabled, 1 credit on cache miss. Available across all SDKs.
- Added `question` and `highlights` to `/scrape` formats, returning `data.question` and `data.highlights` respectively.
- Added `video` to `/scrape` formats. Returns `document.video` as a signed URL. +4 credits per request. Unsupported URLs raise `SCRAPE_VIDEO_UNSUPPORTED_URL`; `parse` rejects the `video` format client- and server-side.
- Added `includeDomains` and `excludeDomains` arrays on `/v2/search` for scoping results to specific domains.
- Added `POST /v2/search/:jobId/feedback` for rating search results. Each accepted submission refunds 1 credit, capped per UTC day via `SEARCH_FEEDBACK_DAILY_CAP_CREDITS`, with idempotent retries returning `alreadySubmitted: true`. Feedback submissions older than `SEARCH_FEEDBACK_MAX_AGE_SEC` (default 120s) are rejected. Search billing is now `ceil(results/10) * 2` credits, surfaced in responses.
- Added `robotsUserAgent` to `/v2/crawl` `crawlerOptions` for custom-agent robots.txt evaluation. Gated behind the `ignoreRobots` org flag.
- Added a separate `customRobotsAgent` org flag independent from `ignoreRobots`, so teams can ship custom user-agents without disabling robots.txt enforcement.
- Migrated the `ignoreRobots` org flag from a boolean to a `disabled` / `allowed` / `forced` pattern. The legacy `ignoreRobots: boolean` request shape has been removed — clients must use the new flag values.
- Deprecated `/v0/scrape`, `/v0/crawl`, `/v0/crawl/status/:jobId`, `DELETE /v0/crawl/cancel/:jobId`, `/v0/search`, `/v1/extract`, `/v1/extract/:jobId`, `/v2/extract`, `/v2/extract/:jobId`, `/v1/deep-research`, `/v1/deep-research/:jobId`, `/v1/llmstxt`, and `/v1/llmstxt/:jobId`. Deprecated endpoints emit `Deprecation: true`, `Warning: 299 - "<message>"`, `Link; rel="successor-version"`, and (when configured) `Sunset` headers, plus `warnings[]` and `replacement` in the JSON body. JS and Python SDKs surface these to clients.

---

**Full Changelog**: https://github.com/firecrawl/firecrawl/compare/v2.9.0...v2.10
</Release>

<Release version="v2.10" date="May 15, 2026" published="2026-05-15T00:00:00.000Z" url="https://www.firecrawl.dev/changelog#v2-10" org="firecrawl" source="firecrawl-changelog">
## v2.10 is live

Firecrawl v2.10 ships a new `/parse` endpoint, Lockdown Mode, Question and Highlights formats, and four new official SDKs (Go, Ruby, PHP, .NET) plus reliability and security fixes.

**Key Features:**
- **`/parse` endpoint** — Upload PDFs, Word docs, and spreadsheets up to 50 MB and get clean, LLM-ready Markdown, JSON, or summaries back. Powered by a new Rust-based engine that's up to 5x faster
- **Lockdown Mode** — Set `lockdown: true` on `/scrape` to serve results exclusively from Firecrawl's index with no outbound requests and zero data retention by default
- **Question Format** — Pass a natural-language prompt to `/scrape` and get a grounded answer back, with up to 100x fewer tokens per call
- **Highlights Format** — Get back the exact sentences, code blocks, and table rows on a page that match your query, with original formatting preserved
- **Four New Official SDKs** — Go, Ruby, PHP (with Laravel support), and .NET all joined the SDK family with v2 parity. The Rust SDK has been promoted to the official v2 SDK
</Release>

<Release version="v2.10.0" date="May 15, 2026" published="2026-05-15T00:00:00.000Z" url="https://www.firecrawl.dev/changelog#v2-10-0" org="firecrawl" source="firecrawl-changelog">
## v2.10 is live

Firecrawl v2.10 ships a new `/parse` endpoint, Lockdown Mode, Question and Highlights formats, and four new official SDKs (Go, Ruby, PHP, .NET) - plus a long list of reliability and security fixes.

### Highlights

* **`/parse` endpoint** — Upload PDFs, Word docs, and spreadsheets up to 50 MB and get clean, LLM-ready Markdown, JSON, or summaries back. Powered by a new Rust-based engine that's up to 5x faster.
* **Lockdown Mode** — Set `lockdown: true` on `/scrape` to serve results exclusively from Firecrawl's index with no outbound requests and zero data retention by default. Available everywhere, including the CLI (`--lockdown`) and MCP.
* **Question Format** — Pass a natural-language prompt to `/scrape` and get a grounded answer back, with up to 100x fewer tokens per call.
* **Highlights Format** — Get back the exact sentences, code blocks, and table rows on a page that match your query, with original formatting preserved — also using up to 100x fewer tokens per call.
* **Four New Official SDKs** — Go, Ruby, PHP (with Laravel support), and .NET all joined the SDK family with v2 parity. The Rust SDK has been promoted to the official v2 SDK.
</Release>

<Release date="May 14, 2026" published="2026-05-14T00:00:00.000Z" url="https://www.browserbase.com/changelog#session-replay-streaming" org="browserbase" source="browserbase-changelog">
## Session replay streaming

Session replays can now be embedded directly in your product and streamed to your end users within seconds of a session ending.

Includes:
- API for embedding session replays in your own product
- Playback in any HLS-compatible player
- Storage, fMP4 encoding, and CDN delivery handled by Browserbase

Your backend fetches the session's `.m3u8` playlist from our API, your frontend hands it to a player, and end users stream segments directly from our CDN.

Free on every plan, up to 120 sessions per minute.
</Release>

<Release date="May 13, 2026" published="2026-05-13T00:00:00.000Z" url="https://www.browserbase.com/changelog#reduce-context-bloat-in-stagehand-3-4" org="browserbase" source="browserbase-changelog">
## Reduce context bloat in Stagehand 3.4

Stagehand 3.4.0 is live.

Use `ignoreSelectors` to keep noisy parts of a page out of `extract()` and `observe()`: ads, nav, modals, related posts, and anything else your agent should ignore.

Plus:
- Agent variables are now supported in the Stagehand API schema without the experimental requirement
- Agent mode now defaults to hybrid for compatible models and DOM mode otherwise
- New CUA model support: `openai/gpt-5.4-mini`, `openai/gpt-5.5`, and `anthropic/claude-haiku-4-5`
- Better OOPIF frame handling and stronger observe element ID prompting
</Release>

<Release version="stagehand-server-v3/v3.6.9" date="May 11, 2026" published="2026-05-11T21:20:24.000Z" url="https://github.com/browserbase/stagehand/releases/tag/stagehand-server-v3/v3.6.9" org="browserbase" source="stagehand">
## stagehand/server-v3 v3.6.9

## What's Changed
* Evals man help by @miguelg719 in https://github.com/browserbase/stagehand/pull/2092
* [docs]: rm lockfile from docs package by @seanmcguire12 in https://github.com/browserbase/stagehand/pull/2099
* [chore]: move integration libs into peer deps by @seanmcguire12 in https://github.com/browserbase/stagehand/pull/2101
* [chore]: rm evals changeset by @seanmcguire12 in https://github.com/browserbase/stagehand/pull/2108


**Full Changelog**: https://github.com/browserbase/stagehand/compare/stagehand-server-v3/v3.6.8...stagehand-server-v3/v3.6.9
</Release>

<Release version="@browserbasehq/stagehand@3.4.0" date="May 11, 2026" published="2026-05-11T21:19:46.000Z" url="https://github.com/browserbase/stagehand/releases/tag/%40browserbasehq/stagehand%403.4.0" org="browserbase" source="stagehand">
### Minor Changes

-   [#2084](https://github.com/browserbase/stagehand/pull/2084) [`0641d44`](https://github.com/browserbase/stagehand/commit/0641d44a849062f5f7ce6a36a34ee95f9840efaa) Thanks [@seanmcguire12](https://github.com/seanmcguire12)! - add ignoreSelectors param to extract()

-   [#2096](https://github.com/browserbase/stagehand/pull/2096) [`a11603d`](https://github.com/browserbase/stagehand/commit/a11603d09d80f5e2fc341d154a0b90fe9fa48d1c) Thanks [@seanmcguire12](https://github.com/seanmcguire12)! - add ignoreSelectors to observe()

### Patch Changes

-   [#2080](https://github.com/browserbase/stagehand/pull/2080) [`21c78b3`](https://github.com/browserbase/stagehand/commit/21c78b3a50fd20cbec7ca8aa5f766f55e17b0f78) Thanks [@miguelg719](https://github.com/miguelg719)! - Add variables support to v3 agentExecute API schema and remove experimental requirement

-   [#2077](https://github.com/browserbase/stagehand/pull/2077) [`f437f73`](https://github.com/browserbase/stagehand/commit/f437f738d23951cf460a30d3d285d1eba4c78ea2) Thanks [@monadoid](https://github.com/monadoid)! - Fix frame registry handling for OOPIF pages

-   [#2098](https://github.com/browserbase/stagehand/pull/2098) [`a783b99`](https://github.com/browserbase/stagehand/commit/a783b99fb947968b685050314bd1df256d7a1f5a) Thanks [@seanmcguire12](https://github.com/seanmcguire12)! - bump transitive deps to patched versions

-   [#2089](https://github.com/browserbase/stagehand/pull/2089) [`8d2f354`](https://github.com/browserbase/stagehand/commit/8d2f3541427ca7c9c6d9a831601a6a5babc48502) Thanks [@shrey150](https://github.com/shrey150)! - Strengthen observe prompts so LLMs return complete encoded element IDs.

-   [#2047](https://github.com/browserbase/stagehand/pull/2047) [`a87c1fc`](https://github.com/browserbase/stagehand/commit/a87c1fc435be83dbf14eab9edc6c421454ef7be4) Thanks [@tkattkat](https://github.com/tkattkat)! - Set default agent mode to hybrid with auto routing to dom for non compatible models

-   [#2101](https://github.com/browserbase/stagehand/pull/2101) [`26e6c96`](https://github.com/browserbase/stagehand/commit/26e6c960ca2894dc459ca40c9f31eb01e6d92053) Thanks [@seanmcguire12](https://github.com/seanmcguire12)! - move playwright-core, puppeteer-core, patchright-core from optional dependencies to peer dependencies

-   [#2068](https://github.com/browserbase/stagehand/pull/2068) [`1d176c4`](https://github.com/browserbase/stagehand/commit/1d176c466e25eb0cb03d9986b51d5cdb35a2e56b) Thanks [@filip-michalsky](https://github.com/filip-michalsky)! - Remove the default temperature setting from v3 agent AI SDK calls so reasoning models that do not support temperature run without provider warnings.

-   [#2040](https://github.com/browserbase/stagehand/pull/2040) [`1fa9613`](https://github.com/browserbase/stagehand/commit/1fa96130abbee2197a4e7f208878d06cba10c70b) Thanks [@monadoid](https://github.com/monadoid)! - Prefer `STAGEHAND_API_URL` for Stagehand API overrides while retaining `STAGEHAND_BASE_URL` as a deprecated fallback.

-   [#2065](https://github.com/browserbase/stagehand/pull/2065) [`9ff70dd`](https://github.com/browserbase/stagehand/commit/9ff70dd26cf4e03dce00ddcdc2d3b5e8d116781c) Thanks [@miguelg719](https://github.com/miguelg719)! - Add support for CUA models: openai/gpt-5.4-mini, openai/gpt-5.5, and anthropic/claude-haiku-4-5

-   [#2039](https://github.com/browserbase/stagehand/pull/2039) [`7640381`](https://github.com/browserbase/stagehand/commit/76403819b8f33d8d2670b6bea521a76f5ecc274e) Thanks [@monadoid](https://github.com/monadoid)! - Deprecate Browserbase project ID configuration.

</Release>

<Release version="stagehand-server-v3/v3.6.8" date="May 8, 2026" published="2026-05-08T20:44:48.000Z" url="https://github.com/browserbase/stagehand/releases/tag/stagehand-server-v3/v3.6.8" org="browserbase" source="stagehand">
## stagehand/server-v3 v3.6.8

## What's Changed
* [chore]: bump various transitive deps across monorepo by @seanmcguire12 in https://github.com/browserbase/stagehand/pull/2098


**Full Changelog**: https://github.com/browserbase/stagehand/compare/stagehand-server-v3/v3.6.7...stagehand-server-v3/v3.6.8
</Release>

<Release date="May 8, 2026" published="2026-05-08T00:00:00.000Z" url="https://www.firecrawl.dev/changelog#highlights-format" org="firecrawl" source="firecrawl-changelog">
## Highlights Format

**Highlights** is a new format for `/scrape` that returns the exact sentences, code blocks, and table rows on a page that match your query, all while using up to 100x fewer tokens.

### Highlights

* **Citable, hallucination-free output** — Nothing in the response is rewritten, translated, or hallucinated. Every sentence is provably from the source page, in the page's own words.
* **Code blocks and tables preserved** — Consecutive sentences from the same block re-join into paragraphs, consecutive code lines wrap in fenced blocks with their original language, and table rows rebuild into Markdown tables with headers auto-included.
* **Up to 100x fewer tokens per call** — Returning just the matching lines instead of the full page lowers inference costs, speeds up responses, and keeps your context window lean.
</Release>

<Release version="stagehand-server-v3/v3.6.7" date="May 7, 2026" published="2026-05-07T21:11:46.000Z" url="https://github.com/browserbase/stagehand/releases/tag/stagehand-server-v3/v3.6.7" org="browserbase" source="stagehand">
## stagehand/server-v3 v3.6.7

## What's Changed
* [feat]: add `ignoreSelectors` to `observe()` by @seanmcguire12 in https://github.com/browserbase/stagehand/pull/2096
* Default SEA binary server-v3 to only bind to localhost by @pirate in https://github.com/browserbase/stagehand/pull/2091


**Full Changelog**: https://github.com/browserbase/stagehand/compare/stagehand-server-v3/v3.6.6...stagehand-server-v3/v3.6.7
</Release>

<Release version="stagehand-server-v3/v3.6.6" date="May 7, 2026" published="2026-05-07T18:27:27.000Z" url="https://github.com/browserbase/stagehand/releases/tag/stagehand-server-v3/v3.6.6" org="browserbase" source="stagehand">
## stagehand/server-v3 v3.6.6

## What's Changed
* remove experimental requirement on agent variables (#2079) by @miguelg719 in https://github.com/browserbase/stagehand/pull/2080
* remove default temp by @filip-michalsky in https://github.com/browserbase/stagehand/pull/2076
* [STG-1935] fix: strengthen observe element ID prompting by @shrey150 in https://github.com/browserbase/stagehand/pull/2089
* [chore]: commit updated spec by @seanmcguire12 in https://github.com/browserbase/stagehand/pull/2095
* STG-1806 Make model API key optional in OpenAPI by @monadoid in https://github.com/browserbase/stagehand/pull/2094


**Full Changelog**: https://github.com/browserbase/stagehand/compare/stagehand-server-v3/v3.6.5...stagehand-server-v3/v3.6.6
</Release>

<Pagination cursor="2026-05-07T18:27:27.000Z|2026-05-07T21:01:11.645Z|rel_dHnHGtGp55FqJe-V4UUDx" next="https://releases.sh/collections/browser-automation/releases?cursor=2026-05-07T18%3A27%3A27.000Z%7C2026-05-07T21%3A01%3A11.645Z%7Crel_dHnHGtGp55FqJe-V4UUDx&limit=20" />
