{
  "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 SpecStream's 64.4 (B), and leads in 4 of 7 scored categories. SpecStream leads on security \u0026 auth, payments \u0026 pricing and maintenance \u0026 community.",
    "b": {
      "slug": "specstream",
      "name": "SpecStream",
      "vendor": "SpecStream SAS",
      "vendorUrl": "https://specstream.ai",
      "kind": "platform",
      "category": "search",
      "summary": "SpecStream is a hosted web data service that turns a plain-language request into rows with a source page for each value, enriches and rechecks lists, and is reached through a web app, REST API, SDKs and remote MCP server.",
      "url": "https://www.anchorterminal.com/tools/specstream",
      "markdownUrl": "https://www.anchorterminal.com/tools/specstream.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/specstream.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/specstream.json",
      "dns": "specstream.grade.anchorterminal.com",
      "repo": "https://github.com/specstream/specstream-tools",
      "license": "Proprietary hosted service under SpecStream SAS's terms of use (updated 3 November 2026, French law). The client code in specstream/specstream-tools (SDKs, the stdio bridge, framework packages, plugins, skills and integrations) is MIT, copyright SpecStream SAS",
      "transports": [
        "streamable-http",
        "http"
      ],
      "remoteUrl": "https://api.specstream.ai/mcp",
      "packages": [
        {
          "registry": "pypi",
          "name": "specstream-client"
        },
        {
          "registry": "npm",
          "name": "@specstream/sdk"
        },
        {
          "registry": "pypi",
          "name": "specstream-mcp-stdio"
        }
      ],
      "auth": "mixed",
      "authNotes": "Two credentials, both sent as `Authorization: Bearer`. API keys (`ss_live_...`) are made under Agents \u0026 API in the workspace or with the `create_api_key` tool, shown once, limited to any of eight scopes (`specs:read`, `specs:write`, `finds:read`, `finds:write`, `finds:spend`, `projects:read`, `projects:manage`, `account:read`), to named projects, to an expiry of 1 to 365 days (90 by default) and to a spending ceiling, and revoked singly so that the next request fails; the docs group them as read, prepare or execute access and only execute starts paid work. OAuth 2.1 sign-in for MCP clients uses HTTPS client ID metadata documents or dynamic client registration, with read, prepare or execute access shown on a consent screen, and registered clients are listed and revoked in account settings. Delegated access can let an agent start named operations within a per-run limit, a monthly limit and an expiry. No secret in a query string is documented. The authorisation server metadata on api.specstream.ai was not read (see openQuestions).",
      "pricing": "usage",
      "pricingNotes": "Prices are per matching result and the same on every plan, Standard $0.05 (up to 5 facts), Expanded $0.15 (up to 15 facts and one related list with 10 related records, then 10 cents per further 10), Deep $1, plus 5 cents for a named person's email and 15 cents for a phone. Rechecks cost half the rate for a changed or new row and 1 cent for an unchanged one; checking an imported row costs 5 cents or its match rate. A run that finds nothing, rows left out and reading or pricing a request cost nothing. Free is $10 of work once for the first 30 days with no card; pay as you go tops up from $10 with no expiry; Pro $19 a month with $19 of work, Scale $99, Team $499, Enterprise from $2,500; yearly adds 20 per cent more work, and plan balance rolls over one month. Agents without an account can pay per purchase by x402 (USDC) or MPP (card, at least $1) (https://specstream.ai/pricing and https://specstream.ai/docs/agent-payments, checked 2026-11-03).",
      "priceSummary": "$19 / mo",
      "where": "hosted",
      "x402": {
        "level": "yes",
        "evidence": "The agent payments page documents `POST https://api.specstream.ai/v1/agent/lists` as the one paid route for agents without an account. It answers 402 with a `PAYMENT-REQUIRED` header for x402 v2 (USDC on Base, Arbitrum or Polygon, a Permit2 authorisation for the quoted maximum under the `upto` scheme, settled for the results cost only) and a `WWW-Authenticate: Payment` challenge for MPP by card through Stripe's Link agent wallet; the offer lasts 15 minutes and a purchase is 1 to 500 results for $1.00 to $500.00. Pricing and the changelog (15 October 2026) say the same. Not exercised, because api.specstream.ai's robots.txt could not be read, so nothing on that host was requested (https://specstream.ai/docs/agent-payments, checked 2026-11-03).",
        "endpoints": [
          {
            "url": "https://api.specstream.ai/v1/agent/lists",
            "priceUsd": null,
            "network": "eip155:8453"
          },
          {
            "url": "https://api.specstream.ai/v1/agent/lists",
            "priceUsd": null,
            "network": "eip155:42161"
          },
          {
            "url": "https://api.specstream.ai/v1/agent/lists",
            "priceUsd": null,
            "network": "eip155:137"
          }
        ]
      },
      "toolCount": 128,
      "popularity": {
        "githubStars": null,
        "npmWeekly": null,
        "pypiWeekly": null,
        "asOf": "2026-11-03"
      },
      "docsUrl": "https://specstream.ai/docs",
      "llmsTxt": "https://specstream.ai/llms.txt",
      "openapi": "https://specstream.ai/openapi.json",
      "registryName": "ai.specstream/specstream",
      "capabilities": [
        "search.research",
        "web.search",
        "web.extract",
        "lead.enrichment",
        "data.company",
        "email.finder"
      ],
      "tags": [
        "hosted",
        "official",
        "closed-source",
        "openapi",
        "llms-txt",
        "mcp",
        "remote-mcp",
        "oauth",
        "api-key",
        "x402",
        "mpp",
        "a2a",
        "python",
        "typescript",
        "cli",
        "webhooks",
        "async-jobs",
        "agent-skills",
        "enrichment",
        "desktop-app",
        "windows",
        "eu-hosting",
        "usage-based",
        "free-tier",
        "no-card",
        "no-status-page",
        "new"
      ],
      "lastRelease": "2026-11-03",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 64.4,
        "grade": "B",
        "agentReady": false,
        "rank": 470,
        "ranked": true,
        "rankOf": 1486,
        "categoryRank": 13,
        "methodology": "0.7",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 65,
          "maintenance": 81,
          "payments": 85,
          "reliability": 23,
          "schema": 80,
          "security": 73,
          "transparency": 66
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-11-03"
        },
        "negative": 0,
        "verdict": "Typed MCP and REST surfaces with a quote-then-approve flow, required idempotency keys on paid work, scoped expiring keys with spending caps, per-result prices and an x402 or card route that needs no account. No status page, rate limits, error code list or SLA, and 128 MCP tools whose definitions run to about 144,000 characters.",
        "bestFor": "Agents that need a list of companies, places, grants, tenders, papers or packages matching stated conditions, with a source page on every value and a price approved before anything runs, and teams that want the same list rechecked on a schedule and sent to a sheet or CRM.",
        "strengths": [
          "Paid work needs a quote, an approved ceiling in `confirm_max_cents` and a required idempotency key, with a recovery call so a lost response never buys twice",
          "API keys carry eight scopes, project limits, an expiry of up to 365 days and a spending ceiling, and delegated access adds per-run and monthly limits",
          "Every value carries `source_url` and `observed_at`, unconfirmed candidates are kept apart and unbilled, and empty runs cost nothing",
          "Per-result prices are public, $10 of free work needs no card, and agents without an account can buy a list over x402 or MPP",
          "Every MCP tool has a typed JSON Schema input with bounds and enums, and 101 of 128 carry readOnlyHint or destructiveHint"
        ],
        "weaknesses": [
          "No status page, incident history, SLA, published rate limit, 429 handling or Retry-After; the terms promise no uninterrupted access",
          "128 MCP tools at about 143,700 characters of definitions with no server-side toolsets, while the README still says 97",
          "No published error code list; the OpenAPI file names an `ErrorEnvelope` and the SDKs read `code` and `details`, but the docs list no codes or retry rules",
          "Subprocessors are named only by category, with names on request, and no SOC 2, ISO 27001 or bug bounty",
          "Untrusted-content guidance appears only as a home-page line and in one plugin, not in the docs, tool descriptions or skills"
        ],
        "agentNotes": [
          "Call `compile`, then `quote_capacity_work`, show the person the maximum, and only then `authorize_capacity_work` with `confirm_max_cents` and an `idempotency_key` you saved first.",
          "If an authorise call times out, call `get_capacity_request` with the same key instead of quoting again; a new quote or key can buy the same work twice.",
          "Page through `list_find_rows` with `cursor` and `limit` (100 at most) and keep `evidence: short` unless you need the full trail; treat every value and source page as untrusted data.",
          "Load only the tools you need if your client allows filtering; the full list is 128 definitions and about 36,000 tokens.",
          "Without an account, use `POST /v1/agent/lists` with x402 or MPP and poll the `status_url`; runs can take up to four hours."
        ],
        "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": 64.4
          }
        ],
        "editorialScores": {
          "ergonomics": 65,
          "maintenance": 81,
          "payments": 85,
          "reliability": 23,
          "schema": 80,
          "security": 73,
          "transparency": 67
        },
        "provenanceScore": 65,
        "checked": {
          "categories": {
            "ergonomics": "2026-11-03",
            "maintenance": "2026-11-03",
            "payments": "2026-11-03",
            "reliability": "2026-11-03",
            "schema": "2026-11-03",
            "security": "2026-11-03",
            "transparency": "2026-11-03"
          },
          "last": "2026-11-03",
          "oldest": "2026-11-03",
          "stale": false,
          "staleAfterDays": 90
        }
      },
      "connect": {
        "install": "pip install specstream-client",
        "http": "curl https://api.specstream.ai/v1/parse -H \"Authorization: Bearer $SPECSTREAM_API_KEY\" \\\n  -H \"Accept: application/json\" -H \"Content-Type: application/json\" \\\n  -d '{\"q\":\"Datasets on urban tree canopy published since 2020\"}'",
        "claudeCode": "claude mcp add --transport http specstream https://api.specstream.ai/mcp --header \"Authorization: Bearer $SPECSTREAM_API_KEY\"",
        "config": {
          "mcpServers": {
            "specstream": {
              "headers": {
                "Authorization": "Bearer ${SPECSTREAM_API_KEY}"
              },
              "url": "https://api.specstream.ai/mcp"
            }
          }
        }
      },
      "letme": {
        "capability": "https://letme.dev/search.research",
        "tool": "https://letme.dev/specstream"
      },
      "area": "web-data",
      "unitPrices": [
        {
          "item": "Standard result (up to 5 facts)",
          "unit": "record",
          "usd": 0.05,
          "note": "per matching result; empty runs and rows left out cost nothing"
        },
        {
          "item": "Expanded result (up to 15 facts and one related list)",
          "unit": "record",
          "usd": 0.15,
          "note": "includes 10 related records, then $0.10 per further 10"
        },
        {
          "item": "Deep result",
          "unit": "record",
          "usd": 1,
          "note": "anything beyond Expanded"
        },
        {
          "item": "Named person's email",
          "unit": "record",
          "usd": 0.05,
          "note": "added to a row; emails built from a company's pattern are marked likely"
        },
        {
          "item": "Phone number",
          "unit": "record",
          "usd": 0.15,
          "note": "added to a row"
        },
        {
          "item": "Recheck of an unchanged row",
          "unit": "record",
          "usd": 0.01,
          "note": "changed or new rows cost half their rate (3, 8 or 50 cents)"
        },
        {
          "item": "Pro plan",
          "unit": "month",
          "usd": 19,
          "note": "$19 of work a month, 1 member, 10 lists kept current"
        },
        {
          "item": "Scale plan",
          "unit": "month",
          "usd": 99,
          "note": "$99 of work a month, 10 members, 50 lists"
        },
        {
          "item": "Team plan",
          "unit": "month",
          "usd": 499,
          "note": "$499 of work a month, 50 members, 250 lists"
        }
      ],
      "provenance": {
        "legalEntity": "SpecStream SAS",
        "domain": "specstream.ai",
        "domainRegistered": "",
        "endpointOnVendorDomain": true,
        "terms": "https://specstream.ai/terms",
        "privacy": "https://specstream.ai/privacy",
        "statusPage": "",
        "changelog": "https://specstream.ai/changelog",
        "securityTxt": "valid",
        "checked": "2026-11-03",
        "notes": [
          "The legal notice in English and French (both updated 3 November 2026) names SpecStream SAS, a French société par actions simplifiée with share capital of 10 euros, RCS Narbonne 131 125 841, VAT FR49131125841, registered at 20 quai de Lorraine, 11100 Narbonne, with Tarek Etman as president and publication director and Nataliia Stepanenko as director general, hosted by Compagnie IBM France SAS on IBM Cloud in Madrid. The terms and privacy policy (both 3 November 2026) name the same company under French law.",
          "The company number was not confirmed against the register. annuaire-entreprises.data.gouv.fr and recherche-entreprises.api.gouv.fr were refused by our fetcher and a web search found no register page. The SIREN 131125841 passes its Luhn check digit and the VAT key 49 matches it; SIREN numbers starting with 1 or 2 are normally given to public bodies, which a private SAS would not be. No first-hand page contradicts the notice, so nothing is deducted.",
          "https://specstream.ai/.well-known/security.txt is valid (Contact support@specstream.ai, Expires 2027-10-08, languages en and fr). The repository's SECURITY.md adds GitHub private vulnerability reporting.",
          "firstReleased is 2026-09-30, the first entry in the dated changelog (the Windows workspace app); the npm SDK and n8n node were first published on 12 October and the stdio bridge on 12 October 2026. lastRelease is 2026-11-03, specstream-mcp-stdio 1.2.3 on PyPI.",
          "robots.txt on specstream.ai allows / and disallows /workspace (except /workspace/shared/ and /workspace/assets/), /app/, /account, /login, /signup, /join, /v1/, /oauth/, /mcp, /share/, /export/, /internal/, /cdn-cgi/ and the paths under /integrations/*/, with no rule for named AI crawlers. api.specstream.ai/robots.txt could not be read, so nothing on that host was fetched, including the OAuth well-known documents, the A2A agent card and the MCP server card.",
          "Not read: RDAP for specstream.ai, the Wayback Machine, the live MCP registry entry, PyPI project pages (a client challenge; the release feed was read instead) and the GitHub API for stars and issues."
        ],
        "score": 65
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/specstream.json",
      "live": {
        "slug": "specstream",
        "probe": {
          "target": "https://api.specstream.ai/mcp",
          "method": "get",
          "lastAt": "2026-11-07T18:20:56.282271614Z",
          "lastOk": true,
          "lastStatus": 401,
          "lastMs": 168,
          "lastNote": "asks for credentials",
          "authRequired": true,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 168,
          "p95ms24h": 297,
          "samples24h": 239,
          "samples30d": 960,
          "days": [
            {
              "date": "2026-11-03",
              "probes": 101,
              "ok": 101
            },
            {
              "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
            }
          ]
        },
        "versions": [
          {
            "registry": "github",
            "name": "specstream/specstream-tools",
            "version": "v1.2.0",
            "released": "2026-10-15",
            "seenAt": "2026-11-07T00:07:25.527981066Z"
          },
          {
            "registry": "mcp-registry",
            "name": "ai.specstream/specstream",
            "version": "1.3.3",
            "seenAt": "2026-11-07T18:16:28.95801333Z"
          },
          {
            "registry": "npm",
            "name": "@specstream/sdk",
            "version": "1.2.0",
            "seenAt": "2026-11-07T00:07:23.626038145Z"
          },
          {
            "registry": "pypi",
            "name": "specstream-client",
            "version": "1.2.0",
            "released": "2026-11-03",
            "seenAt": "2026-11-07T00:07:23.444556172Z"
          },
          {
            "registry": "pypi",
            "name": "specstream-mcp-stdio",
            "version": "1.2.3",
            "released": "2026-11-03",
            "seenAt": "2026-11-07T00:07:24.447981908Z"
          }
        ],
        "githubStars": 0,
        "npmWeekly": 171,
        "pypiWeekly": 123,
        "securityTxt": {
          "url": "https://specstream.ai/.well-known/security.txt",
          "state": "valid",
          "expires": "2027-10-08T00:00:00.000Z",
          "checkedAt": "2026-11-07T16:01:15.975147412Z"
        },
        "llmsTxt": {
          "url": "https://specstream.ai/llms.txt",
          "ok": true,
          "status": 200,
          "checkedAt": "2026-11-07T15:34:00.129710848Z"
        },
        "pages": [
          {
            "url": "https://specstream.ai/changelog",
            "kind": "changelog",
            "status": 200,
            "checkedAt": "2026-11-07T14:20:27.712530256Z",
            "changedAt": "2026-11-05T13:04:48.164521653Z",
            "fingerprint": "8eb83071eaea"
          },
          {
            "url": "https://specstream.ai/pricing",
            "kind": "pricing",
            "status": 200,
            "checkedAt": "2026-11-07T14:20:29.901966256Z",
            "changedAt": "2026-11-06T13:41:57.164998223Z",
            "fingerprint": "06eaeda2e947"
          },
          {
            "url": "https://specstream.ai/privacy",
            "kind": "privacy",
            "status": 200,
            "checkedAt": "2026-11-07T14:20:31.812928908Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "5bdf44cc317f"
          },
          {
            "url": "https://specstream.ai/terms",
            "kind": "terms",
            "status": 200,
            "checkedAt": "2026-11-07T14:20:35.708132973Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "55aaec0bbf91"
          }
        ],
        "mcpTools": {
          "url": "https://api.specstream.ai/mcp",
          "checkedAt": "2026-11-07T01:48:05.375102455Z",
          "status": "auth",
          "note": "asks for credentials before listing its tools",
          "changedAt": "2026-11-07T01:48:05.375102455Z"
        },
        "updatedAt": "2026-11-07T18:20:56.282271614Z"
      }
    },
    "edges": [
      {
        "by": 55,
        "category": "payments",
        "leads": "specstream",
        "name": "Payments \u0026 pricing",
        "reasons": {
          "a": "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.",
          "b": "x402 v2 (USDC on Base, Arbitrum or Polygon, Permit2 `upto` for the quoted maximum, settled for the results cost) and MPP by card on SpecStream's own `POST /v1/agent/lists`, the route for buying a list of 1 to 500 results without an account; enrichment of imported lists, refreshes, monitors and investigations need an account, and the route was read in the docs and not exercised because api.specstream.ai's robots.txt could not be read, so partial (25). Per-result prices published without a login, 5, 15 or 100 cents a result, 5 cents an email, 15 cents a phone, rechecks at half rate or 1 cent (20). $10 of work for 30 days with no card (20). An agent can buy a list over x402 or MPP with no account, and the A2A endpoint prices a request without a key (20). 25+20+20+20 = 85."
        },
        "scores": {
          "a": 30,
          "b": 85
        }
      },
      {
        "by": 44,
        "category": "reliability",
        "leads": "newscatcher",
        "name": "Reliability",
        "reasons": {
          "a": "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.",
          "b": "Hosted reading, for the MCP server and REST API on api.specstream.ai. No public status page was found. None is linked from the site, llms.txt or the docs, llms-full.txt mentions none, and https://specstream.ai/status returned an error (0). No readable incident history, so the floor (5). No rate limit with numbers is published in the docs, llms.txt, llms-full.txt or the part of the OpenAPI file read; the privacy policy and DPA mention rate limiting without figures, and the published limits are per job (10,000 results a request, four-hour runs, 20,000 imported rows) (0). Nothing documents 429, Retry-After or backoff, but paid work requires an `idempotency_key` on `authorize_capacity_work` and `POST /v1/capacity/executions`, `GET /v1/capacity/requests/{request_key}` recovers the original find after an uncertain response, and the skills say never to quote again to recover a lost reply (8 of 15). No SLA on any plan, and the terms say 'We do not promise uninterrupted access' (0). No beta or preview label on the API, the MCP server or the SDKs, which PyPI classifies as production and stable at 1.2 (10). 0+5+0+8+0+10 = 23."
        },
        "scores": {
          "a": 67,
          "b": 23
        }
      },
      {
        "by": 28,
        "category": "security",
        "leads": "specstream",
        "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": "API keys `ss_live_...` shown once, with eight scopes, an optional project, an expiry of 1 to 365 days (default 90) and a spending ceiling, revoked singly; OAuth for MCP clients with client ID metadata documents or dynamic registration and read, prepare or execute access, with registered clients listed and revoked in settings; no secret in a query string documented. The authorisation server metadata on api.specstream.ai was not read and rotation is not described beyond expiry (28 of 30). Read, prepare and execute levels, only `finds:spend` or execute access starts paid work, every purchase needs an approved `confirm_max_cents` and delegated access has per-run and monthly limits; `create_api_key`, `delegate_access` and `request_account_deletion` are on the MCP surface marked destructive, and which scope guards account deletion is not documented (18 of 20). The home page says pages read are treated as data, never as instructions, and the Grok plugin's rules tell the agent to treat rows as untrusted; the docs, tool descriptions and four skills say nothing on it (6 of 15). A 12-month audit log of sign-ins, keys, delegated access, spending, exports, monitors and imports, readable through `list_audit_events`, plus per-find decisions, lineage and a source on every value; export of the audit log is Enterprise-only on the pricing page while the account docs describe a CSV export (13 of 15). security.txt is valid until October 2027 with support@specstream.ai, and SECURITY.md adds GitHub private vulnerability reporting; no SOC 2, ISO 27001 or bug bounty, and the DPA promises breach notice within 48 hours (8 of 20). 28+18+6+13+8 = 73."
        },
        "scores": {
          "a": 45,
          "b": 73
        }
      },
      {
        "by": 19,
        "category": "ergonomics",
        "leads": "newscatcher",
        "name": "Agent ergonomics",
        "reasons": {
          "a": "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.",
          "b": "MCP reading. 128 tools at about 143,700 characters of names, descriptions and schemas (more than 30, 5), with no server-side toolsets or dynamic loading; the framework packages for LangChain, LlamaIndex, CrewAI and the Vercel AI SDK and the Open WebUI tool expose two to four tools with the price cap held in code, and results default to short evidence (5 back, 10 of 25). Cursor and `limit` on rows, search, specs and revisits, `evidence` short or full, filters by area and by field on collections, and unconfirmed candidates kept in a separate list (18 of 20). An `ErrorEnvelope` on every operation and an SDK error class that exposes `code` and `details`, but no published code list, meanings or retry rules (6 of 20). Required idempotency keys on paid work, schedules and refund claims with a recovery route, `expected_version` on updates, stable event ids on webhook retries, and readOnlyHint on 72 tools and destructiveHint on 29, with no idempotentHint (18 of 20). `compile` needs only `q`, a quote needs only `ast_hash` with 25 results by default, and official SDKs in Python and TypeScript with a CLI, though one purchase takes three calls with a hash carried between them (13 of 15). 10+18+6+18+13 = 65."
        },
        "scores": {
          "a": 84,
          "b": 65
        }
      },
      {
        "by": 14,
        "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": "MCP reading, with the REST API described. The tool list shipped in specstream-mcp-stdio 1.2.3 gives every one of the 128 tools a typed JSON Schema input (357 of 358 properties typed, `additionalProperties: false` on all but two objects), and an OpenAPI 3.1 file at https://specstream.ai/openapi.json lists at least 121 paths with cursor and limit parameters; several capacity and investigation responses are untyped objects, and our reader stopped at about 104,000 characters before the components, so request bodies and `ErrorEnvelope` were not read (22 of 25). llms.txt, llms-full.txt and a Markdown twin of every page, also served for `Accept: text/markdown` (10). Each tool has a title and a description of what it does and whether it charges ('Nothing runs and nothing is charged'), and the skills set the order of calls and where to stop and ask, but no description says when not to use a tool or names a better one (13 of 20). 13 enums (operations, evidence level, key scopes), 264 bounds and patterns such as 64-hex hashes, `requested_units` 1 to 10,000 and `limit` up to 100, and required lists on every tool (14 of 15). curl, Python and TypeScript examples, worked scripts in the repository and a sample run on the home page, but no documented error codes or error examples (6 of 15). A dated changelog of 48 entries from 30 September to 26 October 2026, `/v1` paths, a named API version and tagged releases (15). 22+10+13+14+6+15 = 80."
        },
        "scores": {
          "a": 94,
          "b": 80
        }
      },
      {
        "by": 13,
        "category": "transparency",
        "leads": "newscatcher",
        "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": "Closed hosted service under terms of 3 November 2026 naming SpecStream SAS, French law and a liability cap of the greater of 12 months' fees or 100 euros; the client code is MIT (20 of 30). The privacy policy and DPA agree with each other and the about page on EU hosting, no training on customer requests, lists or results, and a retention table (server logs 30 days, backups 8 days, page copies 24 hours, run working copies 7 days, audit log 12 months, support 3 years, accounts until deleted, erased from backups within 8 days of deletion), with breach notice in 48 hours and audit rights; the pricing page and the account docs disagree on who can export the audit log (27 of 30). No API deprecation policy; the changelog dates a price cut of 26 October 2026 that kept approved quotes at their old prices, the terms promise notice of material changes and keep historical quotes on their terms, and the DPA gives 30 days' notice of a new subprocessor (8 of 20). Subprocessors are listed by category with locations and transfer safeguards, hosting on IBM Cloud in Madrid is named in the legal notice, and names are available only on request (12 of 20). 20+27+8+12 = 67."
        },
        "scores": {
          "a": 79,
          "b": 66
        }
      }
    ],
    "facts": [
      {
        "a": "HTTP API",
        "b": "Platform",
        "name": "Kind"
      },
      {
        "a": "NewsCatcher, Inc.",
        "b": "SpecStream SAS",
        "name": "Vendor"
      },
      {
        "a": "https://mcp.newscatcherapi.com/mcp",
        "b": "https://api.specstream.ai/mcp",
        "name": "Hosted endpoint"
      },
      {
        "a": "Streamable HTTP",
        "b": "Streamable HTTP, HTTP",
        "name": "Transports"
      },
      {
        "a": "API key",
        "b": "OAuth or key",
        "name": "Auth"
      },
      {
        "a": "Pay per use",
        "b": "Pay per use",
        "name": "Pricing"
      },
      {
        "a": "$1 per transaction",
        "b": "not published",
        "name": "Price for research search"
      },
      {
        "a": "no",
        "b": "yes",
        "name": "x402"
      },
      {
        "a": "none",
        "b": "Proprietary hosted service under SpecStream SAS's terms of use (updated 3 November 2026, French law). The client code in specstream/specstream-tools (SDKs, the stdio bridge, framework packages, plugins, skills and integrations) is MIT, copyright SpecStream SAS",
        "name": "Licence"
      },
      {
        "a": "15",
        "b": "128",
        "name": "Tools exposed"
      },
      {
        "a": "yes",
        "b": "no",
        "name": "Read-only variant documented"
      },
      {
        "a": "yes",
        "b": "yes",
        "name": "llms.txt"
      },
      {
        "a": "not listed",
        "b": "ai.specstream/specstream",
        "name": "MCP registry"
      },
      {
        "a": "2026-11-06",
        "b": "2026-11-03",
        "name": "Last release"
      },
      {
        "a": "2026-11-02",
        "b": "not read yet",
        "name": "Terms last updated"
      },
      {
        "a": "2026-11-02",
        "b": "not read yet",
        "name": "Privacy policy last updated"
      },
      {
        "a": "yes",
        "b": "not read yet",
        "name": "Customer content may train models"
      },
      {
        "a": "not found in the text",
        "b": "not read yet",
        "name": "Terms restrict automated access"
      },
      {
        "a": "not found in the text",
        "b": "not read yet",
        "name": "Terms restrict benchmarking"
      },
      {
        "a": "not found in the text",
        "b": "not read yet",
        "name": "Terms or service can change without notice"
      },
      {
        "a": "yes",
        "b": "not read yet",
        "name": "Arbitration or class-action waiver"
      }
    ],
    "faq": [
      {
        "answer": "NewsCatcher scores 67.5 (B) on agent readiness against SpecStream's 64.4 (B), and leads in 4 of 7 scored categories. SpecStream leads on security \u0026 auth, payments \u0026 pricing and maintenance \u0026 community.",
        "question": "Which is better for AI agents, NewsCatcher or SpecStream?"
      },
      {
        "answer": "Yes. NewsCatcher has a hosted endpoint at https://mcp.newscatcherapi.com/mcp and SpecStream at https://api.specstream.ai/mcp.",
        "question": "Can an agent call NewsCatcher and SpecStream without installing anything?"
      }
    ],
    "goodFor": [
      {
        "aheadOn": [
          "Reliability, 67 against 23",
          "Schema \u0026 documentation, 94 against 80",
          "Agent ergonomics, 84 against 65",
          "Transparency \u0026 trust, 79 against 66"
        ],
        "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": [
          "Security \u0026 auth, 73 against 45",
          "Payments \u0026 pricing, 85 against 30",
          "Maintenance \u0026 community, 81 against 76"
        ],
        "also": [
          "An agent can pay per call over x402, with no account",
          "Free to start without a card"
        ],
        "goodFor": "Agents that need a list of companies, places, grants, tenders, papers or packages matching stated conditions, with a source page on every value and a price approved before anything runs, and teams that want the same list rechecked on a schedule and sent to a sheet or CRM.",
        "slug": "specstream",
        "watchFor": "No status page, incident history, SLA, published rate limit, 429 handling or Retry-After; the terms promise no uninterrupted access"
      }
    ],
    "history": null,
    "job": {
      "capability": "search.research",
      "name": "Research search"
    },
    "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-specstream.json",
        "title": "Web Search Tool on Amazon Bedrock AgentCore vs SpecStream",
        "url": "https://www.anchorterminal.com/compare/agentcore-web-search-vs-specstream"
      },
      {
        "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-specstream.json",
        "title": "Grounding with Bing Search vs SpecStream",
        "url": "https://www.anchorterminal.com/compare/bing-grounding-vs-specstream"
      },
      {
        "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-specstream.json",
        "title": "Brave Search API + MCP vs SpecStream",
        "url": "https://www.anchorterminal.com/compare/brave-search-mcp-vs-specstream"
      },
      {
        "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-specstream.json",
        "title": "Cloudflare Web Search API vs SpecStream",
        "url": "https://www.anchorterminal.com/compare/cloudflare-web-search-vs-specstream"
      },
      {
        "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-specstream.json",
        "title": "DeepSeek Search and Fetch API vs SpecStream",
        "url": "https://www.anchorterminal.com/compare/deepseek-search-api-vs-specstream"
      },
      {
        "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-specstream.json",
        "title": "Exa API + MCP vs SpecStream",
        "url": "https://www.anchorterminal.com/compare/exa-mcp-vs-specstream"
      },
      {
        "json": "https://www.anchorterminal.com/compare/firecrawl-mcp-vs-specstream.json",
        "title": "Firecrawl MCP vs SpecStream",
        "url": "https://www.anchorterminal.com/compare/firecrawl-mcp-vs-specstream"
      },
      {
        "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-specstream.json",
        "title": "Kagi Search API vs SpecStream",
        "url": "https://www.anchorterminal.com/compare/kagi-search-vs-specstream"
      },
      {
        "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-specstream.json",
        "title": "Linkup vs SpecStream",
        "url": "https://www.anchorterminal.com/compare/linkup-vs-specstream"
      },
      {
        "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-specstream.json",
        "title": "Mojeek Web Search API vs SpecStream",
        "url": "https://www.anchorterminal.com/compare/mojeek-vs-specstream"
      },
      {
        "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-specstream.json",
        "title": "Parallel Search and Task APIs vs SpecStream",
        "url": "https://www.anchorterminal.com/compare/parallel-search-api-vs-specstream"
      },
      {
        "json": "https://www.anchorterminal.com/compare/perplexity-search-api-vs-specstream.json",
        "title": "Perplexity Search API vs SpecStream",
        "url": "https://www.anchorterminal.com/compare/perplexity-search-api-vs-specstream"
      },
      {
        "json": "https://www.anchorterminal.com/compare/searchapi-io-vs-specstream.json",
        "title": "SearchAPI.io vs SpecStream",
        "url": "https://www.anchorterminal.com/compare/searchapi-io-vs-specstream"
      },
      {
        "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/serper-vs-specstream.json",
        "title": "Serper vs SpecStream",
        "url": "https://www.anchorterminal.com/compare/serper-vs-specstream"
      },
      {
        "json": "https://www.anchorterminal.com/compare/serphouse-vs-specstream.json",
        "title": "SERPHouse vs SpecStream",
        "url": "https://www.anchorterminal.com/compare/serphouse-vs-specstream"
      },
      {
        "json": "https://www.anchorterminal.com/compare/serpkite-vs-specstream.json",
        "title": "SerpKite vs SpecStream",
        "url": "https://www.anchorterminal.com/compare/serpkite-vs-specstream"
      },
      {
        "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/arcmira-vs-specstream.json",
        "title": "Arcmira vs SpecStream",
        "url": "https://www.anchorterminal.com/compare/arcmira-vs-specstream"
      },
      {
        "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/grep-ai-vs-specstream.json",
        "title": "Grep AI vs SpecStream",
        "url": "https://www.anchorterminal.com/compare/grep-ai-vs-specstream"
      },
      {
        "json": "https://www.anchorterminal.com/compare/specstream-vs-tavily-mcp.json",
        "title": "SpecStream vs Tavily API + MCP",
        "url": "https://www.anchorterminal.com/compare/specstream-vs-tavily-mcp"
      },
      {
        "json": "https://www.anchorterminal.com/compare/specstream-vs-tinyfish-search.json",
        "title": "SpecStream vs TinyFish Search",
        "url": "https://www.anchorterminal.com/compare/specstream-vs-tinyfish-search"
      },
      {
        "json": "https://www.anchorterminal.com/compare/specstream-vs-valyu.json",
        "title": "SpecStream vs Valyu",
        "url": "https://www.anchorterminal.com/compare/specstream-vs-valyu"
      },
      {
        "json": "https://www.anchorterminal.com/compare/specstream-vs-you-com-api.json",
        "title": "SpecStream vs You.com APIs",
        "url": "https://www.anchorterminal.com/compare/specstream-vs-you-com-api"
      },
      {
        "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": 44,
        "edge": "newscatcher",
        "key": "reliability",
        "name": "Reliability",
        "newscatcher": 67,
        "specstream": 23,
        "weight": 16
      },
      {
        "key": "performance",
        "name": "Performance",
        "pending": true,
        "weight": 10
      },
      {
        "by": 14,
        "edge": "newscatcher",
        "key": "schema",
        "name": "Schema \u0026 documentation",
        "newscatcher": 94,
        "specstream": 80,
        "weight": 13
      },
      {
        "by": 19,
        "edge": "newscatcher",
        "key": "ergonomics",
        "name": "Agent ergonomics",
        "newscatcher": 84,
        "specstream": 65,
        "weight": 13
      },
      {
        "by": 28,
        "edge": "specstream",
        "key": "security",
        "name": "Security \u0026 auth",
        "newscatcher": 45,
        "specstream": 73,
        "weight": 14
      },
      {
        "by": 55,
        "edge": "specstream",
        "key": "payments",
        "name": "Payments \u0026 pricing",
        "newscatcher": 30,
        "specstream": 85,
        "weight": 10
      },
      {
        "key": "tasks",
        "name": "Task success",
        "pending": true,
        "weight": 10
      },
      {
        "by": 5,
        "edge": "specstream",
        "key": "maintenance",
        "name": "Maintenance \u0026 community",
        "newscatcher": 76,
        "specstream": 81,
        "weight": 7
      },
      {
        "by": 13,
        "edge": "newscatcher",
        "key": "transparency",
        "name": "Transparency \u0026 trust",
        "newscatcher": 79,
        "specstream": 66,
        "weight": 7
      }
    ],
    "summary": "NewsCatcher scores 67.5 (B) on agent readiness against SpecStream's 64.4 (B), and leads in 4 of 7 scored categories. SpecStream leads on security \u0026 auth, payments \u0026 pricing and maintenance \u0026 community. Both do research search. SpecStream accepts x402. NewsCatcher doesn't.",
    "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.",
      "specstream": "Typed MCP and REST surfaces with a quote-then-approve flow, required idempotency keys on paid work, scoped expiring keys with spending caps, per-result prices and an x402 or card route that needs no account. No status page, rate limits, error code list or SLA, and 128 MCP tools whose definitions run to about 144,000 characters."
    }
  },
  "kind": "anchor.page",
  "links": {
    "api": "https://www.anchorterminal.com/api/v1/index.json",
    "html": "https://www.anchorterminal.com/compare/newscatcher-vs-specstream",
    "json": "https://www.anchorterminal.com/compare/newscatcher-vs-specstream.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/compare/newscatcher-vs-specstream.md",
    "mcp": "https://www.anchorterminal.com/mcp",
    "slim": "https://www.anchorterminal.com/compare/newscatcher-vs-specstream.min.md"
  },
  "markdown": "NewsCatcher scores 67.5 (B) on agent readiness against SpecStream's 64.4 (B), and leads in 4 of 7 scored categories. SpecStream leads on security \u0026 auth, payments \u0026 pricing and maintenance \u0026 community. Both do research search. SpecStream accepts x402. NewsCatcher doesn't.\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- SpecStream: grade B, 64.4/100, rank #470 of 1486. Markdown https://www.anchorterminal.com/tools/specstream.md · JSON https://www.anchorterminal.com/api/v1/tools/specstream.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- Reliability, 67 against 23\n- Schema \u0026 documentation, 94 against 80\n- Agent ergonomics, 84 against 65\n- Transparency \u0026 trust, 79 against 66\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### SpecStream (B)\n\nGood for: Agents that need a list of companies, places, grants, tenders, papers or packages matching stated conditions, with a source page on every value and a price approved before anything runs, and teams that want the same list rechecked on a schedule and sent to a sheet or CRM.\n\nAhead on:\n- Security \u0026 auth, 73 against 45\n- Payments \u0026 pricing, 85 against 30\n- Maintenance \u0026 community, 81 against 76\n\nAlso in its favour:\n- An agent can pay per call over x402, with no account\n- Free to start without a card\n\nWatch for: No status page, incident history, SLA, published rate limit, 429 handling or Retry-After; the terms promise no uninterrupted access\n\n\n## Why the edge\n\n### Payments \u0026 pricing: SpecStream +55\n\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- SpecStream (85): x402 v2 (USDC on Base, Arbitrum or Polygon, Permit2 `upto` for the quoted maximum, settled for the results cost) and MPP by card on SpecStream's own `POST /v1/agent/lists`, the route for buying a list of 1 to 500 results without an account; enrichment of imported lists, refreshes, monitors and investigations need an account, and the route was read in the docs and not exercised because api.specstream.ai's robots.txt could not be read, so partial (25). Per-result prices published without a login, 5, 15 or 100 cents a result, 5 cents an email, 15 cents a phone, rechecks at half rate or 1 cent (20). $10 of work for 30 days with no card (20). An agent can buy a list over x402 or MPP with no account, and the A2A endpoint prices a request without a key (20). 25+20+20+20 = 85.\n\n### Reliability: NewsCatcher +44\n\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- SpecStream (23): Hosted reading, for the MCP server and REST API on api.specstream.ai. No public status page was found. None is linked from the site, llms.txt or the docs, llms-full.txt mentions none, and https://specstream.ai/status returned an error (0). No readable incident history, so the floor (5). No rate limit with numbers is published in the docs, llms.txt, llms-full.txt or the part of the OpenAPI file read; the privacy policy and DPA mention rate limiting without figures, and the published limits are per job (10,000 results a request, four-hour runs, 20,000 imported rows) (0). Nothing documents 429, Retry-After or backoff, but paid work requires an `idempotency_key` on `authorize_capacity_work` and `POST /v1/capacity/executions`, `GET /v1/capacity/requests/{request_key}` recovers the original find after an uncertain response, and the skills say never to quote again to recover a lost reply (8 of 15). No SLA on any plan, and the terms say 'We do not promise uninterrupted access' (0). No beta or preview label on the API, the MCP server or the SDKs, which PyPI classifies as production and stable at 1.2 (10). 0+5+0+8+0+10 = 23.\n\n### Security \u0026 auth: SpecStream +28\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- SpecStream (73): API keys `ss_live_...` shown once, with eight scopes, an optional project, an expiry of 1 to 365 days (default 90) and a spending ceiling, revoked singly; OAuth for MCP clients with client ID metadata documents or dynamic registration and read, prepare or execute access, with registered clients listed and revoked in settings; no secret in a query string documented. The authorisation server metadata on api.specstream.ai was not read and rotation is not described beyond expiry (28 of 30). Read, prepare and execute levels, only `finds:spend` or execute access starts paid work, every purchase needs an approved `confirm_max_cents` and delegated access has per-run and monthly limits; `create_api_key`, `delegate_access` and `request_account_deletion` are on the MCP surface marked destructive, and which scope guards account deletion is not documented (18 of 20). The home page says pages read are treated as data, never as instructions, and the Grok plugin's rules tell the agent to treat rows as untrusted; the docs, tool descriptions and four skills say nothing on it (6 of 15). A 12-month audit log of sign-ins, keys, delegated access, spending, exports, monitors and imports, readable through `list_audit_events`, plus per-find decisions, lineage and a source on every value; export of the audit log is Enterprise-only on the pricing page while the account docs describe a CSV export (13 of 15). security.txt is valid until October 2027 with support@specstream.ai, and SECURITY.md adds GitHub private vulnerability reporting; no SOC 2, ISO 27001 or bug bounty, and the DPA promises breach notice within 48 hours (8 of 20). 28+18+6+13+8 = 73.\n\n### Agent ergonomics: NewsCatcher +19\n\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- SpecStream (65): MCP reading. 128 tools at about 143,700 characters of names, descriptions and schemas (more than 30, 5), with no server-side toolsets or dynamic loading; the framework packages for LangChain, LlamaIndex, CrewAI and the Vercel AI SDK and the Open WebUI tool expose two to four tools with the price cap held in code, and results default to short evidence (5 back, 10 of 25). Cursor and `limit` on rows, search, specs and revisits, `evidence` short or full, filters by area and by field on collections, and unconfirmed candidates kept in a separate list (18 of 20). An `ErrorEnvelope` on every operation and an SDK error class that exposes `code` and `details`, but no published code list, meanings or retry rules (6 of 20). Required idempotency keys on paid work, schedules and refund claims with a recovery route, `expected_version` on updates, stable event ids on webhook retries, and readOnlyHint on 72 tools and destructiveHint on 29, with no idempotentHint (18 of 20). `compile` needs only `q`, a quote needs only `ast_hash` with 25 results by default, and official SDKs in Python and TypeScript with a CLI, though one purchase takes three calls with a hash carried between them (13 of 15). 10+18+6+18+13 = 65.\n\n### Schema \u0026 documentation: NewsCatcher +14\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- SpecStream (80): MCP reading, with the REST API described. The tool list shipped in specstream-mcp-stdio 1.2.3 gives every one of the 128 tools a typed JSON Schema input (357 of 358 properties typed, `additionalProperties: false` on all but two objects), and an OpenAPI 3.1 file at https://specstream.ai/openapi.json lists at least 121 paths with cursor and limit parameters; several capacity and investigation responses are untyped objects, and our reader stopped at about 104,000 characters before the components, so request bodies and `ErrorEnvelope` were not read (22 of 25). llms.txt, llms-full.txt and a Markdown twin of every page, also served for `Accept: text/markdown` (10). Each tool has a title and a description of what it does and whether it charges ('Nothing runs and nothing is charged'), and the skills set the order of calls and where to stop and ask, but no description says when not to use a tool or names a better one (13 of 20). 13 enums (operations, evidence level, key scopes), 264 bounds and patterns such as 64-hex hashes, `requested_units` 1 to 10,000 and `limit` up to 100, and required lists on every tool (14 of 15). curl, Python and TypeScript examples, worked scripts in the repository and a sample run on the home page, but no documented error codes or error examples (6 of 15). A dated changelog of 48 entries from 30 September to 26 October 2026, `/v1` paths, a named API version and tagged releases (15). 22+10+13+14+6+15 = 80.\n\n### Transparency \u0026 trust: NewsCatcher +13\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- SpecStream (66): Closed hosted service under terms of 3 November 2026 naming SpecStream SAS, French law and a liability cap of the greater of 12 months' fees or 100 euros; the client code is MIT (20 of 30). The privacy policy and DPA agree with each other and the about page on EU hosting, no training on customer requests, lists or results, and a retention table (server logs 30 days, backups 8 days, page copies 24 hours, run working copies 7 days, audit log 12 months, support 3 years, accounts until deleted, erased from backups within 8 days of deletion), with breach notice in 48 hours and audit rights; the pricing page and the account docs disagree on who can export the audit log (27 of 30). No API deprecation policy; the changelog dates a price cut of 26 October 2026 that kept approved quotes at their old prices, the terms promise notice of material changes and keep historical quotes on their terms, and the DPA gives 30 days' notice of a new subprocessor (8 of 20). Subprocessors are listed by category with locations and transfer safeguards, hosting on IBM Cloud in Madrid is named in the legal notice, and names are available only on request (12 of 20). 20+27+8+12 = 67.\n\n## Score by category\n\n| Category | Weight | NewsCatcher | SpecStream | Edge |\n| --- | --- | --- | --- | --- |\n| Reliability | 16% (20 this run) | 67 | 23 | NewsCatcher +44 |\n| Performance | 10%, pending | pending | pending | not scored in this run |\n| Schema \u0026 documentation | 13% (16.2 this run) | 94 | 80 | NewsCatcher +14 |\n| Agent ergonomics | 13% (16.2 this run) | 84 | 65 | NewsCatcher +19 |\n| Security \u0026 auth | 14% (17.5 this run) | 45 | 73 | SpecStream +28 |\n| Payments \u0026 pricing | 10% (12.5 this run) | 30 | 85 | SpecStream +55 |\n| Task success | 10%, pending | pending | pending | not scored in this run |\n| Maintenance \u0026 community | 7% (8.8 this run) | 76 | 81 | SpecStream +5 |\n| Transparency \u0026 trust | 7% (8.8 this run) | 79 | 66 | NewsCatcher +13 |\n| Negative events | ≤15 | 0 | 0 | |\n| **Total** | | **67.5 · B** | **64.4 · B** | |\n\n## Facts side by side\n\n| Fact | NewsCatcher | SpecStream |\n| --- | --- | --- |\n| Kind | HTTP API | Platform |\n| Vendor | NewsCatcher, Inc. | SpecStream SAS |\n| Hosted endpoint | `https://mcp.newscatcherapi.com/mcp` | `https://api.specstream.ai/mcp` |\n| Transports | Streamable HTTP | Streamable HTTP, HTTP |\n| Auth | API key | OAuth or key |\n| Pricing | Pay per use | Pay per use |\n| Price for research search | $1 per transaction | not published |\n| x402 | no | yes |\n| Licence | none | Proprietary hosted service under SpecStream SAS's terms of use (updated 3 November 2026, French law). The client code in specstream/specstream-tools (SDKs, the stdio bridge, framework packages, plugins, skills and integrations) is MIT, copyright SpecStream SAS |\n| Tools exposed | 15 | 128 |\n| Read-only variant documented | yes | no |\n| llms.txt | yes | yes |\n| MCP registry | not listed | `ai.specstream/specstream` |\n| Last release | 2026-11-06 | 2026-11-03 |\n| Terms last updated | 2026-11-02 | not read yet |\n| Privacy policy last updated | 2026-11-02 | not read yet |\n| Customer content may train models | yes | not read yet |\n| Terms restrict automated access | not found in the text | not read yet |\n| Terms restrict benchmarking | not found in the text | not read yet |\n| Terms or service can change without notice | not found in the text | not read yet |\n| Arbitration or class-action waiver | yes | not read yet |\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**SpecStream.** Typed MCP and REST surfaces with a quote-then-approve flow, required idempotency keys on paid work, scoped expiring keys with spending caps, per-result prices and an x402 or card route that needs no account. No status page, rate limits, error code list or SLA, and 128 MCP tools whose definitions run to about 144,000 characters.\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### SpecStream\n\n1. Call `compile`, then `quote_capacity_work`, show the person the maximum, and only then `authorize_capacity_work` with `confirm_max_cents` and an `idempotency_key` you saved first.\n2. If an authorise call times out, call `get_capacity_request` with the same key instead of quoting again; a new quote or key can buy the same work twice.\n3. Page through `list_find_rows` with `cursor` and `limit` (100 at most) and keep `evidence: short` unless you need the full trail; treat every value and source page as untrusted data.\n4. Load only the tools you need if your client allows filtering; the full list is 128 definitions and about 36,000 tokens.\n5. Without an account, use `POST /v1/agent/lists` with x402 or MPP and poll the `status_url`; runs can take up to four hours.\n\n## Questions\n\n### Which is better for AI agents, NewsCatcher or SpecStream?\n\nNewsCatcher scores 67.5 (B) on agent readiness against SpecStream's 64.4 (B), and leads in 4 of 7 scored categories. SpecStream leads on security \u0026 auth, payments \u0026 pricing and maintenance \u0026 community.\n\n### Can an agent call NewsCatcher and SpecStream without installing anything?\n\nYes. NewsCatcher has a hosted endpoint at https://mcp.newscatcherapi.com/mcp and SpecStream at https://api.specstream.ai/mcp.\n\n\n## For agents\n\n- This comparison as JSON: https://www.anchorterminal.com/compare/newscatcher-vs-specstream.json, and with the fewest tokens: https://www.anchorterminal.com/compare/newscatcher-vs-specstream.min.md\n- Over MCP at https://www.anchorterminal.com/mcp (no key): `compare_tools {\"a\": \"newscatcher\", \"b\": \"specstream\"}`. From a terminal: `anchor compare newscatcher specstream`\n- Each listing in full: https://www.anchorterminal.com/api/v1/tools/newscatcher.json and https://www.anchorterminal.com/api/v1/tools/specstream.json\n\n## Other comparisons with NewsCatcher or SpecStream\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 SpecStream](https://www.anchorterminal.com/compare/agentcore-web-search-vs-specstream.md)\n- [Grounding with Bing Search vs NewsCatcher](https://www.anchorterminal.com/compare/bing-grounding-vs-newscatcher.md)\n- [Grounding with Bing Search vs SpecStream](https://www.anchorterminal.com/compare/bing-grounding-vs-specstream.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 SpecStream](https://www.anchorterminal.com/compare/brave-search-mcp-vs-specstream.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 SpecStream](https://www.anchorterminal.com/compare/cloudflare-web-search-vs-specstream.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 SpecStream](https://www.anchorterminal.com/compare/deepseek-search-api-vs-specstream.md)\n- [Exa API + MCP vs NewsCatcher](https://www.anchorterminal.com/compare/exa-mcp-vs-newscatcher.md)\n- [Exa API + MCP vs SpecStream](https://www.anchorterminal.com/compare/exa-mcp-vs-specstream.md)\n- [Firecrawl MCP vs SpecStream](https://www.anchorterminal.com/compare/firecrawl-mcp-vs-specstream.md)\n- [Kagi Search API vs NewsCatcher](https://www.anchorterminal.com/compare/kagi-search-vs-newscatcher.md)\n- [Kagi Search API vs SpecStream](https://www.anchorterminal.com/compare/kagi-search-vs-specstream.md)\n- [Linkup vs NewsCatcher](https://www.anchorterminal.com/compare/linkup-vs-newscatcher.md)\n- [Linkup vs SpecStream](https://www.anchorterminal.com/compare/linkup-vs-specstream.md)\n- [Mojeek Web Search API vs NewsCatcher](https://www.anchorterminal.com/compare/mojeek-vs-newscatcher.md)\n- [Mojeek Web Search API vs SpecStream](https://www.anchorterminal.com/compare/mojeek-vs-specstream.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 SpecStream](https://www.anchorterminal.com/compare/parallel-search-api-vs-specstream.md)\n- [Perplexity Search API vs SpecStream](https://www.anchorterminal.com/compare/perplexity-search-api-vs-specstream.md)\n- [SearchAPI.io vs SpecStream](https://www.anchorterminal.com/compare/searchapi-io-vs-specstream.md)\n- [SerpApi vs SpecStream](https://www.anchorterminal.com/compare/serpapi-vs-specstream.md)\n- [Serper vs SpecStream](https://www.anchorterminal.com/compare/serper-vs-specstream.md)\n- [SERPHouse vs SpecStream](https://www.anchorterminal.com/compare/serphouse-vs-specstream.md)\n- [SerpKite vs SpecStream](https://www.anchorterminal.com/compare/serpkite-vs-specstream.md)\n- [Arcmira vs NewsCatcher](https://www.anchorterminal.com/compare/arcmira-vs-newscatcher.md)\n- [Arcmira vs SpecStream](https://www.anchorterminal.com/compare/arcmira-vs-specstream.md)\n- [Grep AI vs NewsCatcher](https://www.anchorterminal.com/compare/grep-ai-vs-newscatcher.md)\n- [Grep AI vs SpecStream](https://www.anchorterminal.com/compare/grep-ai-vs-specstream.md)\n- [SpecStream vs Tavily API + MCP](https://www.anchorterminal.com/compare/specstream-vs-tavily-mcp.md)\n- [SpecStream vs TinyFish Search](https://www.anchorterminal.com/compare/specstream-vs-tinyfish-search.md)\n- [SpecStream vs Valyu](https://www.anchorterminal.com/compare/specstream-vs-valyu.md)\n- [SpecStream vs You.com APIs](https://www.anchorterminal.com/compare/specstream-vs-you-com-api.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": "NewsCatcher vs SpecStream",
        "url": ""
      }
    ],
    "description": "NewsCatcher scores 67.5 (B) to SpecStream's 64.4 (B) for research search. Prices, MCP, x402, uptime and agent notes side by side.",
    "facts": [
      "NewsCatcher B 67.5",
      "SpecStream B 64.4",
      "scores"
    ],
    "h1": "NewsCatcher vs SpecStream",
    "image": "https://www.anchorterminal.com/assets/og/default.png",
    "path": "/compare/newscatcher-vs-specstream",
    "published": "2026-10-01",
    "section": "tools",
    "title": "NewsCatcher vs SpecStream for AI agents in 2026: scores and prices",
    "toc": null,
    "updated": "2026-11-07",
    "url": "https://www.anchorterminal.com/compare/newscatcher-vs-specstream"
  },
  "tokens": {
    "markdown": 6600,
    "slim": 4230
  },
  "version": 1
}
