usage object stating exactly what that call cost, on the result that caused it, nothing appears on a bill that was not already visible on the request that produced it.
Two framings
agent answers json unless the request sets stream: true. sessions.get answers json unless it sets live: true. Every other capability’s framing is fixed.
Errors
A failed request answers{"code": "...", "message": "...", "details": {...}}. Branch on code, never on message. See the full 31-code table.
The capabilities
Scrape
One URL in, clean content out
Crawl
Stream a whole site from a seed
Search
Results you can act on
Agents
Hand over a task
Browsers
Live CDP control, TypeScript only
Monitors
Watch a page, notify on change