> ## Documentation Index
> Fetch the complete documentation index at: https://tbd-6fc993ce-mintlify-add-deploy-button-docs-27400.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Overview

Kernel proxies enable you to route browser traffic through different types of proxy servers, providing enhanced privacy, flexibility, and bot detection avoidance. Proxies can be created once and reused across multiple browser sessions.

## Proxy Types

Kernel supports four types of proxies:

1. [**Datacenter**](/proxies/datacenter) - Traffic routed through commercial data centers
2. [**ISP**](/proxies/isp) - Traffic routed through data centers, using residential IP addresses leased from from internet service providers
3. [**Residential**](/proxies/residential) - Traffic routed through real residential IP addresses
4. [**Custom**](/proxies/custom) - Your own proxy servers

Datacenter has the fastest speed, while residential is least detectable. ISP is a balance between the two options, with less-flexible geotargeting. Kernel recommends to use the first option in the list that works for your use case.

## 1. Create a proxy

Create a proxy configuration from the types above that can be reused across browser sessions:

<CodeGroup>
  ```typescript Typescript/Javascript theme={null}
  import Kernel from '@onkernel/sdk';

  const kernel = new Kernel();

  const proxy = await kernel.proxies.create({ type: 'datacenter' });
  console.log(proxy.id);
  ```

  ```python Python theme={null}
  from kernel import Kernel

  kernel = Kernel()

  proxy = kernel.proxies.create(type="datacenter")
  print(proxy.id)
  ```
</CodeGroup>

## 2. List your proxies

View all proxy configurations in your organization:

<CodeGroup>
  ```typescript Typescript/Javascript theme={null}
  import Kernel from '@onkernel/sdk';

  const kernel = new Kernel();

  const proxies = await kernel.proxies.list();
  console.log(proxies);
  ```

  ```python Python theme={null}
  from kernel import Kernel

  kernel = Kernel()

  proxies = kernel.proxies.list()
  print(proxies)
  ```
</CodeGroup>

## 3. Use with browsers

Once created, you can attach a proxy to any browser session using the `proxy_id` parameter:

<CodeGroup>
  ```typescript Typescript/Javascript theme={null}
  import Kernel from '@onkernel/sdk';

  const kernel = new Kernel();

  const proxy = await kernel.proxies.create({
    type: 'residential',
    name: 'my-us-residential',
    config: {
      country: 'US',
    },
  });

  const browser = await kernel.browsers.create({
    proxy_id: proxy.id,
  });
  ```

  ```python Python theme={null}
  from kernel import Kernel

  kernel = Kernel()

  proxy = kernel.proxies.create(
      type="residential",
      name="my-us-residential",
      config={
          "country": "US",
      }
  )

  browser = kernel.browsers.create(proxy_id=proxy.id)
  ```
</CodeGroup>

## 4. Delete a proxy

When no longer needed, delete the proxy configuration:

<CodeGroup>
  ```typescript Typescript/Javascript theme={null}
  import Kernel from '@onkernel/sdk';

  const kernel = new Kernel();

  await kernel.proxies.delete('id');
  ```

  ```python Python theme={null}
  from kernel import Kernel

  kernel = Kernel()
  kernel.proxies.delete("id")
  ```
</CodeGroup>

<Info>
  Deleting a proxy immediately reconfigures associated browsers to route directly to the internet.
</Info>
