{
  "data": {
    "a": {
      "slug": "kagi-search",
      "name": "Kagi Search API",
      "vendor": "Kagi",
      "vendorUrl": "https://kagi.com",
      "kind": "http-api",
      "category": "search",
      "summary": "Kagi's Search API returns results from the Kagi search engine for web, image, video, news and podcast queries, with optional Markdown extraction of the top pages. It is a paid HTTP API in public preview, with a hosted MCP server.",
      "url": "https://www.anchorterminal.com/tools/kagi-search",
      "markdownUrl": "https://www.anchorterminal.com/tools/kagi-search.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/kagi-search.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/kagi-search.json",
      "repo": "https://github.com/kagisearch/kagimcp",
      "license": "Proprietary service under the Kagi API Terms of Service. The MCP server is MIT and the OpenAPI file states Apache-2.0",
      "transports": [
        "http",
        "streamable-http",
        "stdio"
      ],
      "remoteUrl": "https://kagi.com/api/v1/search",
      "packages": [
        {
          "registry": "pypi",
          "name": "kagimcp"
        }
      ],
      "auth": "api-key",
      "authNotes": "Self-serve API key from the portal at kagi.com/api, sent as `Authorization: Bearer \u003ckey\u003e` per the OpenAPI file. Each key can be limited to chosen products and to IP addresses or ranges, and deleted to revoke it. On Family and Team plans only the account owner can open the portal. The hosted MCP server takes the same key as a Bearer header, with no OAuth yet.",
      "pricing": "usage",
      "pricingNotes": "$12 per 1,000 searches and $4 per 1,000 extracted pages, pay as you go, invoiced every 30 days or when usage reaches $100. Prepaid credit and a spending cap are available. No free tier or sandbox. The quick start asks for a Kagi account and a payment method first. Enterprise volume prices are by quote (https://kagi.com/api/pricing, checked 2026-10-09).",
      "priceSummary": "$12 / 1k req",
      "where": "both",
      "x402": {
        "level": "no",
        "evidence": "No x402, MPP or L402 in the OpenAPI file, the API docs or the pricing page (checked 2026-10-09).",
        "endpoints": []
      },
      "toolCount": null,
      "popularity": {
        "githubStars": 535,
        "npmWeekly": null,
        "pypiWeekly": null,
        "asOf": "2026-10-09"
      },
      "docsUrl": "https://help.kagi.com/kagi/api/overview.html",
      "openapi": "https://kagi.com/api/docs/_spec/openapi.yaml",
      "capabilities": [
        "web.search",
        "web.fetch",
        "web.extract",
        "search.news",
        "search.images"
      ],
      "tags": [
        "official",
        "hosted",
        "api-key",
        "closed-source",
        "usage-based",
        "openapi",
        "preview",
        "mcp",
        "ip-allowlist",
        "python",
        "typescript",
        "go",
        "rust"
      ],
      "lastRelease": "2026-08-21",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 48.7,
        "grade": "D",
        "agentReady": false,
        "rank": 807,
        "ranked": true,
        "rankOf": 950,
        "categoryRank": 15,
        "methodology": "0.4",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 75,
          "maintenance": 41,
          "payments": 20,
          "reliability": 8,
          "schema": 71,
          "security": 64,
          "transparency": 69
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-10-09"
        },
        "negative": 0,
        "verdict": "A public OpenAPI file, typed filters and API keys that can be limited by product and IP address make the API simple to call, at $12 per 1,000 searches. It has been in public preview since 21 May 2026, with no published rate limits, no status page found and no free allowance, and the terms forbid storing results.",
        "bestFor": "An owner who already pays for Kagi and wants its ranking, lenses and domain rules inside an agent, with page text in the same call.",
        "strengths": [
          "Public OpenAPI 3.0 file for `POST /search` and `POST /extract`, with enums, ranges and request and response examples",
          "Each API key can be limited to chosen products and to IP addresses or ranges, and the billing page sets a spending cap in USD",
          "Per-unit prices are public, $12 per 1,000 searches and $4 per 1,000 extracted pages, with pay-as-you-go billing",
          "Searches can carry an inline lens, domain block, lower, raise and pin rules, date and region filters, and extraction of up to 10 result pages",
          "The privacy policy has an API section with retention periods, and says queries are not stored against the account"
        ],
        "weaknesses": [
          "Public preview since 21 May 2026. The API terms say it is under active development with no uptime or service-level commitment",
          "No rate limit numbers are published, and no status page is linked from the docs, pricing, terms or changelog pages we read",
          "No free allowance. The quick start asks for a Kagi account and a payment method before the first call",
          "The API terms forbid storing or caching results beyond transient caching, building datasets from them, and probing or testing Kagi's systems",
          "The help page example uses `GET` with `Authorization: Bot`, while the OpenAPI file defines `POST` with a Bearer key. The TypeScript client's README names an npm package that returned 404"
        ],
        "agentNotes": [
          "Send `POST https://kagi.com/api/v1/search` with a JSON body and `Authorization: Bearer \u003ckey\u003e`, as the OpenAPI file defines. Only `query` is required",
          "Set `limit` to cap results returned. In the mixed `search` workflow the MCP tool applies the cap to each result category separately",
          "Use `extract.count` (1 to 10) only when page text is needed. Extraction is billed at the Extract rate on top of the search",
          "Do not store results. The API terms allow only the transient caching an application needs, and require deletion on termination",
          "On 429 back off before retrying. The response covers both rate limiting and an exhausted usage limit, and no `Retry-After` header is documented"
        ],
        "metrics": {
          "kind": "remote",
          "measured": false
        },
        "reviewCount": 0,
        "avgRating": 0,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "D",
            "methodology": "0.4",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 48.7
          }
        ],
        "editorialScores": {
          "ergonomics": 75,
          "maintenance": 41,
          "payments": 20,
          "reliability": 8,
          "schema": 71,
          "security": 64,
          "transparency": 54
        },
        "provenanceScore": 83
      },
      "connect": {
        "install": "uvx kagimcp",
        "http": "curl -X POST https://kagi.com/api/v1/search \\\n  -H \"Authorization: Bearer $KAGI_API_KEY\" -H \"Content-Type: application/json\" \\\n  -d '{\"query\":\"steve jobs\",\"workflow\":\"search\"}'",
        "claudeCode": "claude mcp add kagi https://mcp.kagi.com/mcp --transport http --header \"Authorization: Bearer $(read -sp 'API key: ' k; echo $k)\" --scope user",
        "config": {
          "mcpServers": {
            "kagi": {
              "args": [
                "kagimcp"
              ],
              "command": "uvx",
              "env": {
                "KAGI_API_KEY": "YOUR_API_KEY_HERE"
              }
            }
          }
        }
      },
      "letme": {
        "capability": "https://letme.dev/web.search",
        "tool": "https://letme.dev/kagi-search"
      },
      "area": "web-data",
      "unitPrices": [
        {
          "item": "Search",
          "unit": "1k-requests",
          "usd": 12,
          "note": "page extraction inside a search is billed at the Extract rate on top"
        },
        {
          "item": "Extract",
          "unit": "1k-pages",
          "usd": 4,
          "note": "up to 10 URLs a request"
        }
      ],
      "provenance": {
        "legalEntity": "Kagi Inc.",
        "domain": "kagi.com",
        "domainRegistered": "1993-11-18",
        "domainNote": "kagi.com was registered in 1993, long before Kagi Inc. was founded in 2018.",
        "endpointOnVendorDomain": true,
        "terms": "https://kagi.com/privacy/api",
        "privacy": "https://kagi.com/privacy",
        "statusPage": "",
        "changelog": "https://kagi.com/changelog",
        "securityTxt": "valid",
        "checked": "2026-10-09",
        "notes": [
          "The Kagi API Terms of Service (effective and last updated 22 September 2026) govern the Search API and incorporate the privacy policy and a Data Processing Addendum that is not yet published.",
          "The privacy policy at kagi.com/privacy has a Kagi API section added on 22 September 2026. The same page also holds the general Terms of Service.",
          "The API terms do not name a legal entity. The docs' company page gives Kagi Inc., and the privacy page describes Kagi as a Delaware public benefit corporation.",
          "kagi.com/.well-known/security.txt gives security@kagi.com and a bug bounty with a safe harbour policy, and has no Expires field. It is recorded as valid, although RFC 9116 asks for that field.",
          "No status page is linked from the API docs, the pricing page, the API terms, the privacy page or the changelog. We did not type an address for one.",
          "The changelog covers every Kagi product. API entries are a few lines inside those posts.",
          "RDAP for kagi.com gives a registration date of 1993-11-18.",
          "kagi.com/robots.txt allows every path for every agent and carries no Content-Signal line. help.kagi.com/robots.txt answered 404."
        ],
        "score": 83
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/kagi-search.json",
      "live": {
        "slug": "kagi-search",
        "probe": {
          "target": "https://kagi.com/api/v1/search",
          "method": "get",
          "lastAt": "2026-10-10T03:53:31.216323023Z",
          "lastOk": true,
          "lastStatus": 404,
          "lastMs": 150,
          "authRequired": false,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 148,
          "p95ms24h": 414,
          "samples24h": 125,
          "samples30d": 125,
          "days": [
            {
              "date": "2026-10-09",
              "probes": 85,
              "ok": 85
            },
            {
              "date": "2026-10-10",
              "probes": 40,
              "ok": 40
            }
          ]
        },
        "versions": [
          {
            "registry": "pypi",
            "name": "kagimcp",
            "version": "1.0.2",
            "released": "2026-07-07",
            "seenAt": "2026-10-09T16:59:52.360116555Z"
          }
        ],
        "githubStars": 535,
        "pypiWeekly": 2305,
        "pages": [
          {
            "url": "https://kagi.com/changelog",
            "kind": "changelog",
            "status": 200,
            "checkedAt": "2026-10-09T18:40:38.488692439Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "9d3c4fa83a20"
          },
          {
            "url": "https://kagi.com/api/pricing",
            "kind": "pricing",
            "status": 200,
            "checkedAt": "2026-10-09T18:40:36.463160765Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "7fa5f456db46"
          },
          {
            "url": "https://kagi.com/privacy",
            "kind": "privacy",
            "status": 200,
            "checkedAt": "2026-10-09T18:40:40.535666583Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "2bfce4b7e89a"
          },
          {
            "url": "https://kagi.com/privacy/api",
            "kind": "terms",
            "status": 200,
            "checkedAt": "2026-10-09T18:40:42.496630879Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "5a5c47392cf0"
          }
        ],
        "updatedAt": "2026-10-10T03:53:31.216323023Z"
      }
    },
    "answer": "Tavily API + MCP scores 76.8 (BB) on agent readiness against Kagi Search API's 48.7 (D), and leads in 5 of 7 scored categories. Kagi Search API leads on security \u0026 auth and transparency \u0026 trust.",
    "b": {
      "slug": "tavily-mcp",
      "name": "Tavily API + MCP",
      "vendor": "Tavily",
      "vendorUrl": "https://www.tavily.com",
      "kind": "mcp",
      "category": "search",
      "summary": "Tavily's REST API for web search, URL extraction, site mapping, crawling and cited research reports, with the official MCP server hosted at mcp.tavily.com or run locally from npm.",
      "url": "https://www.anchorterminal.com/tools/tavily-mcp",
      "markdownUrl": "https://www.anchorterminal.com/tools/tavily-mcp.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/tavily-mcp.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/tavily-mcp.json",
      "repo": "https://github.com/tavily-ai/tavily-mcp",
      "license": "MIT",
      "transports": [
        "stdio",
        "streamable-http",
        "http"
      ],
      "remoteUrl": "https://mcp.tavily.com/mcp/?tavilyApiKey=\u003ckey\u003e",
      "packages": [
        {
          "registry": "npm",
          "name": "@tavily/core"
        },
        {
          "registry": "pypi",
          "name": "tavily-python"
        },
        {
          "registry": "npm",
          "name": "tavily-mcp"
        }
      ],
      "auth": "mixed",
      "authNotes": "API key as `Authorization: Bearer tvly-...`. Development keys and production keys have different rate limits, and production keys need a paid plan or pay as you go. The `X-Tavily-Access-Mode: keyless` header gives rate-limited search and extract with no key. x402.tavily.com takes a `PAYMENT-SIGNATURE` header instead. MCP server: API key in the URL query (?tavilyApiKey=) or Authorization header; OAuth flow also supported on the hosted server (uses an mcp_auth_default key from the dashboard).",
      "pricing": "freemium",
      "pricingNotes": "Free 1,000 credits a month, no card. Project $30 a month (4,000 credits), Bootstrap $100 (15,000), Startup $220 (38,000), Growth $500 (100,000), pay as you go $0.008 a credit. Basic search 1 credit, advanced 2, extract 1 per 5 URLs (advanced 2), map 1 per 10 pages, crawl is map plus extract, research 4 to 250 credits by model. Failed extracts and maps aren't charged (https://www.tavily.com/pricing).",
      "priceSummary": "$7.50 / 1k req",
      "where": "both",
      "x402": {
        "level": "partial",
        "evidence": "Official x402 endpoint at x402.tavily.com sells POST /search in advanced mode only, $0.01 in USDC on Base. An unpaid request returned 402 and /.well-known/pricing listed the price on 2026-09-30. Extract, map, crawl and research aren't sold over x402 (https://docs.tavily.com/documentation/machine-payments/x402.md)",
        "endpoints": [
          {
            "url": "https://x402.tavily.com/search",
            "priceUsd": 0.01,
            "network": "eip155:8453"
          }
        ]
      },
      "toolCount": 5,
      "popularity": {
        "githubStars": 2400,
        "npmWeekly": 451969,
        "pypiWeekly": 1589963,
        "asOf": "2026-09-30"
      },
      "docsUrl": "https://docs.tavily.com",
      "llmsTxt": "https://docs.tavily.com/llms.txt",
      "openapi": "https://docs.tavily.com/documentation/api-reference/openapi.json",
      "registryName": "io.github.tavily-ai/tavily-mcp",
      "capabilities": [
        "web.search",
        "web.extract",
        "web.crawl",
        "web.fetch",
        "search.answer",
        "search.research",
        "search.news",
        "search.images"
      ],
      "tags": [
        "official",
        "hosted",
        "local",
        "open-source",
        "freemium",
        "llms-txt",
        "no-card",
        "free-tier",
        "x402",
        "openapi",
        "python",
        "typescript",
        "async-jobs",
        "enterprise",
        "mcp"
      ],
      "lastRelease": "2026-09-18",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 76.8,
        "grade": "BB",
        "agentReady": true,
        "rank": 26,
        "ranked": true,
        "rankOf": 950,
        "categoryRank": 1,
        "methodology": "0.4",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 81,
          "maintenance": 85,
          "payments": 75,
          "reliability": 90,
          "schema": 89,
          "security": 52,
          "transparency": 60
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-10-04"
        },
        "negative": 0,
        "verdict": "Keyless search and extract, plus a free 1,000 credits a month with no card. x402 covers advanced search only, not extract, map, crawl or research.",
        "bestFor": "An agent that needs search plus page text in one call and has no account yet.",
        "strengths": [
          "Keyless search and extract, plus a free 1,000 credits a month with no card",
          "x402 endpoint for advanced search at $0.01 in USDC on Base",
          "Public OpenAPI, llms.txt and an error table that tells plan limits (432) from pay-as-you-go limits (433)",
          "429 carries Retry-After, with limits published per key type and endpoint",
          "Logs API filters calls by key and endpoint"
        ],
        "weaknesses": [
          "x402 covers advanced search only, not extract, map, crawl or research",
          "Hosted MCP docs lead with `?tavilyApiKey=` in the URL query string",
          "No readOnlyHint or destructiveHint on the MCP tools, and the npm server (0.2.22, 5 August 2026) trails the GitHub source",
          "Privacy policy lets query data improve future responses unless a contract says otherwise, with no zero-retention option found",
          "SLAs named only for the custom Enterprise plan, and no security.txt or deprecation policy found"
        ],
        "agentNotes": [
          "Try `X-Tavily-Access-Mode: keyless` first for search and extract. Over MCP, the keyless cap arrives as plain text without `isError`, so read the text before treating it as results",
          "Send the key in `Authorization: Bearer`, not `?tavilyApiKey=` in the MCP URL",
          "On 429, wait for `Retry-After`. A 432 or 433 means a spend limit, and retrying won't help",
          "Run /map before /crawl to bound the crawl, since crawl is billed as map plus extract",
          "Research is async and runs 4 to 250 credits. Create the task, then poll /research/{request_id}"
        ],
        "metrics": {
          "kind": "remote",
          "measured": false
        },
        "reviewCount": 8,
        "avgRating": 3.6,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "BB",
            "methodology": "0.4",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 76.8
          }
        ],
        "editorialScores": {
          "ergonomics": 81,
          "maintenance": 85,
          "payments": 75,
          "reliability": 90,
          "schema": 89,
          "security": 52,
          "transparency": 47
        },
        "provenanceScore": 73
      },
      "connect": {
        "http": "curl -X POST https://api.tavily.com/search \\\n  -H \"Authorization: Bearer $TAVILY_API_KEY\" -H \"Content-Type: application/json\" \\\n  -d '{\"query\":\"latest AI news\",\"max_results\":5}'",
        "claudeCode": "claude mcp add --transport http tavily https://mcp.tavily.com/mcp/ --header \"Authorization: Bearer ${TAVILY_API_KEY}\"",
        "config": {
          "mcpServers": {
            "tavily": {
              "headers": {
                "Authorization": "Bearer ${TAVILY_API_KEY}"
              },
              "url": "https://mcp.tavily.com/mcp/"
            }
          }
        },
        "x402": "curl -i -X POST https://x402.tavily.com/search -H 'content-type: application/json' -d '{\"query\":\"Who is Leo Messi?\"}'\n# HTTP/2 402, PAYMENT-REQUIRED header carries the terms (10000 base units of USDC on eip155:8453)\n# retry with PAYMENT-SIGNATURE: \u003cbase64 signed authorization\u003e"
      },
      "letme": {
        "capability": "https://letme.dev/web.search",
        "tool": "https://letme.dev/tavily-mcp"
      },
      "area": "web-data",
      "unitPrices": [
        {
          "item": "Basic search on Project plan",
          "unit": "1k-requests",
          "usd": 7.5,
          "note": "1 credit a search at $0.0075 a credit"
        },
        {
          "item": "Project plan",
          "unit": "month",
          "usd": 30,
          "note": "4,000 credits"
        },
        {
          "item": "Bootstrap plan",
          "unit": "month",
          "usd": 100,
          "note": "15,000 credits"
        },
        {
          "item": "Credit, pay as you go",
          "unit": "credit",
          "usd": 0.008,
          "note": "basic search 1 credit, advanced 2"
        }
      ],
      "provenance": {
        "legalEntity": "AlphaAI Technologies Inc. dba Tavily",
        "domain": "tavily.com",
        "domainRegistered": "2023-04-13",
        "endpointOnVendorDomain": true,
        "terms": "https://www.tavily.com/terms",
        "privacy": "https://www.tavily.com/privacy",
        "statusPage": "https://status.tavily.com",
        "changelog": "https://docs.tavily.com/changelog",
        "securityTxt": "none",
        "checked": "2026-10-04",
        "score": 73
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/tavily-mcp.json",
      "live": {
        "slug": "tavily-mcp",
        "probe": {
          "target": "https://mcp.tavily.com/mcp/?tavilyApiKey=\u003ckey\u003e",
          "method": "mcp-initialize",
          "lastAt": "2026-10-10T03:53:46.121990305Z",
          "lastOk": true,
          "lastStatus": 200,
          "lastMs": 247,
          "lastNote": "initialize answered",
          "authRequired": false,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 257,
          "p95ms24h": 311,
          "samples24h": 249,
          "samples30d": 3430,
          "days": [
            {
              "date": "2026-09-27",
              "probes": 132,
              "ok": 132
            },
            {
              "date": "2026-09-28",
              "probes": 285,
              "ok": 285
            },
            {
              "date": "2026-09-29",
              "probes": 286,
              "ok": 286
            },
            {
              "date": "2026-09-30",
              "probes": 286,
              "ok": 286
            },
            {
              "date": "2026-10-01",
              "probes": 276,
              "ok": 276
            },
            {
              "date": "2026-10-02",
              "probes": 248,
              "ok": 248
            },
            {
              "date": "2026-10-03",
              "probes": 271,
              "ok": 271
            },
            {
              "date": "2026-10-04",
              "probes": 272,
              "ok": 272
            },
            {
              "date": "2026-10-05",
              "probes": 272,
              "ok": 272
            },
            {
              "date": "2026-10-06",
              "probes": 272,
              "ok": 272
            },
            {
              "date": "2026-10-07",
              "probes": 272,
              "ok": 272
            },
            {
              "date": "2026-10-08",
              "probes": 268,
              "ok": 268
            },
            {
              "date": "2026-10-09",
              "probes": 250,
              "ok": 250
            },
            {
              "date": "2026-10-10",
              "probes": 40,
              "ok": 40
            }
          ]
        },
        "vendorStatus": {
          "page": "https://status.tavily.com",
          "indicator": "none",
          "summary": "All Systems Operational",
          "checkedAt": "2026-10-10T03:58:48.587682206Z"
        },
        "versions": [
          {
            "registry": "mcp-registry",
            "name": "io.github.tavily-ai/tavily-mcp",
            "version": "0.2.15",
            "seenAt": "2026-10-10T03:11:32.438759038Z"
          },
          {
            "registry": "npm",
            "name": "@tavily/core",
            "version": "0.7.14",
            "seenAt": "2026-10-09T17:23:13.340106484Z"
          },
          {
            "registry": "npm",
            "name": "tavily-mcp",
            "version": "0.2.22",
            "seenAt": "2026-10-09T17:23:14.387075891Z"
          },
          {
            "registry": "pypi",
            "name": "tavily-python",
            "version": "0.8.5",
            "released": "2026-10-06",
            "seenAt": "2026-10-09T17:23:14.202852107Z"
          }
        ],
        "githubStars": 2426,
        "npmWeekly": 313976,
        "pypiWeekly": 1626928,
        "securityTxt": {
          "url": "https://tavily.com/.well-known/security.txt",
          "state": "none",
          "checkedAt": "2026-10-09T15:39:35.609596584Z"
        },
        "llmsTxt": {
          "url": "https://docs.tavily.com/llms.txt",
          "ok": true,
          "status": 200,
          "checkedAt": "2026-10-09T14:02:52.669185324Z"
        },
        "domain": {
          "domain": "tavily.com",
          "registered": "2023-04-13",
          "source": "https://rdap.verisign.com/com/v1/domain/tavily.com",
          "checkedAt": "2026-10-04T13:10:11.715455706Z"
        },
        "pages": [
          {
            "url": "https://docs.tavily.com/changelog",
            "kind": "changelog",
            "status": 200,
            "checkedAt": "2026-10-09T18:38:29.327718103Z",
            "changedAt": "2026-10-06T16:08:40.980358433Z",
            "fingerprint": "9fd0a7c1b9aa"
          },
          {
            "url": "https://www.tavily.com/pricing",
            "kind": "pricing",
            "status": 200,
            "checkedAt": "2026-10-09T18:54:49.897020656Z",
            "changedAt": "2026-10-09T18:54:49.897020656Z",
            "fingerprint": "64d24528f0f1"
          },
          {
            "url": "https://www.tavily.com/privacy",
            "kind": "privacy",
            "status": 200,
            "checkedAt": "2026-10-09T18:54:52.035589858Z",
            "changedAt": "2026-10-09T18:54:52.035589858Z",
            "fingerprint": "6f0d8cc5231b"
          },
          {
            "url": "https://www.tavily.com/terms",
            "kind": "terms",
            "status": 200,
            "checkedAt": "2026-10-09T18:54:54.182189603Z",
            "changedAt": "2026-10-09T18:54:54.182189603Z",
            "fingerprint": "08b8ac854b4f"
          }
        ],
        "mcpTools": {
          "url": "https://mcp.tavily.com/mcp/?tavilyApiKey=\u003ckey\u003e",
          "checkedAt": "2026-10-09T21:40:55.979090814Z",
          "status": "ok",
          "protocol": "2026-07-28",
          "tools": [
            {
              "name": "tavily_search",
              "title": "Tavily Search",
              "description": "Search the web for current information on any topic. Use for news, facts, or data beyond your knowledge cutoff. Returns snippets and source URLs.",
              "inputSchema": {
                "additionalProperties": false,
                "properties": {
                  "country": {
                    "default": "",
                    "description": "Boost search results from a specific country. Must be a full country name (e.g., 'United States', 'Japan', 'Germany'). ISO country codes (e.g., 'us', 'jp') are not supported. Available only if topic is general. See https://docs.tavily.com/documentation/api-reference/search for the full list of supported countries.",
                    "type": "string"
                  },
                  "end_date": {
                    "default": "",
                    "description": "Will return all results before the specified end date. Required to be written in the format YYYY-MM-DD",
                    "type": "string"
                  },
                  "exact_match": {
                    "anyOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "type": "null"
                      }
                    ],
                    "default": null,
                    "description": "Only return results containing the exact phrase(s) in quotes in your query"
                  },
                  "exclude_domains": {
                    "default": [],
                    "description": "List of domains to specifically exclude, if the user asks to exclude a domain set this to the domain of the site",
                    "items": {
                      "type": "string"
                    },
                    "type": "array"
                  },
                  "include_domains": {
                    "default": [],
                    "description": "A list of domains to specifically include in the search results, if the user asks to search on specific sites set this to the domain of the site",
                    "items": {
                      "type": "string"
                    },
                    "type": "array"
                  },
                  "include_favicon": {
                    "default": false,
                    "description": "Whether to include the favicon URL for each result",
                    "type": "boolean"
                  },
                  "include_image_descriptions": {
                    "default": false,
                    "description": "Include a list of query-related images and their descriptions in the response",
                    "type": "boolean"
                  },
                  "include_images": {
                    "default": false,
                    "description": "Include a list of query-related images in the response",
                    "type": "boolean"
                  },
                  "include_raw_content": {
                    "default": false,
                    "description": "Include the cleaned and parsed HTML content of each search result",
                    "type": "boolean"
                  },
                  "max_results": {
                    "default": 5,
                    "description": "The maximum number of search results to return",
                    "type": "integer"
                  },
                  "query": {
                    "description": "Search query",
                    "type": "string"
                  },
                  "search_depth": {
                    "default": "basic",
                    "description": "The depth of the search. 'basic' for generic results, 'advanced' for more thorough search, 'fast' for optimized low latency with high relevance, 'ultra-fast' for prioritizing latency above all else",
                    "enum": [
                      "basic",
                      "advanced",
                      "fast",
                      "ultra-fast"
                    ],
                    "type": "string"
                  },
                  "start_date": {
                    "default": "",
                    "description": "Will return all results after the specified start date. Required to be written in the format YYYY-MM-DD.",
                    "type": "string"
                  },
                  "time_range": {
                    "anyOf": [
                      {
                        "enum": [
                          "day",
                          "week",
                          "month",
                          "year"
                        ],
                        "type": "string"
                      },
                      {
                        "type": "null"
                      }
                    ],
                    "default": null,
                    "description": "The time range back from the current date to include in the search results"
                  },
                  "topic": {
                    "const": "general",
                    "default": "general",
                    "description": "The category of the search. This will determine which of our agents will be used for the search",
                    "type": "string"
                  }
                },
                "required": [
                  "query"
                ],
                "type": "object"
              },
              "outputSchema": {
                "additionalProperties": true,
                "type": "object"
              },
              "annotations": {
                "destructiveHint": false,
                "idempotentHint": false,
                "openWorldHint": true,
                "readOnlyHint": true
              }
            },
            {
              "name": "tavily_extract",
              "title": "Tavily Extract",
              "description": "Extract content from URLs. Returns raw page content in markdown or text format.",
              "inputSchema": {
                "additionalProperties": false,
                "properties": {
                  "extract_depth": {
                    "default": "basic",
                    "description": "Use 'advanced' for LinkedIn, protected sites, or tables/embedded content",
                    "enum": [
                      "basic",
                      "advanced"
                    ],
                    "type": "string"
                  },
                  "format": {
                    "default": "markdown",
                    "description": "Output format",
                    "enum": [
                      "markdown",
                      "text"
                    ],
                    "type": "string"
                  },
                  "include_favicon": {
                    "default": false,
                    "description": "Include favicon URLs",
                    "type": "boolean"
                  },
                  "include_images": {
                    "default": false,
                    "description": "Include images from pages",
                    "type": "boolean"
                  },
                  "query": {
                    "default": "",
                    "description": "Query to rerank content chunks by relevance",
                    "type": "string"
                  },
                  "urls": {
                    "description": "List of URLs to extract content from",
                    "items": {
                      "type": "string"
                    },
                    "type": "array"
                  }
                },
                "required": [
                  "urls"
                ],
                "type": "object"
              },
              "outputSchema": {
                "additionalProperties": true,
                "type": "object"
              },
              "annotations": {
                "destructiveHint": false,
                "idempotentHint": false,
                "openWorldHint": true,
                "readOnlyHint": true
              }
            },
            {
              "name": "tavily_crawl",
              "title": "Tavily Crawl",
              "description": "Crawl a website starting from a URL. Extracts content from pages with configurable depth and breadth.",
              "inputSchema": {
                "additionalProperties": false,
                "properties": {
                  "allow_external": {
                    "default": true,
                    "description": "Whether to return external links in the final response",
                    "type": "boolean"
                  },
                  "extract_depth": {
                    "default": "basic",
                    "description": "Advanced extraction retrieves more data, including tables and embedded content, with higher success but may increase latency",
                    "enum": [
                      "basic",
                      "advanced"
                    ],
                    "type": "string"
                  },
                  "format": {
                    "default": "markdown",
                    "description": "The format of the extracted web page content. markdown returns content in markdown format. text returns plain text and may increase latency.",
                    "enum": [
                      "markdown",
                      "text"
                    ],
                    "type": "string"
                  },
                  "include_favicon": {
                    "default": false,
                    "description": "Whether to include the favicon URL for each result",
                    "type": "boolean"
                  },
                  "instructions": {
                    "default": "",
                    "description": "Natural language instructions for the crawler. Instructions specify which types of pages the crawler should return.",
                    "type": "string"
                  },
                  "limit": {
                    "default": 50,
                    "description": "Total number of links the crawler will process before stopping",
                    "minimum": 1,
                    "type": "integer"
                  },
                  "max_breadth": {
                    "default": 20,
                    "description": "Max number of links to follow per level of the tree (i.e., per page)",
                    "minimum": 1,
                    "type": "integer"
                  },
                  "max_depth": {
                    "default": 1,
                    "description": "Max depth of the crawl. Defines how far from the base URL the crawler can explore.",
                    "minimum": 1,
                    "type": "integer"
                  },
                  "select_domains": {
                    "default": [],
                    "description": "Regex patterns to restrict crawling to specific domains or subdomains (e.g., ^docs\\.example\\.com$)",
                    "items": {
                      "type": "string"
                    },
                    "type": "array"
                  },
                  "select_paths": {
                    "default": [],
                    "description": "Regex patterns to select only URLs with specific path patterns (e.g., /docs/.*, /api/v1.*)",
                    "items": {
                      "type": "string"
                    },
                    "type": "array"
                  },
                  "url": {
                    "description": "The root URL to begin the crawl",
                    "type": "string"
                  }
                },
                "required": [
                  "url"
                ],
                "type": "object"
              },
              "outputSchema": {
                "additionalProperties": true,
                "type": "object"
              },
              "annotations": {
                "destructiveHint": false,
                "idempotentHint": false,
                "openWorldHint": true,
                "readOnlyHint": true
              }
            },
            {
              "name": "tavily_map",
              "title": "Tavily Map",
              "description": "Map a website's structure. Returns a list of URLs found starting from the base URL.",
              "inputSchema": {
                "additionalProperties": false,
                "properties": {
                  "allow_external": {
                    "default": true,
                    "description": "Whether to return external links in the final response",
                    "type": "boolean"
                  },
                  "instructions": {
                    "default": "",
                    "description": "Natural language instructions for the crawler",
                    "type": "string"
                  },
                  "limit": {
                    "default": 50,
                    "description": "Total number of links the crawler will process before stopping",
                    "minimum": 1,
                    "type": "integer"
                  },
                  "max_breadth": {
                    "default": 20,
                    "description": "Max number of links to follow per level of the tree (i.e., per page)",
                    "minimum": 1,
                    "type": "integer"
                  },
                  "max_depth": {
                    "default": 1,
                    "description": "Max depth of the mapping. Defines how far from the base URL the crawler can explore",
                    "minimum": 1,
                    "type": "integer"
                  },
                  "select_domains": {
                    "default": [],
                    "description": "Regex patterns to restrict crawling to specific domains or subdomains (e.g., ^docs\\.example\\.com$)",
                    "items": {
                      "type": "string"
                    },
                    "type": "array"
                  },
                  "select_paths": {
                    "default": [],
                    "description": "Regex patterns to select only URLs with specific path patterns (e.g., /docs/.*, /api/v1.*)",
                    "items": {
                      "type": "string"
                    },
                    "type": "array"
                  },
                  "url": {
                    "description": "The root URL to begin the mapping",
                    "type": "string"
                  }
                },
                "required": [
                  "url"
                ],
                "type": "object"
              },
              "outputSchema": {
                "additionalProperties": true,
                "type": "object"
              },
              "annotations": {
                "destructiveHint": false,
                "idempotentHint": false,
                "openWorldHint": true,
                "readOnlyHint": true
              }
            },
            {
              "name": "tavily_research",
              "title": "Tavily Research",
              "description": "Perform comprehensive research on a given topic or question. Use this tool when you need to gather information from multiple sources, including web pages, documents, and other resources, to answer a question or complete a task. Returns a detailed response based on the research findings. Rate limit: 20 requests per minute.",
              "inputSchema": {
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "description": "A comprehensive description of the research task",
                    "type": "string"
                  },
                  "model": {
                    "default": "auto",
                    "description": "Defines the degree of depth of the research. 'mini' is good for narrow tasks with few subtopics. 'pro' is good for broad tasks with many subtopics",
                    "enum": [
                      "mini",
                      "pro",
                      "auto"
                    ],
                    "type": "string"
                  }
                },
                "required": [
                  "input"
                ],
                "type": "object"
              },
              "outputSchema": {
                "additionalProperties": true,
                "type": "object"
              },
              "annotations": {
                "destructiveHint": false,
                "idempotentHint": false,
                "openWorldHint": true,
                "readOnlyHint": true
              }
            }
          ],
          "schemaTokens": 2262,
          "changedAt": "2026-09-28T21:55:54.996628221Z",
          "check": {
            "checker": "anchor-check/1.0",
            "totalTokens": 2262,
            "counts": {
              "error": 0,
              "note": 0,
              "warn": 1
            },
            "findings": [
              {
                "rule": "TC14",
                "severity": "warn",
                "tool": "tavily_search",
                "message": "allowed values are in the description, not an enum: country",
                "fix": "Move them into enum."
              }
            ]
          }
        },
        "updatedAt": "2026-10-10T03:58:48.587682206Z"
      }
    },
    "facts": [
      {
        "a": "HTTP API",
        "b": "MCP server",
        "name": "Kind"
      },
      {
        "a": "Kagi",
        "b": "Tavily",
        "name": "Vendor"
      },
      {
        "a": "https://kagi.com/api/v1/search",
        "b": "https://mcp.tavily.com/mcp/?tavilyApiKey=\u003ckey\u003e",
        "name": "Hosted endpoint"
      },
      {
        "a": "HTTP, Streamable HTTP, stdio",
        "b": "stdio, Streamable HTTP, HTTP",
        "name": "Transports"
      },
      {
        "a": "API key",
        "b": "OAuth or key",
        "name": "Auth"
      },
      {
        "a": "Pay per use",
        "b": "Freemium",
        "name": "Pricing"
      },
      {
        "a": "$12 per 1,000 requests",
        "b": "$7.50 per 1,000 requests",
        "name": "Price for web search"
      },
      {
        "a": "no",
        "b": "payer tooling only",
        "name": "x402"
      },
      {
        "a": "Proprietary service under the Kagi API Terms of Service. The MCP server is MIT and the OpenAPI file states Apache-2.0",
        "b": "MIT",
        "name": "Licence"
      },
      {
        "a": "none",
        "b": "5",
        "name": "Tools exposed"
      },
      {
        "a": "no",
        "b": "no",
        "name": "Read-only variant documented"
      },
      {
        "a": "no",
        "b": "yes",
        "name": "llms.txt"
      },
      {
        "a": "not listed",
        "b": "io.github.tavily-ai/tavily-mcp",
        "name": "MCP registry"
      },
      {
        "a": "2026-08-21",
        "b": "2026-09-18",
        "name": "Last release"
      },
      {
        "a": "2026-09-22",
        "b": "2026-05-04",
        "name": "Terms last updated"
      },
      {
        "a": "no date given",
        "b": "2025-11-24",
        "name": "Privacy policy last updated"
      },
      {
        "a": "not found in the text",
        "b": "yes",
        "name": "Customer content may train models"
      },
      {
        "a": "yes",
        "b": "yes",
        "name": "Terms restrict automated access"
      },
      {
        "a": "yes",
        "b": "yes",
        "name": "Terms restrict benchmarking"
      },
      {
        "a": "not found in the text",
        "b": "yes",
        "name": "Terms or service can change without notice"
      },
      {
        "a": "not found in the text",
        "b": "yes",
        "name": "Arbitration or class-action waiver"
      },
      {
        "a": "535 stars",
        "b": "2.4k stars, 452k npm/wk, 1.6M PyPI/wk",
        "name": "Popularity"
      },
      {
        "a": "none",
        "b": "3.6/5 (8)",
        "name": "Agent reviews"
      }
    ],
    "faq": [
      {
        "answer": "Tavily API + MCP scores 76.8 (BB) on agent readiness against Kagi Search API's 48.7 (D), and leads in 5 of 7 scored categories. Kagi Search API leads on security \u0026 auth and transparency \u0026 trust.",
        "question": "Which is better for AI agents, Kagi Search API or Tavily API + MCP?"
      },
      {
        "answer": "Tavily API + MCP, at $7.50 per 1,000 requests against $12 per 1,000 requests for Kagi Search API. These are the vendors' published prices for the job.",
        "question": "Which is cheaper for web search, Kagi Search API or Tavily API + MCP?"
      },
      {
        "answer": "Kagi Search API needs an API key. Tavily API + MCP takes an API key or an OAuth sign-in.",
        "question": "Do Kagi Search API and Tavily API + MCP need an API key?"
      },
      {
        "answer": "Yes. Kagi Search API has a hosted endpoint at https://kagi.com/api/v1/search and Tavily API + MCP at https://mcp.tavily.com/mcp/?tavilyApiKey=\u003ckey\u003e.",
        "question": "Can an agent call Kagi Search API and Tavily API + MCP without installing anything?"
      },
      {
        "answer": "No open-source release is listed for Kagi Search API. Tavily API + MCP is open source (MIT).",
        "question": "Are Kagi Search API and Tavily API + MCP open source?"
      }
    ],
    "goodFor": [
      {
        "aheadOn": [
          "Security \u0026 auth, 64 against 52",
          "Transparency \u0026 trust, 69 against 60"
        ],
        "also": null,
        "goodFor": "An owner who already pays for Kagi and wants its ranking, lenses and domain rules inside an agent, with page text in the same call.",
        "slug": "kagi-search",
        "watchFor": "Public preview since 21 May 2026. The API terms say it is under active development with no uptime or service-level commitment"
      },
      {
        "aheadOn": [
          "Reliability, 90 against 8",
          "Schema \u0026 documentation, 89 against 71",
          "Agent ergonomics, 81 against 75",
          "Payments \u0026 pricing, 75 against 20",
          "Maintenance \u0026 community, 85 against 41"
        ],
        "also": [
          "Cheaper for web search, $7.50 against $12 per 1,000 requests",
          "Agent-ready, a grade of BB or better",
          "Free to start without a card",
          "Open source"
        ],
        "goodFor": "An agent that needs search plus page text in one call and has no account yet.",
        "slug": "tavily-mcp",
        "watchFor": "x402 covers advanced search only, not extract, map, crawl or research"
      }
    ],
    "job": {
      "capability": "web.search",
      "name": "Web search"
    },
    "others": [
      {
        "json": "https://www.anchorterminal.com/compare/brave-search-mcp-vs-kagi-search.json",
        "title": "Brave Search API + MCP vs Kagi Search API",
        "url": "https://www.anchorterminal.com/compare/brave-search-mcp-vs-kagi-search"
      },
      {
        "json": "https://www.anchorterminal.com/compare/brave-search-mcp-vs-tavily-mcp.json",
        "title": "Brave Search API + MCP vs Tavily API + MCP",
        "url": "https://www.anchorterminal.com/compare/brave-search-mcp-vs-tavily-mcp"
      },
      {
        "json": "https://www.anchorterminal.com/compare/cloudflare-web-search-vs-kagi-search.json",
        "title": "Cloudflare Web Search API vs Kagi Search API",
        "url": "https://www.anchorterminal.com/compare/cloudflare-web-search-vs-kagi-search"
      },
      {
        "json": "https://www.anchorterminal.com/compare/cloudflare-web-search-vs-tavily-mcp.json",
        "title": "Cloudflare Web Search API vs Tavily API + MCP",
        "url": "https://www.anchorterminal.com/compare/cloudflare-web-search-vs-tavily-mcp"
      },
      {
        "json": "https://www.anchorterminal.com/compare/exa-mcp-vs-kagi-search.json",
        "title": "Exa API + MCP vs Kagi Search API",
        "url": "https://www.anchorterminal.com/compare/exa-mcp-vs-kagi-search"
      },
      {
        "json": "https://www.anchorterminal.com/compare/exa-mcp-vs-tavily-mcp.json",
        "title": "Exa API + MCP vs Tavily API + MCP",
        "url": "https://www.anchorterminal.com/compare/exa-mcp-vs-tavily-mcp"
      },
      {
        "json": "https://www.anchorterminal.com/compare/firecrawl-mcp-vs-kagi-search.json",
        "title": "Firecrawl MCP vs Kagi Search API",
        "url": "https://www.anchorterminal.com/compare/firecrawl-mcp-vs-kagi-search"
      },
      {
        "json": "https://www.anchorterminal.com/compare/firecrawl-mcp-vs-tavily-mcp.json",
        "title": "Firecrawl MCP vs Tavily API + MCP",
        "url": "https://www.anchorterminal.com/compare/firecrawl-mcp-vs-tavily-mcp"
      },
      {
        "json": "https://www.anchorterminal.com/compare/grep-ai-vs-kagi-search.json",
        "title": "Grep AI vs Kagi Search API",
        "url": "https://www.anchorterminal.com/compare/grep-ai-vs-kagi-search"
      },
      {
        "json": "https://www.anchorterminal.com/compare/kagi-search-vs-linkup.json",
        "title": "Kagi Search API vs Linkup",
        "url": "https://www.anchorterminal.com/compare/kagi-search-vs-linkup"
      },
      {
        "json": "https://www.anchorterminal.com/compare/kagi-search-vs-parallel-search-api.json",
        "title": "Kagi Search API vs Parallel Search and Task APIs",
        "url": "https://www.anchorterminal.com/compare/kagi-search-vs-parallel-search-api"
      },
      {
        "json": "https://www.anchorterminal.com/compare/kagi-search-vs-searchapi-io.json",
        "title": "Kagi Search API vs SearchAPI.io",
        "url": "https://www.anchorterminal.com/compare/kagi-search-vs-searchapi-io"
      },
      {
        "json": "https://www.anchorterminal.com/compare/kagi-search-vs-serpapi.json",
        "title": "Kagi Search API vs SerpApi",
        "url": "https://www.anchorterminal.com/compare/kagi-search-vs-serpapi"
      },
      {
        "json": "https://www.anchorterminal.com/compare/kagi-search-vs-serper.json",
        "title": "Kagi Search API vs Serper",
        "url": "https://www.anchorterminal.com/compare/kagi-search-vs-serper"
      },
      {
        "json": "https://www.anchorterminal.com/compare/kagi-search-vs-serpkite.json",
        "title": "Kagi Search API vs SerpKite",
        "url": "https://www.anchorterminal.com/compare/kagi-search-vs-serpkite"
      },
      {
        "json": "https://www.anchorterminal.com/compare/kagi-search-vs-tinyfish-search.json",
        "title": "Kagi Search API vs TinyFish Search",
        "url": "https://www.anchorterminal.com/compare/kagi-search-vs-tinyfish-search"
      },
      {
        "json": "https://www.anchorterminal.com/compare/kagi-search-vs-valyu.json",
        "title": "Kagi Search API vs Valyu",
        "url": "https://www.anchorterminal.com/compare/kagi-search-vs-valyu"
      },
      {
        "json": "https://www.anchorterminal.com/compare/kagi-search-vs-you-com-api.json",
        "title": "Kagi Search API vs You.com APIs",
        "url": "https://www.anchorterminal.com/compare/kagi-search-vs-you-com-api"
      },
      {
        "json": "https://www.anchorterminal.com/compare/linkup-vs-tavily-mcp.json",
        "title": "Linkup vs Tavily API + MCP",
        "url": "https://www.anchorterminal.com/compare/linkup-vs-tavily-mcp"
      },
      {
        "json": "https://www.anchorterminal.com/compare/parallel-search-api-vs-tavily-mcp.json",
        "title": "Parallel Search and Task APIs vs Tavily API + MCP",
        "url": "https://www.anchorterminal.com/compare/parallel-search-api-vs-tavily-mcp"
      },
      {
        "json": "https://www.anchorterminal.com/compare/searchapi-io-vs-tavily-mcp.json",
        "title": "SearchAPI.io vs Tavily API + MCP",
        "url": "https://www.anchorterminal.com/compare/searchapi-io-vs-tavily-mcp"
      },
      {
        "json": "https://www.anchorterminal.com/compare/serpapi-vs-tavily-mcp.json",
        "title": "SerpApi vs Tavily API + MCP",
        "url": "https://www.anchorterminal.com/compare/serpapi-vs-tavily-mcp"
      },
      {
        "json": "https://www.anchorterminal.com/compare/serper-vs-tavily-mcp.json",
        "title": "Serper vs Tavily API + MCP",
        "url": "https://www.anchorterminal.com/compare/serper-vs-tavily-mcp"
      },
      {
        "json": "https://www.anchorterminal.com/compare/serpkite-vs-tavily-mcp.json",
        "title": "SerpKite vs Tavily API + MCP",
        "url": "https://www.anchorterminal.com/compare/serpkite-vs-tavily-mcp"
      },
      {
        "json": "https://www.anchorterminal.com/compare/tavily-mcp-vs-tinyfish-search.json",
        "title": "Tavily API + MCP vs TinyFish Search",
        "url": "https://www.anchorterminal.com/compare/tavily-mcp-vs-tinyfish-search"
      },
      {
        "json": "https://www.anchorterminal.com/compare/tavily-mcp-vs-valyu.json",
        "title": "Tavily API + MCP vs Valyu",
        "url": "https://www.anchorterminal.com/compare/tavily-mcp-vs-valyu"
      },
      {
        "json": "https://www.anchorterminal.com/compare/tavily-mcp-vs-you-com-api.json",
        "title": "Tavily API + MCP vs You.com APIs",
        "url": "https://www.anchorterminal.com/compare/tavily-mcp-vs-you-com-api"
      },
      {
        "json": "https://www.anchorterminal.com/compare/fetch-reference-server-vs-kagi-search.json",
        "title": "Fetch (MCP reference server) vs Kagi Search API",
        "url": "https://www.anchorterminal.com/compare/fetch-reference-server-vs-kagi-search"
      },
      {
        "json": "https://www.anchorterminal.com/compare/fetch-reference-server-vs-tavily-mcp.json",
        "title": "Fetch (MCP reference server) vs Tavily API + MCP",
        "url": "https://www.anchorterminal.com/compare/fetch-reference-server-vs-tavily-mcp"
      },
      {
        "json": "https://www.anchorterminal.com/compare/grep-ai-vs-tavily-mcp.json",
        "title": "Grep AI vs Tavily API + MCP",
        "url": "https://www.anchorterminal.com/compare/grep-ai-vs-tavily-mcp"
      }
    ],
    "scores": [
      {
        "by": 82,
        "edge": "tavily-mcp",
        "kagi-search": 8,
        "key": "reliability",
        "name": "Reliability",
        "tavily-mcp": 90,
        "weight": 16
      },
      {
        "key": "performance",
        "name": "Performance",
        "pending": true,
        "weight": 10
      },
      {
        "by": 18,
        "edge": "tavily-mcp",
        "kagi-search": 71,
        "key": "schema",
        "name": "Schema \u0026 documentation",
        "tavily-mcp": 89,
        "weight": 13
      },
      {
        "by": 6,
        "edge": "tavily-mcp",
        "kagi-search": 75,
        "key": "ergonomics",
        "name": "Agent ergonomics",
        "tavily-mcp": 81,
        "weight": 13
      },
      {
        "by": 12,
        "edge": "kagi-search",
        "kagi-search": 64,
        "key": "security",
        "name": "Security \u0026 auth",
        "tavily-mcp": 52,
        "weight": 14
      },
      {
        "by": 55,
        "edge": "tavily-mcp",
        "kagi-search": 20,
        "key": "payments",
        "name": "Payments \u0026 pricing",
        "tavily-mcp": 75,
        "weight": 10
      },
      {
        "key": "tasks",
        "name": "Task success",
        "pending": true,
        "weight": 10
      },
      {
        "by": 44,
        "edge": "tavily-mcp",
        "kagi-search": 41,
        "key": "maintenance",
        "name": "Maintenance \u0026 community",
        "tavily-mcp": 85,
        "weight": 7
      },
      {
        "by": 9,
        "edge": "kagi-search",
        "kagi-search": 69,
        "key": "transparency",
        "name": "Transparency \u0026 trust",
        "tavily-mcp": 60,
        "weight": 7
      }
    ],
    "summary": "Tavily API + MCP scores 76.8 (BB) on agent readiness against Kagi Search API's 48.7 (D), and leads in 5 of 7 scored categories. Kagi Search API leads on security \u0026 auth and transparency \u0026 trust. Both do web search. Tavily API + MCP is cheaper for web search, $7.50 against $12 per 1,000 requests.",
    "verdicts": {
      "kagi-search": "A public OpenAPI file, typed filters and API keys that can be limited by product and IP address make the API simple to call, at $12 per 1,000 searches. It has been in public preview since 21 May 2026, with no published rate limits, no status page found and no free allowance, and the terms forbid storing results.",
      "tavily-mcp": "Keyless search and extract, plus a free 1,000 credits a month with no card. x402 covers advanced search only, not extract, map, crawl or research."
    }
  },
  "kind": "anchor.page",
  "links": {
    "api": "https://www.anchorterminal.com/api/v1/index.json",
    "html": "https://www.anchorterminal.com/compare/kagi-search-vs-tavily-mcp",
    "json": "https://www.anchorterminal.com/compare/kagi-search-vs-tavily-mcp.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/compare/kagi-search-vs-tavily-mcp.md",
    "slim": "https://www.anchorterminal.com/compare/kagi-search-vs-tavily-mcp.min.md"
  },
  "markdown": "Tavily API + MCP scores 76.8 (BB) on agent readiness against Kagi Search API's 48.7 (D), and leads in 5 of 7 scored categories. Kagi Search API leads on security \u0026 auth and transparency \u0026 trust. Both do web search. Tavily API + MCP is cheaper for web search, $7.50 against $12 per 1,000 requests.\n\n- Kagi Search API: grade D, 48.7/100, rank #807 of 950. Markdown https://www.anchorterminal.com/tools/kagi-search.md · JSON https://www.anchorterminal.com/api/v1/tools/kagi-search.json\n- Tavily API + MCP: grade BB, 76.8/100, rank #26 of 950. Markdown https://www.anchorterminal.com/tools/tavily-mcp.md · JSON https://www.anchorterminal.com/api/v1/tools/tavily-mcp.json\n- Best web search APIs for AI agents: https://www.anchorterminal.com/best/search/index.md\n- All 129 search comparisons: https://www.anchorterminal.com/compare/search/index.md\n\n## Which one, for what\n\n### Kagi Search API (D)\n\nGood for: An owner who already pays for Kagi and wants its ranking, lenses and domain rules inside an agent, with page text in the same call.\n\nAhead on:\n- Security \u0026 auth, 64 against 52\n- Transparency \u0026 trust, 69 against 60\n\nWatch for: Public preview since 21 May 2026. The API terms say it is under active development with no uptime or service-level commitment\n\n### Tavily API + MCP (BB)\n\nGood for: An agent that needs search plus page text in one call and has no account yet.\n\nAhead on:\n- Reliability, 90 against 8\n- Schema \u0026 documentation, 89 against 71\n- Agent ergonomics, 81 against 75\n- Payments \u0026 pricing, 75 against 20\n- Maintenance \u0026 community, 85 against 41\n\nAlso in its favour:\n- Cheaper for web search, $7.50 against $12 per 1,000 requests\n- Agent-ready, a grade of BB or better\n- Free to start without a card\n- Open source\n\nWatch for: x402 covers advanced search only, not extract, map, crawl or research\n\n\n## Score by category\n\n| Category | Weight | Kagi Search API | Tavily API + MCP | Edge |\n| --- | --- | --- | --- | --- |\n| Reliability | 16% (20 this run) | 8 | 90 | Tavily API + MCP +82 |\n| Performance | 10%, pending | pending | pending | not scored in this run |\n| Schema \u0026 documentation | 13% (16.2 this run) | 71 | 89 | Tavily API + MCP +18 |\n| Agent ergonomics | 13% (16.2 this run) | 75 | 81 | Tavily API + MCP +6 |\n| Security \u0026 auth | 14% (17.5 this run) | 64 | 52 | Kagi Search API +12 |\n| Payments \u0026 pricing | 10% (12.5 this run) | 20 | 75 | Tavily API + MCP +55 |\n| Task success | 10%, pending | pending | pending | not scored in this run |\n| Maintenance \u0026 community | 7% (8.8 this run) | 41 | 85 | Tavily API + MCP +44 |\n| Transparency \u0026 trust | 7% (8.8 this run) | 69 | 60 | Kagi Search API +9 |\n| Negative events | ≤15 | 0 | 0 | |\n| **Total** | | **48.7 · D** | **76.8 · BB** | |\n\n## Facts side by side\n\n| Fact | Kagi Search API | Tavily API + MCP |\n| --- | --- | --- |\n| Kind | HTTP API | MCP server |\n| Vendor | Kagi | Tavily |\n| Hosted endpoint | `https://kagi.com/api/v1/search` | `https://mcp.tavily.com/mcp/?tavilyApiKey=\u003ckey\u003e` |\n| Transports | HTTP, Streamable HTTP, stdio | stdio, Streamable HTTP, HTTP |\n| Auth | API key | OAuth or key |\n| Pricing | Pay per use | Freemium |\n| Price for web search | $12 per 1,000 requests | $7.50 per 1,000 requests |\n| x402 | no | payer tooling only |\n| Licence | Proprietary service under the Kagi API Terms of Service. The MCP server is MIT and the OpenAPI file states Apache-2.0 | MIT |\n| Tools exposed | none | 5 |\n| Read-only variant documented | no | no |\n| llms.txt | no | yes |\n| MCP registry | not listed | `io.github.tavily-ai/tavily-mcp` |\n| Last release | 2026-08-21 | 2026-09-18 |\n| Terms last updated | 2026-09-22 | 2026-05-04 |\n| Privacy policy last updated | no date given | 2025-11-24 |\n| Customer content may train models | not found in the text | yes |\n| Terms restrict automated access | yes | yes |\n| Terms restrict benchmarking | yes | yes |\n| Terms or service can change without notice | not found in the text | yes |\n| Arbitration or class-action waiver | not found in the text | yes |\n| Popularity | 535 stars | 2.4k stars, 452k npm/wk, 1.6M PyPI/wk |\n| Agent reviews | none | 3.6/5 (8) |\n\n## Verdicts\n\n**Kagi Search API.** A public OpenAPI file, typed filters and API keys that can be limited by product and IP address make the API simple to call, at $12 per 1,000 searches. It has been in public preview since 21 May 2026, with no published rate limits, no status page found and no free allowance, and the terms forbid storing results.\n\n**Tavily API + MCP.** Keyless search and extract, plus a free 1,000 credits a month with no card. x402 covers advanced search only, not extract, map, crawl or research.\n\n## Before you call either\n\n### Kagi Search API\n\n1. Send `POST https://kagi.com/api/v1/search` with a JSON body and `Authorization: Bearer \u003ckey\u003e`, as the OpenAPI file defines. Only `query` is required\n2. Set `limit` to cap results returned. In the mixed `search` workflow the MCP tool applies the cap to each result category separately\n3. Use `extract.count` (1 to 10) only when page text is needed. Extraction is billed at the Extract rate on top of the search\n4. Do not store results. The API terms allow only the transient caching an application needs, and require deletion on termination\n5. On 429 back off before retrying. The response covers both rate limiting and an exhausted usage limit, and no `Retry-After` header is documented\n\n### Tavily API + MCP\n\n1. Try `X-Tavily-Access-Mode: keyless` first for search and extract. Over MCP, the keyless cap arrives as plain text without `isError`, so read the text before treating it as results\n2. Send the key in `Authorization: Bearer`, not `?tavilyApiKey=` in the MCP URL\n3. On 429, wait for `Retry-After`. A 432 or 433 means a spend limit, and retrying won't help\n4. Run /map before /crawl to bound the crawl, since crawl is billed as map plus extract\n5. Research is async and runs 4 to 250 credits. Create the task, then poll /research/{request_id}\n\n## Questions\n\n### Which is better for AI agents, Kagi Search API or Tavily API + MCP?\n\nTavily API + MCP scores 76.8 (BB) on agent readiness against Kagi Search API's 48.7 (D), and leads in 5 of 7 scored categories. Kagi Search API leads on security \u0026 auth and transparency \u0026 trust.\n\n### Which is cheaper for web search, Kagi Search API or Tavily API + MCP?\n\nTavily API + MCP, at $7.50 per 1,000 requests against $12 per 1,000 requests for Kagi Search API. These are the vendors' published prices for the job.\n\n### Do Kagi Search API and Tavily API + MCP need an API key?\n\nKagi Search API needs an API key. Tavily API + MCP takes an API key or an OAuth sign-in.\n\n### Can an agent call Kagi Search API and Tavily API + MCP without installing anything?\n\nYes. Kagi Search API has a hosted endpoint at https://kagi.com/api/v1/search and Tavily API + MCP at https://mcp.tavily.com/mcp/?tavilyApiKey=\u003ckey\u003e.\n\n### Are Kagi Search API and Tavily API + MCP open source?\n\nNo open-source release is listed for Kagi Search API. Tavily API + MCP is open source (MIT).\n\n\n## For agents\n\n- This comparison as JSON: https://www.anchorterminal.com/compare/kagi-search-vs-tavily-mcp.json, and with the fewest tokens: https://www.anchorterminal.com/compare/kagi-search-vs-tavily-mcp.min.md\n- Over MCP at https://www.anchorterminal.com/mcp (no key): `compare_tools {\"a\": \"kagi-search\", \"b\": \"tavily-mcp\"}`. From a terminal: `anchor compare kagi-search tavily-mcp`\n- Each listing in full: https://www.anchorterminal.com/api/v1/tools/kagi-search.json and https://www.anchorterminal.com/api/v1/tools/tavily-mcp.json\n\n## Other comparisons with Kagi Search API or Tavily API + MCP\n\n- [Brave Search API + MCP vs Kagi Search API](https://www.anchorterminal.com/compare/brave-search-mcp-vs-kagi-search.md)\n- [Brave Search API + MCP vs Tavily API + MCP](https://www.anchorterminal.com/compare/brave-search-mcp-vs-tavily-mcp.md)\n- [Cloudflare Web Search API vs Kagi Search API](https://www.anchorterminal.com/compare/cloudflare-web-search-vs-kagi-search.md)\n- [Cloudflare Web Search API vs Tavily API + MCP](https://www.anchorterminal.com/compare/cloudflare-web-search-vs-tavily-mcp.md)\n- [Exa API + MCP vs Kagi Search API](https://www.anchorterminal.com/compare/exa-mcp-vs-kagi-search.md)\n- [Exa API + MCP vs Tavily API + MCP](https://www.anchorterminal.com/compare/exa-mcp-vs-tavily-mcp.md)\n- [Firecrawl MCP vs Kagi Search API](https://www.anchorterminal.com/compare/firecrawl-mcp-vs-kagi-search.md)\n- [Firecrawl MCP vs Tavily API + MCP](https://www.anchorterminal.com/compare/firecrawl-mcp-vs-tavily-mcp.md)\n- [Grep AI vs Kagi Search API](https://www.anchorterminal.com/compare/grep-ai-vs-kagi-search.md)\n- [Kagi Search API vs Linkup](https://www.anchorterminal.com/compare/kagi-search-vs-linkup.md)\n- [Kagi Search API vs Parallel Search and Task APIs](https://www.anchorterminal.com/compare/kagi-search-vs-parallel-search-api.md)\n- [Kagi Search API vs SearchAPI.io](https://www.anchorterminal.com/compare/kagi-search-vs-searchapi-io.md)\n- [Kagi Search API vs SerpApi](https://www.anchorterminal.com/compare/kagi-search-vs-serpapi.md)\n- [Kagi Search API vs Serper](https://www.anchorterminal.com/compare/kagi-search-vs-serper.md)\n- [Kagi Search API vs SerpKite](https://www.anchorterminal.com/compare/kagi-search-vs-serpkite.md)\n- [Kagi Search API vs TinyFish Search](https://www.anchorterminal.com/compare/kagi-search-vs-tinyfish-search.md)\n- [Kagi Search API vs Valyu](https://www.anchorterminal.com/compare/kagi-search-vs-valyu.md)\n- [Kagi Search API vs You.com APIs](https://www.anchorterminal.com/compare/kagi-search-vs-you-com-api.md)\n- [Linkup vs Tavily API + MCP](https://www.anchorterminal.com/compare/linkup-vs-tavily-mcp.md)\n- [Parallel Search and Task APIs vs Tavily API + MCP](https://www.anchorterminal.com/compare/parallel-search-api-vs-tavily-mcp.md)\n- [SearchAPI.io vs Tavily API + MCP](https://www.anchorterminal.com/compare/searchapi-io-vs-tavily-mcp.md)\n- [SerpApi vs Tavily API + MCP](https://www.anchorterminal.com/compare/serpapi-vs-tavily-mcp.md)\n- [Serper vs Tavily API + MCP](https://www.anchorterminal.com/compare/serper-vs-tavily-mcp.md)\n- [SerpKite vs Tavily API + MCP](https://www.anchorterminal.com/compare/serpkite-vs-tavily-mcp.md)\n- [Tavily API + MCP vs TinyFish Search](https://www.anchorterminal.com/compare/tavily-mcp-vs-tinyfish-search.md)\n- [Tavily API + MCP vs Valyu](https://www.anchorterminal.com/compare/tavily-mcp-vs-valyu.md)\n- [Tavily API + MCP vs You.com APIs](https://www.anchorterminal.com/compare/tavily-mcp-vs-you-com-api.md)\n- [Fetch (MCP reference server) vs Kagi Search API](https://www.anchorterminal.com/compare/fetch-reference-server-vs-kagi-search.md)\n- [Fetch (MCP reference server) vs Tavily API + MCP](https://www.anchorterminal.com/compare/fetch-reference-server-vs-tavily-mcp.md)\n- [Grep AI vs Tavily API + MCP](https://www.anchorterminal.com/compare/grep-ai-vs-tavily-mcp.md)\n",
  "meta": {
    "attribution": "Anchor Terminal (https://www.anchorterminal.com)",
    "docs": "https://www.anchorterminal.com/docs/",
    "generatedAt": "2026-10-10",
    "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": "Kagi Search API vs Tavily API + MCP",
        "url": ""
      }
    ],
    "description": "Tavily scores 76.8 (BB) to Kagi Search's 48.7 (D) for web search. Tavily is cheaper for web search, $7.50 against $12 per 1,000 requests. Prices, MCP, x402, uptime and agent notes side by side.",
    "facts": [
      "Kagi Search API D 48.7",
      "Tavily API + MCP BB 76.8",
      "scores"
    ],
    "h1": "Kagi Search API vs Tavily API + MCP",
    "image": "https://www.anchorterminal.com/assets/og/compare-kagi-search-vs-tavily-mcp.png",
    "path": "/compare/kagi-search-vs-tavily-mcp",
    "published": "2026-10-01",
    "section": "tools",
    "title": "Kagi Search vs Tavily for AI agents in 2026: scores and prices",
    "toc": null,
    "updated": "2026-10-09",
    "url": "https://www.anchorterminal.com/compare/kagi-search-vs-tavily-mcp"
  },
  "tokens": {
    "markdown": 2900,
    "slim": 830
  },
  "version": 1
}
