Skip to main content
Pass a Pydantic model (Python) or Zod schema (TypeScript) — result.output is automatically validated and converted to the typed object.
TypeScript requires Zod v4 (npm install zod@4). Zod v3 is not compatible.
from browser_use_sdk.v3 import AsyncBrowserUse
from pydantic import BaseModel

class Post(BaseModel):
    name: str
    points: int
    comments: int

class HNPosts(BaseModel):
    posts: list[Post]

client = AsyncBrowserUse()
result = await client.run(
    "List the top 20 posts on Hacker News today with their points",
    output_schema=HNPosts,
)
for post in result.output.posts:
    print(f"{post.name} ({post.points} pts, {post.comments} comments)")