{
  "data": {
    "a": {
      "slug": "notte",
      "name": "Notte",
      "vendor": "Notte Labs Inc.",
      "vendorUrl": "https://www.notte.cc",
      "kind": "http-api",
      "category": "browser",
      "summary": "Notte, from Notte Labs Inc., runs hosted browser sessions with web agents, scraping, search, serverless browser functions, credential vaults and personas. Access is by REST API, Python and Node SDKs, a CLI or a hosted MCP server.",
      "url": "https://www.anchorterminal.com/tools/notte",
      "markdownUrl": "https://www.anchorterminal.com/tools/notte.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/notte.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/notte.json",
      "repo": "https://github.com/nottelabs/notte",
      "license": "Proprietary hosted service under Notte's terms of service. The core repository is SSPL-1.0 and the Node SDK is MIT",
      "transports": [
        "http"
      ],
      "remoteUrl": "https://api.notte.cc",
      "packages": [
        {
          "registry": "pypi",
          "name": "notte-sdk"
        },
        {
          "registry": "npm",
          "name": "notte-sdk"
        },
        {
          "registry": "pypi",
          "name": "notte-mcp"
        }
      ],
      "auth": "mixed",
      "authNotes": "Self-serve API key from the console at console.notte.cc, sent as `Authorization: Bearer \u003ckey\u003e`. The hosted MCP server also accepts OAuth sign-in with a Notte account and a choice of workspace; its metadata lists one scope, `email`. No key scopes or rotation guidance were found in the reviewed documentation. No sales approval is needed below Enterprise.",
      "pricing": "freemium",
      "pricingNotes": "Free plan with $10 of credits, granted once, no card, so an agent's owner can start without a contract. Credits are spent on browser functions at $0.05 an hour, residential proxies at $10 a GB and LLM tokens at the model's price. The pricing page lists browser sessions at $0 an hour on 8 October 2026. Developer is $20 a month and Startup $100, each with the same amount in monthly credits (https://www.notte.cc/pricing).",
      "priceSummary": "$0.05 / session-hr",
      "where": "hosted",
      "x402": {
        "level": "no",
        "evidence": "No x402, MPP or L402 in the OpenAPI document, the docs index or the pricing page (checked 2026-10-08). The session payment endpoints pay third-party merchants from a connected wallet and do not pay Notte.",
        "endpoints": []
      },
      "toolCount": 8,
      "popularity": {
        "githubStars": null,
        "npmWeekly": 1299,
        "pypiWeekly": 5107,
        "asOf": "2026-10-08"
      },
      "docsUrl": "https://docs.notte.cc",
      "llmsTxt": "https://docs.notte.cc/llms.txt",
      "openapi": "https://api.notte.cc/openapi.json",
      "capabilities": [
        "browser.control",
        "browser.hosted",
        "web.scrape",
        "web.search",
        "web.extract",
        "scraping.proxies",
        "scraping.anti-bot",
        "secrets.store"
      ],
      "tags": [
        "official",
        "hosted",
        "freemium",
        "no-card",
        "openapi",
        "llms-txt",
        "mcp",
        "oauth",
        "python",
        "typescript",
        "cli",
        "status-page",
        "soc2",
        "source-available"
      ],
      "lastRelease": "2026-10-07",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 63.2,
        "grade": "B",
        "agentReady": false,
        "rank": 365,
        "ranked": true,
        "rankOf": 842,
        "categoryRank": 11,
        "methodology": "0.4",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 75,
          "maintenance": 83,
          "payments": 40,
          "reliability": 58,
          "schema": 74,
          "security": 56,
          "transparency": 61
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-10-08"
        },
        "negative": 0,
        "verdict": "Notte publishes an OpenAPI 3.1 contract for 100 operations, a hosted MCP server with eight tools and OAuth, and a free plan with $10 of credits and no card. Its status page records about six hours of Scrape API downtime in 90 days, and a bot check blocked our read of the terms and privacy policy.",
        "bestFor": "Teams that want hosted browsers together with agents, vaults for logins, personas with mailboxes and scheduled browser functions behind one key.",
        "strengths": [
          "OpenAPI 3.1 at api.notte.cc/openapi.json with 77 paths and 100 operations, plus llms.txt, Markdown twins of the docs and a keyless documentation MCP server",
          "Hosted MCP server at https://api.notte.cc/mcp with eight tools, three marked read-only, signed in by OAuth or a Bearer API key",
          "Free plan with $10 of non-expiring credits and no card, 5 concurrent browsers and 15-minute sessions, per the pricing page",
          "Vaults substitute stored credentials at fill time, so the model handling the page never receives them, per the vault docs",
          "18 tagged releases between 10 July and 7 October 2026, with the Python and Node SDKs both at 1.9.6"
        ],
        "weaknesses": [
          "status.notte.cc shows the Scrape API down on 15 of 90 days (about 6 hours in total) and CAPTCHA solving at 88.9 per cent availability",
          "No request rate limit is stated per plan. The docs describe `X-RateLimit` headers and show a limit of 100 only as an example",
          "A Vercel bot check answered 429 on the terms of service and privacy policy at console.notte.cc, so we could not read either",
          "The core repository is under SSPL-1.0, which is not an OSI-approved licence. Only the Node SDK is MIT",
          "No API key scopes, deprecation policy, subprocessor list or public DPA found in the reviewed documentation"
        ],
        "agentNotes": [
          "Send `Authorization: Bearer $NOTTE_API_KEY` to https://api.notte.cc. A person creates the key in the console at console.notte.cc first",
          "Stop every session when the task ends. Sessions close after 3 idle minutes or 15 minutes in total by default, and the Free plan caps a session at 15 minutes",
          "Use https://api.notte.cc/mcp for browser work. Function and agent administration tools are only on https://api.notte.cc/mcp/full",
          "Back off on 429 and on 529, which means the cluster has too many sessions. The SDKs do not retry rate limits for you",
          "Download session replays within 24 hours. The recordings page says they are deleted after that"
        ],
        "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": 63.2
          }
        ],
        "editorialScores": {
          "ergonomics": 75,
          "maintenance": 83,
          "payments": 40,
          "reliability": 58,
          "schema": 74,
          "security": 56,
          "transparency": 36
        },
        "provenanceScore": 86
      },
      "connect": {
        "install": "pip install notte-sdk",
        "http": "curl https://api.notte.cc/sessions -H \"Authorization: Bearer $NOTTE_API_KEY\"",
        "claudeCode": "claude mcp add --transport http notte https://api.notte.cc/mcp",
        "config": {
          "mcpServers": {
            "notte": {
              "headers": {
                "Authorization": "Bearer \u003cyour-notte-api-key\u003e"
              },
              "url": "https://api.notte.cc/mcp"
            }
          }
        }
      },
      "letme": {
        "capability": "https://letme.dev/browser.control",
        "tool": "https://letme.dev/notte"
      },
      "area": "developer",
      "unitPrices": [
        {
          "item": "Browser function runtime",
          "unit": "session-hour",
          "usd": 0.05,
          "note": "Rounded by Notte's billing policy"
        },
        {
          "item": "Residential proxy traffic",
          "unit": "gb",
          "usd": 10,
          "note": "Billed only when proxies are enabled"
        },
        {
          "item": "Developer plan",
          "unit": "month",
          "usd": 20,
          "note": "$20 of credits a month, 25 concurrent browsers"
        },
        {
          "item": "Startup plan",
          "unit": "month",
          "usd": 100,
          "note": "$100 of credits a month, 100 concurrent browsers"
        }
      ],
      "provenance": {
        "legalEntity": "Notte Labs Inc.",
        "domain": "notte.cc",
        "domainRegistered": "2024-09-25",
        "endpointOnVendorDomain": true,
        "terms": "https://console.notte.cc/terms",
        "privacy": "https://console.notte.cc/privacy",
        "statusPage": "https://status.notte.cc",
        "changelog": "https://github.com/nottelabs/notte/blob/main/node-sdk/CHANGELOG.md",
        "securityTxt": "valid",
        "checked": "2026-10-08",
        "notes": [
          "The site footer reads Notte Labs Inc. and COPYRIGHT.md in the repository reads Notte Labs, Inc.",
          "The site footer and llms.txt link the terms of service and privacy policy at console.notte.cc. Both answered 429 with a Vercel security checkpoint on 8 October 2026, so neither was read and their scope and dates are unconfirmed.",
          "The API and the hosted MCP server answer at api.notte.cc. The MCP authorisation server is a supabase.co host.",
          "www.notte.cc/.well-known/security.txt names security@notte.cc, a policy at www.notte.cc/security and an expiry of 17 September 2027.",
          "RDAP for notte.cc gives a registration date of 2024-09-25 and Tucows Domains Inc. as registrar.",
          "No changelog page was found in the docs. Dated changes come from GitHub tags and the Node SDK's CHANGELOG.md."
        ],
        "score": 86
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/notte.json",
      "live": {
        "slug": "notte",
        "probe": {
          "target": "https://api.notte.cc",
          "method": "get",
          "lastAt": "2026-10-09T09:26:58.59471194Z",
          "lastOk": true,
          "lastStatus": 200,
          "lastMs": 356,
          "authRequired": false,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 352,
          "p95ms24h": 437,
          "samples24h": 171,
          "samples30d": 171,
          "days": [
            {
              "date": "2026-10-08",
              "probes": 70,
              "ok": 70
            },
            {
              "date": "2026-10-09",
              "probes": 101,
              "ok": 101
            }
          ]
        },
        "vendorStatus": {
          "page": "https://status.notte.cc",
          "indicator": "unknown",
          "summary": "no machine-readable status found",
          "checkedAt": "2026-10-09T07:58:13.313155785Z"
        },
        "pages": [
          {
            "url": "https://raw.githubusercontent.com/nottelabs/notte/main/node-sdk/CHANGELOG.md",
            "kind": "changelog",
            "status": 200,
            "checkedAt": "2026-10-08T18:24:33.737584359Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "3037f444edaa"
          },
          {
            "url": "https://www.notte.cc/pricing",
            "kind": "pricing",
            "status": 200,
            "checkedAt": "2026-10-08T18:29:23.383772418Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "b9387c8cc40f"
          },
          {
            "url": "https://console.notte.cc/privacy",
            "kind": "privacy",
            "status": 429,
            "checkedAt": "2026-10-08T18:16:40.844983356Z",
            "changedAt": "0001-01-01T00:00:00Z"
          },
          {
            "url": "https://console.notte.cc/terms",
            "kind": "terms",
            "status": 429,
            "checkedAt": "2026-10-08T18:16:42.860158607Z",
            "changedAt": "0001-01-01T00:00:00Z"
          }
        ],
        "updatedAt": "2026-10-09T09:26:58.59471194Z"
      }
    },
    "answer": "TinyFish scores 67.7 (B) on agent readiness against Notte's 63.2 (B), and leads in 5 of 7 scored categories.",
    "b": {
      "slug": "tinyfish",
      "name": "TinyFish",
      "vendor": "Tiny Fish, Inc.",
      "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": 227,
        "ranked": true,
        "rankOf": 842,
        "categoryRank": 6,
        "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-09T09:27:07.559977621Z",
          "lastOk": true,
          "lastStatus": 200,
          "lastMs": 608,
          "authRequired": false,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 645,
          "p95ms24h": 705,
          "samples24h": 20,
          "samples30d": 20,
          "days": [
            {
              "date": "2026-10-09",
              "probes": 20,
              "ok": 20
            }
          ]
        },
        "vendorStatus": {
          "page": "https://agent.tinyfish.ai/status",
          "indicator": "unknown",
          "summary": "no machine-readable status found",
          "checkedAt": "2026-10-09T07:58:36.020771067Z"
        },
        "updatedAt": "2026-10-09T09:27:07.559977621Z"
      }
    },
    "facts": [
      {
        "a": "HTTP API",
        "b": "HTTP API",
        "name": "Kind"
      },
      {
        "a": "Notte Labs Inc.",
        "b": "Tiny Fish, Inc.",
        "name": "Vendor"
      },
      {
        "a": "https://api.notte.cc",
        "b": "https://agent.tinyfish.ai",
        "name": "Hosted endpoint"
      },
      {
        "a": "HTTP",
        "b": "HTTP",
        "name": "Transports"
      },
      {
        "a": "OAuth or key",
        "b": "OAuth or key",
        "name": "Auth"
      },
      {
        "a": "Freemium",
        "b": "Freemium",
        "name": "Pricing"
      },
      {
        "a": "no",
        "b": "no",
        "name": "x402"
      },
      {
        "a": "Proprietary hosted service under Notte's terms of service. The core repository is SSPL-1.0 and the Node SDK is MIT",
        "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": "8",
        "b": "none",
        "name": "Tools exposed"
      },
      {
        "a": "yes",
        "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-07",
        "b": "2026-10-07",
        "name": "Last release"
      },
      {
        "a": "couldn't be read",
        "b": "2026-08-17",
        "name": "Terms last updated"
      },
      {
        "a": "couldn't be read",
        "b": "2025-12-14",
        "name": "Privacy policy last updated"
      },
      {
        "a": "couldn't be read",
        "b": "yes",
        "name": "Customer content may train models"
      },
      {
        "a": "couldn't be read",
        "b": "yes",
        "name": "Terms restrict automated access"
      },
      {
        "a": "couldn't be read",
        "b": "yes",
        "name": "Terms restrict benchmarking"
      },
      {
        "a": "couldn't be read",
        "b": "not found in the text",
        "name": "Terms or service can change without notice"
      },
      {
        "a": "couldn't be read",
        "b": "yes",
        "name": "Arbitration or class-action waiver"
      },
      {
        "a": "1.3k npm/wk, 5.1k PyPI/wk",
        "b": "5.7k npm/wk, 6.5k PyPI/wk",
        "name": "Popularity"
      }
    ],
    "faq": [
      {
        "answer": "TinyFish scores 67.7 (B) on agent readiness against Notte's 63.2 (B), and leads in 5 of 7 scored categories.",
        "question": "Which is better for AI agents, Notte or TinyFish?"
      },
      {
        "answer": "Both take an API key or an OAuth sign-in.",
        "question": "Do Notte and TinyFish need an API key?"
      },
      {
        "answer": "Yes. Notte has a hosted endpoint at https://api.notte.cc and TinyFish at https://agent.tinyfish.ai.",
        "question": "Can an agent call Notte and TinyFish without installing anything?"
      }
    ],
    "goodFor": [
      {
        "aheadOn": null,
        "also": null,
        "goodFor": "Teams that want hosted browsers together with agents, vaults for logins, personas with mailboxes and scheduled browser functions behind one key.",
        "slug": "notte",
        "watchFor": "status.notte.cc shows the Scrape API down on 15 of 90 days (about 6 hours in total) and CAPTCHA solving at 88.9 per cent availability"
      },
      {
        "aheadOn": [
          "Schema \u0026 documentation, 85 against 74",
          "Payments \u0026 pricing, 55 against 40"
        ],
        "also": null,
        "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-notte.json",
        "title": "agent-browser vs Notte",
        "url": "https://www.anchorterminal.com/compare/agent-browser-vs-notte"
      },
      {
        "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-notte.json",
        "title": "Airtop vs Notte",
        "url": "https://www.anchorterminal.com/compare/airtop-vs-notte"
      },
      {
        "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-notte.json",
        "title": "Anchor Browser vs Notte",
        "url": "https://www.anchorterminal.com/compare/anchor-browser-vs-notte"
      },
      {
        "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-notte.json",
        "title": "Browser Use vs Notte",
        "url": "https://www.anchorterminal.com/compare/browser-use-vs-notte"
      },
      {
        "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/browserless-vs-notte.json",
        "title": "Browserless vs Notte",
        "url": "https://www.anchorterminal.com/compare/browserless-vs-notte"
      },
      {
        "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-notte.json",
        "title": "Chrome DevTools MCP vs Notte",
        "url": "https://www.anchorterminal.com/compare/chrome-devtools-mcp-vs-notte"
      },
      {
        "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-notte.json",
        "title": "Hyperbrowser vs Notte",
        "url": "https://www.anchorterminal.com/compare/hyperbrowser-vs-notte"
      },
      {
        "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-playwright-mcp.json",
        "title": "Notte vs Playwright MCP",
        "url": "https://www.anchorterminal.com/compare/notte-vs-playwright-mcp"
      },
      {
        "json": "https://www.anchorterminal.com/compare/notte-vs-puppeteer-reference-server-archived.json",
        "title": "Notte vs Puppeteer (archived MCP reference server)",
        "url": "https://www.anchorterminal.com/compare/notte-vs-puppeteer-reference-server-archived"
      },
      {
        "json": "https://www.anchorterminal.com/compare/notte-vs-skyvern.json",
        "title": "Notte vs Skyvern",
        "url": "https://www.anchorterminal.com/compare/notte-vs-skyvern"
      },
      {
        "json": "https://www.anchorterminal.com/compare/notte-vs-steel.json",
        "title": "Notte vs Steel",
        "url": "https://www.anchorterminal.com/compare/notte-vs-steel"
      },
      {
        "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-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/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-notte.json",
        "title": "Browserbase vs Notte",
        "url": "https://www.anchorterminal.com/compare/browserbase-vs-notte"
      },
      {
        "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": 2,
        "edge": "tinyfish",
        "key": "reliability",
        "name": "Reliability",
        "notte": 58,
        "tinyfish": 60,
        "weight": 16
      },
      {
        "key": "performance",
        "name": "Performance",
        "pending": true,
        "weight": 10
      },
      {
        "by": 11,
        "edge": "tinyfish",
        "key": "schema",
        "name": "Schema \u0026 documentation",
        "notte": 74,
        "tinyfish": 85,
        "weight": 13
      },
      {
        "by": 4,
        "edge": "tinyfish",
        "key": "ergonomics",
        "name": "Agent ergonomics",
        "notte": 75,
        "tinyfish": 79,
        "weight": 13
      },
      {
        "by": 1,
        "edge": "tinyfish",
        "key": "security",
        "name": "Security \u0026 auth",
        "notte": 56,
        "tinyfish": 57,
        "weight": 14
      },
      {
        "by": 15,
        "edge": "tinyfish",
        "key": "payments",
        "name": "Payments \u0026 pricing",
        "notte": 40,
        "tinyfish": 55,
        "weight": 10
      },
      {
        "key": "tasks",
        "name": "Task success",
        "pending": true,
        "weight": 10
      },
      {
        "by": 3,
        "edge": "notte",
        "key": "maintenance",
        "name": "Maintenance \u0026 community",
        "notte": 83,
        "tinyfish": 80,
        "weight": 7
      },
      {
        "by": 2,
        "edge": "notte",
        "key": "transparency",
        "name": "Transparency \u0026 trust",
        "notte": 61,
        "tinyfish": 59,
        "weight": 7
      }
    ],
    "summary": "TinyFish scores 67.7 (B) on agent readiness against Notte's 63.2 (B), and leads in 5 of 7 scored categories. Both do browser automation.",
    "verdicts": {
      "notte": "Notte publishes an OpenAPI 3.1 contract for 100 operations, a hosted MCP server with eight tools and OAuth, and a free plan with $10 of credits and no card. Its status page records about six hours of Scrape API downtime in 90 days, and a bot check blocked our read of the terms and privacy policy.",
      "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/notte-vs-tinyfish",
    "json": "https://www.anchorterminal.com/compare/notte-vs-tinyfish.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/compare/notte-vs-tinyfish.md",
    "slim": "https://www.anchorterminal.com/compare/notte-vs-tinyfish.min.md"
  },
  "markdown": "TinyFish scores 67.7 (B) on agent readiness against Notte's 63.2 (B), and leads in 5 of 7 scored categories. Both do browser automation.\n\n- Notte: grade B, 63.2/100, rank #365 of 842. Markdown https://www.anchorterminal.com/tools/notte.md · JSON https://www.anchorterminal.com/api/v1/tools/notte.json\n- TinyFish: grade B, 67.7/100, rank #227 of 842. Markdown https://www.anchorterminal.com/tools/tinyfish.md · JSON https://www.anchorterminal.com/api/v1/tools/tinyfish.json\n\n## Which one, for what\n\n### Notte (B)\n\nGood for: Teams that want hosted browsers together with agents, vaults for logins, personas with mailboxes and scheduled browser functions behind one key.\n\nWatch for: status.notte.cc shows the Scrape API down on 15 of 90 days (about 6 hours in total) and CAPTCHA solving at 88.9 per cent availability\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- Schema \u0026 documentation, 85 against 74\n- Payments \u0026 pricing, 55 against 40\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 | Notte | TinyFish | Edge |\n| --- | --- | --- | --- | --- |\n| Reliability | 16% (20 this run) | 58 | 60 | TinyFish +2 |\n| Performance | 10%, pending | pending | pending | not scored in this run |\n| Schema \u0026 documentation | 13% (16.2 this run) | 74 | 85 | TinyFish +11 |\n| Agent ergonomics | 13% (16.2 this run) | 75 | 79 | TinyFish +4 |\n| Security \u0026 auth | 14% (17.5 this run) | 56 | 57 | TinyFish +1 |\n| Payments \u0026 pricing | 10% (12.5 this run) | 40 | 55 | TinyFish +15 |\n| Task success | 10%, pending | pending | pending | not scored in this run |\n| Maintenance \u0026 community | 7% (8.8 this run) | 83 | 80 | Notte +3 |\n| Transparency \u0026 trust | 7% (8.8 this run) | 61 | 59 | Notte +2 |\n| Negative events | ≤15 | 0 | 0 | |\n| **Total** | | **63.2 · B** | **67.7 · B** | |\n\n## Facts side by side\n\n| Fact | Notte | TinyFish |\n| --- | --- | --- |\n| Kind | HTTP API | HTTP API |\n| Vendor | Notte Labs Inc. | Tiny Fish, Inc. |\n| Hosted endpoint | `https://api.notte.cc` | `https://agent.tinyfish.ai` |\n| Transports | HTTP | HTTP |\n| Auth | OAuth or key | OAuth or key |\n| Pricing | Freemium | Freemium |\n| x402 | no | no |\n| Licence | Proprietary hosted service under Notte's terms of service. The core repository is SSPL-1.0 and the Node SDK is MIT | 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| Tools exposed | 8 | none |\n| Read-only variant documented | yes | no |\n| llms.txt | yes | yes |\n| MCP registry | not listed | `ai.tinyfish.agent/web-agent` |\n| Last release | 2026-10-07 | 2026-10-07 |\n| Terms last updated | couldn't be read | 2026-08-17 |\n| Privacy policy last updated | couldn't be read | 2025-12-14 |\n| Customer content may train models | couldn't be read | yes |\n| Terms restrict automated access | couldn't be read | yes |\n| Terms restrict benchmarking | couldn't be read | yes |\n| Terms or service can change without notice | couldn't be read | not found in the text |\n| Arbitration or class-action waiver | couldn't be read | yes |\n| Popularity | 1.3k npm/wk, 5.1k PyPI/wk | 5.7k npm/wk, 6.5k PyPI/wk |\n\n## Verdicts\n\n**Notte.** Notte publishes an OpenAPI 3.1 contract for 100 operations, a hosted MCP server with eight tools and OAuth, and a free plan with $10 of credits and no card. Its status page records about six hours of Scrape API downtime in 90 days, and a bot check blocked our read of the terms and privacy policy.\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### Notte\n\n1. Send `Authorization: Bearer $NOTTE_API_KEY` to https://api.notte.cc. A person creates the key in the console at console.notte.cc first\n2. Stop every session when the task ends. Sessions close after 3 idle minutes or 15 minutes in total by default, and the Free plan caps a session at 15 minutes\n3. Use https://api.notte.cc/mcp for browser work. Function and agent administration tools are only on https://api.notte.cc/mcp/full\n4. Back off on 429 and on 529, which means the cluster has too many sessions. The SDKs do not retry rate limits for you\n5. Download session replays within 24 hours. The recordings page says they are deleted after that\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, Notte or TinyFish?\n\nTinyFish scores 67.7 (B) on agent readiness against Notte's 63.2 (B), and leads in 5 of 7 scored categories.\n\n### Do Notte and TinyFish need an API key?\n\nBoth take an API key or an OAuth sign-in.\n\n### Can an agent call Notte and TinyFish without installing anything?\n\nYes. Notte has a hosted endpoint at https://api.notte.cc and TinyFish at https://agent.tinyfish.ai.\n\n\n## For agents\n\n- This comparison as JSON: https://www.anchorterminal.com/compare/notte-vs-tinyfish.json, and with the fewest tokens: https://www.anchorterminal.com/compare/notte-vs-tinyfish.min.md\n- Over MCP at https://www.anchorterminal.com/mcp (no key): `compare_tools {\"a\": \"notte\", \"b\": \"tinyfish\"}`. From a terminal: `anchor compare notte tinyfish`\n- Each listing in full: https://www.anchorterminal.com/api/v1/tools/notte.json and https://www.anchorterminal.com/api/v1/tools/tinyfish.json\n\n## Other comparisons with Notte or TinyFish\n\n- [agent-browser vs Notte](https://www.anchorterminal.com/compare/agent-browser-vs-notte.md)\n- [agent-browser vs TinyFish](https://www.anchorterminal.com/compare/agent-browser-vs-tinyfish.md)\n- [Airtop vs Notte](https://www.anchorterminal.com/compare/airtop-vs-notte.md)\n- [Airtop vs TinyFish](https://www.anchorterminal.com/compare/airtop-vs-tinyfish.md)\n- [Anchor Browser vs Notte](https://www.anchorterminal.com/compare/anchor-browser-vs-notte.md)\n- [Anchor Browser vs TinyFish](https://www.anchorterminal.com/compare/anchor-browser-vs-tinyfish.md)\n- [Browser Use vs Notte](https://www.anchorterminal.com/compare/browser-use-vs-notte.md)\n- [Browser Use vs TinyFish](https://www.anchorterminal.com/compare/browser-use-vs-tinyfish.md)\n- [Browserless vs Notte](https://www.anchorterminal.com/compare/browserless-vs-notte.md)\n- [Browserless vs TinyFish](https://www.anchorterminal.com/compare/browserless-vs-tinyfish.md)\n- [Chrome DevTools MCP vs Notte](https://www.anchorterminal.com/compare/chrome-devtools-mcp-vs-notte.md)\n- [Chrome DevTools MCP vs TinyFish](https://www.anchorterminal.com/compare/chrome-devtools-mcp-vs-tinyfish.md)\n- [Hyperbrowser vs Notte](https://www.anchorterminal.com/compare/hyperbrowser-vs-notte.md)\n- [Hyperbrowser vs TinyFish](https://www.anchorterminal.com/compare/hyperbrowser-vs-tinyfish.md)\n- [Notte vs Playwright MCP](https://www.anchorterminal.com/compare/notte-vs-playwright-mcp.md)\n- [Notte vs Puppeteer (archived MCP reference server)](https://www.anchorterminal.com/compare/notte-vs-puppeteer-reference-server-archived.md)\n- [Notte vs Skyvern](https://www.anchorterminal.com/compare/notte-vs-skyvern.md)\n- [Notte vs Steel](https://www.anchorterminal.com/compare/notte-vs-steel.md)\n- [Playwright MCP vs TinyFish](https://www.anchorterminal.com/compare/playwright-mcp-vs-tinyfish.md)\n- [Puppeteer (archived MCP reference server) vs TinyFish](https://www.anchorterminal.com/compare/puppeteer-reference-server-archived-vs-tinyfish.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 Notte](https://www.anchorterminal.com/compare/browserbase-vs-notte.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-09",
    "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": "Notte vs TinyFish",
        "url": ""
      }
    ],
    "description": "TinyFish scores 67.7 (B) on agent readiness against Notte's 63.2 (B), and leads in 5 of 7 scored categories. Both do browser automation. Category scores, facts, verdicts and agent notes side by side.",
    "facts": [
      "Notte B 63.2",
      "TinyFish B 67.7",
      "scores"
    ],
    "h1": "Notte vs TinyFish",
    "image": "https://www.anchorterminal.com/assets/og/compare-notte-vs-tinyfish.png",
    "path": "/compare/notte-vs-tinyfish",
    "published": "2026-10-01",
    "section": "tools",
    "title": "Notte vs TinyFish for AI agents, B 63.2 vs B 67.7 | Anchor Terminal",
    "toc": null,
    "updated": "2026-10-09",
    "url": "https://www.anchorterminal.com/compare/notte-vs-tinyfish"
  },
  "tokens": {
    "markdown": 2350,
    "slim": 680
  },
  "version": 1
}
