SDKs

Node.js and Python SDKs

Official client libraries for Node.js and Python. Both SDKs provide typed interfaces for every endpoint, automatic error handling, and binary response support.

Node.js SDK

bash
npm install browsefleet

Initialization

typescript
import { BrowseFleet } from 'browsefleet';

const bf = new BrowseFleet({
  apiKey: 'bf_your_api_key',            // Required
  baseUrl: 'https://api.browsefleet.com', // Optional (default)
  timeout: 60000,                        // Optional, ms (default: 60000)
});

Methods Reference

MethodReturn TypeDescription
bf.sessions.create(opts?)SessionCreate a browser session
bf.sessions.list()SessionListList active sessions
bf.sessions.get(id)SessionGet session by ID
bf.sessions.release(id){ released }Release a session
bf.sessions.releaseAll(ids?){ released }Release batch or all
bf.sessions.actions(id, actions)ActionResponseExecute Computer API actions
bf.sessions.solveCaptcha(id, opts?)CaptchaSolveResponseSolve CAPTCHA on page
bf.sessions.listFiles(id)FileListResponseList session files
bf.sessions.downloadFile(id, name)ArrayBufferDownload a file
bf.profiles.create(opts)ProfileCreate a profile
bf.profiles.list()ProfileListList all profiles
bf.profiles.get(id)ProfileGet profile by ID
bf.profiles.delete(id){ deleted }Delete a profile
bf.scrape(url, opts?)ScrapeResponseScrape URL to content
bf.screenshot(url, opts?)ArrayBufferScreenshot URL
bf.pdf(url, opts?)ArrayBufferGenerate PDF
bf.usage()UsageStatsGet usage statistics
bf.health()booleanHealth check

Error Handling

typescript
import { BrowseFleet, AuthError, NotFoundError, RateLimitError, BrowseFleetError } from 'browsefleet';

try {
  const session = await bf.sessions.get('invalid-id');
} catch (err) {
  if (err instanceof AuthError) {
    console.error('Invalid API key');
  } else if (err instanceof NotFoundError) {
    console.error('Session not found');
  } else if (err instanceof RateLimitError) {
    console.error('Rate limited — retry later');
  } else if (err instanceof BrowseFleetError) {
    console.error(`API error ${err.status}: ${err.message}`);
  }
}

Python SDK

bash
pip install browsefleet

Initialization

python
from browsefleet import BrowseFleet

bf = BrowseFleet(
    api_key="bf_your_api_key",
    base_url="https://api.browsefleet.com",  # Required
    timeout=60.0,                             # Optional, seconds (default: 60)
)

# Supports context manager
with BrowseFleet(api_key="bf_...", base_url="https://api.browsefleet.com") as bf:
    session = bf.sessions.create(stealth="full")
    # bf.close() called automatically

Methods Reference

MethodReturn TypeDescription
bf.sessions.create(**kwargs)SessionCreate a browser session
bf.sessions.list()list[Session]List active sessions
bf.sessions.get(id)SessionGet session by ID
bf.sessions.release(id)boolRelease a session
bf.sessions.release_all()intRelease all sessions
bf.sessions.release_batch(ids)intRelease multiple sessions
bf.sessions.actions(id, actions)ActionResponseExecute Computer API actions
bf.sessions.solve_captcha(id, type)CaptchaResultSolve CAPTCHA
bf.sessions.upload_file(id, name, data)dictUpload file
bf.sessions.list_files(id)list[str]List session files
bf.sessions.download_file(id, name)bytesDownload a file
bf.profiles.create(name)ProfileCreate a profile
bf.profiles.list()list[Profile]List profiles
bf.profiles.get(id)ProfileGet profile
bf.profiles.delete(id)boolDelete profile
bf.scrape(url, **kwargs)ScrapeResultScrape URL
bf.screenshot(url, **kwargs)bytesScreenshot URL
bf.pdf(url, **kwargs)bytesGenerate PDF
bf.usage()UsageStatsGet usage
bf.health()dictHealth check

Error Handling

python
from browsefleet.errors import (
    BrowseFleetError,
    AuthError,
    NotFoundError,
    RateLimitError,
    ValidationError,
    ServerError,
)

try:
    session = bf.sessions.get("invalid-id")
except AuthError:
    print("Invalid API key")
except NotFoundError:
    print("Session not found")
except RateLimitError:
    print("Rate limited")
except BrowseFleetError as e:
    print(f"API error {e.status}: {e.message}")

Building Your Own SDK

BrowseFleet exposes a standard REST API. You can build clients in any language:

REST API

JSON request/response on all endpoints. Authentication via x-api-key header. Error responses use the format { "error": "message" }.

CDP WebSocket

Standard Chrome DevTools Protocol over WebSocket. Connect to ws://host/cdp/SESSION_ID. BrowseFleet transparently proxies all CDP messages.

Binary Responses

Screenshot and PDF endpoints return binary data by default. Send Accept: application/json to get base64 JSON instead.