> ## Documentation Index
> Fetch the complete documentation index at: https://tbd-6fc993ce-mason-add-copy-page-to-context-menu.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 client = new Kernel({
    apiKey: 'My API Key',
  });

  const proxy = await client.proxies.create({ type: 'datacenter' });

  console.log(proxy.id);
  ```

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

  client = Kernel(
      api_key="My API Key",
  )
  proxy = client.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 client = new Kernel({
    apiKey: 'My API Key',
  });

  const proxies = await client.proxies.list();

  console.log(proxies);
  ```

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

  client = Kernel(
      api_key="My API Key",
  )
  proxies = client.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();

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

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

  ```Python Python theme={null}
  import kernel
  client = kernel.Kernel()

  # Create or use existing proxy
  proxy = client.proxies.create(
      type='residential',
      name='my-us-residential',
      config={
          'country': 'US'
      }
  )

  # Create browser with proxy
  browser = client.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 client = new Kernel({
    apiKey: 'My API Key',
  });

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

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

  client = Kernel(
      api_key="My API Key",
  )
  client.proxies.delete(
      "id",
  )
  ```
</CodeGroup>

<Info>
  Deleting a proxy does not affect existing browser sessions that are currently using it. The configuration is only removed from your organization so it can't be used in future browser sessions.
</Info>

## Limitations

Some sites are blocked by the proxy network:

* Government websites
* Google
* LinkedIn
