Five surfaces. One platform. Embed AI agents, automate the web through CLI, connect to Claude via MCP, or call our REST API — all powered by rtrvr's browser AI infrastructure.
All surfaces share the same intelligence — 1.5M+ trajectories. Pick the right surface for your use case.
# 1. Install globally npm install -g @rtrvr-ai/cli # 2. Authenticate rtrvr auth login # browser OAuth rtrvr auth login --api-key rtrvr_... # or direct API key # 3. Run an AI agent task rtrvr run "Extract top 10 products and prices" \ --url https://example.com # 4. Structured JSON output rtrvr run "Get all pricing tiers" \ --url https://example.com/pricing \ --schema-file ./schema.json --json # 5. Scrape a page rtrvr scrape --url https://example.com # 6. Diagnose connectivity rtrvr doctor
import { createRtrvrClient } from '@rtrvr-ai/sdk'; const client = createRtrvrClient({ apiKey: process.env.RTRVR_API_KEY!, defaultTarget: 'auto', }); // Run an agent task const result = await client.run({ input: 'Find latest headline and author', urls: ['https://example.com'], target: 'auto', }); // Extract structured data const extracted = await client.tools.extract({ user_input: 'Extract all product names and prices', tab_urls: ['https://example.com/products'], }); // Check credit balance const credits = await client.credits.get();
# 1. Install & auth npm install -g @rtrvr-ai/cli rtrvr auth login # 2. Wire into Claude Code rtrvr mcp init --client claude # 2b. Or Cursor rtrvr mcp init --client cursor ──────────────────────────────────────── 8 MCP tools exposed to your AI client: ──────────────────────────────────────── planner Multi-step browser automation act_on_tab Interact with a web page extract_from_tab Extract structured data crawl_and_extract Crawl + extract across pages cloud_agent Run a cloud AI agent cloud_scrape Cloud-based scraping list_devices List extension devices get_current_credits Check credit balance
<!-- Script tag (any HTML page) --> <script> (function(){ var r = window.rover = window.rover || function(){ (r.q = r.q || []).push(arguments); }; r.l = +new Date(); })(); rover('boot', { siteId: 'YOUR_SITE_ID', publicKey: 'pk_site_YOUR_PUBLIC_KEY', allowedDomains: ['yourdomain.com'], }); </script> <script src="https://rover.rtrvr.ai/embed.js" async></script> // ── React / Next.js (npm) ────────────── import { boot, shutdown } from '@rtrvr-ai/rover'; import { useEffect } from 'react'; export function RoverWidget() { useEffect(() => { boot({ siteId: '...', publicKey: 'pk_site_...' }); return () => shutdown(); }, []); return null; }
# ── Agent endpoint ────────────────────── curl -X POST https://api.rtrvr.ai/agent \ -H "Authorization: Bearer $RTRVR_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "input": "Extract the top 5 products", "urls": ["https://example.com/products"], "target": "cloud" }' # ── Scrape endpoint ───────────────────── curl -X POST https://api.rtrvr.ai/scrape \ -H "Authorization: Bearer $RTRVR_API_KEY" \ -d '{"urls": ["https://example.com"]}' # ── Response shape ────────────────────── # { "result": "...", # "metadata": { "selectedMode": "cloud" }, # "credits_used": 4 }
If your agent needs to see, click, or extract anything on the web — we're your infra.
"Scrape pricing from 50 competitor sites into a spreadsheet"
"Extract contacts from YC pages, enrich via LinkedIn profiles"
"Fill out 100 job applications with my resume, customized per role"
"Track price changes on 200 products, alert my team on Slack"
"Research any topic across the web, compile a structured report"
"Guide users through complex signups and workflows, click-by-click"