Give your AI agents web search and browsing that gets smarter with every request. Search the web with Brave Search, browse any URL, and extract structured data. Unbrowser learns patterns and speeds up from 5 seconds to 50ms on repeated visits.
MCP-first design with REST API and SDK for flexibility
Lightweight SDK for serverless apps. Works on Vercel, Cloudflare, AWS Lambda. No browser dependencies.
npm install @unbrowser/cloud
Zero dependencies - just HTTP calls
View on npm
Full browser engine for MCP servers and local apps. Includes Playwright for complete page rendering.
npx @unbrowser/local
Requires Node.js 20+ with Playwright
Direct HTTP API for Python, Ruby, Go, or any language. Full control over requests.
POST api.unbrowser.ai/v1/browse
Works from anywhere
Works with major platforms out of the box
Learning-first architecture designed for AI agents that repeatedly visit the same sites
First request analyzes the page. Every subsequent request uses learned patterns and direct API calls - no browser needed.
Finds REST endpoints, GraphQL schemas, OpenAPI specs, and WebSocket connections. Uses them directly instead of rendering.
Auto-extracts JSON-LD, microdata, OpenGraph, and Twitter cards. Detects Next.js, React, Vue, Angular frameworks.
Cloud users share learned patterns. Every successful extraction makes the system smarter for everyone. Local users benefit from bootstrap patterns.
Wikipedia, GitHub, npm, PyPI, Stack Overflow, Reddit, Hacker News, YouTube, and more - go straight to each site's official API for instant structured data. No HTML scraping required.
Enterprise-grade features for complex automation scenarios
Search the web using Brave Search API, then intelligently browse and extract data from results. Like Claude's built-in web search, but with structured extraction, multi-source verification, and contradiction detection. Automatically surfaces policy changes, conflicting information, and critical updates.
POST /v1/research { scope: "Portugal D7 visa requirements", strategy: "authoritative" }
Predicts when content will change using calendar triggers (annual January updates), seasonal patterns, and historical analysis. Urgency levels (0-3) help you prioritize freshness checks.
Record multi-step workflows during a live browsing session, annotate each step, then replay with different parameters. Learned patterns transfer across similar flows.
Learn form submission patterns (POST, GraphQL mutations, Server Actions) and replay them 10-25x faster.
Built-in assertions validate extracted data. Schema validation, field matching, confidence scoring.
Discover WebSocket endpoints, Socket.IO, and SSE streams. Learn message patterns for direct replay.
Automatically detects rate limits, adapts request timing, and queues requests to stay within quotas.
Smart proxy routing based on site requirements. Auto-detect regional restrictions and select optimal locations.
Start with full rendering, progressively eliminate it as we learn
Full browser rendering (~2-5s). We analyze structure, discover APIs, learn patterns, and extract structured data.
Use learned patterns to skip rendering where possible. Try direct API calls. Fall back to browser if needed.
Direct API calls using cached patterns (~50ms). 10x faster because we learned how the site works.
Each card names a concrete pain point — pick the one that sounds like your stack
Your RAG pipeline can scrape today's content but tomorrow's Cloudflare update breaks it. Unbrowser handles bot-protection, JS rendering, and structured extraction so your ingestion stays reliable as the open web gets harder. Pair with cron-style refresh and field-level change detection to keep your vector DB current.
Fetch regulations, contracts, benefit schedules, and agency announcements from .gov and regulator sites. Get a diff queue when content changes — not just "page changed," but field-level: "IPREM monthly went from €600 to €620 on 2026-01-01". Pipe straight into a review queue.
Refresh company profiles weekly from their own websites. Surface "they just announced X" signals without your scraper rotting every quarter. Learned patterns mean a 50–250ms repeat fetch instead of 2–5s of browser automation — and dozens of accounts in seconds instead of hours.
Member portals, customer dashboards, internal wikis, paywalled documentation. Pass cookies via session.cookies; we run Playwright when needed and learn the API behind the page for next time. Sessions persist across requests so your agent stays logged in.
Chain queries: "find IPREM on boe.es, then find the French RSA equivalent." /v1/research combines web search with intelligent browsing and returns structured JSON with citations. Pass an outputSchema and get typed fields out the other side — no LLM glue, no hand-rolled extraction.
AI assistant for union members. Ingests agency benefits pages, surfaces policy diffs to a moderator queue, answers member questions with grounded citations. Full case study writeup in progress.
Built specifically for agents that repeatedly access the same sites
| vs Alternative | Their Approach | Unbrowser's Advantage |
|---|---|---|
| Firecrawl / Jina AI | Same speed every time | We learn and get 10x faster over time |
| Playwright / Puppeteer | Always use browser rendering | We auto-discover APIs so you don't need rendering |
| Browse.ai | Point-and-click, limited to specific workflows | Programmable via MCP, works with any LLM |
| Direct API calls | Manual reverse engineering required | Automatic API discovery on first visit |
| Traditional scrapers | No network effects | Collective learning: patterns shared across all users |
| Claude's WebSearch | Returns prose text, no verification | Detects source disagreements, returns typed JSON with confidence scores |
Same query, different results. Unbrowser detected that sources actually disagree on the value.
The government source (exteriores.gob.es) reports a different value due to new regulation RD 1155/2024. Unbrowser caught this discrepancy - a simple search would have given you the wrong answer.
import { createUnbrowser } from '@unbrowser/cloud'; const client = createUnbrowser(); // Search the web and extract structured data const result = await client.research({ scope: 'Portugal D7 visa income requirements 2025', strategy: 'authoritative', // prioritize gov sources maxSources: 5 }); // Get citations, confidence scores, and structured data console.log(result.data); // extracted facts console.log(result.sources); // cited URLs console.log(result.confidence); // 0.85 // Prediction API - when will content change? const predictions = await client.getUrgentPredictions(2); // Returns patterns with urgency 2-3, calendar triggers
Run locally for free, or let us handle the infrastructure with Cloud
Local is perfect for personal projects and learning. Cloud is for production apps that need scalability and commercial use rights.
Start free with Local, or scale instantly with Cloud.