{
  "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",
      "dns": "kagi-search.grade.anchorterminal.com",
      "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": 56.1,
        "grade": "C",
        "agentReady": false,
        "rank": 846,
        "ranked": true,
        "rankOf": 1510,
        "categoryRank": 20,
        "methodology": "0.7",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 75,
          "maintenance": 41,
          "payments": 20,
          "reliability": 43,
          "schema": 71,
          "security": 64,
          "transparency": 74
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-11-04"
        },
        "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 is still a public preview, with no published rate limits and no free allowance, and the terms forbid storing results. Its status page logged only regional incidents since August.",
        "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 the status page isn't 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 last dated API change is the 21 August 2026 Extract fix, and the MCP server's last tag is v0.1.5 of 8 April 2026"
        ],
        "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. Check status.kagi.com for regional incidents"
        ],
        "metrics": {
          "kind": "remote",
          "measured": false
        },
        "reviewCount": 0,
        "avgRating": 0,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "C",
            "methodology": "0.7",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 56.1
          }
        ],
        "editorialScores": {
          "ergonomics": 75,
          "maintenance": 41,
          "payments": 20,
          "reliability": 43,
          "schema": 71,
          "security": 64,
          "transparency": 54
        },
        "provenanceScore": 94,
        "checked": {
          "categories": {
            "ergonomics": "2026-11-04",
            "maintenance": "2026-11-04",
            "payments": "2026-11-04",
            "reliability": "2026-11-04",
            "schema": "2026-11-04",
            "security": "2026-11-04",
            "transparency": "2026-11-04"
          },
          "last": "2026-11-04",
          "lastMoved": "2026-11-04",
          "oldest": "2026-11-04",
          "stale": false,
          "staleAfterDays": 90
        }
      },
      "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": "https://status.kagi.com/",
        "changelog": "https://kagi.com/changelog",
        "securityTxt": "valid",
        "checked": "2026-11-04",
        "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.",
          "status.kagi.com is an Instatus page with Kagi Search, Kagi API, Kagi Translate, Kagi Assistant and Other Services groups and a /history.atom feed. It wasn't found linked from the API docs, pricing, terms or changelog pages; a web search found it on 4 November 2026.",
          "The changelog covers every Kagi product. API entries are a few lines inside those posts.",
          "kagi.com/robots.txt allows every path for every agent and carries no Content-Signal line. help.kagi.com/robots.txt answered 404.",
          "The registration date came from an RDAP lookup on 9 October, a source this run doesn't use. Kept pending the correction pass."
        ],
        "score": 94
      },
      "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-11-07T19:22:14.428884047Z",
          "lastOk": true,
          "lastStatus": 404,
          "lastMs": 395,
          "authRequired": false,
          "uptime24h": 100,
          "uptime30d": 99.99,
          "p50ms24h": 159,
          "p95ms24h": 395,
          "samples24h": 238,
          "samples30d": 7215,
          "days": [
            {
              "date": "2026-10-09",
              "probes": 85,
              "ok": 85
            },
            {
              "date": "2026-10-10",
              "probes": 247,
              "ok": 247
            },
            {
              "date": "2026-10-11",
              "probes": 247,
              "ok": 247
            },
            {
              "date": "2026-10-12",
              "probes": 247,
              "ok": 247
            },
            {
              "date": "2026-10-13",
              "probes": 248,
              "ok": 248
            },
            {
              "date": "2026-10-14",
              "probes": 249,
              "ok": 249
            },
            {
              "date": "2026-10-15",
              "probes": 253,
              "ok": 253
            },
            {
              "date": "2026-10-16",
              "probes": 252,
              "ok": 252
            },
            {
              "date": "2026-10-17",
              "probes": 253,
              "ok": 252
            },
            {
              "date": "2026-10-18",
              "probes": 256,
              "ok": 256
            },
            {
              "date": "2026-10-19",
              "probes": 255,
              "ok": 255
            },
            {
              "date": "2026-10-20",
              "probes": 252,
              "ok": 252
            },
            {
              "date": "2026-10-21",
              "probes": 253,
              "ok": 253
            },
            {
              "date": "2026-10-22",
              "probes": 253,
              "ok": 253
            },
            {
              "date": "2026-10-23",
              "probes": 248,
              "ok": 248
            },
            {
              "date": "2026-10-24",
              "probes": 251,
              "ok": 251
            },
            {
              "date": "2026-10-25",
              "probes": 250,
              "ok": 250
            },
            {
              "date": "2026-10-26",
              "probes": 252,
              "ok": 252
            },
            {
              "date": "2026-10-27",
              "probes": 249,
              "ok": 249
            },
            {
              "date": "2026-10-28",
              "probes": 251,
              "ok": 251
            },
            {
              "date": "2026-10-29",
              "probes": 248,
              "ok": 248
            },
            {
              "date": "2026-10-30",
              "probes": 249,
              "ok": 249
            },
            {
              "date": "2026-10-31",
              "probes": 251,
              "ok": 251
            },
            {
              "date": "2026-11-01",
              "probes": 249,
              "ok": 249
            },
            {
              "date": "2026-11-02",
              "probes": 250,
              "ok": 250
            },
            {
              "date": "2026-11-03",
              "probes": 248,
              "ok": 248
            },
            {
              "date": "2026-11-04",
              "probes": 246,
              "ok": 246
            },
            {
              "date": "2026-11-05",
              "probes": 185,
              "ok": 185
            },
            {
              "date": "2026-11-06",
              "probes": 241,
              "ok": 241
            },
            {
              "date": "2026-11-07",
              "probes": 197,
              "ok": 197
            }
          ]
        },
        "vendorStatus": {
          "page": "https://status.kagi.com",
          "indicator": "unknown",
          "summary": "no machine-readable status found",
          "checkedAt": "2026-11-07T04:47:57.929767418Z"
        },
        "versions": [
          {
            "registry": "pypi",
            "name": "kagimcp",
            "version": "1.1.0",
            "released": "2026-10-28",
            "seenAt": "2026-11-06T23:36:18.273275631Z"
          }
        ],
        "githubStars": 560,
        "pypiWeekly": 907,
        "securityTxt": {
          "url": "https://kagi.com/.well-known/security.txt",
          "state": "valid",
          "checkedAt": "2026-11-07T16:02:05.625292402Z"
        },
        "domain": {
          "domain": "kagi.com",
          "registered": "1993-11-18",
          "source": "https://rdap.verisign.com/com/v1/domain/kagi.com",
          "checkedAt": "2026-11-01T14:18:50.123684408Z"
        },
        "pages": [
          {
            "url": "https://kagi.com/changelog",
            "kind": "changelog",
            "status": 200,
            "checkedAt": "2026-11-07T14:11:53.635112538Z",
            "changedAt": "2026-11-06T13:33:57.614071228Z",
            "fingerprint": "b16eae5ff40e"
          },
          {
            "url": "https://kagi.com/api/pricing",
            "kind": "pricing",
            "status": 200,
            "checkedAt": "2026-11-07T14:11:51.560663477Z",
            "changedAt": "2026-10-27T03:48:19.358068766Z",
            "fingerprint": "8e909f92ad50"
          },
          {
            "url": "https://kagi.com/privacy",
            "kind": "privacy",
            "status": 200,
            "checkedAt": "2026-11-07T14:11:55.90595014Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "2bfce4b7e89a"
          },
          {
            "url": "https://kagi.com/privacy/api",
            "kind": "terms",
            "status": 200,
            "checkedAt": "2026-11-07T14:11:57.59824854Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "5a5c47392cf0"
          }
        ],
        "github": {
          "repo": "kagisearch/kagimcp",
          "checkedAt": "2026-11-02T08:57:55.693015256Z",
          "stars": 557,
          "archived": false,
          "issuesEnabled": true,
          "pushedAt": "2026-10-28T13:39:24Z",
          "openIssues": 4,
          "openPRs": 3,
          "issuesOpened90d": 5,
          "issuesClosed90d": 3,
          "prsMerged90d": 1,
          "replies": {
            "sampled": 19,
            "unanswered": 3,
            "medianDays": 5.3
          }
        },
        "updatedAt": "2026-11-07T19:22:14.428884047Z"
      }
    },
    "answer": "NewsCatcher scores 67.5 (B) on agent readiness against Kagi Search API's 56.1 (C), and leads in 6 of 7 scored categories. Kagi Search API leads on security \u0026 auth.",
    "b": {
      "slug": "newscatcher",
      "name": "NewsCatcher",
      "vendor": "NewsCatcher, Inc.",
      "vendorUrl": "https://www.newscatcherapi.com",
      "kind": "http-api",
      "category": "search",
      "summary": "NewsCatcher's API searches the last 30 days of news in every language, grouped into stories, and runs a background agent that builds tables of events or company news, through REST and a hosted MCP server.",
      "url": "https://www.anchorterminal.com/tools/newscatcher",
      "markdownUrl": "https://www.anchorterminal.com/tools/newscatcher.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/newscatcher.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/newscatcher.json",
      "dns": "newscatcher.grade.anchorterminal.com",
      "repo": "https://github.com/Newscatcher/newscatcher-mcp",
      "transports": [
        "streamable-http"
      ],
      "remoteUrl": "https://mcp.newscatcherapi.com/mcp",
      "packages": [],
      "auth": "api-key",
      "authNotes": "API key from the NewsCatcher platform after a browser signup, sent in the `x-api-key` header. One key works for the News API and the agent; several keys can be made and revoked in the platform. The MCP server also accepts `Authorization: Bearer` or `?apiKey=` in the URL; OAuth is announced as coming soon. No scopes found.",
      "pricing": "usage",
      "pricingNotes": "Prepaid credits at $1 per 1,000 (top-ups from $25, valid 12 months). Search costs 1, 5 or 10 credits by effort, a story 1, `/articles` 5 per call. Agent runs 1,000 to 6,000 credits. 10,000 free credits every 30 days. Failed and refused requests aren't charged.",
      "priceSummary": "$1 / 1k req",
      "where": "hosted",
      "x402": {
        "level": "no",
        "evidence": "No x402, MPP or L402 in llms.txt, the docs, the pricing page or the OpenAPI specs (checked 2026-11-06). An empty balance returns 402 with no payment requirements; top-ups go through the platform.",
        "endpoints": []
      },
      "toolCount": 15,
      "popularity": {
        "githubStars": null,
        "npmWeekly": null,
        "pypiWeekly": null,
        "asOf": "2026-11-06"
      },
      "docsUrl": "https://www.newscatcherapi.com/docs/get-started/overview",
      "llmsTxt": "https://www.newscatcherapi.com/docs/llms.txt",
      "openapi": "https://github.com/NewscatcherAPI/docs/blob/main/api-reference/news-api/openapi.json",
      "capabilities": [
        "search.news",
        "search.research",
        "web.search"
      ],
      "tags": [
        "hosted",
        "usage",
        "prepaid",
        "free-tier",
        "mcp",
        "remote-mcp",
        "openapi",
        "llms-txt",
        "status-page",
        "yc"
      ],
      "lastRelease": "2026-11-06",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 67.5,
        "grade": "B",
        "agentReady": false,
        "rank": 322,
        "ranked": true,
        "rankOf": 1510,
        "categoryRank": 10,
        "methodology": "0.7",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 84,
          "maintenance": 76,
          "payments": 30,
          "reliability": 67,
          "schema": 94,
          "security": 45,
          "transparency": 79
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-11-06"
        },
        "negative": 0,
        "verdict": "One key and one credit balance cover a ranked news search, a background research agent and a hosted MCP server with toolsets and annotated tools, under OpenAPI 3.1 specs and a dated changelog. The current API launched on 30 October 2026, the MCP server accepts the key in its URL, and no SLA is published below Enterprise.",
        "bestFor": "Agents that need current news across languages, grouped into stories, or tables of events and company news on a schedule.",
        "strengths": [
          "OpenAPI 3.1 specs for the News API and the agent, llms.txt, Markdown pages and a docs MCP server",
          "Hosted MCP server with 15 tools in four toolsets, selectable with `?tools=`, and read-only, destructive and idempotent hints on every tool",
          "Documented errors with retry advice per status, 429 with Retry-After, and refused or failed requests never charged",
          "Published credit prices, $1 per 1,000 credits, and 10,000 free credits every 30 days",
          "Terms say inputs and generated data are never used to train models, with a dated sub-processor list"
        ],
        "weaknesses": [
          "The current News API and agent launched on 30 October 2026 and the MCP repository went public on 6 November 2026",
          "The MCP server documents `?apiKey=` in the URL for clients without headers, and keys have no scopes found",
          "No SLA below a signed Enterprise agreement; the status page monitors one News API component",
          "API logs, which can include query text, are archived indefinitely after 90 days",
          "The pricing page and the docs disagree on whether empty agent runs are charged and on the price of `/articles`"
        ],
        "agentNotes": [
          "Send the key in the `x-api-key` header, and use a separate key for the MCP server so it can be revoked alone",
          "Call `start_research` with `dry_run` first, since agent runs cost 1,000 to 6,000 credits",
          "Use `effort=low` for quick lookups; the default `medium` costs five times as much",
          "Use `/articles` or `list_articles` for news older than 30 days or exact counts; `/search` covers 30 days only",
          "On 429 or 503 wait for Retry-After, and quote the Correlation-ID header to support"
        ],
        "metrics": {
          "kind": "remote",
          "measured": false
        },
        "reviewCount": 0,
        "avgRating": 0,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "B",
            "methodology": "0.7",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 67.5
          }
        ],
        "editorialScores": {
          "ergonomics": 84,
          "maintenance": 76,
          "payments": 30,
          "reliability": 67,
          "schema": 94,
          "security": 45,
          "transparency": 73
        },
        "provenanceScore": 85,
        "checked": {
          "categories": {
            "ergonomics": "2026-11-06",
            "maintenance": "2026-11-06",
            "payments": "2026-11-06",
            "reliability": "2026-11-06",
            "schema": "2026-11-06",
            "security": "2026-11-06",
            "transparency": "2026-11-06"
          },
          "last": "2026-11-06",
          "oldest": "2026-11-06",
          "stale": false,
          "staleAfterDays": 90
        }
      },
      "connect": {
        "http": "curl -X POST \"https://api.newscatcherapi.com/news-api/search\" \\\n  -H \"x-api-key: $NEWSCATCHER_API_KEY\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"q\": \"hurricane recovery florida\", \"limit\": 5}'",
        "claudeCode": "claude mcp add --transport http newscatcher https://mcp.newscatcherapi.com/mcp --header \"x-api-key: YOUR_API_KEY\"",
        "config": {
          "mcpServers": {
            "newscatcher": {
              "headers": {
                "x-api-key": "YOUR_API_KEY"
              },
              "url": "https://mcp.newscatcherapi.com/mcp"
            }
          }
        }
      },
      "letme": {
        "capability": "https://letme.dev/search.news",
        "tool": "https://letme.dev/newscatcher"
      },
      "area": "web-data",
      "unitPrices": [
        {
          "item": "News search, low effort",
          "unit": "1k-requests",
          "usd": 1,
          "note": "1 credit a search at $1 per 1,000 credits"
        },
        {
          "item": "News search, medium effort (default)",
          "unit": "1k-requests",
          "usd": 5,
          "note": "5 credits"
        },
        {
          "item": "News search, high effort",
          "unit": "1k-requests",
          "usd": 10,
          "note": "10 credits"
        },
        {
          "item": "Articles listing",
          "unit": "1k-requests",
          "usd": 5,
          "note": "5 credits a call per the docs; the pricing page says 15 a page"
        },
        {
          "item": "Agent event research, fast run",
          "unit": "tx",
          "usd": 1,
          "note": "1,000 credits, 50 rows included; standard $3, max $6"
        },
        {
          "item": "Credit",
          "unit": "credit",
          "usd": 0.001,
          "note": "Top-ups from $25 for 25,000 credits, valid 12 months"
        }
      ],
      "provenance": {
        "legalEntity": "NewsCatcher, Inc.",
        "domain": "newscatcherapi.com",
        "domainRegistered": "2020-02-16",
        "endpointOnVendorDomain": true,
        "terms": "https://www.newscatcherapi.com/company/legal/terms-and-conditions",
        "privacy": "https://www.newscatcherapi.com/company/legal/privacy-policy",
        "statusPage": "https://status.newscatcherapi.com/",
        "changelog": "https://www.newscatcherapi.com/docs/changelog",
        "securityTxt": "none",
        "checked": "2026-11-06",
        "notes": [
          "The service terms (Terms and Conditions) and the website Terms of Service are both dated 2 November 2026 and name NewsCatcher, Inc. under Delaware law.",
          "The website Terms of Service forbid using the site or its content 'to spam, phish, pharm, pretext, spider, crawl, or scrape'. Recorded as a fact; only public pages were read, within robots.txt.",
          "www.newscatcherapi.com/robots.txt disallows /~gitbook, /*?ref= and /api/ for all agents; none of the pages read is under those paths. status.newscatcherapi.com allows all.",
          "/.well-known/security.txt answers 404. The MCP repository's SECURITY.md takes private reports through GitHub with a 3-business-day acknowledgement target.",
          "Status page on Hyperping with one News API component, 99.820% uptime for August to November 2026 and one incident in the 90 days, on 1 September 2026.",
          "RDAP gives newscatcherapi.com a registration date of 16 February 2020."
        ],
        "score": 85
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/newscatcher.json",
      "live": {
        "slug": "newscatcher",
        "probe": {
          "target": "https://mcp.newscatcherapi.com/mcp",
          "method": "get",
          "lastAt": "2026-11-07T19:22:21.655083367Z",
          "lastOk": true,
          "lastStatus": 405,
          "lastMs": 181,
          "authRequired": false,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 169,
          "p95ms24h": 346,
          "samples24h": 210,
          "samples30d": 210,
          "days": [
            {
              "date": "2026-11-06",
              "probes": 13,
              "ok": 13
            },
            {
              "date": "2026-11-07",
              "probes": 197,
              "ok": 197
            }
          ]
        },
        "vendorStatus": {
          "page": "https://status.newscatcherapi.com",
          "indicator": "unknown",
          "summary": "no machine-readable status found",
          "checkedAt": "2026-11-07T04:48:15.638845153Z"
        },
        "githubStars": 0,
        "securityTxt": {
          "url": "https://newscatcherapi.com/.well-known/security.txt",
          "state": "none",
          "checkedAt": "2026-11-07T16:00:58.85886795Z"
        },
        "llmsTxt": {
          "url": "https://www.newscatcherapi.com/docs/llms.txt",
          "ok": true,
          "status": 200,
          "checkedAt": "2026-11-07T15:33:19.853404264Z"
        },
        "pages": [
          {
            "url": "https://www.newscatcherapi.com/docs/changelog",
            "kind": "changelog",
            "status": 200,
            "checkedAt": "2026-11-07T14:32:00.60078463Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "849b66383503"
          },
          {
            "url": "https://www.newscatcherapi.com/company/legal/privacy-policy",
            "kind": "privacy",
            "status": 200,
            "checkedAt": "2026-11-07T14:31:56.385466242Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "818e0cf9f82d"
          },
          {
            "url": "https://www.newscatcherapi.com/company/legal/terms-and-conditions",
            "kind": "terms",
            "status": 200,
            "checkedAt": "2026-11-07T14:31:58.548719689Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "79f84eff4353"
          }
        ],
        "mcpTools": {
          "url": "https://mcp.newscatcherapi.com/mcp",
          "checkedAt": "2026-11-07T01:46:25.078047109Z",
          "status": "auth",
          "note": "asks for credentials before listing its tools",
          "changedAt": "2026-11-07T01:46:25.078047109Z"
        },
        "updatedAt": "2026-11-07T19:22:21.655083367Z"
      }
    },
    "edges": [
      {
        "by": 35,
        "category": "maintenance",
        "leads": "newscatcher",
        "name": "Maintenance \u0026 community",
        "reasons": {
          "a": "The last dated API change is the Extract API fix in the changelog post of 21 August 2026, 75 days before this check. The posts of 10 September and 16 October carry no API item (20). That is the only dated API entry in the 90 days from 6 August (0). The MCP server's repository gained commits on 27 and 28 October 2026 (compact JSON results, `readOnlyHint`, per-page extraction errors) and a version bump to 1.1.0 with no tag, so no release is shown; PyPI didn't resolve for us. A public changelog that credits user reports, developers@kagi.com, a Discord `#api` forum and GitHub discussions. We could not read the issue list, since the GitHub API answered 403 (9). Four generated clients last synced on 26 May 2026, Python tagged only as 1.0.0rc3, TypeScript not on npm on 9 October, and `kagimcp` tagged last as v0.1.5 (8 April 2026). We did not look the server up in the MCP registry (8). The Python client has a generated CI workflow and the MCP server has a lock file but no CI workflow (4). 20 + 0 + 9 + 8 + 4 = 41.",
          "b": "Read for a closed service, with the MCP repository read as code. News API 1.1.0 and Agent 1.5.0 on 4 November 2026, MCP server 0.1.0 on 6 November and v3 News API 3.25.0 on 6 November (30). In the 90 days from 8 August, the 30 October launch, News API 1.1.0, Agent 1.5.0, MCP 0.1.0 and v3 releases 3.19.0 to 3.25.0 (20). Public dated changelogs, support by email and Pylon, and a security policy with a 3-business-day target. The MCP repository is a day old, so there are no issues to judge (10 of 15). The CatchAll MCP server is in the official registry under the verified namespace com.newscatcherapi, but the new server isn't, and no official SDK for the current API was found; the Enterprise APIs list libraries (8 of 15). The MCP repository runs its test suite in CI with a read-only token; pass state not read (8 of 10). 30 + 20 + 10 + 8 + 8 = 76."
        },
        "scores": {
          "a": 41,
          "b": 76
        }
      },
      {
        "by": 24,
        "category": "reliability",
        "leads": "newscatcher",
        "name": "Reliability",
        "reasons": {
          "a": "Status page at status.kagi.com (Instatus), found through a web search on 4 November, with a Kagi API group of nine regional components such as `[API] us-east4` and `[API] europe-west2`, and history back to 2025 (20). In the 90 days from 6 August its feed and incident list show `[API]` incidents on single regions only. us-central1 on 12 September (1 hour 3 minutes), 19 September, 12 October and 19 October (2 to 3 minutes each), europe-west2 on 19 October (1 minute) and 20 October (8 hours 11 minutes, the region taken out of the global load balancer), asia-east2 on 30 September (4 minutes), australia-southeast1 on 11 September (1 minute) and asia-southeast1 on 7 August (about a minute). Each hit one region of nine, so all read as partial and the record is minor incidents only (20). The six 'API outage' entries (10, 20 and 26 August, two on 14 October and 22 October, 5 to 21 minutes each) name the API component of the Kagi Assistant group, not the Search API, and the 27 September database maintenance had an announced window. No rate limit numbers are published. The terms say only that limits and quotas apply per plan (0). The OpenAPI file documents 429 as 'Rate limited or usage limit exhausted' with no `Retry-After` header or backoff guidance. The calls are read-only, and Kagi's own MCP server retries 429 and 5xx twice by default (3). The pricing page lists SLAs under Enterprise by quote, and the API terms say there is no uptime or service-level commitment unless agreed in writing (0). The OpenAPI file still describes a preview period (0). 20 + 20 + 0 + 3 + 0 + 0 = 43.",
          "b": "Read with the hosted lines, for the News API, the agent and the hosted MCP server. status.newscatcherapi.com (Hyperping) shows one News API component with 99.820% uptime from August to November 2026 and an incident history. The agent and the MCP server have no component of their own (20). In the 90 days from 8 August, one incident, on 1 September 2026, when the vendor wrote that for about four hours a higher-than-usual number of requests to the production News API timed out because of one client's queries. Read as one major (10). Rate limits published per plan, 1 request a second free and up to 10 on pay as you go, with exact limits from the free `GET /subscription` (15). 429 carries Retry-After with instructions to retry the same request, 503 carries Retry-After, and failed or refused requests are not charged. Agent runs and monitor creation have no idempotency keys (12 of 15). An uptime SLA exists only in signed Enterprise agreements; none is published (0). Generally available since 30 October 2026, with OAuth for the MCP server announced as coming soon (10). 20 + 10 + 15 + 12 + 0 + 10 = 67."
        },
        "scores": {
          "a": 43,
          "b": 67
        }
      },
      {
        "by": 23,
        "category": "schema",
        "leads": "newscatcher",
        "name": "Schema \u0026 documentation",
        "reasons": {
          "a": "Public OpenAPI 3.0 file at kagi.com/api/docs/_spec/openapi.yaml, linked as 'OpenAPI Spec' from the API overview page (25). No llms.txt on kagi.com or help.kagi.com, both 404. The docs' Markdown source is in a public GitHub repository, which is not the same as serving it to agents (0). Parameter descriptions say what each does and which option wins when lens, filters and query operators overlap, and the MCP tool says when to pick each workflow (14). Enums for `workflow`, `format`, `time_relative` and rule kinds, ranges on `page`, `limit`, `timeout` and `extract.count`, and one required field. Result `props` and `meta` are open objects (13). Three request examples with full responses and one 401 example. The error envelope is typed, but there is no list of error codes, and the file says its error documentation URLs return 404 for now (9). The path carries `/v1` and v0 is documented as legacy. The changelog is product-wide, with API items on 21 May, 16 June and 21 August 2026 and none in the 10 September or 16 October posts (10). 25 + 0 + 14 + 13 + 9 + 10 = 71.",
          "b": "OpenAPI 3.1 for the News API (version 1.3.9, 4 paths) and the agent (version 1.5.1, 33 paths), linked from llms.txt, and typed JSON Schema on every MCP tool through Pydantic (25). llms.txt, a Markdown copy of every page and a docs MCP server (10). MCP tool descriptions say when to use each and which tool to use instead, such as `list_articles` for older news; the REST reference explains each endpoint and the 'Choose an API' page compares them (17 of 20). Inputs are typed with enums for effort, mode and dimensions, length and range limits such as a 500-character query and limit 1 to 100, and required fields marked (13 of 15). Runnable examples in curl, Python and JavaScript, and an error table with retry advice for every status. The agent spec carries no response examples (14 of 15). Versioned APIs with a dated changelog, the latest entries on 4 November 2026, and separate changelogs for the v3 News API and CatchAll (15). 25 + 10 + 17 + 13 + 14 + 15 = 94."
        },
        "scores": {
          "a": 71,
          "b": 94
        }
      },
      {
        "by": 19,
        "category": "security",
        "leads": "kagi-search",
        "name": "Security \u0026 auth",
        "reasons": {
          "a": "Several named keys an account, each limited to chosen products and optionally to IP addresses or ranges, revoked by deleting. The v1 key travels only in the `Authorization` header. No expiry or OAuth (27). The API only reads. Per-key product limits and a spending cap in USD narrow what a leaked key can do (16). Search and Extract return third-party page text, and we found no prompt-injection guidance in the reference, the docs or the MCP README (2). The portal shows use count and last-used time per key and requests and cost per day per API, and every response carries a trace ID. No per-call log (7). security.txt with a contact, a bug bounty with a safe harbour policy, and an independent audit by Illumant cited on the security page, whose date we did not read. No SOC 2 or ISO 27001 statement found. security.txt re-read on 4 November (12). 27 + 16 + 2 + 7 + 12 = 64.",
          "b": "API keys in the `x-api-key` header, several per account, revocable in the platform, with advice to keep one per application. A 403 for 'a key that may not use this API' suggests per-key API access, but no scopes are documented (20). The MCP server documents `?apiKey=` on the server URL for Claude.ai custom connectors, with a warning, so less 10 (10 of 30). The MCP repository's SECURITY.md says URL keys are rejected unless the operator enables them, which the hosted server does per the docs. Toolsets let an operator load only the read-only `news` tools, write tools carry destructiveHint, and the server tells the assistant to confirm large or hourly agent jobs (14 of 20). Results are third-party article text and summaries, and no prompt-injection guidance was found in the docs or the MCP server's instructions (0 of 15). Every response carries a Correlation-ID, `GET /subscription` shows usage and balance, and runs are listed in the platform. No per-call audit log for the customer was found (7 of 15). The security page and footer claim SOC 2 Type II and link a trust centre on Oneleet, which wasn't read. A vulnerability disclosure policy covers the MCP server. No security.txt (404) and no bug bounty found (14 of 20). 10 + 14 + 0 + 7 + 14 = 45."
        },
        "scores": {
          "a": 64,
          "b": 45
        }
      },
      {
        "by": 10,
        "category": "payments",
        "leads": "newscatcher",
        "name": "Payments \u0026 pricing",
        "reasons": {
          "a": "No x402, MPP or L402 (0). $12 per 1,000 searches and $4 per 1,000 extracted pages, published without a login, unchanged on 4 November (20). No free tier or trial for the API. The quick start asks for a payment method, and the $5 credit of 21 May 2026 was a one-off for subscribers (0). A person signs up in a browser and creates the key in the portal (0). 0 + 20 + 0 + 0 = 20.",
          "b": "No x402, MPP or L402 (0). Credit prices per call published without login, and credits cost $1 per 1,000 through top-ups from $25 (20). 10,000 free credits every 30 days on a $0 plan, and the first top-up moves an account to pay as you go. No page says whether a card is needed to open the free plan, so half (10). A person signs up in the platform in a browser to get a key (0). NewsMCP's keyless tier belongs to a separate product and isn't counted. 0 + 20 + 10 + 0 = 30."
        },
        "scores": {
          "a": 20,
          "b": 30
        }
      },
      {
        "by": 9,
        "category": "ergonomics",
        "leads": "newscatcher",
        "name": "Agent ergonomics",
        "reasons": {
          "a": "`limit` caps results, extraction of page text is opt-in, snippet length follows an account setting, and an experimental Markdown response format exists. The MCP server has two tools (22). `page` 1 to 10, `limit` 1 to 1,024, lens and `filters` for domains, keywords, file type, dates and region (20). Errors return a namespaced `code`, a message, the field `location` and a trace ID, but no code catalogue is published and the linked error pages are not live (12). Both operations are read-only, so a retry is safe, though the docs do not say so and failed-call billing is stated only for extraction. The released MCP server sets no read-only annotations. A commit of 27 October adds `readOnlyHint` to its source with an untagged 1.1.0 version bump, not yet shown as released (10). Only `query` is required and defaults are stated. Generated clients exist for Python, TypeScript, Go and Rust, installable from GitHub. `@kagi/api` returned 404 on npm on 9 October (11). 22 + 20 + 12 + 10 + 11 = 75.",
          "b": "15 MCP tools in four toolsets, chosen per connection with `?tools=`, and tools return compact text rather than the full JSON. 15 for 11 to 30 tools plus 7 for toolsets (22 of 25). `limit`, `search_window`, effort, language, country, publisher, coverage and content-type filters, sorting, and paging on `/articles`; agent tables come back up to 200 rows at a time over MCP (20). Every status is documented with whether to retry; the agent returns stable `code` values, while the News API body has a `status_code` and a message meant for people (17 of 20). Every tool carries readOnlyHint and idempotentHint, writes carry destructiveHint, `start_research` has a free `dry_run`, and refused or failed calls aren't charged. No idempotency key for starting runs (17 of 20). Only `q` is required, with medium effort and a 7-day window as defaults. No official SDK for the current API was found; the docs show raw HTTP in three languages (8 of 15). 22 + 20 + 17 + 17 + 8 = 84."
        },
        "scores": {
          "a": 75,
          "b": 84
        }
      }
    ],
    "facts": [
      {
        "a": "HTTP API",
        "b": "HTTP API",
        "name": "Kind"
      },
      {
        "a": "Kagi",
        "b": "NewsCatcher, Inc.",
        "name": "Vendor"
      },
      {
        "a": "https://kagi.com/api/v1/search",
        "b": "https://mcp.newscatcherapi.com/mcp",
        "name": "Hosted endpoint"
      },
      {
        "a": "HTTP, Streamable HTTP, stdio",
        "b": "Streamable HTTP",
        "name": "Transports"
      },
      {
        "a": "API key",
        "b": "API key",
        "name": "Auth"
      },
      {
        "a": "Pay per use",
        "b": "Pay per use",
        "name": "Pricing"
      },
      {
        "a": "$12 per 1,000 requests",
        "b": "$1 per 1,000 requests",
        "name": "Price for web search"
      },
      {
        "a": "no",
        "b": "no",
        "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": "none",
        "name": "Licence"
      },
      {
        "a": "none",
        "b": "15",
        "name": "Tools exposed"
      },
      {
        "a": "no",
        "b": "yes",
        "name": "Read-only variant documented"
      },
      {
        "a": "no",
        "b": "yes",
        "name": "llms.txt"
      },
      {
        "a": "2026-08-21",
        "b": "2026-11-06",
        "name": "Last release"
      },
      {
        "a": "2026-09-22",
        "b": "2026-11-02",
        "name": "Terms last updated"
      },
      {
        "a": "no date given",
        "b": "2026-11-02",
        "name": "Privacy policy last updated"
      },
      {
        "a": "not found in the text",
        "b": "yes",
        "name": "Customer content may train models"
      },
      {
        "a": "yes",
        "b": "not found in the text",
        "name": "Terms restrict automated access"
      },
      {
        "a": "yes",
        "b": "not found in the text",
        "name": "Terms restrict benchmarking"
      },
      {
        "a": "not found in the text",
        "b": "not found in the text",
        "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": "none",
        "name": "Popularity"
      }
    ],
    "faq": [
      {
        "answer": "NewsCatcher scores 67.5 (B) on agent readiness against Kagi Search API's 56.1 (C), and leads in 6 of 7 scored categories. Kagi Search API leads on security \u0026 auth.",
        "question": "Which is better for AI agents, Kagi Search API or NewsCatcher?"
      },
      {
        "answer": "NewsCatcher, at $1 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 NewsCatcher?"
      },
      {
        "answer": "Both need an API key.",
        "question": "Do Kagi Search API and NewsCatcher need an API key?"
      },
      {
        "answer": "Yes. Kagi Search API has a hosted endpoint at https://kagi.com/api/v1/search and NewsCatcher at https://mcp.newscatcherapi.com/mcp.",
        "question": "Can an agent call Kagi Search API and NewsCatcher without installing anything?"
      }
    ],
    "goodFor": [
      {
        "aheadOn": [
          "Security \u0026 auth, 64 against 45"
        ],
        "also": [
          "Runs on your own machine"
        ],
        "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, 67 against 43",
          "Schema \u0026 documentation, 94 against 71",
          "Agent ergonomics, 84 against 75",
          "Payments \u0026 pricing, 30 against 20",
          "Maintenance \u0026 community, 76 against 41",
          "Transparency \u0026 trust, 79 against 74"
        ],
        "also": [
          "Cheaper for web search, $1 against $12 per 1,000 requests"
        ],
        "goodFor": "Agents that need current news across languages, grouped into stories, or tables of events and company news on a schedule.",
        "slug": "newscatcher",
        "watchFor": "The current News API and agent launched on 30 October 2026 and the MCP repository went public on 6 November 2026"
      }
    ],
    "history": {
      "kagi-search": [
        {
          "causes": [
            "evidence"
          ],
          "date": "2026-11-04",
          "delta": 7.4,
          "from": 48.7,
          "fromGrade": "D",
          "to": 56.1,
          "toGrade": "C"
        },
        {
          "causes": [
            "method"
          ],
          "date": "2026-10-27",
          "delta": 0,
          "from": 48.7,
          "fromGrade": "D",
          "to": 48.7,
          "toGrade": "D"
        }
      ],
      "newscatcher": null
    },
    "job": {
      "capability": "web.search",
      "name": "Web search"
    },
    "others": [
      {
        "json": "https://www.anchorterminal.com/compare/agentcore-web-search-vs-kagi-search.json",
        "title": "Web Search Tool on Amazon Bedrock AgentCore vs Kagi Search API",
        "url": "https://www.anchorterminal.com/compare/agentcore-web-search-vs-kagi-search"
      },
      {
        "json": "https://www.anchorterminal.com/compare/agentcore-web-search-vs-newscatcher.json",
        "title": "Web Search Tool on Amazon Bedrock AgentCore vs NewsCatcher",
        "url": "https://www.anchorterminal.com/compare/agentcore-web-search-vs-newscatcher"
      },
      {
        "json": "https://www.anchorterminal.com/compare/arcmira-vs-kagi-search.json",
        "title": "Arcmira vs Kagi Search API",
        "url": "https://www.anchorterminal.com/compare/arcmira-vs-kagi-search"
      },
      {
        "json": "https://www.anchorterminal.com/compare/bing-grounding-vs-kagi-search.json",
        "title": "Grounding with Bing Search vs Kagi Search API",
        "url": "https://www.anchorterminal.com/compare/bing-grounding-vs-kagi-search"
      },
      {
        "json": "https://www.anchorterminal.com/compare/bing-grounding-vs-newscatcher.json",
        "title": "Grounding with Bing Search vs NewsCatcher",
        "url": "https://www.anchorterminal.com/compare/bing-grounding-vs-newscatcher"
      },
      {
        "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-newscatcher.json",
        "title": "Brave Search API + MCP vs NewsCatcher",
        "url": "https://www.anchorterminal.com/compare/brave-search-mcp-vs-newscatcher"
      },
      {
        "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-newscatcher.json",
        "title": "Cloudflare Web Search API vs NewsCatcher",
        "url": "https://www.anchorterminal.com/compare/cloudflare-web-search-vs-newscatcher"
      },
      {
        "json": "https://www.anchorterminal.com/compare/deepseek-search-api-vs-kagi-search.json",
        "title": "DeepSeek Search and Fetch API vs Kagi Search API",
        "url": "https://www.anchorterminal.com/compare/deepseek-search-api-vs-kagi-search"
      },
      {
        "json": "https://www.anchorterminal.com/compare/deepseek-search-api-vs-newscatcher.json",
        "title": "DeepSeek Search and Fetch API vs NewsCatcher",
        "url": "https://www.anchorterminal.com/compare/deepseek-search-api-vs-newscatcher"
      },
      {
        "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-newscatcher.json",
        "title": "Exa API + MCP vs NewsCatcher",
        "url": "https://www.anchorterminal.com/compare/exa-mcp-vs-newscatcher"
      },
      {
        "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/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-mojeek.json",
        "title": "Kagi Search API vs Mojeek Web Search API",
        "url": "https://www.anchorterminal.com/compare/kagi-search-vs-mojeek"
      },
      {
        "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-perplexity-search-api.json",
        "title": "Kagi Search API vs Perplexity Search API",
        "url": "https://www.anchorterminal.com/compare/kagi-search-vs-perplexity-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-serphouse.json",
        "title": "Kagi Search API vs SERPHouse",
        "url": "https://www.anchorterminal.com/compare/kagi-search-vs-serphouse"
      },
      {
        "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-specstream.json",
        "title": "Kagi Search API vs SpecStream",
        "url": "https://www.anchorterminal.com/compare/kagi-search-vs-specstream"
      },
      {
        "json": "https://www.anchorterminal.com/compare/kagi-search-vs-tavily-mcp.json",
        "title": "Kagi Search API vs Tavily API + MCP",
        "url": "https://www.anchorterminal.com/compare/kagi-search-vs-tavily-mcp"
      },
      {
        "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-newscatcher.json",
        "title": "Linkup vs NewsCatcher",
        "url": "https://www.anchorterminal.com/compare/linkup-vs-newscatcher"
      },
      {
        "json": "https://www.anchorterminal.com/compare/mojeek-vs-newscatcher.json",
        "title": "Mojeek Web Search API vs NewsCatcher",
        "url": "https://www.anchorterminal.com/compare/mojeek-vs-newscatcher"
      },
      {
        "json": "https://www.anchorterminal.com/compare/newscatcher-vs-parallel-search-api.json",
        "title": "NewsCatcher vs Parallel Search and Task APIs",
        "url": "https://www.anchorterminal.com/compare/newscatcher-vs-parallel-search-api"
      },
      {
        "json": "https://www.anchorterminal.com/compare/newscatcher-vs-perplexity-search-api.json",
        "title": "NewsCatcher vs Perplexity Search API",
        "url": "https://www.anchorterminal.com/compare/newscatcher-vs-perplexity-search-api"
      },
      {
        "json": "https://www.anchorterminal.com/compare/newscatcher-vs-tinyfish-search.json",
        "title": "NewsCatcher vs TinyFish Search",
        "url": "https://www.anchorterminal.com/compare/newscatcher-vs-tinyfish-search"
      },
      {
        "json": "https://www.anchorterminal.com/compare/arcmira-vs-newscatcher.json",
        "title": "Arcmira vs NewsCatcher",
        "url": "https://www.anchorterminal.com/compare/arcmira-vs-newscatcher"
      },
      {
        "json": "https://www.anchorterminal.com/compare/grep-ai-vs-newscatcher.json",
        "title": "Grep AI vs NewsCatcher",
        "url": "https://www.anchorterminal.com/compare/grep-ai-vs-newscatcher"
      },
      {
        "json": "https://www.anchorterminal.com/compare/liner-mcp-vs-newscatcher.json",
        "title": "Liner Search MCP vs NewsCatcher",
        "url": "https://www.anchorterminal.com/compare/liner-mcp-vs-newscatcher"
      },
      {
        "json": "https://www.anchorterminal.com/compare/newscatcher-vs-specstream.json",
        "title": "NewsCatcher vs SpecStream",
        "url": "https://www.anchorterminal.com/compare/newscatcher-vs-specstream"
      },
      {
        "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/newscatcher-vs-searchapi-io.json",
        "title": "NewsCatcher vs SearchAPI.io",
        "url": "https://www.anchorterminal.com/compare/newscatcher-vs-searchapi-io"
      },
      {
        "json": "https://www.anchorterminal.com/compare/newscatcher-vs-serpapi.json",
        "title": "NewsCatcher vs SerpApi",
        "url": "https://www.anchorterminal.com/compare/newscatcher-vs-serpapi"
      },
      {
        "json": "https://www.anchorterminal.com/compare/newscatcher-vs-serper.json",
        "title": "NewsCatcher vs Serper",
        "url": "https://www.anchorterminal.com/compare/newscatcher-vs-serper"
      },
      {
        "json": "https://www.anchorterminal.com/compare/newscatcher-vs-serphouse.json",
        "title": "NewsCatcher vs SERPHouse",
        "url": "https://www.anchorterminal.com/compare/newscatcher-vs-serphouse"
      },
      {
        "json": "https://www.anchorterminal.com/compare/newscatcher-vs-serpkite.json",
        "title": "NewsCatcher vs SerpKite",
        "url": "https://www.anchorterminal.com/compare/newscatcher-vs-serpkite"
      },
      {
        "json": "https://www.anchorterminal.com/compare/newscatcher-vs-tavily-mcp.json",
        "title": "NewsCatcher vs Tavily API + MCP",
        "url": "https://www.anchorterminal.com/compare/newscatcher-vs-tavily-mcp"
      },
      {
        "json": "https://www.anchorterminal.com/compare/newscatcher-vs-valyu.json",
        "title": "NewsCatcher vs Valyu",
        "url": "https://www.anchorterminal.com/compare/newscatcher-vs-valyu"
      },
      {
        "json": "https://www.anchorterminal.com/compare/newscatcher-vs-you-com-api.json",
        "title": "NewsCatcher vs You.com APIs",
        "url": "https://www.anchorterminal.com/compare/newscatcher-vs-you-com-api"
      }
    ],
    "panel": null,
    "scores": [
      {
        "by": 24,
        "edge": "newscatcher",
        "kagi-search": 43,
        "key": "reliability",
        "name": "Reliability",
        "newscatcher": 67,
        "weight": 16
      },
      {
        "key": "performance",
        "name": "Performance",
        "pending": true,
        "weight": 10
      },
      {
        "by": 23,
        "edge": "newscatcher",
        "kagi-search": 71,
        "key": "schema",
        "name": "Schema \u0026 documentation",
        "newscatcher": 94,
        "weight": 13
      },
      {
        "by": 9,
        "edge": "newscatcher",
        "kagi-search": 75,
        "key": "ergonomics",
        "name": "Agent ergonomics",
        "newscatcher": 84,
        "weight": 13
      },
      {
        "by": 19,
        "edge": "kagi-search",
        "kagi-search": 64,
        "key": "security",
        "name": "Security \u0026 auth",
        "newscatcher": 45,
        "weight": 14
      },
      {
        "by": 10,
        "edge": "newscatcher",
        "kagi-search": 20,
        "key": "payments",
        "name": "Payments \u0026 pricing",
        "newscatcher": 30,
        "weight": 10
      },
      {
        "key": "tasks",
        "name": "Task success",
        "pending": true,
        "weight": 10
      },
      {
        "by": 35,
        "edge": "newscatcher",
        "kagi-search": 41,
        "key": "maintenance",
        "name": "Maintenance \u0026 community",
        "newscatcher": 76,
        "weight": 7
      },
      {
        "by": 5,
        "edge": "newscatcher",
        "kagi-search": 74,
        "key": "transparency",
        "name": "Transparency \u0026 trust",
        "newscatcher": 79,
        "weight": 7
      }
    ],
    "summary": "NewsCatcher scores 67.5 (B) on agent readiness against Kagi Search API's 56.1 (C), and leads in 6 of 7 scored categories. Kagi Search API leads on security \u0026 auth. Both do web search. NewsCatcher is cheaper for web search, $1 against $12 per 1,000 requests.",
    "tasks": null,
    "tutorials": [],
    "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 is still a public preview, with no published rate limits and no free allowance, and the terms forbid storing results. Its status page logged only regional incidents since August.",
      "newscatcher": "One key and one credit balance cover a ranked news search, a background research agent and a hosted MCP server with toolsets and annotated tools, under OpenAPI 3.1 specs and a dated changelog. The current API launched on 30 October 2026, the MCP server accepts the key in its URL, and no SLA is published below Enterprise."
    }
  },
  "kind": "anchor.page",
  "links": {
    "api": "https://www.anchorterminal.com/api/v1/index.json",
    "html": "https://www.anchorterminal.com/compare/kagi-search-vs-newscatcher",
    "json": "https://www.anchorterminal.com/compare/kagi-search-vs-newscatcher.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/compare/kagi-search-vs-newscatcher.md",
    "mcp": "https://www.anchorterminal.com/mcp",
    "slim": "https://www.anchorterminal.com/compare/kagi-search-vs-newscatcher.min.md"
  },
  "markdown": "NewsCatcher scores 67.5 (B) on agent readiness against Kagi Search API's 56.1 (C), and leads in 6 of 7 scored categories. Kagi Search API leads on security \u0026 auth. Both do web search. NewsCatcher is cheaper for web search, $1 against $12 per 1,000 requests.\n\n- Kagi Search API: grade C, 56.1/100, rank #846 of 1510. Markdown https://www.anchorterminal.com/tools/kagi-search.md · JSON https://www.anchorterminal.com/api/v1/tools/kagi-search.json\n- NewsCatcher: grade B, 67.5/100, rank #322 of 1510. Markdown https://www.anchorterminal.com/tools/newscatcher.md · JSON https://www.anchorterminal.com/api/v1/tools/newscatcher.json\n- Best web search APIs for AI agents: https://www.anchorterminal.com/best/search/index.md\n- All 326 search comparisons: https://www.anchorterminal.com/compare/search/index.md\n\n## Which one, for what\n\n### Kagi Search API (C)\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 45\n\nAlso in its favour:\n- Runs on your own machine\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### NewsCatcher (B)\n\nGood for: Agents that need current news across languages, grouped into stories, or tables of events and company news on a schedule.\n\nAhead on:\n- Reliability, 67 against 43\n- Schema \u0026 documentation, 94 against 71\n- Agent ergonomics, 84 against 75\n- Payments \u0026 pricing, 30 against 20\n- Maintenance \u0026 community, 76 against 41\n- Transparency \u0026 trust, 79 against 74\n\nAlso in its favour:\n- Cheaper for web search, $1 against $12 per 1,000 requests\n\nWatch for: The current News API and agent launched on 30 October 2026 and the MCP repository went public on 6 November 2026\n\n\n## Why the edge\n\n### Maintenance \u0026 community: NewsCatcher +35\n\n- Kagi Search API (41): The last dated API change is the Extract API fix in the changelog post of 21 August 2026, 75 days before this check. The posts of 10 September and 16 October carry no API item (20). That is the only dated API entry in the 90 days from 6 August (0). The MCP server's repository gained commits on 27 and 28 October 2026 (compact JSON results, `readOnlyHint`, per-page extraction errors) and a version bump to 1.1.0 with no tag, so no release is shown; PyPI didn't resolve for us. A public changelog that credits user reports, developers@kagi.com, a Discord `#api` forum and GitHub discussions. We could not read the issue list, since the GitHub API answered 403 (9). Four generated clients last synced on 26 May 2026, Python tagged only as 1.0.0rc3, TypeScript not on npm on 9 October, and `kagimcp` tagged last as v0.1.5 (8 April 2026). We did not look the server up in the MCP registry (8). The Python client has a generated CI workflow and the MCP server has a lock file but no CI workflow (4). 20 + 0 + 9 + 8 + 4 = 41.\n- NewsCatcher (76): Read for a closed service, with the MCP repository read as code. News API 1.1.0 and Agent 1.5.0 on 4 November 2026, MCP server 0.1.0 on 6 November and v3 News API 3.25.0 on 6 November (30). In the 90 days from 8 August, the 30 October launch, News API 1.1.0, Agent 1.5.0, MCP 0.1.0 and v3 releases 3.19.0 to 3.25.0 (20). Public dated changelogs, support by email and Pylon, and a security policy with a 3-business-day target. The MCP repository is a day old, so there are no issues to judge (10 of 15). The CatchAll MCP server is in the official registry under the verified namespace com.newscatcherapi, but the new server isn't, and no official SDK for the current API was found; the Enterprise APIs list libraries (8 of 15). The MCP repository runs its test suite in CI with a read-only token; pass state not read (8 of 10). 30 + 20 + 10 + 8 + 8 = 76.\n\n### Reliability: NewsCatcher +24\n\n- Kagi Search API (43): Status page at status.kagi.com (Instatus), found through a web search on 4 November, with a Kagi API group of nine regional components such as `[API] us-east4` and `[API] europe-west2`, and history back to 2025 (20). In the 90 days from 6 August its feed and incident list show `[API]` incidents on single regions only. us-central1 on 12 September (1 hour 3 minutes), 19 September, 12 October and 19 October (2 to 3 minutes each), europe-west2 on 19 October (1 minute) and 20 October (8 hours 11 minutes, the region taken out of the global load balancer), asia-east2 on 30 September (4 minutes), australia-southeast1 on 11 September (1 minute) and asia-southeast1 on 7 August (about a minute). Each hit one region of nine, so all read as partial and the record is minor incidents only (20). The six 'API outage' entries (10, 20 and 26 August, two on 14 October and 22 October, 5 to 21 minutes each) name the API component of the Kagi Assistant group, not the Search API, and the 27 September database maintenance had an announced window. No rate limit numbers are published. The terms say only that limits and quotas apply per plan (0). The OpenAPI file documents 429 as 'Rate limited or usage limit exhausted' with no `Retry-After` header or backoff guidance. The calls are read-only, and Kagi's own MCP server retries 429 and 5xx twice by default (3). The pricing page lists SLAs under Enterprise by quote, and the API terms say there is no uptime or service-level commitment unless agreed in writing (0). The OpenAPI file still describes a preview period (0). 20 + 20 + 0 + 3 + 0 + 0 = 43.\n- NewsCatcher (67): Read with the hosted lines, for the News API, the agent and the hosted MCP server. status.newscatcherapi.com (Hyperping) shows one News API component with 99.820% uptime from August to November 2026 and an incident history. The agent and the MCP server have no component of their own (20). In the 90 days from 8 August, one incident, on 1 September 2026, when the vendor wrote that for about four hours a higher-than-usual number of requests to the production News API timed out because of one client's queries. Read as one major (10). Rate limits published per plan, 1 request a second free and up to 10 on pay as you go, with exact limits from the free `GET /subscription` (15). 429 carries Retry-After with instructions to retry the same request, 503 carries Retry-After, and failed or refused requests are not charged. Agent runs and monitor creation have no idempotency keys (12 of 15). An uptime SLA exists only in signed Enterprise agreements; none is published (0). Generally available since 30 October 2026, with OAuth for the MCP server announced as coming soon (10). 20 + 10 + 15 + 12 + 0 + 10 = 67.\n\n### Schema \u0026 documentation: NewsCatcher +23\n\n- Kagi Search API (71): Public OpenAPI 3.0 file at kagi.com/api/docs/_spec/openapi.yaml, linked as 'OpenAPI Spec' from the API overview page (25). No llms.txt on kagi.com or help.kagi.com, both 404. The docs' Markdown source is in a public GitHub repository, which is not the same as serving it to agents (0). Parameter descriptions say what each does and which option wins when lens, filters and query operators overlap, and the MCP tool says when to pick each workflow (14). Enums for `workflow`, `format`, `time_relative` and rule kinds, ranges on `page`, `limit`, `timeout` and `extract.count`, and one required field. Result `props` and `meta` are open objects (13). Three request examples with full responses and one 401 example. The error envelope is typed, but there is no list of error codes, and the file says its error documentation URLs return 404 for now (9). The path carries `/v1` and v0 is documented as legacy. The changelog is product-wide, with API items on 21 May, 16 June and 21 August 2026 and none in the 10 September or 16 October posts (10). 25 + 0 + 14 + 13 + 9 + 10 = 71.\n- NewsCatcher (94): OpenAPI 3.1 for the News API (version 1.3.9, 4 paths) and the agent (version 1.5.1, 33 paths), linked from llms.txt, and typed JSON Schema on every MCP tool through Pydantic (25). llms.txt, a Markdown copy of every page and a docs MCP server (10). MCP tool descriptions say when to use each and which tool to use instead, such as `list_articles` for older news; the REST reference explains each endpoint and the 'Choose an API' page compares them (17 of 20). Inputs are typed with enums for effort, mode and dimensions, length and range limits such as a 500-character query and limit 1 to 100, and required fields marked (13 of 15). Runnable examples in curl, Python and JavaScript, and an error table with retry advice for every status. The agent spec carries no response examples (14 of 15). Versioned APIs with a dated changelog, the latest entries on 4 November 2026, and separate changelogs for the v3 News API and CatchAll (15). 25 + 10 + 17 + 13 + 14 + 15 = 94.\n\n### Security \u0026 auth: Kagi Search API +19\n\n- Kagi Search API (64): Several named keys an account, each limited to chosen products and optionally to IP addresses or ranges, revoked by deleting. The v1 key travels only in the `Authorization` header. No expiry or OAuth (27). The API only reads. Per-key product limits and a spending cap in USD narrow what a leaked key can do (16). Search and Extract return third-party page text, and we found no prompt-injection guidance in the reference, the docs or the MCP README (2). The portal shows use count and last-used time per key and requests and cost per day per API, and every response carries a trace ID. No per-call log (7). security.txt with a contact, a bug bounty with a safe harbour policy, and an independent audit by Illumant cited on the security page, whose date we did not read. No SOC 2 or ISO 27001 statement found. security.txt re-read on 4 November (12). 27 + 16 + 2 + 7 + 12 = 64.\n- NewsCatcher (45): API keys in the `x-api-key` header, several per account, revocable in the platform, with advice to keep one per application. A 403 for 'a key that may not use this API' suggests per-key API access, but no scopes are documented (20). The MCP server documents `?apiKey=` on the server URL for Claude.ai custom connectors, with a warning, so less 10 (10 of 30). The MCP repository's SECURITY.md says URL keys are rejected unless the operator enables them, which the hosted server does per the docs. Toolsets let an operator load only the read-only `news` tools, write tools carry destructiveHint, and the server tells the assistant to confirm large or hourly agent jobs (14 of 20). Results are third-party article text and summaries, and no prompt-injection guidance was found in the docs or the MCP server's instructions (0 of 15). Every response carries a Correlation-ID, `GET /subscription` shows usage and balance, and runs are listed in the platform. No per-call audit log for the customer was found (7 of 15). The security page and footer claim SOC 2 Type II and link a trust centre on Oneleet, which wasn't read. A vulnerability disclosure policy covers the MCP server. No security.txt (404) and no bug bounty found (14 of 20). 10 + 14 + 0 + 7 + 14 = 45.\n\n### Payments \u0026 pricing: NewsCatcher +10\n\n- Kagi Search API (20): No x402, MPP or L402 (0). $12 per 1,000 searches and $4 per 1,000 extracted pages, published without a login, unchanged on 4 November (20). No free tier or trial for the API. The quick start asks for a payment method, and the $5 credit of 21 May 2026 was a one-off for subscribers (0). A person signs up in a browser and creates the key in the portal (0). 0 + 20 + 0 + 0 = 20.\n- NewsCatcher (30): No x402, MPP or L402 (0). Credit prices per call published without login, and credits cost $1 per 1,000 through top-ups from $25 (20). 10,000 free credits every 30 days on a $0 plan, and the first top-up moves an account to pay as you go. No page says whether a card is needed to open the free plan, so half (10). A person signs up in the platform in a browser to get a key (0). NewsMCP's keyless tier belongs to a separate product and isn't counted. 0 + 20 + 10 + 0 = 30.\n\n### Agent ergonomics: NewsCatcher +9\n\n- Kagi Search API (75): `limit` caps results, extraction of page text is opt-in, snippet length follows an account setting, and an experimental Markdown response format exists. The MCP server has two tools (22). `page` 1 to 10, `limit` 1 to 1,024, lens and `filters` for domains, keywords, file type, dates and region (20). Errors return a namespaced `code`, a message, the field `location` and a trace ID, but no code catalogue is published and the linked error pages are not live (12). Both operations are read-only, so a retry is safe, though the docs do not say so and failed-call billing is stated only for extraction. The released MCP server sets no read-only annotations. A commit of 27 October adds `readOnlyHint` to its source with an untagged 1.1.0 version bump, not yet shown as released (10). Only `query` is required and defaults are stated. Generated clients exist for Python, TypeScript, Go and Rust, installable from GitHub. `@kagi/api` returned 404 on npm on 9 October (11). 22 + 20 + 12 + 10 + 11 = 75.\n- NewsCatcher (84): 15 MCP tools in four toolsets, chosen per connection with `?tools=`, and tools return compact text rather than the full JSON. 15 for 11 to 30 tools plus 7 for toolsets (22 of 25). `limit`, `search_window`, effort, language, country, publisher, coverage and content-type filters, sorting, and paging on `/articles`; agent tables come back up to 200 rows at a time over MCP (20). Every status is documented with whether to retry; the agent returns stable `code` values, while the News API body has a `status_code` and a message meant for people (17 of 20). Every tool carries readOnlyHint and idempotentHint, writes carry destructiveHint, `start_research` has a free `dry_run`, and refused or failed calls aren't charged. No idempotency key for starting runs (17 of 20). Only `q` is required, with medium effort and a 7-day window as defaults. No official SDK for the current API was found; the docs show raw HTTP in three languages (8 of 15). 22 + 20 + 17 + 17 + 8 = 84.\n\n## Score by category\n\n| Category | Weight | Kagi Search API | NewsCatcher | Edge |\n| --- | --- | --- | --- | --- |\n| Reliability | 16% (20 this run) | 43 | 67 | NewsCatcher +24 |\n| Performance | 10%, pending | pending | pending | not scored in this run |\n| Schema \u0026 documentation | 13% (16.2 this run) | 71 | 94 | NewsCatcher +23 |\n| Agent ergonomics | 13% (16.2 this run) | 75 | 84 | NewsCatcher +9 |\n| Security \u0026 auth | 14% (17.5 this run) | 64 | 45 | Kagi Search API +19 |\n| Payments \u0026 pricing | 10% (12.5 this run) | 20 | 30 | NewsCatcher +10 |\n| Task success | 10%, pending | pending | pending | not scored in this run |\n| Maintenance \u0026 community | 7% (8.8 this run) | 41 | 76 | NewsCatcher +35 |\n| Transparency \u0026 trust | 7% (8.8 this run) | 74 | 79 | NewsCatcher +5 |\n| Negative events | ≤15 | 0 | 0 | |\n| **Total** | | **56.1 · C** | **67.5 · B** | |\n\n## Facts side by side\n\n| Fact | Kagi Search API | NewsCatcher |\n| --- | --- | --- |\n| Kind | HTTP API | HTTP API |\n| Vendor | Kagi | NewsCatcher, Inc. |\n| Hosted endpoint | `https://kagi.com/api/v1/search` | `https://mcp.newscatcherapi.com/mcp` |\n| Transports | HTTP, Streamable HTTP, stdio | Streamable HTTP |\n| Auth | API key | API key |\n| Pricing | Pay per use | Pay per use |\n| Price for web search | $12 per 1,000 requests | $1 per 1,000 requests |\n| x402 | no | no |\n| Licence | Proprietary service under the Kagi API Terms of Service. The MCP server is MIT and the OpenAPI file states Apache-2.0 | none |\n| Tools exposed | none | 15 |\n| Read-only variant documented | no | yes |\n| llms.txt | no | yes |\n| Last release | 2026-08-21 | 2026-11-06 |\n| Terms last updated | 2026-09-22 | 2026-11-02 |\n| Privacy policy last updated | no date given | 2026-11-02 |\n| Customer content may train models | not found in the text | yes |\n| Terms restrict automated access | yes | not found in the text |\n| Terms restrict benchmarking | yes | not found in the text |\n| Terms or service can change without notice | not found in the text | not found in the text |\n| Arbitration or class-action waiver | not found in the text | yes |\n| Popularity | 535 stars | none |\n\n## How the scores have moved\n\n### Kagi Search API\n\n- +7.4 on 4 November 2026 (D to C): new evidence\n- no change on 27 October 2026: checklist\n\n### NewsCatcher\n\nNo score change since it was listed.\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 is still a public preview, with no published rate limits and no free allowance, and the terms forbid storing results. Its status page logged only regional incidents since August.\n\n**NewsCatcher.** One key and one credit balance cover a ranked news search, a background research agent and a hosted MCP server with toolsets and annotated tools, under OpenAPI 3.1 specs and a dated changelog. The current API launched on 30 October 2026, the MCP server accepts the key in its URL, and no SLA is published below Enterprise.\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. Check status.kagi.com for regional incidents\n\n### NewsCatcher\n\n1. Send the key in the `x-api-key` header, and use a separate key for the MCP server so it can be revoked alone\n2. Call `start_research` with `dry_run` first, since agent runs cost 1,000 to 6,000 credits\n3. Use `effort=low` for quick lookups; the default `medium` costs five times as much\n4. Use `/articles` or `list_articles` for news older than 30 days or exact counts; `/search` covers 30 days only\n5. On 429 or 503 wait for Retry-After, and quote the Correlation-ID header to support\n\n## Questions\n\n### Which is better for AI agents, Kagi Search API or NewsCatcher?\n\nNewsCatcher scores 67.5 (B) on agent readiness against Kagi Search API's 56.1 (C), and leads in 6 of 7 scored categories. Kagi Search API leads on security \u0026 auth.\n\n### Which is cheaper for web search, Kagi Search API or NewsCatcher?\n\nNewsCatcher, at $1 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 NewsCatcher need an API key?\n\nBoth need an API key.\n\n### Can an agent call Kagi Search API and NewsCatcher without installing anything?\n\nYes. Kagi Search API has a hosted endpoint at https://kagi.com/api/v1/search and NewsCatcher at https://mcp.newscatcherapi.com/mcp.\n\n\n## For agents\n\n- This comparison as JSON: https://www.anchorterminal.com/compare/kagi-search-vs-newscatcher.json, and with the fewest tokens: https://www.anchorterminal.com/compare/kagi-search-vs-newscatcher.min.md\n- Over MCP at https://www.anchorterminal.com/mcp (no key): `compare_tools {\"a\": \"kagi-search\", \"b\": \"newscatcher\"}`. From a terminal: `anchor compare kagi-search newscatcher`\n- Each listing in full: https://www.anchorterminal.com/api/v1/tools/kagi-search.json and https://www.anchorterminal.com/api/v1/tools/newscatcher.json\n\n## Other comparisons with Kagi Search API or NewsCatcher\n\n- [Web Search Tool on Amazon Bedrock AgentCore vs Kagi Search API](https://www.anchorterminal.com/compare/agentcore-web-search-vs-kagi-search.md)\n- [Web Search Tool on Amazon Bedrock AgentCore vs NewsCatcher](https://www.anchorterminal.com/compare/agentcore-web-search-vs-newscatcher.md)\n- [Arcmira vs Kagi Search API](https://www.anchorterminal.com/compare/arcmira-vs-kagi-search.md)\n- [Grounding with Bing Search vs Kagi Search API](https://www.anchorterminal.com/compare/bing-grounding-vs-kagi-search.md)\n- [Grounding with Bing Search vs NewsCatcher](https://www.anchorterminal.com/compare/bing-grounding-vs-newscatcher.md)\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 NewsCatcher](https://www.anchorterminal.com/compare/brave-search-mcp-vs-newscatcher.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 NewsCatcher](https://www.anchorterminal.com/compare/cloudflare-web-search-vs-newscatcher.md)\n- [DeepSeek Search and Fetch API vs Kagi Search API](https://www.anchorterminal.com/compare/deepseek-search-api-vs-kagi-search.md)\n- [DeepSeek Search and Fetch API vs NewsCatcher](https://www.anchorterminal.com/compare/deepseek-search-api-vs-newscatcher.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 NewsCatcher](https://www.anchorterminal.com/compare/exa-mcp-vs-newscatcher.md)\n- [Firecrawl MCP vs Kagi Search API](https://www.anchorterminal.com/compare/firecrawl-mcp-vs-kagi-search.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 Mojeek Web Search API](https://www.anchorterminal.com/compare/kagi-search-vs-mojeek.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 Perplexity Search API](https://www.anchorterminal.com/compare/kagi-search-vs-perplexity-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 SERPHouse](https://www.anchorterminal.com/compare/kagi-search-vs-serphouse.md)\n- [Kagi Search API vs SerpKite](https://www.anchorterminal.com/compare/kagi-search-vs-serpkite.md)\n- [Kagi Search API vs SpecStream](https://www.anchorterminal.com/compare/kagi-search-vs-specstream.md)\n- [Kagi Search API vs Tavily API + MCP](https://www.anchorterminal.com/compare/kagi-search-vs-tavily-mcp.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 NewsCatcher](https://www.anchorterminal.com/compare/linkup-vs-newscatcher.md)\n- [Mojeek Web Search API vs NewsCatcher](https://www.anchorterminal.com/compare/mojeek-vs-newscatcher.md)\n- [NewsCatcher vs Parallel Search and Task APIs](https://www.anchorterminal.com/compare/newscatcher-vs-parallel-search-api.md)\n- [NewsCatcher vs Perplexity Search API](https://www.anchorterminal.com/compare/newscatcher-vs-perplexity-search-api.md)\n- [NewsCatcher vs TinyFish Search](https://www.anchorterminal.com/compare/newscatcher-vs-tinyfish-search.md)\n- [Arcmira vs NewsCatcher](https://www.anchorterminal.com/compare/arcmira-vs-newscatcher.md)\n- [Grep AI vs NewsCatcher](https://www.anchorterminal.com/compare/grep-ai-vs-newscatcher.md)\n- [Liner Search MCP vs NewsCatcher](https://www.anchorterminal.com/compare/liner-mcp-vs-newscatcher.md)\n- [NewsCatcher vs SpecStream](https://www.anchorterminal.com/compare/newscatcher-vs-specstream.md)\n- [Fetch (MCP reference server) vs Kagi Search API](https://www.anchorterminal.com/compare/fetch-reference-server-vs-kagi-search.md)\n- [NewsCatcher vs SearchAPI.io](https://www.anchorterminal.com/compare/newscatcher-vs-searchapi-io.md)\n- [NewsCatcher vs SerpApi](https://www.anchorterminal.com/compare/newscatcher-vs-serpapi.md)\n- [NewsCatcher vs Serper](https://www.anchorterminal.com/compare/newscatcher-vs-serper.md)\n- [NewsCatcher vs SERPHouse](https://www.anchorterminal.com/compare/newscatcher-vs-serphouse.md)\n- [NewsCatcher vs SerpKite](https://www.anchorterminal.com/compare/newscatcher-vs-serpkite.md)\n- [NewsCatcher vs Tavily API + MCP](https://www.anchorterminal.com/compare/newscatcher-vs-tavily-mcp.md)\n- [NewsCatcher vs Valyu](https://www.anchorterminal.com/compare/newscatcher-vs-valyu.md)\n- [NewsCatcher vs You.com APIs](https://www.anchorterminal.com/compare/newscatcher-vs-you-com-api.md)\n",
  "meta": {
    "attribution": "Anchor Terminal (https://www.anchorterminal.com)",
    "attributionRequired": true,
    "credit": "CC BY 4.0, credit Anchor Terminal and link the page or API address you took it from (https://www.anchorterminal.com/terms/#data)",
    "docs": "https://www.anchorterminal.com/docs/",
    "generatedAt": "2026-11-07",
    "license": "CC-BY-4.0",
    "method": "https://www.anchorterminal.com/benchmark/",
    "methodology": "0.7",
    "openapi": "https://www.anchorterminal.com/openapi.json",
    "preview": false,
    "run": "2026-10-01",
    "runLabel": "October 2026 research run",
    "terms": "https://www.anchorterminal.com/terms/#data"
  },
  "page": {
    "breadcrumbs": [
      {
        "name": "Home",
        "url": "https://www.anchorterminal.com/"
      },
      {
        "name": "Compare",
        "url": "https://www.anchorterminal.com/compare/"
      },
      {
        "name": "Kagi Search API vs NewsCatcher",
        "url": ""
      }
    ],
    "description": "NewsCatcher scores 67.5 (B) to Kagi Search's 56.1 (C) for web search. NewsCatcher is cheaper for web search, $1 against $12 per 1,000 requests. Prices, MCP, x402, uptime and agent notes side by side.",
    "facts": [
      "Kagi Search API C 56.1",
      "NewsCatcher B 67.5",
      "scores"
    ],
    "h1": "Kagi Search API vs NewsCatcher",
    "image": "https://www.anchorterminal.com/assets/og/default.png",
    "path": "/compare/kagi-search-vs-newscatcher",
    "published": "2026-10-01",
    "section": "tools",
    "title": "Kagi Search vs NewsCatcher for AI agents in 2026: scores and prices",
    "toc": null,
    "updated": "2026-11-07",
    "url": "https://www.anchorterminal.com/compare/kagi-search-vs-newscatcher"
  },
  "tokens": {
    "markdown": 6350,
    "slim": 3780
  },
  "version": 1
}
