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.

Official Node.js SDK. Sync + dual ESM/CJS. Zero runtime dependencies. Full TypeScript types.

npm install browsefleet

Official Python SDK. Sync + async clients. py.typed. httpx under the hood.

pip install browsefleet

Node + 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