Skip to main content
ISP (Internet Service Provider) proxies are hosted on datacenter infrastructure but use IP addresses assigned by real residential ISPs. Because the ASN belongs to a residential ISP, target sites see them as residential IPs — while the underlying datacenter hosting gives you the speed and stability you’d expect from a datacenter proxy.

IP Rotation Behavior

ISP proxies provide a static exit IP that persists across sessions — every tab, request, reconnection, and future browser session attached to this proxy exits through the same IP. The IP only changes in rare ISP-initiated replacement events. This makes ISP proxies suitable for use cases that require a stable IP, such as IP allowlists or managed auth health checks. For comparison with other proxy types, see IP rotation behavior across proxy types.

Configuration

Create an ISP proxy:
import Kernel from '@onkernel/sdk';

const kernel = new Kernel();

const proxy = await kernel.proxies.create({
  type: 'isp',
  name: 'my-isp-proxy',
});

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

kernel = Kernel()

proxy = kernel.proxies.create(
    type="isp",
    name="my-isp-proxy",
)

browser = kernel.browsers.create(proxy_id=proxy.id)
package main

import (
	"context"

	"github.com/kernel/kernel-go-sdk"
)

func main() {
	ctx := context.Background()
	client := kernel.NewClient()

	proxy, err := client.Proxies.New(ctx, kernel.ProxyNewParams{
		Type: kernel.ProxyNewParamsTypeIsp,
		Name: kernel.String("my-isp-proxy"),
	})
	if err != nil {
		panic(err)
	}

	browser, err := client.Browsers.New(ctx, kernel.BrowserNewParams{
		ProxyID: kernel.String(proxy.ID),
	})
	if err != nil {
		panic(err)
	}
	_ = browser
}

Configuration Parameters

  • bypass_hosts (optional) - Array of hostnames that bypass the proxy and connect directly (max 100 entries)

Bypass hosts

Configure specific hostnames to bypass the proxy:
import Kernel from '@onkernel/sdk';

const kernel = new Kernel();

const proxy = await kernel.proxies.create({
  type: 'isp',
  name: 'isp-with-bypass',
  bypass_hosts: [
    'localhost',
    'internal.service.local',
    '*.amazonaws.com',
  ],
});
from kernel import Kernel

kernel = Kernel()

proxy = kernel.proxies.create(
    type="isp",
    name="isp-with-bypass",
    bypass_hosts=[
        "localhost",
        "internal.service.local",
        "*.amazonaws.com",
    ]
)
package main

import (
	"context"

	"github.com/kernel/kernel-go-sdk"
)

func main() {
	ctx := context.Background()
	client := kernel.NewClient()

	proxy, err := client.Proxies.New(ctx, kernel.ProxyNewParams{
		Type: kernel.ProxyNewParamsTypeIsp,
		Name: kernel.String("isp-with-bypass"),
		BypassHosts: []string{
			"localhost",
			"internal.service.local",
			"*.amazonaws.com",
		},
	})
	if err != nil {
		panic(err)
	}
	_ = proxy
}
See the overview for full bypass host rules and examples.