Skip to main content
There are three ways to get data out of a tab: read the DOM as text, capture a screenshot, or have an AI agent extract structured data against a schema.

Page content

content() reads the tab’s current title, URL, visible text, and links from the real DOM, including JavaScript-rendered content:

Screenshots

screenshot() captures the tab as a PNG. It works headless, with no display needed. By default you get raw PNG bytes. Ask for base64 if you are passing the image on, for example to an LLM:
Pass fullPage: true to capture the entire scrollable page instead of just the viewport.

Structured extraction

extract() hands the page to a DOM-aware AI agent and returns data validated against your schema. The schema is a Zod object schema (v3 or v4) in TypeScript, and a pydantic model class or a raw JSON schema dict in Python:
extract uses an LLM and is metered. It needs a provider API key on the box or your account, and accepts an optional model override just like the other AI Actions.
The result is parsed with your schema before it is returned, so a successful call always gives you data in the shape you asked for.