Skip to content
WebUplink
Guides

Browsing Pages

Point WebUplink at any URL and get the page back as named, callable tools your agent invokes.

Browsing Pages

The core operation in WebUplink is simple: point it at any URL, and the page comes back as named, callable tools your agent invokes — plus a summary and, on request, the page's content. Every interaction starts here.

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 page

Reading 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

When your agent needs to read a page in full — or when there's no clean tool to call, so you want the page back anyway — 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

ScenarioUse summaryUse page_content
Quick decision making
"What is this page about?"
Reading all items on a page
Reading documentation
Comparing prices/options

page_content is generated by a separate LLM call, so it adds latency. Request it when your agent needs to read specific items or detailed content — and as a graceful fallback: when a page exposes no clean tool to call, you still get the page back.

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"
}

On this page