{
  "data": {
    "a": {
      "slug": "selenium",
      "name": "Selenium",
      "vendor": "Selenium project (Software Freedom Conservancy)",
      "vendorUrl": "https://www.selenium.dev",
      "kind": "sdk",
      "category": "browser",
      "summary": "Selenium is the open-source browser automation project behind the W3C WebDriver standard, with official bindings for Java, Python, C#, Ruby and JavaScript and a self-hosted Grid server that runs browsers on other machines.",
      "url": "https://www.anchorterminal.com/tools/selenium",
      "markdownUrl": "https://www.anchorterminal.com/tools/selenium.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/selenium.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/selenium.json",
      "repo": "https://github.com/SeleniumHQ/selenium",
      "license": "Apache-2.0",
      "transports": [
        "http"
      ],
      "packages": [
        {
          "registry": "pypi",
          "name": "selenium"
        },
        {
          "registry": "npm",
          "name": "selenium-webdriver"
        },
        {
          "registry": "maven",
          "name": "org.seleniumhq.selenium:selenium-java"
        },
        {
          "registry": "nuget",
          "name": "Selenium.WebDriver"
        },
        {
          "registry": "rubygems",
          "name": "selenium-webdriver"
        }
      ],
      "auth": "none",
      "authNotes": "No account or key for the bindings, which run on the owner's machine. Grid accepts sessions without authentication unless both `--username` and `--password` are set, and Nodes register with a shared `--registration-secret` when one is configured. Site logins live in the browser profile or cookies the script sets.",
      "pricing": "free",
      "pricingNotes": "Free and open source under Apache-2.0, with nothing to buy and no hosted service from the project. Grid is self-hosted. Commercial clouds that run Selenium sessions are separate companies (checked 2026-10-14).",
      "priceSummary": "Free · OSS",
      "where": "local",
      "x402": {
        "level": "no",
        "evidence": "No x402, MPP or L402 in the docs, llms.txt or the source (checked 2026-10-14).",
        "endpoints": []
      },
      "toolCount": null,
      "popularity": {
        "githubStars": 34542,
        "npmWeekly": 1807038,
        "pypiWeekly": 6884385,
        "asOf": "2026-10-14"
      },
      "docsUrl": "https://www.selenium.dev/documentation/",
      "llmsTxt": "https://www.selenium.dev/llms.txt",
      "capabilities": [
        "browser.control",
        "browser.debug"
      ],
      "tags": [
        "official",
        "local",
        "open-source",
        "browser",
        "sdk",
        "python",
        "java",
        "javascript",
        "dotnet",
        "ruby",
        "llms-txt",
        "no-auth",
        "webdriver"
      ],
      "lastRelease": "2026-10-09",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 73.6,
        "grade": "BB",
        "agentReady": true,
        "rank": 90,
        "ranked": true,
        "rankOf": 1076,
        "categoryRank": 4,
        "methodology": "0.4",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 70,
          "maintenance": 94,
          "payments": 60,
          "reliability": 90,
          "schema": 89,
          "security": 43,
          "transparency": 74
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-10-14"
        },
        "negative": 0,
        "verdict": "Selenium is stable, Apache-2.0 software on 4.51.0 with bindings in five languages, CI passing on trunk, an llms.txt and an agent guide added in September 2026. It has no MCP server of its own, Selenium Manager sends usage statistics by default, and Grid accepts unauthenticated sessions unless a username and password are set.",
        "bestFor": "Agents that write test or automation scripts in any of five languages, and teams with a Grid.",
        "strengths": [
          "Official bindings for Java, Python, C#, Ruby and JavaScript, released together, 4.51.0 on 9 October 2026",
          "llms.txt and a page on using AI coding agents with Selenium, last changed 28 September 2026",
          "Code samples in the docs are run in CI against current releases",
          "An error page per common exception, such as `StaleElementReferenceException`, gives causes and fixes",
          "The 15 most recent CI runs on trunk, 13 October 2026, all succeeded or were cancelled"
        ],
        "weaknesses": [
          "No MCP server from the project. The docs point to community servers and say they are third-party",
          "Selenium Manager sends anonymised usage statistics to Plausible once a day by default, until `SE_AVOID_STATS=true` is set",
          "Grid has no authentication unless `--username` and `--password` are both set",
          "The project says it does not follow semantic versioning, and removes deprecated APIs in minor releases",
          "No accessibility snapshot call, so agents read page source or query elements one by one"
        ],
        "agentNotes": [
          "Install with `pip install selenium` (Python 3.10 or later) and let Selenium Manager fetch drivers. Do not set driver paths",
          "Use `WebDriverWait` with expected conditions, never fixed sleeps, and do not mix implicit and explicit waits",
          "Set `SE_AVOID_STATS=true` to stop Selenium Manager sending usage statistics",
          "Point coding agents at https://www.selenium.dev/llms.txt. Most Selenium 2 and 3 era examples use removed APIs",
          "Set `--username` and `--password` before exposing a Grid beyond localhost. Check `http://localhost:4444/status` before creating sessions"
        ],
        "metrics": {
          "kind": "local",
          "measured": false
        },
        "reviewCount": 0,
        "avgRating": 0,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "BB",
            "methodology": "0.4",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 73.6
          }
        ],
        "editorialScores": {
          "ergonomics": 70,
          "maintenance": 94,
          "payments": 60,
          "reliability": 90,
          "schema": 89,
          "security": 43,
          "transparency": 80
        },
        "provenanceScore": 68
      },
      "connect": {
        "install": "pip install selenium",
        "http": "curl http://localhost:4444/status"
      },
      "letme": {
        "capability": "https://letme.dev/browser.control",
        "tool": "https://letme.dev/selenium"
      },
      "area": "developer",
      "provenance": {
        "legalEntity": "Software Freedom Conservancy",
        "domain": "selenium.dev",
        "domainRegistered": "2019-02-22",
        "domainNote": "NOTICE reads Copyright 2011-2026 Software Freedom Conservancy, which holds the project. RDAP gives selenium.dev a registration date of 22 February 2019. selenium.dev answers 404 for /.well-known/security.txt. Security reports go to security@seleniumhq.org.",
        "endpointOnVendorDomain": null,
        "terms": "",
        "privacy": "",
        "statusPage": "",
        "changelog": "https://github.com/SeleniumHQ/selenium/blob/trunk/py/CHANGES",
        "securityTxt": "none",
        "checked": "2026-10-14",
        "notes": [
          "No terms or privacy document governs this software beyond the Apache-2.0 licence, so `terms` and `privacy` are left out. selenium.dev has no privacy page (/privacy/ answers 404). Selenium Manager's data collection is described in its documentation page.",
          "Each binding keeps its own changelog. The Python one is linked, and the downloads page links the others.",
          "selenium.dev's robots.txt names all user agents with no Disallow lines, so every page was read."
        ],
        "score": 68
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/selenium.json"
    },
    "answer": "Selenium scores 73.6 (BB) on agent readiness against TinyFish's 67.7 (B), and leads in 5 of 7 scored categories. TinyFish leads on agent ergonomics and security \u0026 auth.",
    "b": {
      "slug": "tinyfish",
      "name": "TinyFish",
      "vendor": "TinyFish",
      "vendorUrl": "https://www.tinyfish.ai",
      "kind": "http-api",
      "category": "browser",
      "summary": "TinyFish is a hosted web agent platform from Tiny Fish, Inc. Agents call it through REST APIs for goal-driven automation, remote browser sessions over CDP, search, fetch and research, or through a remote MCP server with OAuth.",
      "url": "https://www.anchorterminal.com/tools/tinyfish",
      "markdownUrl": "https://www.anchorterminal.com/tools/tinyfish.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/tinyfish.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/tinyfish.json",
      "repo": "https://github.com/tinyfish-io/tinyfish-mcp-server",
      "license": "Proprietary service under Tiny Fish's terms of service. The MCP proxy `@tiny-fish/mcp` and the cookbook are MIT. The SDK packages state no licence in npm or PyPI metadata",
      "transports": [
        "http"
      ],
      "remoteUrl": "https://agent.tinyfish.ai",
      "packages": [
        {
          "registry": "pypi",
          "name": "tinyfish"
        },
        {
          "registry": "npm",
          "name": "@tiny-fish/sdk"
        },
        {
          "registry": "npm",
          "name": "@tiny-fish/cli"
        },
        {
          "registry": "npm",
          "name": "@tiny-fish/mcp"
        }
      ],
      "auth": "mixed",
      "authNotes": "Self-serve API key from agent.tinyfish.ai/api-keys, sent in the `X-API-Key` header on every REST call. Keys are shown once and can be deleted, and no scopes were found. The MCP server at `https://agent.tinyfish.ai/mcp` uses OAuth 2.1 with a browser sign-in, or a key as a Bearer token for clients without OAuth. No sales approval is needed.",
      "pricing": "freemium",
      "pricingNotes": "Search and Fetch are free up to 12,000 requests and 1,000 URLs a day. Agent runs cost $0.016 a step and Browser sessions $0.002 a minute, drawn from a prepaid wallet with a $10 minimum top-up and no subscription. New accounts start with $8 of wallet funds and need no card, so an agent's owner can start without a contract. Enterprise is by contract (https://www.tinyfish.ai/pricing).",
      "priceSummary": "$0.016 / call",
      "where": "hosted",
      "x402": {
        "level": "no",
        "evidence": "No x402 or L402 in the docs or the OpenAPI documents. `POST /v1/wallet/top-up` accepts the Machine Payments Protocol with a Stripe Shared Payment Token to refill the prepaid wallet ($10 to $500), for accounts in a gradual rollout and with an API key (https://docs.tinyfish.ai/agent-payments.md, checked 2026-10-08).",
        "endpoints": []
      },
      "toolCount": null,
      "popularity": {
        "githubStars": null,
        "npmWeekly": 5721,
        "pypiWeekly": 6540,
        "asOf": "2026-10-08"
      },
      "docsUrl": "https://docs.tinyfish.ai",
      "llmsTxt": "https://docs.tinyfish.ai/llms.txt",
      "openapi": "https://agent.tinyfish.ai/v1/openapi/main",
      "registryName": "ai.tinyfish.agent/web-agent",
      "capabilities": [
        "browser.control",
        "browser.hosted",
        "web.extract",
        "web.fetch",
        "web.search",
        "search.research",
        "scraping.proxies",
        "scraping.anti-bot"
      ],
      "tags": [
        "official",
        "hosted",
        "freemium",
        "no-card",
        "prepaid",
        "mpp",
        "openapi",
        "llms-txt",
        "mcp",
        "oauth",
        "api-key",
        "python",
        "typescript",
        "cli",
        "webhooks",
        "status-page",
        "pre-1.0"
      ],
      "lastRelease": "2026-10-07",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 67.7,
        "grade": "B",
        "agentReady": false,
        "rank": 258,
        "ranked": true,
        "rankOf": 1076,
        "categoryRank": 8,
        "methodology": "0.4",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 79,
          "maintenance": 80,
          "payments": 55,
          "reliability": 60,
          "schema": 85,
          "security": 57,
          "transparency": 59
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-10-08"
        },
        "negative": 0,
        "verdict": "OpenAPI documents are published for five APIs, errors carry typed codes and request IDs, and Search and Fetch are free within daily allowances. The terms let Tiny Fish train its models on customer data, run creation takes no idempotency keys, and the status page shows an hour or more of downtime on several days for the Browser and Search APIs.",
        "bestFor": "Agents that want one account for a goal-driven web agent, a raw CDP browser, and free search and fetch.",
        "strengths": [
          "OpenAPI 3.0 documents for the Agent, Browser, Fetch, Search and Research APIs, plus `llms.txt`, `llms-full.txt` and a Markdown twin of every docs page",
          "Search and Fetch are free up to 12,000 requests and 1,000 URLs a day, and new accounts start with $8 of wallet funds with no card",
          "Errors carry a code, a message, optional `details` and a `request_id`. Search and Fetch 429s carry `Retry-After` and `X-RateLimit-*` headers",
          "Remote MCP server at `https://agent.tinyfish.ai/mcp` with OAuth 2.1, listed in the official MCP registry as `ai.tinyfish.agent/web-agent`",
          "Vault credentials from 1Password or Bitwarden are opt-in per run and can be limited with `credential_item_ids`. The docs say the agent never sees the passwords",
          "A valid security.txt and a disclosure policy (v1.1, 15 September 2026) with safe harbour and response times"
        ],
        "weaknesses": [
          "The terms of 17 August 2026 allow Tiny Fish to train and improve its models on customer data. No opt-out was found in the reviewed pages",
          "The status page shows downtime of an hour or more on six days for the Browser API and five for the Search API between 11 July and 8 October 2026, with no incident write-ups",
          "No idempotency keys on run or session creation. The docs say retrying a failed request may create duplicate runs",
          "API keys have no scopes and no read-only mode was found. No prompt-injection guidance was found in the API docs",
          "No retention periods, public DPA or subprocessor list on the pages we could read. The trust centre is drawn by script and was unread",
          "The Pulse changelog's newest entry is 22 June 2026, and the Python and TypeScript SDKs are 0.x with no public source repository found"
        ],
        "agentNotes": [
          "Check `result` as well as `status`. A run can be `COMPLETED` while the goal failed, with `result.status` set to `failure`",
          "Don't retry `POST /v1/automation/run` blindly after a timeout. There are no idempotency keys, so list runs first to avoid duplicates",
          "Use `/v1/automation/run-async` or `/run-sse` when a run may need cancelling. Runs started with the synchronous endpoint can't be cancelled",
          "Allow 60 seconds for Browser session creation, connect Playwright to `cdp_url` (not `base_url`), and `DELETE` the session when done because billing is per minute",
          "Never put passwords in `goal`, which is logged. Pass `use_vault: true` with `credential_item_ids`, or `use_profile: true` for saved login state"
        ],
        "metrics": {
          "kind": "remote",
          "measured": false
        },
        "reviewCount": 0,
        "avgRating": 0,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "B",
            "methodology": "0.4",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 67.7
          }
        ],
        "editorialScores": {
          "ergonomics": 79,
          "maintenance": 80,
          "payments": 55,
          "reliability": 60,
          "schema": 85,
          "security": 57,
          "transparency": 32
        },
        "provenanceScore": 85
      },
      "connect": {
        "install": "pip install -U tinyfish",
        "http": "curl -X POST https://agent.tinyfish.ai/v1/automation/run -H \"X-API-Key: $TINYFISH_API_KEY\" -H \"Content-Type: application/json\" -d '{\"url\": \"https://example.com\", \"goal\": \"Extract the page title\"}'",
        "claudeCode": "claude mcp add --transport http tinyfish https://agent.tinyfish.ai/mcp",
        "config": {
          "mcpServers": {
            "tinyfish": {
              "url": "https://agent.tinyfish.ai/mcp"
            }
          }
        }
      },
      "letme": {
        "capability": "https://letme.dev/browser.control",
        "tool": "https://letme.dev/tinyfish"
      },
      "sameCompany": [
        "tinyfish-search"
      ],
      "area": "developer",
      "unitPrices": [
        {
          "item": "Agent step",
          "unit": "call",
          "usd": 0.016,
          "note": "Model inference, residential proxy and anti-bot handling included per the pricing page"
        },
        {
          "item": "Browser session",
          "unit": "browser-hour",
          "usd": 0.12,
          "note": "Billed at $0.002 a minute"
        },
        {
          "item": "Search",
          "unit": "1k-requests",
          "usd": 0,
          "note": "Free up to 12,000 requests a day, 30 a minute"
        },
        {
          "item": "Fetch",
          "unit": "1k-pages",
          "usd": 0,
          "note": "Free up to 1,000 URLs a day, 150 a minute"
        },
        {
          "item": "Monitor run",
          "unit": "call",
          "usd": 0.005,
          "note": "Per completed run, failed runs free, per the MCP docs"
        }
      ],
      "provenance": {
        "legalEntity": "Tiny Fish, Inc.",
        "domain": "tinyfish.ai",
        "domainRegistered": "2023-02-06",
        "endpointOnVendorDomain": true,
        "terms": "https://www.tinyfish.ai/terms",
        "privacy": "https://www.tinyfish.ai/privacy-policy",
        "statusPage": "https://agent.tinyfish.ai/status",
        "changelog": "https://www.tinyfish.ai/pulse",
        "securityTxt": "valid",
        "checked": "2026-10-08",
        "notes": [
          "The terms of service, effective 17 August 2026, name Tiny Fish, Inc., a Delaware corporation at 4410 El Camino Real, Los Altos, CA 94022, cover the APIs and the wallet, and choose California law.",
          "The privacy policy, effective 14 December 2025, names TinyFish Inc. in Cupertino, California, and covers the website, products and services.",
          "The APIs answer at agent.tinyfish.ai, api.browser.tinyfish.ai, api.search.tinyfish.ai and api.fetch.tinyfish.ai. The docs' example `cdp_url` is on a tinyfish.io subdomain, the vendor's second domain.",
          "www.tinyfish.ai/.well-known/security.txt gives a contact, a policy link and an expiry of 1 September 2027.",
          "RDAP for tinyfish.ai gives a registration date of 2023-02-06.",
          "Pulse, the product changelog, has its newest entry dated 22 June 2026. Current release dates come from npm and PyPI.",
          "The same GitHub organisation, tinyfish-io, publishes AgentQL, which is a separate product and isn't graded here."
        ],
        "score": 85
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/tinyfish.json",
      "live": {
        "slug": "tinyfish",
        "probe": {
          "target": "https://agent.tinyfish.ai",
          "method": "get",
          "lastAt": "2026-10-14T09:42:10.533544047Z",
          "lastOk": true,
          "lastStatus": 200,
          "lastMs": 666,
          "authRequired": false,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 653,
          "p95ms24h": 806,
          "samples24h": 248,
          "samples30d": 1258,
          "days": [
            {
              "date": "2026-10-09",
              "probes": 169,
              "ok": 169
            },
            {
              "date": "2026-10-10",
              "probes": 247,
              "ok": 247
            },
            {
              "date": "2026-10-11",
              "probes": 247,
              "ok": 247
            },
            {
              "date": "2026-10-12",
              "probes": 247,
              "ok": 247
            },
            {
              "date": "2026-10-13",
              "probes": 248,
              "ok": 248
            },
            {
              "date": "2026-10-14",
              "probes": 100,
              "ok": 100
            }
          ]
        },
        "vendorStatus": {
          "page": "https://agent.tinyfish.ai/status",
          "indicator": "unknown",
          "summary": "no machine-readable status found",
          "checkedAt": "2026-10-14T08:54:01.309910508Z"
        },
        "versions": [
          {
            "registry": "mcp-registry",
            "name": "ai.tinyfish.agent/web-agent",
            "version": "1.0.1",
            "seenAt": "2026-10-14T04:18:30.41681267Z"
          },
          {
            "registry": "npm",
            "name": "@tiny-fish/cli",
            "version": "0.50.0",
            "seenAt": "2026-10-13T23:29:07.352810498Z"
          },
          {
            "registry": "npm",
            "name": "@tiny-fish/mcp",
            "version": "0.1.0",
            "seenAt": "2026-10-13T23:29:09.337994021Z"
          },
          {
            "registry": "npm",
            "name": "@tiny-fish/sdk",
            "version": "0.8.0",
            "seenAt": "2026-10-13T23:29:07.128188404Z"
          },
          {
            "registry": "pypi",
            "name": "tinyfish",
            "version": "0.9.0",
            "released": "2026-09-29",
            "seenAt": "2026-10-13T23:29:07.016216449Z"
          }
        ],
        "githubStars": 9,
        "npmWeekly": 4947,
        "pypiWeekly": 7336,
        "securityTxt": {
          "url": "https://tinyfish.ai/.well-known/security.txt",
          "state": "valid",
          "expires": "2027-09-01T00:00:00.000Z",
          "checkedAt": "2026-10-13T15:45:29.43740721Z"
        },
        "llmsTxt": {
          "url": "https://docs.tinyfish.ai/llms.txt",
          "ok": true,
          "status": 200,
          "checkedAt": "2026-10-13T14:12:42.52193176Z"
        },
        "domain": {
          "domain": "tinyfish.ai",
          "registered": "2023-02-06",
          "source": "https://rdap.identitydigital.services/rdap/domain/tinyfish.ai",
          "checkedAt": "2026-10-11T13:18:05.343879069Z"
        },
        "updatedAt": "2026-10-14T09:42:10.533544047Z"
      }
    },
    "facts": [
      {
        "a": "SDK + MCP",
        "b": "HTTP API",
        "name": "Kind"
      },
      {
        "a": "Selenium project (Software Freedom Conservancy)",
        "b": "TinyFish",
        "name": "Vendor"
      },
      {
        "a": "no (local only)",
        "b": "https://agent.tinyfish.ai",
        "name": "Hosted endpoint"
      },
      {
        "a": "HTTP",
        "b": "HTTP",
        "name": "Transports"
      },
      {
        "a": "None",
        "b": "OAuth or key",
        "name": "Auth"
      },
      {
        "a": "Free",
        "b": "Freemium",
        "name": "Pricing"
      },
      {
        "a": "no",
        "b": "no",
        "name": "x402"
      },
      {
        "a": "Apache-2.0",
        "b": "Proprietary service under Tiny Fish's terms of service. The MCP proxy `@tiny-fish/mcp` and the cookbook are MIT. The SDK packages state no licence in npm or PyPI metadata",
        "name": "Licence"
      },
      {
        "a": "no",
        "b": "no",
        "name": "Read-only variant documented"
      },
      {
        "a": "yes",
        "b": "yes",
        "name": "llms.txt"
      },
      {
        "a": "not listed",
        "b": "ai.tinyfish.agent/web-agent",
        "name": "MCP registry"
      },
      {
        "a": "2026-10-09",
        "b": "2026-10-07",
        "name": "Last release"
      },
      {
        "a": "no document linked",
        "b": "2026-08-17",
        "name": "Terms last updated"
      },
      {
        "a": "no document linked",
        "b": "2025-12-14",
        "name": "Privacy policy last updated"
      },
      {
        "a": "",
        "b": "yes",
        "name": "Customer content may train models"
      },
      {
        "a": "",
        "b": "yes",
        "name": "Terms restrict automated access"
      },
      {
        "a": "",
        "b": "yes",
        "name": "Terms restrict benchmarking"
      },
      {
        "a": "",
        "b": "not found in the text",
        "name": "Terms or service can change without notice"
      },
      {
        "a": "",
        "b": "yes",
        "name": "Arbitration or class-action waiver"
      },
      {
        "a": "35k stars, 1.8M npm/wk, 6.9M PyPI/wk",
        "b": "5.7k npm/wk, 6.5k PyPI/wk",
        "name": "Popularity"
      }
    ],
    "faq": [
      {
        "answer": "Selenium scores 73.6 (BB) on agent readiness against TinyFish's 67.7 (B), and leads in 5 of 7 scored categories. TinyFish leads on agent ergonomics and security \u0026 auth.",
        "question": "Which is better for AI agents, Selenium or TinyFish?"
      },
      {
        "answer": "No hosted endpoint is listed for Selenium. TinyFish has a hosted endpoint at https://agent.tinyfish.ai.",
        "question": "Can an agent call Selenium and TinyFish without installing anything?"
      },
      {
        "answer": "Selenium is open source (Apache-2.0). No open-source release is listed for TinyFish.",
        "question": "Are Selenium and TinyFish open source?"
      }
    ],
    "goodFor": [
      {
        "aheadOn": [
          "Reliability, 90 against 60",
          "Payments \u0026 pricing, 60 against 55",
          "Maintenance \u0026 community, 94 against 80",
          "Transparency \u0026 trust, 74 against 59"
        ],
        "also": [
          "Agent-ready, a grade of BB or better",
          "No key needed to call it",
          "Open source"
        ],
        "goodFor": "Agents that write test or automation scripts in any of five languages, and teams with a Grid.",
        "slug": "selenium",
        "watchFor": "No MCP server from the project. The docs point to community servers and say they are third-party"
      },
      {
        "aheadOn": [
          "Agent ergonomics, 79 against 70",
          "Security \u0026 auth, 57 against 43"
        ],
        "also": [
          "A hosted endpoint, with nothing to install",
          "Free to start without a card"
        ],
        "goodFor": "Agents that want one account for a goal-driven web agent, a raw CDP browser, and free search and fetch.",
        "slug": "tinyfish",
        "watchFor": "The terms of 17 August 2026 allow Tiny Fish to train and improve its models on customer data. No opt-out was found in the reviewed pages"
      }
    ],
    "job": {
      "capability": "browser.control",
      "name": "Browser automation"
    },
    "others": [
      {
        "json": "https://www.anchorterminal.com/compare/agent-browser-vs-selenium.json",
        "title": "agent-browser vs Selenium",
        "url": "https://www.anchorterminal.com/compare/agent-browser-vs-selenium"
      },
      {
        "json": "https://www.anchorterminal.com/compare/agent-browser-vs-tinyfish.json",
        "title": "agent-browser vs TinyFish",
        "url": "https://www.anchorterminal.com/compare/agent-browser-vs-tinyfish"
      },
      {
        "json": "https://www.anchorterminal.com/compare/airtop-vs-selenium.json",
        "title": "Airtop vs Selenium",
        "url": "https://www.anchorterminal.com/compare/airtop-vs-selenium"
      },
      {
        "json": "https://www.anchorterminal.com/compare/airtop-vs-tinyfish.json",
        "title": "Airtop vs TinyFish",
        "url": "https://www.anchorterminal.com/compare/airtop-vs-tinyfish"
      },
      {
        "json": "https://www.anchorterminal.com/compare/anchor-browser-vs-selenium.json",
        "title": "Anchor Browser vs Selenium",
        "url": "https://www.anchorterminal.com/compare/anchor-browser-vs-selenium"
      },
      {
        "json": "https://www.anchorterminal.com/compare/anchor-browser-vs-tinyfish.json",
        "title": "Anchor Browser vs TinyFish",
        "url": "https://www.anchorterminal.com/compare/anchor-browser-vs-tinyfish"
      },
      {
        "json": "https://www.anchorterminal.com/compare/browser-use-vs-selenium.json",
        "title": "Browser Use vs Selenium",
        "url": "https://www.anchorterminal.com/compare/browser-use-vs-selenium"
      },
      {
        "json": "https://www.anchorterminal.com/compare/browser-use-vs-tinyfish.json",
        "title": "Browser Use vs TinyFish",
        "url": "https://www.anchorterminal.com/compare/browser-use-vs-tinyfish"
      },
      {
        "json": "https://www.anchorterminal.com/compare/browserbase-vs-selenium.json",
        "title": "Browserbase vs Selenium",
        "url": "https://www.anchorterminal.com/compare/browserbase-vs-selenium"
      },
      {
        "json": "https://www.anchorterminal.com/compare/browserless-vs-selenium.json",
        "title": "Browserless vs Selenium",
        "url": "https://www.anchorterminal.com/compare/browserless-vs-selenium"
      },
      {
        "json": "https://www.anchorterminal.com/compare/browserless-vs-tinyfish.json",
        "title": "Browserless vs TinyFish",
        "url": "https://www.anchorterminal.com/compare/browserless-vs-tinyfish"
      },
      {
        "json": "https://www.anchorterminal.com/compare/chrome-devtools-mcp-vs-selenium.json",
        "title": "Chrome DevTools MCP vs Selenium",
        "url": "https://www.anchorterminal.com/compare/chrome-devtools-mcp-vs-selenium"
      },
      {
        "json": "https://www.anchorterminal.com/compare/chrome-devtools-mcp-vs-tinyfish.json",
        "title": "Chrome DevTools MCP vs TinyFish",
        "url": "https://www.anchorterminal.com/compare/chrome-devtools-mcp-vs-tinyfish"
      },
      {
        "json": "https://www.anchorterminal.com/compare/hyperbrowser-vs-selenium.json",
        "title": "Hyperbrowser vs Selenium",
        "url": "https://www.anchorterminal.com/compare/hyperbrowser-vs-selenium"
      },
      {
        "json": "https://www.anchorterminal.com/compare/hyperbrowser-vs-tinyfish.json",
        "title": "Hyperbrowser vs TinyFish",
        "url": "https://www.anchorterminal.com/compare/hyperbrowser-vs-tinyfish"
      },
      {
        "json": "https://www.anchorterminal.com/compare/notte-vs-selenium.json",
        "title": "Notte vs Selenium",
        "url": "https://www.anchorterminal.com/compare/notte-vs-selenium"
      },
      {
        "json": "https://www.anchorterminal.com/compare/notte-vs-tinyfish.json",
        "title": "Notte vs TinyFish",
        "url": "https://www.anchorterminal.com/compare/notte-vs-tinyfish"
      },
      {
        "json": "https://www.anchorterminal.com/compare/playwright-mcp-vs-selenium.json",
        "title": "Playwright MCP vs Selenium",
        "url": "https://www.anchorterminal.com/compare/playwright-mcp-vs-selenium"
      },
      {
        "json": "https://www.anchorterminal.com/compare/playwright-mcp-vs-tinyfish.json",
        "title": "Playwright MCP vs TinyFish",
        "url": "https://www.anchorterminal.com/compare/playwright-mcp-vs-tinyfish"
      },
      {
        "json": "https://www.anchorterminal.com/compare/puppeteer-reference-server-archived-vs-selenium.json",
        "title": "Puppeteer (archived MCP reference server) vs Selenium",
        "url": "https://www.anchorterminal.com/compare/puppeteer-reference-server-archived-vs-selenium"
      },
      {
        "json": "https://www.anchorterminal.com/compare/puppeteer-reference-server-archived-vs-tinyfish.json",
        "title": "Puppeteer (archived MCP reference server) vs TinyFish",
        "url": "https://www.anchorterminal.com/compare/puppeteer-reference-server-archived-vs-tinyfish"
      },
      {
        "json": "https://www.anchorterminal.com/compare/puppeteer-vs-selenium.json",
        "title": "Puppeteer vs Selenium",
        "url": "https://www.anchorterminal.com/compare/puppeteer-vs-selenium"
      },
      {
        "json": "https://www.anchorterminal.com/compare/puppeteer-vs-tinyfish.json",
        "title": "Puppeteer vs TinyFish",
        "url": "https://www.anchorterminal.com/compare/puppeteer-vs-tinyfish"
      },
      {
        "json": "https://www.anchorterminal.com/compare/selenium-vs-skyvern.json",
        "title": "Selenium vs Skyvern",
        "url": "https://www.anchorterminal.com/compare/selenium-vs-skyvern"
      },
      {
        "json": "https://www.anchorterminal.com/compare/selenium-vs-steel.json",
        "title": "Selenium vs Steel",
        "url": "https://www.anchorterminal.com/compare/selenium-vs-steel"
      },
      {
        "json": "https://www.anchorterminal.com/compare/skyvern-vs-tinyfish.json",
        "title": "Skyvern vs TinyFish",
        "url": "https://www.anchorterminal.com/compare/skyvern-vs-tinyfish"
      },
      {
        "json": "https://www.anchorterminal.com/compare/steel-vs-tinyfish.json",
        "title": "Steel vs TinyFish",
        "url": "https://www.anchorterminal.com/compare/steel-vs-tinyfish"
      },
      {
        "json": "https://www.anchorterminal.com/compare/browserbase-vs-tinyfish.json",
        "title": "Browserbase vs TinyFish",
        "url": "https://www.anchorterminal.com/compare/browserbase-vs-tinyfish"
      }
    ],
    "scores": [
      {
        "by": 30,
        "edge": "selenium",
        "key": "reliability",
        "name": "Reliability",
        "selenium": 90,
        "tinyfish": 60,
        "weight": 16
      },
      {
        "key": "performance",
        "name": "Performance",
        "pending": true,
        "weight": 10
      },
      {
        "by": 4,
        "edge": "selenium",
        "key": "schema",
        "name": "Schema \u0026 documentation",
        "selenium": 89,
        "tinyfish": 85,
        "weight": 13
      },
      {
        "by": 9,
        "edge": "tinyfish",
        "key": "ergonomics",
        "name": "Agent ergonomics",
        "selenium": 70,
        "tinyfish": 79,
        "weight": 13
      },
      {
        "by": 14,
        "edge": "tinyfish",
        "key": "security",
        "name": "Security \u0026 auth",
        "selenium": 43,
        "tinyfish": 57,
        "weight": 14
      },
      {
        "by": 5,
        "edge": "selenium",
        "key": "payments",
        "name": "Payments \u0026 pricing",
        "selenium": 60,
        "tinyfish": 55,
        "weight": 10
      },
      {
        "key": "tasks",
        "name": "Task success",
        "pending": true,
        "weight": 10
      },
      {
        "by": 14,
        "edge": "selenium",
        "key": "maintenance",
        "name": "Maintenance \u0026 community",
        "selenium": 94,
        "tinyfish": 80,
        "weight": 7
      },
      {
        "by": 15,
        "edge": "selenium",
        "key": "transparency",
        "name": "Transparency \u0026 trust",
        "selenium": 74,
        "tinyfish": 59,
        "weight": 7
      }
    ],
    "summary": "Selenium scores 73.6 (BB) on agent readiness against TinyFish's 67.7 (B), and leads in 5 of 7 scored categories. TinyFish leads on agent ergonomics and security \u0026 auth. Both do browser automation.",
    "verdicts": {
      "selenium": "Selenium is stable, Apache-2.0 software on 4.51.0 with bindings in five languages, CI passing on trunk, an llms.txt and an agent guide added in September 2026. It has no MCP server of its own, Selenium Manager sends usage statistics by default, and Grid accepts unauthenticated sessions unless a username and password are set.",
      "tinyfish": "OpenAPI documents are published for five APIs, errors carry typed codes and request IDs, and Search and Fetch are free within daily allowances. The terms let Tiny Fish train its models on customer data, run creation takes no idempotency keys, and the status page shows an hour or more of downtime on several days for the Browser and Search APIs."
    }
  },
  "kind": "anchor.page",
  "links": {
    "api": "https://www.anchorterminal.com/api/v1/index.json",
    "html": "https://www.anchorterminal.com/compare/selenium-vs-tinyfish",
    "json": "https://www.anchorterminal.com/compare/selenium-vs-tinyfish.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/compare/selenium-vs-tinyfish.md",
    "slim": "https://www.anchorterminal.com/compare/selenium-vs-tinyfish.min.md"
  },
  "markdown": "Selenium scores 73.6 (BB) on agent readiness against TinyFish's 67.7 (B), and leads in 5 of 7 scored categories. TinyFish leads on agent ergonomics and security \u0026 auth. Both do browser automation.\n\n- Selenium: grade BB, 73.6/100, rank #90 of 1076. Markdown https://www.anchorterminal.com/tools/selenium.md · JSON https://www.anchorterminal.com/api/v1/tools/selenium.json\n- TinyFish: grade B, 67.7/100, rank #258 of 1076. Markdown https://www.anchorterminal.com/tools/tinyfish.md · JSON https://www.anchorterminal.com/api/v1/tools/tinyfish.json\n- Best browser automation tools for AI agents: https://www.anchorterminal.com/best/browser/index.md\n- All 120 browser comparisons: https://www.anchorterminal.com/compare/browser/index.md\n\n## Which one, for what\n\n### Selenium (BB)\n\nGood for: Agents that write test or automation scripts in any of five languages, and teams with a Grid.\n\nAhead on:\n- Reliability, 90 against 60\n- Payments \u0026 pricing, 60 against 55\n- Maintenance \u0026 community, 94 against 80\n- Transparency \u0026 trust, 74 against 59\n\nAlso in its favour:\n- Agent-ready, a grade of BB or better\n- No key needed to call it\n- Open source\n\nWatch for: No MCP server from the project. The docs point to community servers and say they are third-party\n\n### TinyFish (B)\n\nGood for: Agents that want one account for a goal-driven web agent, a raw CDP browser, and free search and fetch.\n\nAhead on:\n- Agent ergonomics, 79 against 70\n- Security \u0026 auth, 57 against 43\n\nAlso in its favour:\n- A hosted endpoint, with nothing to install\n- Free to start without a card\n\nWatch for: The terms of 17 August 2026 allow Tiny Fish to train and improve its models on customer data. No opt-out was found in the reviewed pages\n\n\n## Score by category\n\n| Category | Weight | Selenium | TinyFish | Edge |\n| --- | --- | --- | --- | --- |\n| Reliability | 16% (20 this run) | 90 | 60 | Selenium +30 |\n| Performance | 10%, pending | pending | pending | not scored in this run |\n| Schema \u0026 documentation | 13% (16.2 this run) | 89 | 85 | Selenium +4 |\n| Agent ergonomics | 13% (16.2 this run) | 70 | 79 | TinyFish +9 |\n| Security \u0026 auth | 14% (17.5 this run) | 43 | 57 | TinyFish +14 |\n| Payments \u0026 pricing | 10% (12.5 this run) | 60 | 55 | Selenium +5 |\n| Task success | 10%, pending | pending | pending | not scored in this run |\n| Maintenance \u0026 community | 7% (8.8 this run) | 94 | 80 | Selenium +14 |\n| Transparency \u0026 trust | 7% (8.8 this run) | 74 | 59 | Selenium +15 |\n| Negative events | ≤15 | 0 | 0 | |\n| **Total** | | **73.6 · BB** | **67.7 · B** | |\n\n## Facts side by side\n\n| Fact | Selenium | TinyFish |\n| --- | --- | --- |\n| Kind | SDK + MCP | HTTP API |\n| Vendor | Selenium project (Software Freedom Conservancy) | TinyFish |\n| Hosted endpoint | no (local only) | `https://agent.tinyfish.ai` |\n| Transports | HTTP | HTTP |\n| Auth | None | OAuth or key |\n| Pricing | Free | Freemium |\n| x402 | no | no |\n| Licence | Apache-2.0 | Proprietary service under Tiny Fish's terms of service. The MCP proxy `@tiny-fish/mcp` and the cookbook are MIT. The SDK packages state no licence in npm or PyPI metadata |\n| Read-only variant documented | no | no |\n| llms.txt | yes | yes |\n| MCP registry | not listed | `ai.tinyfish.agent/web-agent` |\n| Last release | 2026-10-09 | 2026-10-07 |\n| Terms last updated | no document linked | 2026-08-17 |\n| Privacy policy last updated | no document linked | 2025-12-14 |\n| Customer content may train models |  | yes |\n| Terms restrict automated access |  | yes |\n| Terms restrict benchmarking |  | yes |\n| Terms or service can change without notice |  | not found in the text |\n| Arbitration or class-action waiver |  | yes |\n| Popularity | 35k stars, 1.8M npm/wk, 6.9M PyPI/wk | 5.7k npm/wk, 6.5k PyPI/wk |\n\n## Verdicts\n\n**Selenium.** Selenium is stable, Apache-2.0 software on 4.51.0 with bindings in five languages, CI passing on trunk, an llms.txt and an agent guide added in September 2026. It has no MCP server of its own, Selenium Manager sends usage statistics by default, and Grid accepts unauthenticated sessions unless a username and password are set.\n\n**TinyFish.** OpenAPI documents are published for five APIs, errors carry typed codes and request IDs, and Search and Fetch are free within daily allowances. The terms let Tiny Fish train its models on customer data, run creation takes no idempotency keys, and the status page shows an hour or more of downtime on several days for the Browser and Search APIs.\n\n## Before you call either\n\n### Selenium\n\n1. Install with `pip install selenium` (Python 3.10 or later) and let Selenium Manager fetch drivers. Do not set driver paths\n2. Use `WebDriverWait` with expected conditions, never fixed sleeps, and do not mix implicit and explicit waits\n3. Set `SE_AVOID_STATS=true` to stop Selenium Manager sending usage statistics\n4. Point coding agents at https://www.selenium.dev/llms.txt. Most Selenium 2 and 3 era examples use removed APIs\n5. Set `--username` and `--password` before exposing a Grid beyond localhost. Check `http://localhost:4444/status` before creating sessions\n\n### TinyFish\n\n1. Check `result` as well as `status`. A run can be `COMPLETED` while the goal failed, with `result.status` set to `failure`\n2. Don't retry `POST /v1/automation/run` blindly after a timeout. There are no idempotency keys, so list runs first to avoid duplicates\n3. Use `/v1/automation/run-async` or `/run-sse` when a run may need cancelling. Runs started with the synchronous endpoint can't be cancelled\n4. Allow 60 seconds for Browser session creation, connect Playwright to `cdp_url` (not `base_url`), and `DELETE` the session when done because billing is per minute\n5. Never put passwords in `goal`, which is logged. Pass `use_vault: true` with `credential_item_ids`, or `use_profile: true` for saved login state\n\n## Questions\n\n### Which is better for AI agents, Selenium or TinyFish?\n\nSelenium scores 73.6 (BB) on agent readiness against TinyFish's 67.7 (B), and leads in 5 of 7 scored categories. TinyFish leads on agent ergonomics and security \u0026 auth.\n\n### Can an agent call Selenium and TinyFish without installing anything?\n\nNo hosted endpoint is listed for Selenium. TinyFish has a hosted endpoint at https://agent.tinyfish.ai.\n\n### Are Selenium and TinyFish open source?\n\nSelenium is open source (Apache-2.0). No open-source release is listed for TinyFish.\n\n\n## For agents\n\n- This comparison as JSON: https://www.anchorterminal.com/compare/selenium-vs-tinyfish.json, and with the fewest tokens: https://www.anchorterminal.com/compare/selenium-vs-tinyfish.min.md\n- Over MCP at https://www.anchorterminal.com/mcp (no key): `compare_tools {\"a\": \"selenium\", \"b\": \"tinyfish\"}`. From a terminal: `anchor compare selenium tinyfish`\n- Each listing in full: https://www.anchorterminal.com/api/v1/tools/selenium.json and https://www.anchorterminal.com/api/v1/tools/tinyfish.json\n\n## Other comparisons with Selenium or TinyFish\n\n- [agent-browser vs Selenium](https://www.anchorterminal.com/compare/agent-browser-vs-selenium.md)\n- [agent-browser vs TinyFish](https://www.anchorterminal.com/compare/agent-browser-vs-tinyfish.md)\n- [Airtop vs Selenium](https://www.anchorterminal.com/compare/airtop-vs-selenium.md)\n- [Airtop vs TinyFish](https://www.anchorterminal.com/compare/airtop-vs-tinyfish.md)\n- [Anchor Browser vs Selenium](https://www.anchorterminal.com/compare/anchor-browser-vs-selenium.md)\n- [Anchor Browser vs TinyFish](https://www.anchorterminal.com/compare/anchor-browser-vs-tinyfish.md)\n- [Browser Use vs Selenium](https://www.anchorterminal.com/compare/browser-use-vs-selenium.md)\n- [Browser Use vs TinyFish](https://www.anchorterminal.com/compare/browser-use-vs-tinyfish.md)\n- [Browserbase vs Selenium](https://www.anchorterminal.com/compare/browserbase-vs-selenium.md)\n- [Browserless vs Selenium](https://www.anchorterminal.com/compare/browserless-vs-selenium.md)\n- [Browserless vs TinyFish](https://www.anchorterminal.com/compare/browserless-vs-tinyfish.md)\n- [Chrome DevTools MCP vs Selenium](https://www.anchorterminal.com/compare/chrome-devtools-mcp-vs-selenium.md)\n- [Chrome DevTools MCP vs TinyFish](https://www.anchorterminal.com/compare/chrome-devtools-mcp-vs-tinyfish.md)\n- [Hyperbrowser vs Selenium](https://www.anchorterminal.com/compare/hyperbrowser-vs-selenium.md)\n- [Hyperbrowser vs TinyFish](https://www.anchorterminal.com/compare/hyperbrowser-vs-tinyfish.md)\n- [Notte vs Selenium](https://www.anchorterminal.com/compare/notte-vs-selenium.md)\n- [Notte vs TinyFish](https://www.anchorterminal.com/compare/notte-vs-tinyfish.md)\n- [Playwright MCP vs Selenium](https://www.anchorterminal.com/compare/playwright-mcp-vs-selenium.md)\n- [Playwright MCP vs TinyFish](https://www.anchorterminal.com/compare/playwright-mcp-vs-tinyfish.md)\n- [Puppeteer (archived MCP reference server) vs Selenium](https://www.anchorterminal.com/compare/puppeteer-reference-server-archived-vs-selenium.md)\n- [Puppeteer (archived MCP reference server) vs TinyFish](https://www.anchorterminal.com/compare/puppeteer-reference-server-archived-vs-tinyfish.md)\n- [Puppeteer vs Selenium](https://www.anchorterminal.com/compare/puppeteer-vs-selenium.md)\n- [Puppeteer vs TinyFish](https://www.anchorterminal.com/compare/puppeteer-vs-tinyfish.md)\n- [Selenium vs Skyvern](https://www.anchorterminal.com/compare/selenium-vs-skyvern.md)\n- [Selenium vs Steel](https://www.anchorterminal.com/compare/selenium-vs-steel.md)\n- [Skyvern vs TinyFish](https://www.anchorterminal.com/compare/skyvern-vs-tinyfish.md)\n- [Steel vs TinyFish](https://www.anchorterminal.com/compare/steel-vs-tinyfish.md)\n- [Browserbase vs TinyFish](https://www.anchorterminal.com/compare/browserbase-vs-tinyfish.md)\n",
  "meta": {
    "attribution": "Anchor Terminal (https://www.anchorterminal.com)",
    "docs": "https://www.anchorterminal.com/docs/",
    "generatedAt": "2026-10-14",
    "license": "CC-BY-4.0",
    "method": "https://www.anchorterminal.com/benchmark/",
    "methodology": "0.4",
    "openapi": "https://www.anchorterminal.com/openapi.json",
    "preview": false,
    "run": "2026-10-01",
    "runLabel": "October 2026 research run"
  },
  "page": {
    "breadcrumbs": [
      {
        "name": "Home",
        "url": "https://www.anchorterminal.com/"
      },
      {
        "name": "Compare",
        "url": "https://www.anchorterminal.com/compare/"
      },
      {
        "name": "Selenium vs TinyFish",
        "url": ""
      }
    ],
    "description": "Selenium scores 73.6 (BB) to TinyFish's 67.7 (B) for browser automation. Prices, MCP, x402, uptime and agent notes side by side.",
    "facts": [
      "Selenium BB 73.6",
      "TinyFish B 67.7",
      "scores"
    ],
    "h1": "Selenium vs TinyFish",
    "image": "https://www.anchorterminal.com/assets/og/compare-selenium-vs-tinyfish.png",
    "path": "/compare/selenium-vs-tinyfish",
    "published": "2026-10-01",
    "section": "tools",
    "title": "Selenium vs TinyFish for AI agents in 2026: scores and prices",
    "toc": null,
    "updated": "2026-10-14",
    "url": "https://www.anchorterminal.com/compare/selenium-vs-tinyfish"
  },
  "tokens": {
    "markdown": 2600,
    "slim": 730
  },
  "version": 1
}
