> ## Documentation Index
> Fetch the complete documentation index at: https://docs.surfsky.io/llms.txt
> Use this file to discover all available pages before exploring further.

# SDKs

> Choose the Python or TypeScript client for browser automation and the Surfsky REST API.

Surfsky's SDKs manage sessions, profiles, proxies, and account limits. They also provide browser actions and pools for processing multiple jobs.

<CardGroup cols={2}>
  <Card title="Python SDK" href="/sdk/python">
    Python 3.12+. Async browser automation and sync or async REST calls.
  </Card>

  <Card title="TypeScript SDK" href="/sdk/typescript">
    Node.js 22+ or Bun. ES modules with TypeScript definitions.
  </Card>
</CardGroup>

<span id="if-you-already-have-playwright-or-puppeteer" />

<span id="why-use-one" />

## Browser actions or your existing framework

Use the SDK's browser API for navigation, selectors, mouse and keyboard actions, and access to page content. Input commands use [human emulation](/human_emulation).

If you use another framework to control the browser, the SDK can start the session and provide its connection URL. Your framework handles page operations; the SDK handles the session lifecycle. See the [Python Playwright example](/sdk/python#use-playwright).

## REST API access

Both clients expose profile management, proxy lookups, fingerprint values, extensions, and account limits. They parse API responses into objects and raise SDK exceptions for failed resource calls.

You can also call the [REST API](/api-reference) directly. The [framework guides](/quickstart#connect-your-existing-code) show complete examples without an SDK dependency.
