Guides
Browsing Pages
Learn how to open pages, read summaries, and extract data with WebUplink.
Browsing Pages
Browsing is the core operation in WebUplink. Every interaction starts with observing a page.
Opening a New Page
Pass a URL to create a new browser session:
const page = await client.browse('https://news.ycombinator.com');
console.log(page.session_id); // "sess_abc123" — use for follow-up requests
console.log(page.url); // Current URL (may differ due to redirects)
console.log(page.title); // "Hacker News"
console.log(page.summary); // "30 stories. #1: 'Flipper One'..."
console.log(page.tools); // Available actions on this pageReading the Summary
The summary field is a 1-3 sentence overview generated by AI. It's always present and designed for quick agent decisions:
"Hacker News front page. 30 stories.
#1: 'Flipper One – we need your help' (342 pts, 127 comments).
#2: 'Show HN: Open-source alternative to Linear' (89 pts, 23 comments)."Using include_page_content
For data extraction tasks, request detailed page content:
const page = await client.browse({
url: 'https://news.ycombinator.com',
include_page_content: true,
});
console.log(page.page_content);
// "Hacker News front page showing 30 ranked stories:
// 1. Flipper One – we need your help (flipperdevices.com) — 342 pts
// 2. Show HN: Open-source alt to Linear (github.com) — 89 pts
// ..."When to Use page_content
| Scenario | Use summary | Use page_content |
|---|---|---|
| Quick decision making | ✅ | |
| "What is this page about?" | ✅ | |
| Data extraction (all items) | ✅ | |
| Reading documentation | ✅ | |
| Comparing prices/options | ✅ |
page_content is generated by a separate LLM call, so it adds latency. Only request it when your agent needs to parse specific items or read detailed content.
Usage Tracking
Every browse response includes usage metadata in the _usage field:
const page = await client.browse('https://example.com');
if (page._usage) {
console.log(page._usage.actionCount); // 42 — actions used this period
console.log(page._usage.actionLimit); // 1000 — plan limit
console.log(page._usage.periodStart); // "2026-06-01T00:00:00Z"
}