SDKs
Official SDKs
Thin REST wrappers over the BrowseFleet server. Both SDKs ship with full operator-mode coverage, typed errors, auto-retry on 429 / 5xx, and env-var fallback for BROWSEFLEET_URL and BROWSEFLEET_API_KEY.
browsefleet (Node SDK)TypeScript
Official Node.js SDK. Sync + dual ESM/CJS. Zero runtime dependencies. Full TypeScript types.
npm install browsefleetbrowsefleet (Python SDK)Python
Official Python SDK. Sync + async clients. py.typed. httpx under the hood.
pip install browsefleetNode + TypeScript
import { BrowseFleet } from 'browsefleet';
const bf = new BrowseFleet({
baseUrl: 'http://localhost:3000',
apiKey: process.env.BROWSEFLEET_API_KEY, // optional when server is authless
});
const { markdown, title } = await bf.scrape('https://example.com');
console.log(title, markdown.slice(0, 200));Dual ESM + CJS, zero runtime dependencies, full TypeScript types. Node 18+.
Python
from browsefleet import BrowseFleet
with BrowseFleet(base_url="http://localhost:3000") as bf:
page = bf.scrape("https://example.com")
print(page.title, page.markdown[:200])Sync BrowseFleet and async AsyncBrowseFleet. One runtime dependency: httpx. Python 3.10+.
What ships in both
- Sessions: create, list, get, release, control (agent / human / paused), actions
- Quick actions: scrape, screenshot, pdf
- Profiles: persistent Chrome user-data dirs
- Agent: vision-based natural-language tasks
- Files: upload, download, list per session
- CAPTCHA: 2captcha-backed solve endpoint
- Typed errors: AuthError, NotFoundError, RateLimitError, ValidationError, ServerError
- Live + event SSE streams
Want a different language?
The REST surface is small and the OpenAPI schema is on the roadmap. SDKs in Go, Rust, Ruby, or anywhere else are welcome contributions; open a Discussion to coordinate before you start.
Open a Discussion