> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://platform.bctrl.ai/llms.txt.
> For full documentation content, see https://platform.bctrl.ai/llms-full.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://platform.bctrl.ai/_mcp/server.

# Proxies

> Attach your own proxies or draw from managed pools by country and category.

A proxy routes a runtime's traffic. Bring your own endpoint, draw from a managed rotating pool, or pin a managed static IP. Attach one to a runtime through [runtime configuration](/sdk/runtime-config).

## Create a proxy

A custom proxy you own:

```ts
const proxy = await bctrl.proxies.create({
  type: "custom",
  name: "acme-residential",
  protocol: "http",
  host: "proxy.acme.com",
  port: 8080,
  username: process.env.PROXY_USER!,
  password: process.env.PROXY_PASS!,
});
```

A managed rotating proxy. The config fields are optional - rotation, geo, and device targeting:

```ts
const proxy = await bctrl.proxies.create({
  type: "managed-rotating",
  name: "us-rotating",
  rotation: "rotating",
  country: "us",
  preference: "balanced",
});
```

A managed static IP from a [pool](#managed-pools):

```ts
const proxy = await bctrl.proxies.create({
  type: "managed-static",
  name: "us-residential",
  poolId: "pool_us_residential",
  autoRenew: true,
});
```

## List, test, delete

```ts
const { data } = await bctrl.proxies.list();
const one = await bctrl.proxies.get(proxy.id);

const result = await bctrl.proxies.test(proxy.id);

await bctrl.proxies.delete(proxy.id);
```

## Managed pools

Browse the managed proxy catalog by country, category, and availability:

```ts
const pools = await bctrl.proxies.pools.list({ country: "us", available: true });
const pool = await bctrl.proxies.pools.get("pool_us_residential");
```

## Attach to a runtime

```ts
const runtime = await bctrl.runtimes.create({
  type: "browser",
  name: "main",
  config: { proxy: { mode: "saved", id: proxy.id } },
});
```

## Next

* [Runtime configuration](/sdk/runtime-config) - attach proxies
* [CAPTCHA](/sdk/captcha) - residential proxies reduce challenges
* [Runtimes](/sdk/runtimes) - launch a configured browser