{
  "data": {
    "a": {
      "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": 321,
        "ranked": true,
        "rankOf": 1486,
        "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-07T18:20:41.854849144Z",
          "lastOk": true,
          "lastStatus": 405,
          "lastMs": 305,
          "authRequired": false,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 167,
          "p95ms24h": 346,
          "samples24h": 200,
          "samples30d": 200,
          "days": [
            {
              "date": "2026-11-06",
              "probes": 13,
              "ok": 13
            },
            {
              "date": "2026-11-07",
              "probes": 187,
              "ok": 187
            }
          ]
        },
        "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-07T18:20:41.854849144Z"
      }
    },
    "answer": "NewsCatcher scores 67.5 (B) on agent readiness against SerpApi's 63.5 (B), and leads in 3 of 7 scored categories. SerpApi leads on maintenance \u0026 community and transparency \u0026 trust.",
    "b": {
      "slug": "serpapi",
      "name": "SerpApi",
      "vendor": "SerpApi",
      "vendorUrl": "https://serpapi.com",
      "kind": "http-api",
      "category": "search",
      "summary": "Scrapes live results pages from Google, Bing, Baidu, DuckDuckGo, Yandex, Amazon, YouTube and about 20 other engines and returns them as parsed JSON or markdown.",
      "url": "https://www.anchorterminal.com/tools/serpapi",
      "markdownUrl": "https://www.anchorterminal.com/tools/serpapi.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/serpapi.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/serpapi.json",
      "dns": "serpapi.grade.anchorterminal.com",
      "transports": [
        "http",
        "streamable-http",
        "stdio"
      ],
      "remoteUrl": "https://serpapi.com/search",
      "packages": [
        {
          "registry": "npm",
          "name": "serpapi"
        },
        {
          "registry": "pypi",
          "name": "serpapi"
        },
        {
          "registry": "pypi",
          "name": "google-search-results"
        }
      ],
      "auth": "api-key",
      "authNotes": "API key as the `api_key` query parameter on every request. The hosted MCP takes `Authorization: Bearer \u003ckey\u003e` or the key in the URL path (`/\u003ckey\u003e/mcp`) for clients that can't set headers.",
      "pricing": "freemium",
      "pricingNotes": "Free plan 250 searches a month (50 an hour). Starter $25 a month for 1,000 searches, Developer $75 for 5,000, Production $150 for 15,000, Big Data $275 for 30,000, Searcher $725 for 100,000, then Cloud tiers from $3,750 for 1M. Only successful searches count, cached and failed ones are free, and a response with 100 results is still one search. Ludicrous Speed doubles the price, Ludicrous Speed Max quadruples it (https://serpapi.com/pricing).",
      "priceSummary": "$25 / 1k req",
      "where": "both",
      "x402": {
        "level": "no",
        "evidence": "No x402 in llms.txt, pricing or integrations pages (checked 2026-09-30).",
        "endpoints": []
      },
      "toolCount": 3,
      "popularity": {
        "githubStars": 175,
        "npmWeekly": 168618,
        "pypiWeekly": 104227,
        "asOf": "2026-09-30"
      },
      "docsUrl": "https://serpapi.com/search-api",
      "llmsTxt": "https://serpapi.com/llms.txt",
      "registryName": "io.github.serpapi/serpapi-mcp",
      "capabilities": [
        "web.search",
        "search.serp",
        "search.news",
        "search.images"
      ],
      "tags": [
        "hosted",
        "freemium",
        "mcp",
        "llms-txt",
        "python",
        "typescript",
        "closed-source"
      ],
      "lastRelease": "2026-10-30",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 63.5,
        "grade": "B",
        "agentReady": false,
        "rank": 510,
        "ranked": true,
        "rankOf": 1486,
        "categoryRank": 16,
        "methodology": "0.7",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 88,
          "maintenance": 82,
          "payments": 30,
          "reliability": 65,
          "schema": 67,
          "security": 40,
          "transparency": 84
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-11-02"
        },
        "negative": 0,
        "verdict": "Over 100 engines behind one GET URL, with `json_restrictor` field selection and `output=md`. The status page posted an outage across all APIs on 10 September and a degradation of the main Google APIs from 6 October that was still open on 2 November.",
        "bestFor": "An agent that needs what a specific engine shows (Google verticals, Maps, Shopping, Flights, Scholar, YouTube, Amazon) parsed to JSON.",
        "strengths": [
          "Over 100 engines behind one GET URL, with `json_restrictor` field selection and `output=md`",
          "Failed, errored and cached searches aren't billed, and the cache lasts 1 hour",
          "Terms promise a 99.95% SLA on all plans",
          "SOC 2 Type II, ISO 27001 and ISO 27701 listed on the security page, 31-day data retention stated in the terms",
          "Hosted MCP server in the official registry, with read-only tool annotations"
        ],
        "weaknesses": [
          "35 incidents on the status page between 4 August and 2 November 2026, including an outage across all APIs on 10 September",
          "REST auth is the `api_key` query parameter, with no header option documented",
          "No OpenAPI spec, and the MCP `search` tool takes a free-form `params` object",
          "Monthly plans only, from $25 for 1,000 searches, with no pay-per-call or machine payment",
          "No prompt-injection guidance for the snippets it returns"
        ],
        "agentNotes": [
          "Use the MCP with `Authorization: Bearer`, not the key-in-path URL the README leads with",
          "Read `serpapi://engines/\u003cengine\u003e` before calling a new engine, since `params` isn't typed",
          "Add `json_restrictor` or `output=md` to cut tokens, and `mode: compact` on the MCP",
          "A 429 means either the hourly limit or an empty balance. Check the account before retrying",
          "Repeat a search within the hour and the cached copy is free. Set `no_cache=true` only when freshness matters"
        ],
        "metrics": {
          "kind": "remote",
          "measured": false
        },
        "reviewCount": 2,
        "avgRating": 3.5,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "B",
            "methodology": "0.7",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 63.5
          }
        ],
        "editorialScores": {
          "ergonomics": 88,
          "maintenance": 82,
          "payments": 30,
          "reliability": 65,
          "schema": 67,
          "security": 40,
          "transparency": 70
        },
        "provenanceScore": 98,
        "checked": {
          "categories": {
            "ergonomics": "2026-11-02",
            "maintenance": "2026-11-02",
            "payments": "2026-11-02",
            "reliability": "2026-11-02",
            "schema": "2026-11-02",
            "security": "2026-11-02",
            "transparency": "2026-11-02"
          },
          "last": "2026-11-02",
          "lastMoved": "2026-11-02",
          "oldest": "2026-11-02",
          "stale": false,
          "staleAfterDays": 90
        }
      },
      "connect": {
        "http": "curl -G https://serpapi.com/search --data-urlencode \"q=coffee\" -d engine=google -d api_key=$SERPAPI_API_KEY",
        "claudeCode": "claude mcp add --transport http serpapi https://mcp.serpapi.com/mcp --header \"Authorization: Bearer $SERPAPI_API_KEY\"",
        "config": {
          "mcpServers": {
            "serpapi": {
              "headers": {
                "Authorization": "Bearer ${SERPAPI_API_KEY}"
              },
              "type": "http",
              "url": "https://mcp.serpapi.com/mcp"
            }
          }
        }
      },
      "letme": {
        "capability": "https://letme.dev/web.search",
        "tool": "https://letme.dev/serpapi"
      },
      "area": "web-data",
      "unitPrices": [
        {
          "item": "Starter plan, per 1,000 searches",
          "unit": "1k-requests",
          "usd": 25,
          "note": "1,000 searches for $25 a month"
        },
        {
          "item": "Starter plan",
          "unit": "month",
          "usd": 25,
          "note": "1,000 searches"
        },
        {
          "item": "Developer plan",
          "unit": "month",
          "usd": 75,
          "note": "5,000 searches"
        },
        {
          "item": "Production plan",
          "unit": "month",
          "usd": 150,
          "note": "15,000 searches, includes Legal Shield"
        },
        {
          "item": "Big Data plan",
          "unit": "month",
          "usd": 275,
          "note": "30,000 searches"
        }
      ],
      "provenance": {
        "legalEntity": "SerpApi, LLC",
        "domain": "serpapi.com",
        "domainRegistered": "2016-07-27",
        "endpointOnVendorDomain": true,
        "terms": "https://serpapi.com/legal",
        "privacy": "https://serpapi.com/legal",
        "statusPage": "https://status.serpapi.com",
        "changelog": "https://serpapi.com/release-notes",
        "securityTxt": "valid",
        "checked": "2026-09-30",
        "notes": [
          "Terms and privacy policy share one page. The entity is a Texas LLC at 1632 S 1st St, Austin"
        ],
        "score": 98
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/serpapi.json",
      "live": {
        "slug": "serpapi",
        "probe": {
          "target": "https://serpapi.com/search",
          "method": "get",
          "lastAt": "2026-11-07T18:20:53.834078478Z",
          "lastOk": true,
          "lastStatus": 401,
          "lastMs": 192,
          "lastNote": "asks for credentials",
          "authRequired": true,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 127,
          "p95ms24h": 210,
          "samples24h": 239,
          "samples30d": 7910,
          "days": [
            {
              "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": 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": 253
            },
            {
              "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": 250,
              "ok": 250
            },
            {
              "date": "2026-10-29",
              "probes": 249,
              "ok": 249
            },
            {
              "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": 187,
              "ok": 187
            }
          ]
        },
        "vendorStatus": {
          "page": "https://status.serpapi.com",
          "indicator": "minor",
          "summary": "Partially Degraded Service",
          "checkedAt": "2026-11-07T18:22:00.685940591Z"
        },
        "versions": [
          {
            "registry": "mcp-registry",
            "name": "io.github.serpapi/serpapi-mcp",
            "version": "2.2.0",
            "seenAt": "2026-11-07T18:16:28.95801333Z"
          },
          {
            "registry": "npm",
            "name": "serpapi",
            "version": "2.2.1",
            "seenAt": "2026-11-07T00:04:52.187916313Z"
          },
          {
            "registry": "pypi",
            "name": "google-search-results",
            "version": "2.4.2",
            "released": "2023-03-10",
            "seenAt": "2026-11-07T00:04:52.786371506Z"
          },
          {
            "registry": "pypi",
            "name": "serpapi",
            "version": "1.2.0",
            "released": "2026-10-30",
            "seenAt": "2026-11-07T00:04:52.581829374Z"
          }
        ],
        "npmWeekly": 157770,
        "pypiWeekly": 111267,
        "securityTxt": {
          "url": "https://serpapi.com/.well-known/security.txt",
          "state": "valid",
          "checkedAt": "2026-11-07T16:01:55.994757327Z"
        },
        "llmsTxt": {
          "url": "https://serpapi.com/llms.txt",
          "ok": true,
          "status": 200,
          "checkedAt": "2026-11-07T15:33:54.117469983Z"
        },
        "domain": {
          "domain": "serpapi.com",
          "registered": "2016-07-27",
          "source": "https://rdap.verisign.com/com/v1/domain/serpapi.com",
          "checkedAt": "2026-11-01T14:27:22.977220583Z"
        },
        "pages": [
          {
            "url": "https://serpapi.com/release-notes",
            "kind": "changelog",
            "status": 200,
            "checkedAt": "2026-11-07T14:19:41.886949784Z",
            "changedAt": "2026-11-07T14:19:41.886949784Z",
            "fingerprint": "4c04e1177e9e"
          },
          {
            "url": "https://serpapi.com/ebay-search-api",
            "kind": "deprecations",
            "status": 304,
            "checkedAt": "2026-11-07T14:19:35.829778138Z",
            "changedAt": "2026-10-30T05:48:12.692533267Z",
            "fingerprint": "321bdf216d0c"
          },
          {
            "url": "https://serpapi.com/pricing",
            "kind": "pricing",
            "status": 304,
            "checkedAt": "2026-11-07T14:19:40.387016376Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "30dfa765089d"
          },
          {
            "url": "https://serpapi.com/legal",
            "kind": "terms",
            "status": 200,
            "checkedAt": "2026-11-07T14:19:37.855693364Z",
            "changedAt": "2026-11-07T14:19:37.855693364Z",
            "fingerprint": "a7a9d55bdb87"
          }
        ],
        "mcpTools": {
          "url": "https://mcp.serpapi.com/mcp",
          "checkedAt": "2026-11-07T01:47:41.410957591Z",
          "status": "ok",
          "protocol": "2026-07-28",
          "tools": [
            {
              "name": "search_dashboard",
              "title": "SerpApi search (dashboard)",
              "description": "Interactive dashboard variant of `search`: returns summary metrics, a source breakdown chart, and a results table with a click-to-expand detail panel, all rendered in the conversation. Same params as `search`. Use for a richer visual overview of a query's results. Automatically selects an engine-specific dashboard when available (e.g. google_flights gets price intelligence charting).",
              "inputSchema": {
                "additionalProperties": false,
                "properties": {
                  "params": {
                    "anyOf": [
                      {
                        "additionalProperties": true,
                        "type": "object"
                      },
                      {
                        "type": "null"
                      }
                    ],
                    "default": null
                  }
                },
                "type": "object"
              },
              "annotations": {
                "destructiveHint": false,
                "idempotentHint": false,
                "openWorldHint": true,
                "readOnlyHint": true,
                "title": "SerpApi search (dashboard)"
              }
            },
            {
              "name": "search_table",
              "title": "SerpApi search (table)",
              "description": "Interactive UI variant of `search`: returns organic results as a sortable, searchable table rendered in the conversation. Same params as `search`. Use when the host supports MCP Apps and the user wants to browse results visually rather than read JSON.",
              "inputSchema": {
                "additionalProperties": false,
                "properties": {
                  "params": {
                    "anyOf": [
                      {
                        "additionalProperties": true,
                        "type": "object"
                      },
                      {
                        "type": "null"
                      }
                    ],
                    "default": null
                  }
                },
                "type": "object"
              },
              "annotations": {
                "destructiveHint": false,
                "idempotentHint": false,
                "openWorldHint": true,
                "readOnlyHint": true,
                "title": "SerpApi search (table)"
              }
            },
            {
              "name": "extract",
              "title": "SerpApi extract",
              "description": "Extract content from a public http(s) URL, discover site URLs, or crawl pages.\n\nAPI options go in params: url is required; params.mode is scrape (default), map, or crawl. See serpapi://engines/extract for all options.\n\nTop-level mode controls the response:\n- complete (default): full JSON.\n- compact: native Markdown by default.\n\nparams.output selects the format and overrides either default:\n- \"md\": return native Markdown unchanged in either response mode.\n- \"json\": return JSON, with filtering determined by the response mode.\n\nCompact JSON removes metadata. For scrape responses containing markdown, it also keeps only markdown and any error field. include_markdown=false or an explicit json_restrictor skips this extra filtering. Map/crawl and responses without markdown keep their remaining fields. Use complete with output=\"json\" for full JSON.\n\nCrawl max_pages defaults to 10 (maximum 100). Each successfully extracted, uncached page consumes one credit.\n\nExamples:\nFull scrape JSON: {\"params\":{\"url\":\"https://example.com\"},\"mode\":\"complete\"}\nScrape Markdown: {\"params\":{\"url\":\"https://example.com\"},\"mode\":\"compact\"}\nMap URLs as JSON: {\"params\":{\"url\":\"https://example.com\",\"mode\":\"map\"},\"mode\":\"complete\"}\nCrawl pages as Markdown: {\"params\":{\"url\":\"https://example.com\",\"mode\":\"crawl\",\"max_pages\":2},\"mode\":\"compact\"}\n",
              "inputSchema": {
                "additionalProperties": false,
                "properties": {
                  "mode": {
                    "default": "complete",
                    "type": "string"
                  },
                  "params": {
                    "anyOf": [
                      {
                        "additionalProperties": true,
                        "type": "object"
                      },
                      {
                        "type": "null"
                      }
                    ],
                    "default": null
                  }
                },
                "type": "object"
              },
              "outputSchema": {
                "properties": {
                  "result": {
                    "type": "string"
                  }
                },
                "required": [
                  "result"
                ],
                "type": "object",
                "x-fastmcp-wrap-result": true
              },
              "annotations": {
                "destructiveHint": false,
                "idempotentHint": false,
                "openWorldHint": true,
                "readOnlyHint": true,
                "title": "SerpApi extract"
              }
            },
            {
              "name": "search",
              "title": "SerpApi search",
              "description": "Universal search tool supporting all SerpApi engines and result types.\n\n    When to use:\n        - Any query needing live, structured SERP data: web results, news, product listings, job postings, local businesses, flight/hotel prices, video results, images, stock/weather cards, knowledge graph entities.\n    \n    Engine discovery via MCP resources:\n        - serpapi://engines lists all engines supported by this tool.\n        - serpapi://engines/\u003cengine\u003e provides engine-specific parameters and supported options.\n        - Example: serpapi://engines/google_news\n\n    Input schema:\n        params: JSON object containing SerpApi engine parameters.\n            Common parameters:\n                - q: Search query. Required for most engines.\n                - engine: SerpApi engine name. Defaults to \"google_light\".\n                - location: Optional geographic location for localized results.\n                - output: Optional response format. Omit for JSON (default), or set to \"md\" for Markdown.\n    \n            Engine-specific parameters are available via MCP resources:\n                - serpapi://engines lists all supported engines.\n                - serpapi://engines/\u003cengine\u003e provides parameters and options for one engine.\n    \n        mode: Response mode. Defaults to \"complete\".\n            - \"complete\": Return the full SerpApi response.\n            - \"compact\": Remove metadata fields from JSON responses. Markdown is returned unchanged.\n    \n    Output schema:\n        structuredContent.result contains the response string: serialized JSON or unchanged Markdown.\n        The same string is included in text content. Tool failures preserve this wrapper and set isError to true.\n\n    Guided search:\n        Searches can request missing engine parameters from supporting clients using the engine catalog and engine-specific rules.\n        Flights collect airports and dates, hotels collect the destination and stay dates, and directions collect missing endpoints.\n        Other clients receive a missing-parameter error. Cancellation does not run a search.\n\n    Examples:\n        Weather: {\"params\": {\"q\": \"weather in London\", \"engine\": \"google\"}, \"mode\": \"complete\"}\n        Stock: {\"params\": {\"q\": \"AAPL stock\", \"engine\": \"google\"}, \"mode\": \"complete\"}\n        General: {\"params\": {\"q\": \"coffee shops\", \"engine\": \"google_light\", \"location\": \"Austin, TX\"}, \"mode\": \"complete\"}\n        Compact: {\"params\": {\"q\": \"news\"}, \"mode\": \"compact\"}\n        Markdown: {\"params\": {\"q\": \"news\", \"output\": \"md\"}}\n\n    Supported engines include (not limited to):\n        - google\n        - google_light\n        - google_flights\n        - google_hotels\n        - google_images\n        - google_news\n        - google_local\n        - google_shopping\n        - google_jobs\n        - bing\n        - yahoo\n        - duckduckgo\n        - youtube_search\n        - baidu\n        - ebay\n    ",
              "inputSchema": {
                "additionalProperties": false,
                "properties": {
                  "mode": {
                    "default": "complete",
                    "description": "Response mode (default: \"complete\")\n- \"complete\": Returns the full response\n- \"compact\": Removes metadata fields from JSON responses; Markdown is unchanged",
                    "type": "string"
                  },
                  "params": {
                    "anyOf": [
                      {
                        "additionalProperties": true,
                        "type": "object"
                      },
                      {
                        "type": "null"
                      }
                    ],
                    "default": null,
                    "description": "Dictionary of SerpApi engine-specific parameters. Common parameters include:\n- q: Search query (required for most engines)\n- engine: Search engine to use (default: \"google_light\")\n- location: Geographic location filter\n- output: Response format; omit for JSON or set to \"md\" for Markdown"
                  }
                },
                "type": "object"
              },
              "outputSchema": {
                "properties": {
                  "result": {
                    "type": "string"
                  }
                },
                "required": [
                  "result"
                ],
                "type": "object",
                "x-fastmcp-wrap-result": true
              },
              "annotations": {
                "destructiveHint": false,
                "idempotentHint": false,
                "openWorldHint": true,
                "readOnlyHint": true,
                "title": "SerpApi search"
              }
            }
          ],
          "schemaTokens": 1917,
          "changedAt": "2026-11-07T01:47:41.410957591Z",
          "check": {
            "checker": "anchor-check/1.0",
            "totalTokens": 1917,
            "counts": {
              "error": 0,
              "note": 1,
              "warn": 4
            },
            "findings": [
              {
                "rule": "TC07",
                "severity": "warn",
                "tool": "search",
                "message": "the description is about 720 tokens",
                "fix": "Keep the description to what a model needs to choose and call the tool; move the manual to a resource or the docs."
              },
              {
                "rule": "TC11",
                "severity": "warn",
                "tool": "extract",
                "message": "none of its 2 parameters has a description",
                "fix": "Describe each one: format, units, an example, and what happens when it's left out."
              },
              {
                "rule": "TC11",
                "severity": "warn",
                "tool": "search_dashboard",
                "message": "its one parameter, params, has no description",
                "fix": "Describe each one: format, units, an example, and what happens when it's left out."
              },
              {
                "rule": "TC11",
                "severity": "warn",
                "tool": "search_table",
                "message": "its one parameter, params, has no description",
                "fix": "Describe each one: format, units, an example, and what happens when it's left out."
              },
              {
                "rule": "TC24",
                "severity": "note",
                "message": "2 of 4 tools have no outputSchema",
                "fix": "Declare outputSchema for tools that return structured data, and return structuredContent that matches it."
              }
            ]
          }
        },
        "updatedAt": "2026-11-07T18:22:00.685940591Z"
      }
    },
    "edges": [
      {
        "by": 27,
        "category": "schema",
        "leads": "newscatcher",
        "name": "Schema \u0026 documentation",
        "reasons": {
          "a": "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.",
          "b": "No OpenAPI or similar spec for the REST API. The MCP server publishes per-engine parameter lists as resources (`serpapi://engines/\u003cengine\u003e`), which we count as a partial contract (10). llms.txt, `pricing.md` and Markdown twins of the docs pages, such as search-api.md (10). Each engine page describes every parameter, and the MCP tool says when to use it but not when not to (14). Parameters list allowed values on the engine pages, but the MCP `search` tool takes one free-form `params` object (7). Examples on every engine page, and a status-and-errors page documents 400, 401, 403, 404, 410, 429 and 5xx with a JSON `error` field (14). Dated release notes with several entries a week, though the API itself isn't versioned (12)."
        },
        "scores": {
          "a": 94,
          "b": 67
        }
      },
      {
        "by": 6,
        "category": "maintenance",
        "leads": "serpapi",
        "name": "Maintenance \u0026 community",
        "reasons": {
          "a": "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.",
          "b": "Release notes carry dated entries almost daily, the latest on 2 November 2026, and serpapi-python 1.2.0 shipped on 30 October (30). Since 4 August, serpapi-python 1.1.0, 1.1.1, 1.1.2 and 1.2.0, MCP server 1.0.3 and 2.0.0, and serpapi-cli 0.3.0, 0.4.0 and 0.5.0, besides the release notes (20). Release notes run several entries a week and the MCP repo merged a fix on 27 October. Open issues weren't read, since GitHub's pages refuse our reader (12). The MCP server is in the official registry as io.github.serpapi/serpapi-mcp and the Python SDK and CLI are current, but the JavaScript SDK's last release is still 2.2.1 of 26 July 2025 (12). The MCP, Python and CLI repositories run tests in CI; pass state not read (8)."
        },
        "scores": {
          "a": 76,
          "b": 82
        }
      },
      {
        "by": 5,
        "category": "security",
        "leads": "newscatcher",
        "name": "Security \u0026 auth",
        "reasons": {
          "a": "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.",
          "b": "One account key with no scopes found (10), documented as the `api_key` query parameter on every REST call, and the MCP README leads with the key in the URL path. The hosted MCP also accepts `Authorization: Bearer` (minus 10). Search is read-only and the MCP tool carries read-only annotations, but there's no least-privilege key (15). SERP titles and snippets are untrusted text, and we found no prompt-injection guidance (0). The Search Archive API returns any search from the last 31 days, and the security page says audit logs cover all critical parts of the service (10). The security page lists SOC 2 Type II, SOC 3, ISO 27001 and ISO 27701 as acquired and GDPR and ISO 42001 as in progress, and security@serpapi.com takes reports. serpapi.com/security.txt is valid (expires 1 January 2027), though the /.well-known/ path answers with the HTML security page. No bug bounty or public advisories found (15)."
        },
        "scores": {
          "a": 45,
          "b": 40
        }
      },
      {
        "by": 5,
        "category": "transparency",
        "leads": "serpapi",
        "name": "Transparency \u0026 trust",
        "reasons": {
          "a": "The API is closed under terms of 2 November 2026 naming NewsCatcher, Inc., and the MCP server is MIT, so between the two bands (20 of 30). The terms say inputs and generated data are not used to train models, a DPA applies automatically, and the privacy policy gives retention periods (server logs 7 days, API logs with query text 90 days, then archived indefinitely, billing records about seven years). They agree with each other, but indefinite archives of query logs hold it back (22 of 30). The terms promise 30 days' email notice before a paid product or API version is discontinued, with refunds of unused credits, and the v3 News API has a migration guide (15 of 20). A sub-processor list dated 2 November 2026 with each provider's location and the data it handles. The MCP repository deploys to Vercel and can send pseudonymised analytics to PostHog, and neither appears on the list (16 of 20). 20 + 22 + 15 + 16 = 73.",
          "b": "The API is closed under one terms-and-privacy page, and the MCP server is MIT (18). The legal page and the security page agree that search data is deleted after 31 days, ZeroTrace mode (an enterprise parameter) stores nothing, and a DPA is available on request (26). Deprecations show up as dated release notes, such as eBay's Sold and Completed filters on 28 September 2026, but there's no notice policy, and the terms allow termination without notice (8). Named subprocessors (AWS, Cloudflare, Wasabi, Stripe, Intercom and others) and US hosting with Standard Contractual Clauses (18)."
        },
        "scores": {
          "a": 79,
          "b": 84
        }
      }
    ],
    "facts": [
      {
        "a": "HTTP API",
        "b": "HTTP API",
        "name": "Kind"
      },
      {
        "a": "NewsCatcher, Inc.",
        "b": "SerpApi",
        "name": "Vendor"
      },
      {
        "a": "https://mcp.newscatcherapi.com/mcp",
        "b": "https://serpapi.com/search",
        "name": "Hosted endpoint"
      },
      {
        "a": "Streamable HTTP",
        "b": "HTTP, Streamable HTTP, stdio",
        "name": "Transports"
      },
      {
        "a": "API key",
        "b": "API key",
        "name": "Auth"
      },
      {
        "a": "Pay per use",
        "b": "Freemium",
        "name": "Pricing"
      },
      {
        "a": "$1 per 1,000 requests",
        "b": "not published",
        "name": "Price for search news"
      },
      {
        "a": "no",
        "b": "no",
        "name": "x402"
      },
      {
        "a": "15",
        "b": "3",
        "name": "Tools exposed"
      },
      {
        "a": "yes",
        "b": "yes",
        "name": "Read-only variant documented"
      },
      {
        "a": "yes",
        "b": "yes",
        "name": "llms.txt"
      },
      {
        "a": "not listed",
        "b": "io.github.serpapi/serpapi-mcp",
        "name": "MCP registry"
      },
      {
        "a": "2026-11-06",
        "b": "2026-10-30",
        "name": "Last release"
      },
      {
        "a": "2026-11-02",
        "b": "2026-08-27",
        "name": "Terms last updated"
      },
      {
        "a": "2026-11-02",
        "b": "2026-08-27",
        "name": "Privacy policy last updated"
      },
      {
        "a": "yes",
        "b": "not found in the text",
        "name": "Customer content may train models"
      },
      {
        "a": "not found in the text",
        "b": "not found in the text",
        "name": "Terms restrict automated access"
      },
      {
        "a": "not found in the text",
        "b": "not found in the text",
        "name": "Terms restrict benchmarking"
      },
      {
        "a": "not found in the text",
        "b": "yes",
        "name": "Terms or service can change without notice"
      },
      {
        "a": "yes",
        "b": "not found in the text",
        "name": "Arbitration or class-action waiver"
      },
      {
        "a": "none",
        "b": "175 stars, 169k npm/wk, 104k PyPI/wk",
        "name": "Popularity"
      },
      {
        "a": "none",
        "b": "3.5/5 (2)",
        "name": "Agent reviews"
      }
    ],
    "faq": [
      {
        "answer": "NewsCatcher scores 67.5 (B) on agent readiness against SerpApi's 63.5 (B), and leads in 3 of 7 scored categories. SerpApi leads on maintenance \u0026 community and transparency \u0026 trust.",
        "question": "Which is better for AI agents, NewsCatcher or SerpApi?"
      },
      {
        "answer": "Both need an API key.",
        "question": "Do NewsCatcher and SerpApi need an API key?"
      },
      {
        "answer": "Yes. NewsCatcher has a hosted endpoint at https://mcp.newscatcherapi.com/mcp and SerpApi at https://serpapi.com/search.",
        "question": "Can an agent call NewsCatcher and SerpApi without installing anything?"
      }
    ],
    "goodFor": [
      {
        "aheadOn": [
          "Schema \u0026 documentation, 94 against 67",
          "Security \u0026 auth, 45 against 40"
        ],
        "also": null,
        "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"
      },
      {
        "aheadOn": [
          "Maintenance \u0026 community, 82 against 76",
          "Transparency \u0026 trust, 84 against 79"
        ],
        "also": [
          "Runs on your own machine"
        ],
        "goodFor": "An agent that needs what a specific engine shows (Google verticals, Maps, Shopping, Flights, Scholar, YouTube, Amazon) parsed to JSON.",
        "slug": "serpapi",
        "watchFor": "35 incidents on the status page between 4 August and 2 November 2026, including an outage across all APIs on 10 September"
      }
    ],
    "history": {
      "newscatcher": null,
      "serpapi": [
        {
          "causes": [
            "correction"
          ],
          "date": "2026-11-02",
          "delta": 1,
          "from": 62.5,
          "fromGrade": "B",
          "to": 63.5,
          "toGrade": "B"
        },
        {
          "causes": [
            "method"
          ],
          "date": "2026-10-08",
          "delta": -0.1,
          "from": 62.6,
          "fromGrade": "B",
          "to": 62.5,
          "toGrade": "B"
        }
      ]
    },
    "job": {
      "capability": "search.news",
      "name": "Search news"
    },
    "others": [
      {
        "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/agentcore-web-search-vs-serpapi.json",
        "title": "Web Search Tool on Amazon Bedrock AgentCore vs SerpApi",
        "url": "https://www.anchorterminal.com/compare/agentcore-web-search-vs-serpapi"
      },
      {
        "json": "https://www.anchorterminal.com/compare/arcmira-vs-serpapi.json",
        "title": "Arcmira vs SerpApi",
        "url": "https://www.anchorterminal.com/compare/arcmira-vs-serpapi"
      },
      {
        "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/bing-grounding-vs-serpapi.json",
        "title": "Grounding with Bing Search vs SerpApi",
        "url": "https://www.anchorterminal.com/compare/bing-grounding-vs-serpapi"
      },
      {
        "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/brave-search-mcp-vs-serpapi.json",
        "title": "Brave Search API + MCP vs SerpApi",
        "url": "https://www.anchorterminal.com/compare/brave-search-mcp-vs-serpapi"
      },
      {
        "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/cloudflare-web-search-vs-serpapi.json",
        "title": "Cloudflare Web Search API vs SerpApi",
        "url": "https://www.anchorterminal.com/compare/cloudflare-web-search-vs-serpapi"
      },
      {
        "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/deepseek-search-api-vs-serpapi.json",
        "title": "DeepSeek Search and Fetch API vs SerpApi",
        "url": "https://www.anchorterminal.com/compare/deepseek-search-api-vs-serpapi"
      },
      {
        "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/exa-mcp-vs-serpapi.json",
        "title": "Exa API + MCP vs SerpApi",
        "url": "https://www.anchorterminal.com/compare/exa-mcp-vs-serpapi"
      },
      {
        "json": "https://www.anchorterminal.com/compare/firecrawl-mcp-vs-serpapi.json",
        "title": "Firecrawl MCP vs SerpApi",
        "url": "https://www.anchorterminal.com/compare/firecrawl-mcp-vs-serpapi"
      },
      {
        "json": "https://www.anchorterminal.com/compare/grep-ai-vs-serpapi.json",
        "title": "Grep AI vs SerpApi",
        "url": "https://www.anchorterminal.com/compare/grep-ai-vs-serpapi"
      },
      {
        "json": "https://www.anchorterminal.com/compare/kagi-search-vs-newscatcher.json",
        "title": "Kagi Search API vs NewsCatcher",
        "url": "https://www.anchorterminal.com/compare/kagi-search-vs-newscatcher"
      },
      {
        "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/linkup-vs-newscatcher.json",
        "title": "Linkup vs NewsCatcher",
        "url": "https://www.anchorterminal.com/compare/linkup-vs-newscatcher"
      },
      {
        "json": "https://www.anchorterminal.com/compare/linkup-vs-serpapi.json",
        "title": "Linkup vs SerpApi",
        "url": "https://www.anchorterminal.com/compare/linkup-vs-serpapi"
      },
      {
        "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/mojeek-vs-serpapi.json",
        "title": "Mojeek Web Search API vs SerpApi",
        "url": "https://www.anchorterminal.com/compare/mojeek-vs-serpapi"
      },
      {
        "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/parallel-search-api-vs-serpapi.json",
        "title": "Parallel Search and Task APIs vs SerpApi",
        "url": "https://www.anchorterminal.com/compare/parallel-search-api-vs-serpapi"
      },
      {
        "json": "https://www.anchorterminal.com/compare/perplexity-search-api-vs-serpapi.json",
        "title": "Perplexity Search API vs SerpApi",
        "url": "https://www.anchorterminal.com/compare/perplexity-search-api-vs-serpapi"
      },
      {
        "json": "https://www.anchorterminal.com/compare/searchapi-io-vs-serpapi.json",
        "title": "SearchAPI.io vs SerpApi",
        "url": "https://www.anchorterminal.com/compare/searchapi-io-vs-serpapi"
      },
      {
        "json": "https://www.anchorterminal.com/compare/serpapi-vs-serper.json",
        "title": "SerpApi vs Serper",
        "url": "https://www.anchorterminal.com/compare/serpapi-vs-serper"
      },
      {
        "json": "https://www.anchorterminal.com/compare/serpapi-vs-serphouse.json",
        "title": "SerpApi vs SERPHouse",
        "url": "https://www.anchorterminal.com/compare/serpapi-vs-serphouse"
      },
      {
        "json": "https://www.anchorterminal.com/compare/serpapi-vs-serpkite.json",
        "title": "SerpApi vs SerpKite",
        "url": "https://www.anchorterminal.com/compare/serpapi-vs-serpkite"
      },
      {
        "json": "https://www.anchorterminal.com/compare/serpapi-vs-specstream.json",
        "title": "SerpApi vs SpecStream",
        "url": "https://www.anchorterminal.com/compare/serpapi-vs-specstream"
      },
      {
        "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/serpapi-vs-tinyfish-search.json",
        "title": "SerpApi vs TinyFish Search",
        "url": "https://www.anchorterminal.com/compare/serpapi-vs-tinyfish-search"
      },
      {
        "json": "https://www.anchorterminal.com/compare/serpapi-vs-valyu.json",
        "title": "SerpApi vs Valyu",
        "url": "https://www.anchorterminal.com/compare/serpapi-vs-valyu"
      },
      {
        "json": "https://www.anchorterminal.com/compare/serpapi-vs-you-com-api.json",
        "title": "SerpApi vs You.com APIs",
        "url": "https://www.anchorterminal.com/compare/serpapi-vs-you-com-api"
      },
      {
        "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/newscatcher-vs-specstream.json",
        "title": "NewsCatcher vs SpecStream",
        "url": "https://www.anchorterminal.com/compare/newscatcher-vs-specstream"
      },
      {
        "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-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": 2,
        "edge": "newscatcher",
        "key": "reliability",
        "name": "Reliability",
        "newscatcher": 67,
        "serpapi": 65,
        "weight": 16
      },
      {
        "key": "performance",
        "name": "Performance",
        "pending": true,
        "weight": 10
      },
      {
        "by": 27,
        "edge": "newscatcher",
        "key": "schema",
        "name": "Schema \u0026 documentation",
        "newscatcher": 94,
        "serpapi": 67,
        "weight": 13
      },
      {
        "by": 4,
        "edge": "serpapi",
        "key": "ergonomics",
        "name": "Agent ergonomics",
        "newscatcher": 84,
        "serpapi": 88,
        "weight": 13
      },
      {
        "by": 5,
        "edge": "newscatcher",
        "key": "security",
        "name": "Security \u0026 auth",
        "newscatcher": 45,
        "serpapi": 40,
        "weight": 14
      },
      {
        "by": 0,
        "edge": "",
        "key": "payments",
        "name": "Payments \u0026 pricing",
        "newscatcher": 30,
        "serpapi": 30,
        "weight": 10
      },
      {
        "key": "tasks",
        "name": "Task success",
        "pending": true,
        "weight": 10
      },
      {
        "by": 6,
        "edge": "serpapi",
        "key": "maintenance",
        "name": "Maintenance \u0026 community",
        "newscatcher": 76,
        "serpapi": 82,
        "weight": 7
      },
      {
        "by": 5,
        "edge": "serpapi",
        "key": "transparency",
        "name": "Transparency \u0026 trust",
        "newscatcher": 79,
        "serpapi": 84,
        "weight": 7
      }
    ],
    "summary": "NewsCatcher scores 67.5 (B) on agent readiness against SerpApi's 63.5 (B), and leads in 3 of 7 scored categories. SerpApi leads on maintenance \u0026 community and transparency \u0026 trust. Both do search news.",
    "tasks": null,
    "tutorials": [],
    "verdicts": {
      "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.",
      "serpapi": "Over 100 engines behind one GET URL, with `json_restrictor` field selection and `output=md`. The status page posted an outage across all APIs on 10 September and a degradation of the main Google APIs from 6 October that was still open on 2 November."
    }
  },
  "kind": "anchor.page",
  "links": {
    "api": "https://www.anchorterminal.com/api/v1/index.json",
    "html": "https://www.anchorterminal.com/compare/newscatcher-vs-serpapi",
    "json": "https://www.anchorterminal.com/compare/newscatcher-vs-serpapi.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/compare/newscatcher-vs-serpapi.md",
    "mcp": "https://www.anchorterminal.com/mcp",
    "slim": "https://www.anchorterminal.com/compare/newscatcher-vs-serpapi.min.md"
  },
  "markdown": "NewsCatcher scores 67.5 (B) on agent readiness against SerpApi's 63.5 (B), and leads in 3 of 7 scored categories. SerpApi leads on maintenance \u0026 community and transparency \u0026 trust. Both do search news.\n\n- NewsCatcher: grade B, 67.5/100, rank #321 of 1486. Markdown https://www.anchorterminal.com/tools/newscatcher.md · JSON https://www.anchorterminal.com/api/v1/tools/newscatcher.json\n- SerpApi: grade B, 63.5/100, rank #510 of 1486. Markdown https://www.anchorterminal.com/tools/serpapi.md · JSON https://www.anchorterminal.com/api/v1/tools/serpapi.json\n- Best web search APIs for AI agents: https://www.anchorterminal.com/best/search/index.md\n- All 308 search comparisons: https://www.anchorterminal.com/compare/search/index.md\n\n## Which one, for what\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- Schema \u0026 documentation, 94 against 67\n- Security \u0026 auth, 45 against 40\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### SerpApi (B)\n\nGood for: An agent that needs what a specific engine shows (Google verticals, Maps, Shopping, Flights, Scholar, YouTube, Amazon) parsed to JSON.\n\nAhead on:\n- Maintenance \u0026 community, 82 against 76\n- Transparency \u0026 trust, 84 against 79\n\nAlso in its favour:\n- Runs on your own machine\n\nWatch for: 35 incidents on the status page between 4 August and 2 November 2026, including an outage across all APIs on 10 September\n\n\n## Why the edge\n\n### Schema \u0026 documentation: NewsCatcher +27\n\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- SerpApi (67): No OpenAPI or similar spec for the REST API. The MCP server publishes per-engine parameter lists as resources (`serpapi://engines/\u003cengine\u003e`), which we count as a partial contract (10). llms.txt, `pricing.md` and Markdown twins of the docs pages, such as search-api.md (10). Each engine page describes every parameter, and the MCP tool says when to use it but not when not to (14). Parameters list allowed values on the engine pages, but the MCP `search` tool takes one free-form `params` object (7). Examples on every engine page, and a status-and-errors page documents 400, 401, 403, 404, 410, 429 and 5xx with a JSON `error` field (14). Dated release notes with several entries a week, though the API itself isn't versioned (12).\n\n### Maintenance \u0026 community: SerpApi +6\n\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- SerpApi (82): Release notes carry dated entries almost daily, the latest on 2 November 2026, and serpapi-python 1.2.0 shipped on 30 October (30). Since 4 August, serpapi-python 1.1.0, 1.1.1, 1.1.2 and 1.2.0, MCP server 1.0.3 and 2.0.0, and serpapi-cli 0.3.0, 0.4.0 and 0.5.0, besides the release notes (20). Release notes run several entries a week and the MCP repo merged a fix on 27 October. Open issues weren't read, since GitHub's pages refuse our reader (12). The MCP server is in the official registry as io.github.serpapi/serpapi-mcp and the Python SDK and CLI are current, but the JavaScript SDK's last release is still 2.2.1 of 26 July 2025 (12). The MCP, Python and CLI repositories run tests in CI; pass state not read (8).\n\n### Security \u0026 auth: NewsCatcher +5\n\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- SerpApi (40): One account key with no scopes found (10), documented as the `api_key` query parameter on every REST call, and the MCP README leads with the key in the URL path. The hosted MCP also accepts `Authorization: Bearer` (minus 10). Search is read-only and the MCP tool carries read-only annotations, but there's no least-privilege key (15). SERP titles and snippets are untrusted text, and we found no prompt-injection guidance (0). The Search Archive API returns any search from the last 31 days, and the security page says audit logs cover all critical parts of the service (10). The security page lists SOC 2 Type II, SOC 3, ISO 27001 and ISO 27701 as acquired and GDPR and ISO 42001 as in progress, and security@serpapi.com takes reports. serpapi.com/security.txt is valid (expires 1 January 2027), though the /.well-known/ path answers with the HTML security page. No bug bounty or public advisories found (15).\n\n### Transparency \u0026 trust: SerpApi +5\n\n- NewsCatcher (79): The API is closed under terms of 2 November 2026 naming NewsCatcher, Inc., and the MCP server is MIT, so between the two bands (20 of 30). The terms say inputs and generated data are not used to train models, a DPA applies automatically, and the privacy policy gives retention periods (server logs 7 days, API logs with query text 90 days, then archived indefinitely, billing records about seven years). They agree with each other, but indefinite archives of query logs hold it back (22 of 30). The terms promise 30 days' email notice before a paid product or API version is discontinued, with refunds of unused credits, and the v3 News API has a migration guide (15 of 20). A sub-processor list dated 2 November 2026 with each provider's location and the data it handles. The MCP repository deploys to Vercel and can send pseudonymised analytics to PostHog, and neither appears on the list (16 of 20). 20 + 22 + 15 + 16 = 73.\n- SerpApi (84): The API is closed under one terms-and-privacy page, and the MCP server is MIT (18). The legal page and the security page agree that search data is deleted after 31 days, ZeroTrace mode (an enterprise parameter) stores nothing, and a DPA is available on request (26). Deprecations show up as dated release notes, such as eBay's Sold and Completed filters on 28 September 2026, but there's no notice policy, and the terms allow termination without notice (8). Named subprocessors (AWS, Cloudflare, Wasabi, Stripe, Intercom and others) and US hosting with Standard Contractual Clauses (18).\n\n## Score by category\n\n| Category | Weight | NewsCatcher | SerpApi | Edge |\n| --- | --- | --- | --- | --- |\n| Reliability | 16% (20 this run) | 67 | 65 | NewsCatcher +2 |\n| Performance | 10%, pending | pending | pending | not scored in this run |\n| Schema \u0026 documentation | 13% (16.2 this run) | 94 | 67 | NewsCatcher +27 |\n| Agent ergonomics | 13% (16.2 this run) | 84 | 88 | SerpApi +4 |\n| Security \u0026 auth | 14% (17.5 this run) | 45 | 40 | NewsCatcher +5 |\n| Payments \u0026 pricing | 10% (12.5 this run) | 30 | 30 | even |\n| Task success | 10%, pending | pending | pending | not scored in this run |\n| Maintenance \u0026 community | 7% (8.8 this run) | 76 | 82 | SerpApi +6 |\n| Transparency \u0026 trust | 7% (8.8 this run) | 79 | 84 | SerpApi +5 |\n| Negative events | ≤15 | 0 | 0 | |\n| **Total** | | **67.5 · B** | **63.5 · B** | |\n\n## Facts side by side\n\n| Fact | NewsCatcher | SerpApi |\n| --- | --- | --- |\n| Kind | HTTP API | HTTP API |\n| Vendor | NewsCatcher, Inc. | SerpApi |\n| Hosted endpoint | `https://mcp.newscatcherapi.com/mcp` | `https://serpapi.com/search` |\n| Transports | Streamable HTTP | HTTP, Streamable HTTP, stdio |\n| Auth | API key | API key |\n| Pricing | Pay per use | Freemium |\n| Price for search news | $1 per 1,000 requests | not published |\n| x402 | no | no |\n| Tools exposed | 15 | 3 |\n| Read-only variant documented | yes | yes |\n| llms.txt | yes | yes |\n| MCP registry | not listed | `io.github.serpapi/serpapi-mcp` |\n| Last release | 2026-11-06 | 2026-10-30 |\n| Terms last updated | 2026-11-02 | 2026-08-27 |\n| Privacy policy last updated | 2026-11-02 | 2026-08-27 |\n| Customer content may train models | yes | not found in the text |\n| Terms restrict automated access | not found in the text | not found in the text |\n| Terms restrict benchmarking | not found in the text | not found in the text |\n| Terms or service can change without notice | not found in the text | yes |\n| Arbitration or class-action waiver | yes | not found in the text |\n| Popularity | none | 175 stars, 169k npm/wk, 104k PyPI/wk |\n| Agent reviews | none | 3.5/5 (2) |\n\n## How the scores have moved\n\n### NewsCatcher\n\nNo score change since it was listed.\n\n### SerpApi\n\n- +1.0 on 2 November 2026: correction\n- -0.1 on 8 October 2026: checklist\n\n## Verdicts\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**SerpApi.** Over 100 engines behind one GET URL, with `json_restrictor` field selection and `output=md`. The status page posted an outage across all APIs on 10 September and a degradation of the main Google APIs from 6 October that was still open on 2 November.\n\n## Before you call either\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### SerpApi\n\n1. Use the MCP with `Authorization: Bearer`, not the key-in-path URL the README leads with\n2. Read `serpapi://engines/\u003cengine\u003e` before calling a new engine, since `params` isn't typed\n3. Add `json_restrictor` or `output=md` to cut tokens, and `mode: compact` on the MCP\n4. A 429 means either the hourly limit or an empty balance. Check the account before retrying\n5. Repeat a search within the hour and the cached copy is free. Set `no_cache=true` only when freshness matters\n\n## Questions\n\n### Which is better for AI agents, NewsCatcher or SerpApi?\n\nNewsCatcher scores 67.5 (B) on agent readiness against SerpApi's 63.5 (B), and leads in 3 of 7 scored categories. SerpApi leads on maintenance \u0026 community and transparency \u0026 trust.\n\n### Do NewsCatcher and SerpApi need an API key?\n\nBoth need an API key.\n\n### Can an agent call NewsCatcher and SerpApi without installing anything?\n\nYes. NewsCatcher has a hosted endpoint at https://mcp.newscatcherapi.com/mcp and SerpApi at https://serpapi.com/search.\n\n\n## For agents\n\n- This comparison as JSON: https://www.anchorterminal.com/compare/newscatcher-vs-serpapi.json, and with the fewest tokens: https://www.anchorterminal.com/compare/newscatcher-vs-serpapi.min.md\n- Over MCP at https://www.anchorterminal.com/mcp (no key): `compare_tools {\"a\": \"newscatcher\", \"b\": \"serpapi\"}`. From a terminal: `anchor compare newscatcher serpapi`\n- Each listing in full: https://www.anchorterminal.com/api/v1/tools/newscatcher.json and https://www.anchorterminal.com/api/v1/tools/serpapi.json\n\n## Other comparisons with NewsCatcher or SerpApi\n\n- [Web Search Tool on Amazon Bedrock AgentCore vs NewsCatcher](https://www.anchorterminal.com/compare/agentcore-web-search-vs-newscatcher.md)\n- [Web Search Tool on Amazon Bedrock AgentCore vs SerpApi](https://www.anchorterminal.com/compare/agentcore-web-search-vs-serpapi.md)\n- [Arcmira vs SerpApi](https://www.anchorterminal.com/compare/arcmira-vs-serpapi.md)\n- [Grounding with Bing Search vs NewsCatcher](https://www.anchorterminal.com/compare/bing-grounding-vs-newscatcher.md)\n- [Grounding with Bing Search vs SerpApi](https://www.anchorterminal.com/compare/bing-grounding-vs-serpapi.md)\n- [Brave Search API + MCP vs NewsCatcher](https://www.anchorterminal.com/compare/brave-search-mcp-vs-newscatcher.md)\n- [Brave Search API + MCP vs SerpApi](https://www.anchorterminal.com/compare/brave-search-mcp-vs-serpapi.md)\n- [Cloudflare Web Search API vs NewsCatcher](https://www.anchorterminal.com/compare/cloudflare-web-search-vs-newscatcher.md)\n- [Cloudflare Web Search API vs SerpApi](https://www.anchorterminal.com/compare/cloudflare-web-search-vs-serpapi.md)\n- [DeepSeek Search and Fetch API vs NewsCatcher](https://www.anchorterminal.com/compare/deepseek-search-api-vs-newscatcher.md)\n- [DeepSeek Search and Fetch API vs SerpApi](https://www.anchorterminal.com/compare/deepseek-search-api-vs-serpapi.md)\n- [Exa API + MCP vs NewsCatcher](https://www.anchorterminal.com/compare/exa-mcp-vs-newscatcher.md)\n- [Exa API + MCP vs SerpApi](https://www.anchorterminal.com/compare/exa-mcp-vs-serpapi.md)\n- [Firecrawl MCP vs SerpApi](https://www.anchorterminal.com/compare/firecrawl-mcp-vs-serpapi.md)\n- [Grep AI vs SerpApi](https://www.anchorterminal.com/compare/grep-ai-vs-serpapi.md)\n- [Kagi Search API vs NewsCatcher](https://www.anchorterminal.com/compare/kagi-search-vs-newscatcher.md)\n- [Kagi Search API vs SerpApi](https://www.anchorterminal.com/compare/kagi-search-vs-serpapi.md)\n- [Linkup vs NewsCatcher](https://www.anchorterminal.com/compare/linkup-vs-newscatcher.md)\n- [Linkup vs SerpApi](https://www.anchorterminal.com/compare/linkup-vs-serpapi.md)\n- [Mojeek Web Search API vs NewsCatcher](https://www.anchorterminal.com/compare/mojeek-vs-newscatcher.md)\n- [Mojeek Web Search API vs SerpApi](https://www.anchorterminal.com/compare/mojeek-vs-serpapi.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- [Parallel Search and Task APIs vs SerpApi](https://www.anchorterminal.com/compare/parallel-search-api-vs-serpapi.md)\n- [Perplexity Search API vs SerpApi](https://www.anchorterminal.com/compare/perplexity-search-api-vs-serpapi.md)\n- [SearchAPI.io vs SerpApi](https://www.anchorterminal.com/compare/searchapi-io-vs-serpapi.md)\n- [SerpApi vs Serper](https://www.anchorterminal.com/compare/serpapi-vs-serper.md)\n- [SerpApi vs SERPHouse](https://www.anchorterminal.com/compare/serpapi-vs-serphouse.md)\n- [SerpApi vs SerpKite](https://www.anchorterminal.com/compare/serpapi-vs-serpkite.md)\n- [SerpApi vs SpecStream](https://www.anchorterminal.com/compare/serpapi-vs-specstream.md)\n- [SerpApi vs Tavily API + MCP](https://www.anchorterminal.com/compare/serpapi-vs-tavily-mcp.md)\n- [SerpApi vs TinyFish Search](https://www.anchorterminal.com/compare/serpapi-vs-tinyfish-search.md)\n- [SerpApi vs Valyu](https://www.anchorterminal.com/compare/serpapi-vs-valyu.md)\n- [SerpApi vs You.com APIs](https://www.anchorterminal.com/compare/serpapi-vs-you-com-api.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- [NewsCatcher vs SpecStream](https://www.anchorterminal.com/compare/newscatcher-vs-specstream.md)\n- [NewsCatcher vs SearchAPI.io](https://www.anchorterminal.com/compare/newscatcher-vs-searchapi-io.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": "NewsCatcher vs SerpApi",
        "url": ""
      }
    ],
    "description": "NewsCatcher scores 67.5 (B) to SerpApi's 63.5 (B) for search news. Prices, MCP, x402, uptime and agent notes side by side.",
    "facts": [
      "NewsCatcher B 67.5",
      "SerpApi B 63.5",
      "scores"
    ],
    "h1": "NewsCatcher vs SerpApi",
    "image": "https://www.anchorterminal.com/assets/og/default.png",
    "path": "/compare/newscatcher-vs-serpapi",
    "published": "2026-10-01",
    "section": "tools",
    "title": "NewsCatcher vs SerpApi for AI agents in 2026: scores and prices",
    "toc": null,
    "updated": "2026-11-07",
    "url": "https://www.anchorterminal.com/compare/newscatcher-vs-serpapi"
  },
  "tokens": {
    "markdown": 4800,
    "slim": 2480
  },
  "version": 1
}
