---
title: Agent Browser for AI agents | Telnyx
canonical: https://telnyx.com/products/agent-browser
---
# Agent Browser for AI agents | Telnyx

**Agent Platform**

# Agent Browser

Give AI agents controlled access to a real browser. Each session runs in an isolated pod with a fail-closed egress proxy, domain allowlists, and accessibility-tree navigation. Nine actions, one API.

[Start Building](https://telnyx.com/sign-up)[Contact Us](https://telnyx.com/contact-us)

WHY AGENT BROWSER

## Built for agents, not for scraping.

* ### Isolated sessions  
Every session runs in its own hardened Kubernetes pod. No shared state, no cross-session leaks.
* ### Domain allowlisting  
A per-session proxy enforces your domain allowlist. Private networks and cloud metadata endpoints stay blocked.
* ### Accessibility tree parsing  
Agents read the accessibility tree, not raw HTML. Short-lived element refs replace brittle CSS selectors.

WHAT'S INSIDE

## Nine actions. One API. Hard boundaries.

Every action is a single API call. Every egress request is checked against your allowlist.

* Hardened container  
Non-root user, read-only rootfs, dropped Linux capabilities, RuntimeDefault seccomp profile.
* Egress allowlist  
Set the domains each session can reach. Anything outside the list is refused at the proxy.
* Accessibility tree  
Agents see a structured tree of roles, names, and values. No raw HTML, no raw CDP.
* Session-scoped refs  
Element references expire with the session. No persistent IDs to leak across runs.
* Closed action set  
navigate, observe, click, fill, select, press, scroll, wait\_for, screenshot. Nothing else.
* One integration  
One Telnyx API key covers Agent Browser, Web Search, and Inference.

GET STARTED

## Three calls to a working session.

Create a session, navigate to a page, observe the result. The full API surface fits in a few hundred lines.

cURL

```
# Create an isolated browser session
curl -X POST "http://telnyx-agent-browser.query.dev.telnyx.io:8080/v2/browser_sessions" \
  -H "Authorization: Bearer $TELNYX_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "policy": {
      "allowed_domains": ["acme.com", "example.com"]
    }
  }'

# Navigate to a page
curl -X POST "http://telnyx-agent-browser.query.dev.telnyx.io:8080/v2/browser_sessions/{session_id}/actions" \
  -H "Authorization: Bearer $TELNYX_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"type": "navigate", "url": "https://acme.com/about"}'

# Observe the rendered page
curl -X POST "http://telnyx-agent-browser.query.dev.telnyx.io:8080/v2/browser_sessions/{session_id}/actions" \
  -H "Authorization: Bearer $TELNYX_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"type": "observe"}'
```

Python

```
import os
import requests

API_KEY = os.environ["TELNYX_API_KEY"]
BASE = "http://telnyx-agent-browser.query.dev.telnyx.io:8080"
HEADERS = {"Authorization": f"Bearer {API_KEY}", "Content-Type": "application/json"}

# Create an isolated browser session
session = requests.post(f"{BASE}/v2/browser_sessions",
    headers=HEADERS,
    json={"policy": {"allowed_domains": ["acme.com"]}}
).json()["data"]

session_id = session["id"]

# Navigate and observe
requests.post(f"{BASE}/v2/browser_sessions/{session_id}/actions",
    headers=HEADERS,
    json={"type": "navigate", "url": "https://acme.com/about"}
)

observation = requests.post(f"{BASE}/v2/browser_sessions/{session_id}/actions",
    headers=HEADERS,
    json={"type": "observe"}
).json()["data"]["result"]["observation"]

print(f"Page title: {observation['title']}")
print(f"Element refs: {len(observation['refs'])}")
```

TypeScript

```
// Agent Browser: isolated browser sessions for AI agents
const BASE = "http://telnyx-agent-browser.query.dev.telnyx.io:8080";

// Create a session with a domain allowlist
const session = await fetch(`${BASE}/v2/browser_sessions`, {
  method: "POST",
  headers: {
    "Authorization": `Bearer ${process.env.TELNYX_API_KEY}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    policy: { allowed_domains: ["acme.com"] },
  }),
}).then(r => r.json());

// Navigate, observe, and act
const sessionId = session.data.id;
await fetch(`${BASE}/v2/browser_sessions/${sessionId}/actions`, {
  method: "POST",
  headers: { "Authorization": `Bearer ${process.env.TELNYX_API_KEY}`, "Content-Type": "application/json" },
  body: JSON.stringify({ type: "navigate", url: "https://acme.com/about" }),
});

const observation = await fetch(`${BASE}/v2/browser_sessions/${sessionId}/actions`, {
  method: "POST",
  headers: { "Authorization": `Bearer ${process.env.TELNYX_API_KEY}`, "Content-Type": "application/json" },
  body: JSON.stringify({ type: "observe" }),
}).then(r => r.json());
```

cURLPythonTypeScript

PRODUCTS

## One platform for agent infrastructure.

* [![search resized](https://d2efw2akbx8gaf.cloudfront.net/https://dotcom-payload-assets-prod.s3.us-east-1.amazonaws.com/cms-media/ab-prod-01-search-1.png?width=2000&format=webp)Web SearchReal-time web search with the same API key. Pair it with Agent Browser for grounded agents.](https://telnyx.com/products/web-search)
* [![inference resized](https://d2efw2akbx8gaf.cloudfront.net/https://dotcom-payload-assets-prod.s3.us-east-1.amazonaws.com/cms-media/ab-prod-02-inference-1.png?width=2000&format=webp)InferenceRun open-weight models on Telnyx GPUs with the same API key.](https://telnyx.com/products/inference)
* [![voice resized ](https://d2efw2akbx8gaf.cloudfront.net/https://dotcom-payload-assets-prod.s3.us-east-1.amazonaws.com/cms-media/ab-prod-03-voice-1.png?width=2000&format=webp)Voice AIAdd a voice channel to your agent. Sub-second RTT on private infrastructure.](https://telnyx.com/products/voice-ai)
* [![storage resized ](https://d2efw2akbx8gaf.cloudfront.net/https://dotcom-payload-assets-prod.s3.us-east-1.amazonaws.com/cms-media/ab-prod-04-storage-1.png?width=2000&format=webp)Cloud StoragePersist session artifacts, screenshots, and traces. S3-compatible, billed by the gigabyte.](https://telnyx.com/products/cloud-storage)

## Get on the developer preview.

Agent Browser is in active development. Request access to start building with isolated browser sessions today.

[Request access](https://telnyx.com/sign-up)[TALK TO US](https://telnyx.com/contact-us)

## Get on the developer preview.

Agent Browser is in active development. Request access to start building with isolated browser sessions today.

[Request access](https://telnyx.com/sign-up)[TALK TO US](https://telnyx.com/contact-us)

## FAQ

### What is Agent Browser?

Agent Browser is a developer preview API that gives AI agents controlled access to a real browser. Each session runs in an isolated Kubernetes pod with a fail-closed egress proxy that enforces a per-session domain allowlist.

### What can Agent Browser do?

### What is session isolation?

### What are the nine action types?

### How does the egress proxy work?

### Can Agent Browser solve CAPTCHAs?

### Can Agent Browser manage credentials or logins?

### What is the accessibility tree observation?

### How long do sessions last?

### Is Agent Browser production ready?

[Start building](https://telnyx.com/sign-up)