diff --git a/auth/configuration.mdx b/auth/configuration.mdx
index e23f28af..dd5aaf8b 100644
--- a/auth/configuration.mdx
+++ b/auth/configuration.mdx
@@ -686,7 +686,6 @@ Pin the auth flow to a specific [proxy](/proxies/overview) so logins, health che
How stable the exit IP is depends on the proxy type:
- **[ISP](/proxies/isp)** proxies provide a static exit IP that persists across sessions, so the initial login, health checks, and reauths all exit through the same IP. The IP only changes in rare ISP-initiated replacement events or a temporary [failover to a backup endpoint](/proxies/isp#backup-endpoint-failover).
-- **[Datacenter](/proxies/datacenter)** proxies assign a new exit IP per request. Sites with adaptive auth that trigger a step-up challenge (one-time code, device verification) when the client IP changes may flag these IP shifts.
- **[Residential](/proxies/residential)** proxies rotate IPs per connection — use them when you need legitimacy from a real ISP pool but can tolerate IP changes.
- **[Custom (BYO)](/proxies/custom)** proxies route through whatever you point them at, so pick one if the static IP must be infrastructure you control (e.g. an allowlisted egress your security team owns).
diff --git a/browsers/bot-detection/overview.mdx b/browsers/bot-detection/overview.mdx
index 63aa5e30..48df8ebb 100644
--- a/browsers/bot-detection/overview.mdx
+++ b/browsers/bot-detection/overview.mdx
@@ -95,7 +95,7 @@ IP address is one of the strongest signals bot detection systems use. Kernel off
### ISP proxies
-[ISP proxies](/proxies/isp) route traffic through data centers using IP addresses assigned by real internet service providers. They offer datacenter-level speed with better legitimacy than pure datacenter proxies, and every session attached to the proxy exits through the same static IP — making them ideal for login flows and session-based workflows.
+[ISP proxies](/proxies/isp) route traffic through data centers using IP addresses assigned by real internet service providers. Every session attached to the proxy exits through the same static IP — making them ideal for login flows and session-based workflows.
Kernel's [stealth mode](/browsers/bot-detection/stealth) uses ISP proxies from a shared pool that are hosted in data centers but announced on residential ISP networks, so they tend to appear residential by ASN to most of the internet. This matters for IP-reputation-based detection systems: a static IP on a residential ASN looks like a normal ISP customer, which generally achieves better pass rates than rotating residential IPs.
@@ -105,10 +105,6 @@ Kernel's [stealth mode](/browsers/bot-detection/stealth) uses ISP proxies from a
Some IP-reputation-based detection systems (such as reCAPTCHA) can detect rotating proxy-pool traffic patterns and penalize them, regardless of how clean the individual exit IPs are. On the other hand, residential proxies tend to be a stronger choice against fingerprint-heavy vendors where detection focuses on the browser and behavioral layer rather than the network layer. Residential proxies also offer richer geo-targeting (country, state, city, ZIP, ASN) compared to ISP.
-### Datacenter proxies
-
-[Datacenter proxies](/proxies/datacenter) are the fastest and most cost-effective option, but their IP ranges are well-known to detection systems. Some sites block datacenter IPs outright; others treat them with higher scrutiny.
-
### Which to use
-Start with ISP — it's the stealth default for good reason. Consider residential if you need fine-grained geo-targeting or your specific target site doesn't rely on IP reputation as its primary detection signal. Use datacenter when speed and cost matter more than detection avoidance.
+Start with ISP — it's the stealth default for good reason. Consider residential if you need fine-grained geo-targeting or your specific target site doesn't rely on IP reputation as its primary detection signal.
diff --git a/docs.json b/docs.json
index 13374344..567cde9e 100644
--- a/docs.json
+++ b/docs.json
@@ -8,6 +8,7 @@
{ "source": "/careers/customer-engineer", "destination": "https://jobs.ashbyhq.com/usekernel" },
{ "source": "/browsers/bot-detection/hcaptcha", "destination": "/browsers/bot-detection/stealth#hcaptcha-beta" },
{ "source": "/overview/products", "destination": "/overview/features" },
+ { "source": "/proxies/datacenter", "destination": "/proxies/isp" },
{ "source": "/apps/secrets", "destination": "/apps/deploy#secrets" },
{ "source": "/integrations/vercel/foreman", "destination": "/cookbooks/eve-foreman" },
{ "source": "/apps/stop", "destination": "/apps/invoke#stop-an-invocation" },
@@ -157,7 +158,6 @@
"proxies/residential",
"proxies/isp",
"proxies/mobile",
- "proxies/datacenter",
"proxies/custom",
"proxies/errors"
]
diff --git a/integrations/vercel/eve-extension.mdx b/integrations/vercel/eve-extension.mdx
index 6da1be41..25c4da0b 100644
--- a/integrations/vercel/eve-extension.mdx
+++ b/integrations/vercel/eve-extension.mdx
@@ -74,7 +74,7 @@ Once mounted, the agent has the following tools, namespaced under your mount (e.
- **`computer_action`**: human-like mouse, keyboard, and screenshot controls for the same session.
- **`manage_auth_connections`**: Kernel's [managed auth](/auth/managed-auth), so the agent logs into sites through a stored connection or a hosted login flow instead of typing credentials into the page.
- **`manage_profiles`**: create and reuse browser [profiles](/browsers/profiles) (persistent cookies, logins, storage).
-- **`manage_proxies`**: create and attach [proxies](/proxies/overview) (datacenter, ISP, residential, mobile) with geo-targeting.
+- **`manage_proxies`**: create and attach [proxies](/proxies/overview) (ISP, residential, mobile) with geo-targeting.
- **`manage_replays`**: start, stop, and list video replay recordings for a session, so you can capture what the agent did as an MP4. Requires a paid Kernel plan.
- the **`browse` skill**: the loop the model follows to drive the browser end to end.
diff --git a/introduction/configure.mdx b/introduction/configure.mdx
index cf0f8543..c0b41925 100644
--- a/introduction/configure.mdx
+++ b/introduction/configure.mdx
@@ -102,7 +102,7 @@ Often agents don't require these, but they're there when you do:
Anti-detection defaults, stealth mode, CAPTCHA handling, and Web Bot Auth.
- Route traffic through datacenter, ISP, residential, or mobile IPs, or bring your own.
+ Route traffic through ISP, residential, or mobile IPs, or bring your own.
Save cookies, storage, and logins from one session and load them into the next.
diff --git a/introduction/create.mdx b/introduction/create.mdx
index 8629f658..99c9bfba 100644
--- a/introduction/create.mdx
+++ b/introduction/create.mdx
@@ -77,7 +77,7 @@ Most of what you'll tune at creation time falls into four buckets:
headful (default) supports live view, replays, and better stealth — ideal for agent workflows on bot-detected sites. headless is lighter (1 gb vs 8 gb), good for simple scraping.
- Turn on stealth mode and route through residential, ISP, or datacenter proxies when you're hitting sites with bot detection.
+ Turn on stealth mode and route through residential or ISP proxies when you're hitting sites with bot detection.
Required for WebGL, video, and canvas-heavy workloads. Trades off standby support.
diff --git a/overview/features.mdx b/overview/features.mdx
index 4073a436..70a4033d 100644
--- a/overview/features.mdx
+++ b/overview/features.mdx
@@ -27,7 +27,7 @@ KERNEL is browser infrastructure for AI agents. Its features cover five jobs: ru
Custom fingerprints and anti-bot detection defaults run on every browser, plus a managed CAPTCHA solver.
- Datacenter, ISP, residential, mobile, or bring-your-own.
+ ISP, residential, mobile, or bring-your-own.
Give it a URL and get browser and proxy settings that have worked on that site.
diff --git a/proxies/datacenter.mdx b/proxies/datacenter.mdx
deleted file mode 100644
index 27b54085..00000000
--- a/proxies/datacenter.mdx
+++ /dev/null
@@ -1,172 +0,0 @@
----
-title: "Datacenter Proxies"
----
-
-Datacenter proxies use IP addresses assigned from datacenter servers to route your traffic and access locations around the world. With a shorter journey and simplified architecture, datacenter proxies are both the fastest and most cost-effective proxy option.
-
-## IP rotation behavior
-
-Datacenter proxies use **rotating exit IPs** — a new exit IP is assigned per request, so different requests within the same browser session can exit through different IPs.
-
-If you need a stable IP across requests and sessions (e.g. for IP allowlists or [managed auth](/auth/managed-auth) health checks), use an [ISP proxy](/proxies/isp) instead. See [IP rotation behavior across proxy types](/proxies/overview) for the full comparison.
-
-## Configuration
-
-Datacenter proxies require a country to route traffic through:
-
-
-```typescript Typescript/Javascript
-import Kernel from '@onkernel/sdk';
-
-const kernel = new Kernel();
-
-const proxy = await kernel.proxies.create({
- type: 'datacenter',
- name: 'my-us-datacenter',
- config: {
- country: 'US',
- },
-});
-
-const browser = await kernel.browsers.create({
- proxy_id: proxy.id,
-});
-```
-
-```python Python
-from kernel import Kernel
-
-kernel = Kernel()
-
-proxy = kernel.proxies.create(
- type="datacenter",
- name="my-us-datacenter",
- config={
- "country": "US",
- }
-)
-
-browser = kernel.browsers.create(proxy_id=proxy.id)
-```
-
-```go Go
-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.ProxyNewParamsTypeDatacenter,
- Name: kernel.String("my-us-datacenter"),
- Config: kernel.ProxyNewParamsConfigUnion{
- OfProxyNewsConfigDatacenterProxyConfig: &kernel.ProxyNewParamsConfigDatacenterProxyConfig{
- Country: kernel.String("US"),
- },
- },
- })
- 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
-
-- **`country`** (optional) - ISO 3166 country code (e.g., `US`, `GB`, `FR`) or `EU` for European Union exit nodes
-- **`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:
-
-
-```typescript Typescript/Javascript
-import Kernel from '@onkernel/sdk';
-
-const kernel = new Kernel();
-
-const proxy = await kernel.proxies.create({
- type: 'datacenter',
- name: 'datacenter-with-bypass',
- config: {
- country: 'US',
- },
- bypass_hosts: [
- 'localhost',
- 'internal.service.local',
- '*.amazonaws.com',
- ],
-});
-```
-
-```python Python
-from kernel import Kernel
-
-kernel = Kernel()
-
-proxy = kernel.proxies.create(
- type="datacenter",
- name="datacenter-with-bypass",
- config={
- "country": "US",
- },
- bypass_hosts=[
- "localhost",
- "internal.service.local",
- "*.amazonaws.com",
- ]
-)
-```
-
-```go Go
-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.ProxyNewParamsTypeDatacenter,
- Name: kernel.String("datacenter-with-bypass"),
- Config: kernel.ProxyNewParamsConfigUnion{
- OfProxyNewsConfigDatacenterProxyConfig: &kernel.ProxyNewParamsConfigDatacenterProxyConfig{
- Country: kernel.String("US"),
- },
- },
- BypassHosts: []string{
- "localhost",
- "internal.service.local",
- "*.amazonaws.com",
- },
- })
- if err != nil {
- panic(err)
- }
- _ = proxy
-}
-```
-
-
-Bypass hosts support exact hostnames and wildcard subdomains (`*.example.com`). See the [overview](/proxies/overview#bypass-hosts) for full details.
diff --git a/proxies/isp.mdx b/proxies/isp.mdx
index 0d7be70b..91e729ec 100644
--- a/proxies/isp.mdx
+++ b/proxies/isp.mdx
@@ -2,7 +2,7 @@
title: "ISP Proxies"
---
-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.
+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 speed and stability.
## IP rotation behavior
diff --git a/proxies/overview.mdx b/proxies/overview.mdx
index 60502f0e..a1073e1a 100644
--- a/proxies/overview.mdx
+++ b/proxies/overview.mdx
@@ -7,15 +7,14 @@ Kernel proxies enable you to route browser traffic through different types of pr
## Proxy types
-Kernel supports five types of proxies:
+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. [**Mobile**](/proxies/mobile) - Traffic routed through mobile carrier networks
-5. [**Custom**](/proxies/custom) - Your own proxy servers
+1. [**ISP**](/proxies/isp) - Traffic routed through data centers, using residential IP addresses leased from internet service providers
+2. [**Residential**](/proxies/residential) - Traffic routed through real residential IP addresses
+3. [**Mobile**](/proxies/mobile) - Traffic routed through mobile carrier networks
+4. [**Custom**](/proxies/custom) - Your own proxy servers
-Datacenter has the fastest speed, while residential and mobile are least detectable. ISP balances speed, stability, and bot detection avoidance, with country targeting in the United States (`US`), Singapore (`SG`), the United Kingdom (`GB`), France (`FR`), and Germany (`DE`). Kernel recommends using the first option in the list that works for your use case.
+ISP balances speed, stability, and bot detection avoidance, with country targeting in the United States (`US`), Singapore (`SG`), the United Kingdom (`GB`), France (`FR`), and Germany (`DE`). Kernel recommends using the first option in the list that works for your use case.
Kernel-provided proxies are unmetered and not billed, subject to the fair use rules and restricted destinations in our [Acceptable Use Policy](/acceptable-use#proxy-fair-use). Upstream providers restrict some destinations. Residential proxies can [route through a compatible alternative](/proxies/residential#routing-and-ip-behavior), but access isn't guaranteed and our acceptable-use restrictions still apply.
@@ -24,8 +23,6 @@ Kernel-provided proxies are unmetered and not billed, subject to the fair use ru
ISP proxies provide a **static exit IP that persists across sessions** — every browser session attached to the proxy exits through the same IP, and it only changes in rare ISP-initiated replacement events or a temporary [failover to a backup endpoint](/proxies/isp#backup-endpoint-failover). This makes them suitable for IP allowlists or [managed auth](/auth/managed-auth) health checks that must egress from a single IP.
-Datacenter proxies use **rotating exit IPs** — a new exit IP is assigned per request, so different requests within the same browser session can exit through different IPs. For a stable IP across requests and sessions, use an ISP proxy or a [custom (BYO) proxy](/proxies/custom) pointed at infrastructure you control.
-
Residential and mobile proxy exit IPs may change per connection — see [Residential routing and IP behavior](/proxies/residential#routing-and-ip-behavior) and [Mobile Proxies](/proxies/mobile) for details.
@@ -43,7 +40,7 @@ import Kernel from '@onkernel/sdk';
const kernel = new Kernel();
-const proxy = await kernel.proxies.create({ type: 'datacenter' });
+const proxy = await kernel.proxies.create({ type: 'isp' });
console.log(proxy.id);
```
@@ -52,7 +49,7 @@ from kernel import Kernel
kernel = Kernel()
-proxy = kernel.proxies.create(type="datacenter")
+proxy = kernel.proxies.create(type="isp")
print(proxy.id)
```
@@ -71,7 +68,7 @@ func main() {
client := kernel.NewClient()
proxy, err := client.Proxies.New(ctx, kernel.ProxyNewParams{
- Type: kernel.ProxyNewParamsTypeDatacenter,
+ Type: kernel.ProxyNewParamsTypeIsp,
})
if err != nil {
panic(err)
@@ -245,7 +242,7 @@ client.Proxies.Check(ctx, proxy.ID, kernel.ProxyCheckParams{
-For ISP and datacenter proxies the exit IP is stable, so a successful check against a `url` reliably indicates that subsequent sessions will reach the same target from the same IP. For residential and mobile proxies the exit node changes between requests, so the check validates credentials and connectivity but not site-specific reachability. When `url` is provided, the result does not update the proxy's stored health status.
+For ISP proxies the exit IP is stable, so a successful check against a `url` reliably indicates that subsequent sessions will reach the same target from the same IP. For residential and mobile proxies the exit node changes between requests, so the check validates credentials and connectivity but not site-specific reachability. When `url` is provided, the result does not update the proxy's stored health status.
## Bypass hosts
@@ -263,7 +260,7 @@ import Kernel from '@onkernel/sdk';
const kernel = new Kernel();
const proxy = await kernel.proxies.create({
- type: 'datacenter',
+ type: 'isp',
name: 'proxy-with-bypass',
config: {
country: 'US',
@@ -283,7 +280,7 @@ from kernel import Kernel
kernel = Kernel()
proxy = kernel.proxies.create(
- type="datacenter",
+ type="isp",
name="proxy-with-bypass",
config={
"country": "US",
@@ -311,10 +308,10 @@ func main() {
client := kernel.NewClient()
proxy, err := client.Proxies.New(ctx, kernel.ProxyNewParams{
- Type: kernel.ProxyNewParamsTypeDatacenter,
+ Type: kernel.ProxyNewParamsTypeIsp,
Name: kernel.String("proxy-with-bypass"),
Config: kernel.ProxyNewParamsConfigUnion{
- OfProxyNewsConfigDatacenterProxyConfig: &kernel.ProxyNewParamsConfigDatacenterProxyConfig{
+ OfProxyNewsConfigIspProxyConfig: &kernel.ProxyNewParamsConfigIspProxyConfig{
Country: kernel.String("US"),
},
},
diff --git a/reference/cli/proxies.mdx b/reference/cli/proxies.mdx
index 42077f97..e6ae7355 100644
--- a/reference/cli/proxies.mdx
+++ b/reference/cli/proxies.mdx
@@ -19,11 +19,11 @@ Show details for a proxy configuration.
| `--output json`, `-o json` | Output raw JSON object. |
## `kernel proxies create`
-Create a new proxy configuration. Proxy quality for bot detection avoidance, best to worst: mobile > residential > ISP > datacenter.
+Create a new proxy configuration. Proxy quality for bot detection avoidance, best to worst: mobile > residential > ISP.
| Flag | Description |
|------|-------------|
-| `--type ` | `datacenter`, `isp`, `residential`, `mobile`, or `custom`. Required. |
+| `--type ` | `isp`, `residential`, `mobile`, or `custom`. Required. |
| `--name ` | Proxy configuration name. |
| `--protocol ` | Protocol to use (`http` or `https`; default: `https`). |
| `--country ` | ISO 3166 country code or `EU`. ISP proxies support `US`, `SG`, `GB`, `FR`, and `DE`. |
@@ -40,9 +40,6 @@ Create a new proxy configuration. Proxy quality for bot detection avoidance, bes
| `--output json`, `-o json` | Output raw JSON object. |
```bash
-# Datacenter proxy in the US
-kernel proxies create --type datacenter --country US --name "US Datacenter"
-
# ISP proxy with a static exit IP in the United Kingdom
kernel proxies create --type isp --country GB --name "GB ISP"
diff --git a/reference/mcp-server/tools/manage-proxies.mdx b/reference/mcp-server/tools/manage-proxies.mdx
index 143a50f0..f9f65dee 100644
--- a/reference/mcp-server/tools/manage-proxies.mdx
+++ b/reference/mcp-server/tools/manage-proxies.mdx
@@ -3,7 +3,7 @@ title: "manage_proxies"
description: "Create, retrieve, rename, check, and delete proxy configurations"
---
-Manage proxy configurations for routing browser traffic. Proxy quality for bot detection avoidance, best to worst: mobile > residential > ISP > datacenter.
+Manage proxy configurations for routing browser traffic. Proxy quality for bot detection avoidance, best to worst: mobile > residential > ISP.
## Actions
@@ -23,7 +23,7 @@ Manage proxy configurations for routing browser traffic. Proxy quality for bot d
| `action` | Operation to perform: `create`, `list`, `get`, `rename`, `check`, or `delete`. Required. |
| `limit` | (list) Maximum results per page. Must be between 1 and 100. |
| `offset` | (list) Pagination offset. Must be 0 or greater. |
-| `type` | (create) Proxy type: `datacenter`, `isp`, `residential`, `mobile`, or `custom`. |
+| `type` | (create) Proxy type: `isp`, `residential`, `mobile`, or `custom`. |
| `name` | (create, rename) Readable name for the proxy. |
| `country` | (create) ISO 3166 country code (e.g., `US`). |
| `state` | (create) Two-letter state code. |