# go

## Browser Go

One-shot browser navigation tool. Creates a new context, navigates to the URL, waits for page load, extracts the HTML, and closes the context. Optimized for single-page scraping or rendering tasks. Supports both GET and POST requests.

## Usage Example

### CURL

POST `/api/execute/go`

```bash
curl -X POST \
 -H "Authorization: Bearer <token>" \
 -H "Content-Type: application/json" \
 -d '{
"url": "https://example.com"
}' \
http://localhost:8080/api/execute/go
```

### Python SDK

```python
import asyncio

from owl_browser import OwlBrowser, RemoteConfig

# Async usage
async with OwlBrowser(config) as browser:
    context = await browser.create_context()
    context_id = context["context_id"]
    await browser.go(
        url="https://example.com"
    )
```

### Node.js SDK

```javascript
import { OwlBrowser } from '@olib-ai/owl-browser-sdk';

// Async usage
const ctx = await browser.createContext();
const contextId = ctx.context_id;
await browser.go({
    url: 'https://example.com'
});
```

## Parameters

### Required

`url` string required
- The full URL to navigate to, including protocol (e.g., 'https://example.com'). Supports http://, https://, file://, and data: URLs

### Optional

`wait_until` enum
- `load`, `domcontentloaded`, `networkidle`, `fullscroll`
  - When to consider navigation complete: '' (return immediately), 'load' (wait for load event), 'domcontentloaded' (wait for DOMContentLoaded), 'networkidle' (wait for network to be idle, default), 'fullscroll' (scroll full page to trigger lazy loading, then scroll back to top)

`timeout` integer
- Maximum time to wait for navigation in milliseconds. Default: 30000 (30 seconds)

`output` enum
- `html`, `text`, `markdown`, `pngView`, `pngFull`
  - Output format. Default: html

`os` enum
- `windows`, `macos`, `linux`
  - Filter profiles by operating system. Options: 'windows', 'macos', 'linux'

`use_tor` boolean
- Use TOR proxy for anonymous browsing. Each request gets a unique exit IP. Default: false

## Response

Returns a JSON object with the operation result.

```json
{
"success": true,
"result": <value>
}
```
