rtrvr.ai
Browser ExtensionStart in Chrome, on the page you're on.CloudA thousand browsers, on your schedule.RoverThe AI customer engineer for your product.Data & EvalsExpert trajectories for AI labs.
ACCESSAPI + MCPCLI & SDKTemplatesIntegrationsWhatsApp
Use cases
Vibe ScrapingLead EnrichmentWeb MonitoringForm FillingJob ApplicationsSocial MediaAI Web ContextAgentic CheckoutAll use cases
Pricing
BlogLaunches, benchmarks, deep divesDocsExtension, Cloud, API, MCP, CLICase StudiesReal teams, real runsVideosNew runs every weekChangelogWhat just shippedNewslettersProduct releases and real runs
Docs
Log inBook DemoAdd to Chrome
Log in
Menu
Add to ChromeBook a demo
ProductsBrowser ExtensionCloudRoverData & EvalsExploreUse casesPricingBlogDocs
DocsChrome / Cloud / API / MCP
Quick startAPIMCP

Start

OverviewQuick start

Build

Web agentSheets workflowsRecordingsTool callingSkillsEnrichment datasets

Run

CLI and SDKAPI overviewAgent APIScrape APIBrowser API and MCP

Automate

ShortcutsTriggersWebhooksSchedules

Trust & help

Cookie syncPermissions and privacyFAQ
Docs/Browser API and MCP

RUN

Use your signed-in browser./mcp

Let an MCP client or backend use your signed-in Chrome session, including sites behind logins, SSO, and internal tools.
Try a toolAdd to Chrome
01

Your signed-in browser

Use the sessions and permissions already available in Chrome.

02

MCP or HTTP

Connect an MCP client or send JSON from your backend.

03

Device and Cloud tools

Use browser tools on your device and knowledge tools in Cloud.

Chrome is required for device-backed tools. Cloud-only tools do not need an extension session.
CLI

Connect an MCP client from your terminal with rtrvr CLI.

rtrvr mcp init --client claude

Video Tutorials

IN THIS WALKTHROUGHPlay videoGive another agent a real browser through an API.

Browser as API Introduction

Introduction

IN THIS WALKTHROUGHPlay videoConnect MCP once. Call browser work like any other tool.

MCP Integration Deep Dive

MCP Deep Dive

03

Browser as API/MCP Playground

POST/mcp

Control your logged-in Chrome or call cloud-only knowledge base tools via HTTP or MCP

Get from rtrvr.ai/cloud or your Chrome Extension

Leave blank to auto-select. Use list_devices to find IDs.

Execute complex multi-step tasks from natural language

URLs to open before starting

curl -X POST "https://mcp.rtrvr.ai" \
  -H "Authorization: Bearer rtrvr_xxxxxxxxxxxxxxxxx" \
  -H "Content-Type: application/json" \
  -d '{
  "tool": "planner",
  "params": {}
}'
Endpoint URLhttps://mcp.rtrvr.ai

Shared by both direct HTTP calls and MCP clients. Extension-generated MCP URLs include your API key and deviceId; cloud-only knowledge base tools do not require a device.

The rtrvr.ai Chrome Extension registers as a remote browser device and exposes a single public entrypoint at https://mcp.rtrvr.ai. That same endpoint speaks:

  • MCP: paste the generated MCP URL (includes apiKey + deviceId) into any MCP-enabled client (e.g. Claude).
  • HTTP: POST JSON describing tool + params. Extension-backed tools dispatch into your online browser devices, while cloud-only knowledge base tools execute immediately without a device.

"Your Chrome browser is now an Agentic API Endpoint."

Trigger complex workflows in your own logged-in browser instance from CI/CD, Slack bots, cron jobs, or backend services.

OAuth Support (Recommended)

MCP clients that support OAuth can authenticate by connecting to mcp.rtrvr.ai directly. This triggers a Google Sign-In flow and returns a secure session token.

API Key in URL (Fallback)

For MCP clients without OAuth support, embed your API key directly in the URL:

https://mcp.rtrvr.ai?apiKey=rtrvr_your_api_key&deviceId=your_device_id

For direct HTTP calls, auth can be provided via:

  • Authorization: Bearer YOUR_API_KEY (recommended)
  • X-API-Key: YOUR_API_KEY
  • Query param: ?apiKey=YOUR_API_KEY
Header
Authorization: Bearer rtrvr_your_api_key
Security: Prefer OAuth or headers in production. Avoid exposing API keys in URLs/logs when possible.

Each Chrome/Chromium profile you install the extension into registers as a separate deviceId. This enables powerful multi-device workflows:

How deviceId works:

  • Your deviceId is embedded in the MCP URL generated by the extension
  • Install the extension on multiple browsers/profiles to get multiple deviceIds
  • Target a specific device by passing deviceId in your request
  • Leave deviceId blank to auto-select the most recently active online device

Device selection rules:

  • Explicit deviceId: Pass deviceId or device_id in the query or body to target a specific device.
  • No deviceId (default): The most recently active online device is auto-selected (highest lastSeen timestamp).
  • Multi-profile orchestration: Install the extension on multiple browser profiles and orchestrate them independently by calling /mcp with different device IDs.
  • Device-independent tools: Utility tools like get_current_credits and list_devices work even if no device is online.

Finding your deviceId:

  • From MCP URL: Open the extension โ†’ MCP / Remote Browser โ†’ copy the MCP URL. The deviceId parameter is embedded in the URL.
  • Via API: Call list_devices to see all registered devices and their online/offline status.
Discovering devices
// List all your devices
curl -X POST "https://mcp.rtrvr.ai" \
  -H "Authorization: Bearer rtrvr_xxx" \
  -H "Content-Type: application/json" \
  -d '{"tool": "list_devices"}'

// Response shows deviceId + online status
{
  "success": true,
  "data": {
    "devices": [
      { "deviceId": "dj75mmaTWP0", "online": true, "lastSeen": "2025-01-15T10:30:00Z" },
      { "deviceId": "abc123XYZ", "online": false, "lastSeen": "2025-01-14T18:00:00Z" }
    ]
  }
}
POSThttps://mcp.rtrvr.ai

The same endpoint powers both MCP and HTTP. For HTTP, you send a single JSON object describing which tool to run, which parameters to pass through, and optionally which device to target for extension-backed tools.

BrowserAgentApiRequest (conceptual)
interface BrowserAgentApiRequest {
  /**
   * Canonical tool name, e.g. "planner" or "get_browser_tabs".
   * Only one of "tool" or "action" is required.
   */
  tool?: string;

  /**
   * Optional alias of "tool". Use canonical snake_case tool names.
   */
  action?: string;

  /**
   * Parameters for the tool. "params" and "parameters" are equivalent.
   * Prefer canonical snake_case parameter names.
   */
  params?: Record<string, any>;
  parameters?: Record<string, any>;

  /**
   * Optional: route extension-backed tools to a specific Chrome profile / device.
   * Cloud-only knowledge base tools ignore this field.
   */
  deviceId?: string;
  device_id?: string;

  /**
   * Per-request timeout in milliseconds (default: 300000 / 5 minutes).
   */
  timeout?: number;

  /**
   * Reserved for future async modes.
   */
  async?: boolean;
  webhookUrl?: string;
}

Top-level fields

01
toolstring

Canonical tool name (snake_case), e.g. 'planner' or 'get_browser_tabs'. Only one of tool/action is required.

02
actionstring

Optional alias of tool. Use canonical snake_case tool names for reliability.

03
params / parametersobject

JSON object of tool-specific parameters. 'params' and 'parameters' are aliases. Prefer snake_case parameter names.

04
params.options.ui.emitEventsbooleandefault false

Opt-in only. Set true to write execution progress events for SSE/polling consumers. If omitted/false, no execution event stream is written.

05
deviceId / device_idstring

Optional device routing for extension-backed tools. If omitted, we pick the most recently active online browser extension device for that user. Cloud-only knowledge base tools ignore this field.

06
timeoutnumberdefault 300000

Max execution time for this request in milliseconds. Defaults to 5 minutes.

07
async / webhookUrlboolean / string

Reserved for future async execution modes. Ignored for now.

emitEvents policy: API and extension/MCP executions only emit events whenoptions.ui.emitEvents: true. CLI streaming defaults on for run, agent, and scrape (use --no-stream to disable). Streamed payloads at or under 1MB stay inline; larger payloads include inline preview markers and storage references (`outputRef` / `resultRef` / `responseRef`) for full downloads.

The Browser as API/MCP exposes extension-backed browser tools, cloud-only tools, scheduling/trigger management, and utility tools. They are grouped into free, credit-based, cloud, utility, and user-defined families.

Free tools (no credits)

  • get_browser_tabs โ€“ list open tabs (filter by all/active/domain).
  • get_page_data โ€“ get accessibility-tree representations for specific tab IDs.
  • take_page_action โ€“ run system tools like click, type, scroll, etc.
  • execute_javascript โ€“ run JS inside a secure browser sandbox (disabled by default).

Credit-based tools

  • planner โ€“ multi-step planning and tool orchestration from natural language.
  • act_on_tab โ€“ intelligent page interaction with optional structured schemas.
  • extract_from_tab โ€“ structured extraction to JSON or Google Sheets.
  • crawl_and_extract_from_tab โ€“ multi-page crawls with schema extraction.
  • replay_workflow โ€“ replay a previously executed workflow by task ID or shared URL.
  • schedule โ€“ create or modify a scheduled workflow on the browser extension.
  • trigger_setup โ€“ create or modify a trigger workflow on the browser extension.

Cloud tools (no extension required)

  • cloud_scrape โ€“ scrape web pages using cloud browsers, returns accessibility trees.
  • cloud_agent โ€“ execute AI agent tasks using cloud browsers with structured output.
  • list_skills โ€“ list your skill files (persistent markdown memory the agent reads and updates).
  • get_skill โ€“ read one skill file's full markdown by name.
  • check_schedule_results โ€“ check execution results of scheduled workflows from cloud storage.
  • check_trigger_results โ€“ check execution results of trigger workflows from cloud storage.

Utility & user-defined tools

  • list_devices โ€“ list all registered extension devices and online/offline status.
  • get_current_credits โ€“ fetch current plan, credits used, and credits remaining.
  • upload_file โ€“ upload a file (base64, URL import, or signed upload URL) to rtrvr storage and get back a storageUrl to attach to agent tools. Free, no device required.
  • list_recordings โ€“ list all user recordings (returns metadata: ID, name, timestamp).
  • list_custom_functions โ€“ list all custom functions (metadata only, not code).
  • list_schedules โ€“ list all scheduled workflow configurations. Works offline.
  • list_triggers โ€“ list all trigger workflow configurations. Works offline.
  • user_function โ€“ user-defined tools created in Cloud and executed in the extension sandbox.

Tool name aliases

Use canonical snake_case tool names. For direct HTTP, action can mirror tool:

  • tool: "agent" โ€“ unified alias that routes to cloud_agent (default) or planner (when extension/local session is requested).
  • tool: "scrape" โ€“ unified alias that routes to cloud_scrape (default) or extension scrape.
  • tool: "planner" is equivalent to action: "planner".
  • tool: "act_on_tab" is equivalent to action: "act_on_tab".
  • For MCP protocol calls, use tool names exactly as returned by tools/list.

Parameter aliases

Prefer snake_case parameters. Common compatibility aliases include:

  • user_input โ‡” userInput
  • tab_urls โ‡” tabUrls
  • device_id โ‡” deviceId
  • max_steps โ‡” maxSteps
  • task_id โ‡” taskId
  • recording_id โ‡” recordingId
  • file_urls โ‡” fileUrls
  • image_urls โ‡” imageUrls
  • shared_workflow_url โ‡” sharedWorkflowUrl
  • store_id โ‡” storeId
  • conversation_context โ‡” conversationContext
  • tab_ids โ‡” tabIds
  • web_page_map โ‡” webPageMap
  • auth_token โ‡” authToken

All credit tools support file and image inputs via publicly fetchable URLs. Files are automatically uploaded to Firebase Storage and passed to the agent as context. For local files that aren't hosted anywhere, use the upload_file tool first (see below) and pass the returned storageUrl.

Supported input parameters:

  • file_urls โ€“ array of publicly fetchable file URLs (CSV, PDF, etc.)
  • image_urls โ€“ array of publicly fetchable image URLs (JPG, PNG, etc.)
  • recording_id โ€“ ID of a recorded workflow to use as context
file_urls

CSV, PDF, text files to use as input data

image_urls

JPG, PNG images for visual context

recording_id

Recorded workflow to use as context

Example with file inputs
{
  "tool": "planner",
  "params": {
    "user_input": "Upload this CSV and submit the form",
    "tab_urls": ["https://example.com/upload"],
    "file_urls": ["https://example.com/data.csv"],
    "image_urls": ["https://example.com/screenshot.png"],
    "recording_id": "rec_abc123"
  }
}

Uploading local files: upload_file

The upload_file tool stores a file under your account and returns a storageUrl + gcsUri. It is free, needs no device, and supports three modes (max 20MB per file):

  • Base64: pass name, mimeType, and base64 data โ€” best for small files.
  • URL import: pass url โ€” the file is copied into rtrvr storage.
  • Signed upload URL: pass only name and mimeType โ€” you get back a signed uploadUrl valid for 15 minutes. PUT the raw bytes to it (no base64 inflation), then use the returned storageUrl.
Local file โ†’ signed upload โ†’ agent attachment
# 1. Request a signed upload URL (no bytes in the request)
curl -X POST "https://mcp.rtrvr.ai" \
  -H "Authorization: Bearer rtrvr_xxx" \
  -H "Content-Type: application/json" \
  -d '{"tool": "upload_file", "params": {"name": "resume.pdf", "mimeType": "application/pdf"}}'
# โ†’ { "mode": "signed_url", "uploadUrl": "https://storage.googleapis.com/โ€ฆ", "storageUrl": "โ€ฆ", "gcsUri": "gs://โ€ฆ" }

# 2. Upload the raw bytes
curl -X PUT -H "Content-Type: application/pdf" --upload-file ./resume.pdf "<uploadUrl>"

# 3. Attach it to any agent tool
curl -X POST "https://mcp.rtrvr.ai" \
  -H "Authorization: Bearer rtrvr_xxx" \
  -H "Content-Type: application/json" \
  -d '{
    "tool": "planner",
    "params": {
      "user_input": "Apply to this job with my resume",
      "tab_urls": ["https://example.com/careers/apply"],
      "file_urls": ["<storageUrl>"]
    }
  }'

For agent / cloud_agent, attach files via the files parameter instead of file_urls:

cloud_agent / agent files parameter
{
  "tool": "agent",
  "params": {
    "user_input": "Summarize the attached report",
    "files": [
      { "displayName": "report.pdf", "uri": "<storageUrl>", "mimeType": "application/pdf" }
    ]
  }
}

The replay_workflow tool allows you to re-execute a previously completed workflow. You can replay your own workflows by task ID, or replay workflows shared by other users via a shared URL.

Two ways to replay:

  • task_id โ€“ replay your own workflow by execution ID
  • shared_workflow_url โ€“ replay a workflow shared by another user

At least one of these must be provided.

Parameters

01
task_idstring

The task ID from a previous workflow execution in your history.

02
shared_workflow_urlstring

A shared workflow URL (e.g., https://rtrvr.ai/shared/Tasks/userId/taskId/token). Use this to replay workflows shared by other users.

03
tab_execution_modestringdefault new_tabs

How to handle tabs during replay.

new_tabsreuse_tabscurrent_context
04
recording_idstring

Optional recording ID to use as additional context.

05
file_urlsstring[]

Optional file URLs to include as input.

06
image_urlsstring[]

Optional image URLs to include as input.

Replay workflow examples
// By task ID (your own workflow)
{
  "tool": "replay_workflow",
  "params": {
    "task_id": "abc123xyz",
    "tab_execution_mode": "new_tabs"
  }
}

// By shared URL (another user's workflow)
{
  "tool": "replay_workflow", 
  "params": {
    "shared_workflow_url": "https://rtrvr.ai/shared/Tasks/userId/taskId/token"
  }
}

Below is a conceptual TypeScript view of each tool's parameters.

Agentic tool parameters
// Free tools
get_browser_tabs({
  filter?: "all" | "active" | "domain";
  domain?: string;
  device_id?: string;
});

get_page_data({
  tabIds: number[];
  device_id?: string;
});

take_page_action({
  actions: {
    tab_id?: number;
    tool_name: SystemToolName;
    args: Record<string, any>;
  }[];
  device_id?: string;
});

execute_javascript({
  code: string;
  timeout?: number;
  context?: Record<string, any>;
  device_id?: string;
});

// Credit tools
planner({
  user_input: string;
  context?: string;
  tab_urls?: string[];
  max_steps?: number;
  device_id?: string;
  recording_id?: string;      // Recording ID to use as workflow context
  file_urls?: string[];       // Publicly fetchable file URLs
  image_urls?: string[];      // Publicly fetchable image URLs
});

act_on_tab({
  user_input: string;
  tab_urls?: string[];
  schema?: {
    fields: {
      name: string;
      description: string;
      type: string;
      required?: boolean;
    }[];
  };
  tab_id?: number;
  device_id?: string;
  recording_id?: string;
  file_urls?: string[];
  image_urls?: string[];
});

extract_from_tab({
  user_input: string;
  tab_urls?: string[];
  schema?: {
    fields: {
      name: string;
      description: string;
      type: string;
      required?: boolean;
    }[];
  };
  output_destination?: {
    type: "json" | "google_sheet";
    new_sheet_title?: string;
    new_tab_title?: string;
    existing_sheet_id?: string;
    existing_tab_title?: string;
  };
  tab_id?: number;
  device_id?: string;
  recording_id?: string;
  file_urls?: string[];
  image_urls?: string[];
});

crawl_and_extract_from_tab({
  user_input: string;
  tab_urls?: string[];
  schema?: { fields: { name: string; description: string; type: string; required?: boolean; }[]; };
  max_pages?: number;
  follow_links?: boolean;
  link_pattern?: string;
  output_destination?: { type: "json" | "google_sheet"; new_sheet_title?: string; };
  tab_id?: number;
  device_id?: string;
  recording_id?: string;
  file_urls?: string[];
  image_urls?: string[];
});

replay_workflow({
  task_id?: string;              // Task ID from previous execution
  shared_workflow_url?: string;  // Shared workflow URL from another user
  tab_execution_mode?: "new_tabs" | "reuse_tabs" | "current_context";
  recording_id?: string;
  file_urls?: string[];
  image_urls?: string[];
});

// Cloud-only skill tools (no device_id required)
list_skills({});

get_skill({
  name: string;
}});

// Utility: upload a local file to rtrvr storage (free, no device_id required)
upload_file({
  name?: string;      // filename incl. extension; required unless url given
  mimeType?: string;  // inferred from extension if omitted
  data?: string;      // base64 content (small files)
  url?: string;       // OR: public URL to import
  // neither data nor url โ†’ returns a signed PUT uploadUrl (15 min)
  // โ†’ { storageUrl, gcsUri } to pass via file_urls or files[]
});

// User functions (defined in Cloud and executed in the browser sandbox)
user_function({
  functionName: string;
  // your custom parameters...
});

All tools return a consistent envelope with tool-specific data plus metadata:

BrowserAgentApiResponse (conceptual)
interface BrowserAgentApiResponse<TData = any> {
  success: boolean;
  data: TData | null;
  error: string | null;
  metadata: {
    requestId: string;
    executionTime: number;
    tool: string;
    deviceId?: string;
    creditsUsed?: number;
    creditsRemaining?: number;
    inlineOutputMaxBytes?: number;
    outputTooLarge?: boolean;
    responseRef?: StorageReference;
  };
  timestamp: string;
}
Example: get_browser_tabs response
{
  "success": true,
  "data": {
    "tabs": [{ "id": 1, "url": "https://example.com" }],
    "activeTab": { "id": 1, "url": "https://example.com" },
    "tabCount": 1
  },
  "error": null,
  "metadata": {
    "requestId": "req_abc123",
    "executionTime": 1234,
    "tool": "get_browser_tabs",
    "deviceId": "dj75mmaTWP0",
    "creditsUsed": 0,
    "creditsRemaining": 10000
  },
  "timestamp": "2025-01-01T12:00:00.000Z"
}
  • metadata.deviceId shows which device executed the request.
  • metadata.requestId is useful for joining logs with rtrvr.ai's internal state.
  • HTTP headers like X-Credits-Used and X-Credits-Remaining are also surfaced.
  • Large payloads keep inline previews and expose storage refs via metadata.responseRef and/or outputRef/resultRef.

Remote tool execution can be configured at a per-user and per-tool level via the extension settings and the Cloud dashboard.

  • Disable remote browser tools entirely for a given user.
  • Independently enable/disable free tools and credit tools.
  • Toggle individual tools inside each family.
  • All configuration is respected by the MCP handler; disabled tools yield an explanatory error.
Important: Remote tool execution is enabled by default. Review allowed tools in the Chrome extension MCP / Remote Tools settings to match your security posture.

If /mcp calls fail with No online devices found or other errors:

  • Open/close the rtrvr.ai Chrome extension popup to refresh its connection.
  • Rotate your API key from the extension dropdown to re-sync backend state.
  • Sign out and sign back into the extension to reset device registration.
  • Call list_devices to see which devices are online.
  • Ensure the deviceId you're targeting matches an online device.
Most device issues are resolved by refreshing the extension, rotating the API key, or resetting the sign-in.
  1. Install the rtrvr.ai Chrome Extension.
  2. Open the MCP / Remote Browser section in the extension.
  3. Copy the generated MCP URL โ€” your API key and deviceId are already embedded. Alternatively, get your API key from rtrvr.ai/cloud.
  4. For MCP clients: paste the URL directly into your MCP-enabled application (e.g. Claude).
  5. For direct HTTP: call https://mcp.rtrvr.ai with your API key in headers. Optionally pass deviceId to target a specific device.
  6. Multi-device setup: Install the extension on multiple Chrome profiles. Each gets its own deviceId. Target specific devices or leave blank for auto-selection.
  7. Configure which tools to enable/disable in extension settings.
The MCP URL generated by the extension includes your API key and deviceId. Treat this URL as a secret: store it safely, avoid logging it in plaintext, and rotate as needed.

These snippets show the recommended integration pattern: a thin server-side helper that wraps POST /mcp, keeps your API key off the frontend, and centralizes rate limiting + logging.

cURL
# 1) Your browser as an agentic API endpoint
curl -X POST "https://mcp.rtrvr.ai" \
  -H "Authorization: Bearer rtrvr_xxxxxxxxxxxxxxxxx" \
  -H "Content-Type: application/json" \
  -d '{
    "tool": "planner",
    "params": {
      "user_input": "Go to ChatGPT.com, ask for top Indian restaurants in SF, and extract back citations.",
      "tab_urls": ["https://chatgpt.com"],
      "options": {
        "ui": {
          "emitEvents": true
        }
      }
    },
    "deviceId": "dj75mmaTWP0"
  }'

# 2) Free tool: list all tabs on your most recent device (no deviceId = auto-select)
curl -X POST "https://mcp.rtrvr.ai" \
  -H "X-API-Key: rtrvr_xxxxxxxxxxxxxxxxx" \
  -H "Content-Type: application/json" \
  -d '{
    "tool": "get_browser_tabs",
    "params": { "filter": "all" }
  }'

# 3) Replay a workflow with file inputs
curl -X POST "https://mcp.rtrvr.ai" \
  -H "Authorization: Bearer rtrvr_xxxxxxxxxxxxxxxxx" \
  -H "Content-Type: application/json" \
  -d '{
    "tool": "replay_workflow",
    "params": {
      "task_id": "abc123xyz",
      "tab_execution_mode": "new_tabs",
      "file_urls": ["https://example.com/data.csv"]
    }
  }'

# 4) Planner with image context
curl -X POST "https://mcp.rtrvr.ai" \
  -H "Authorization: Bearer rtrvr_xxxxxxxxxxxxxxxxx" \
  -H "Content-Type: application/json" \
  -d '{
    "tool": "planner",
    "params": {
      "user_input": "Find similar products to the one in this image",
      "tab_urls": ["https://amazon.com"],
      "image_urls": ["https://example.com/product.jpg"]
    }
  }'

# 5) Cloud-only skills listing (no deviceId required)
curl -X POST "https://mcp.rtrvr.ai" \
  -H "Authorization: Bearer rtrvr_xxxxxxxxxxxxxxxxx" \
  -H "Content-Type: application/json" \
  -d '{
    "tool": "list_skills",
    "params": {}
  }'

# 6) Cloud-only skill read (no deviceId required)
curl -X POST "https://mcp.rtrvr.ai" \
  -H "Authorization: Bearer rtrvr_xxxxxxxxxxxxxxxxx" \
  -H "Content-Type: application/json" \
  -d '{
    "tool": "get_skill",
    "params": {
      "name": "general"
    }
  }' 
PreviousTool callingNextCLI and SDK

YOUR NEXT RUN

Run the example on a real site.

Use Chrome for the page in front of you. Use Cloud when the run should continue on a schedule or across many pages.
Add to ChromeAgent API DocsBook a demo
rtrvr.ai

Make every site
work for you.

Launches first, roadmap early, and the occasional trick we only share by email.

Products

Browser ExtensionCloudRoverData & Evals

Use cases

Vibe ScrapingLead EnrichmentForm FillingWeb MonitoringSocial MediaJob ApplicationsData MigrationAI Web ContextAgentic Checkout

Resources

DocsBlogData for AI LabsCase StudiesVideosNewslettersChangelogPricingAppSumoDemoAffiliate

Company

TeamContactGCP PartnerWhat We BelieveSecurityPrivacyTerms

Developers

APIMCPCLI & SDKTemplatesIntegrationsWhatsApp

Compare

ApifyBardeenBrowserbaseBrowser UseClayClaudeCometFirecrawl
Products
Browser ExtensionCloudRoverData & Evals
Use cases
Vibe ScrapingLead EnrichmentForm FillingWeb MonitoringSocial MediaJob ApplicationsData MigrationAI Web ContextAgentic Checkout
Resources
DocsBlogData for AI LabsCase StudiesVideosNewslettersChangelogPricingAppSumoDemoAffiliate
Company
TeamContactGCP PartnerWhat We BelieveSecurityPrivacyTerms
Developers
APIMCPCLI & SDKTemplatesIntegrationsWhatsApp
Compare
ApifyBardeenBrowserbaseBrowser UseClayClaudeCometFirecrawl
BACKED BYNVIDIA InceptionGoogle Cloud for StartupsBright DataNEC XSalesforce LaunchpadElevenLabs GrantsGMI CloudComposioSmallest.ai Grants
DISCOVERYllms.txtllms-full.txtagents.mdDocumentation indexSitemapOpenAPIAI Catalog
ยฉ 2026 rtrvr.ai ยท Retriever AI on socials
DiscordYouTubeInstagramTikTokLinkedInXGitHub
support@rtrvr.ai