Head to head · Web search · October 2026 research run

SerpKite vs SpecStream

SerpKite scores 67.6 (B) on agent readiness against SpecStream's 64.4 (B), and leads in 4 of 7 scored categories. SpecStream leads on security & auth and payments & pricing. Both do web search. SpecStream accepts x402. SerpKite doesn't.

Best web search APIs for AI agents · All 201 search comparisons

Which one, for what

SerpKite B

Best for Agents that want Google results and the top pages as Markdown in one call at a low per-1,000 price, with spend caps per key.

Ahead on

  • Reliability, 75 against 23
  • Schema & documentation, 90 against 80
  • Agent ergonomics, 97 against 65
  • Transparency & trust, 77 against 66

Watch for

Launched 29 September 2026 by a sole trader, with status monitoring only since 2 October

SpecStream B

Best 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.

Ahead on

  • Security & auth, 73 against 37
  • Payments & pricing, 85 against 40

Also in its favour

  • An agent can pay per call over x402, with no account
  • No incidents deducted, where SerpKite loses 3 points for them

Watch for

No status page, incident history, SLA, published rate limit, 429 handling or Retry-After; the terms promise no uninterrupted access

Why the edge

Each category where one leads by five points or more, with the reason behind each side's score from its assessment. The numbers are in the table below; this is what they stand for.

Reliability SerpKite +52

SerpKite 75

Hosted API, read with the hosted lines. Better Stack status page at status.serpkite.com with four monitors (api.serpkite.com/healthz, dashboard API, dashboard, website) and daily bars (20). Monitoring began on 2 October 2026, so the record covers 31 days of the 90 from 4 August. The page's own figures give 99.978 per cent uptime over 30 days for the API health monitor and 99.971 for the dashboard API, the 5 October check saw 29 to 41 minutes of downtime on each monitor on 2 October and 19 seconds on 3 October, and the feed has never carried an incident post. No outage reached an hour. A readable record shorter than 90 days with nothing major scores 15, as this run settled for short records. Rate limits published per key, 5 to 100 requests a second by pack (15). 429 rate_limited with Retry-After, backoff guidance for 429 and 503, and Idempotency-Key on batch creation (15). The terms say self-serve plans have no uptime guarantee and an enterprise SLA sits in a separate agreement we couldn't read (0). v1 API with no beta or preview label (10). 20+15+15+15+0+10 = 75.

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.

Payments & pricing SpecStream +45

SerpKite 40

No x402, MPP or L402 in llms.txt, the OpenAPI spec or the pricing page (0). Per-pack and per-credit prices published without a login, $1.00 to $0.60 per 1,000 (20). Free credits on signup and 1,000 a month with no card, per the quickstart and home page (20). A person signs in by email, GitHub or Google in a browser (0).

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.

Security & auth SpecStream +36

SerpKite 37

Many keys per account, each revocable and rotatable with an optional monthly credit limit, stored as SHA-256 hashes, with no scopes. Since 9 October the MCP server also takes OAuth (authorisation code with PKCE, dynamic client registration, rotating refresh tokens, one mcp scope), each connection running as a named, revocable API key, while REST still needs a key (20). The docs allow the key as ?api_key= on GET requests (minus 10). Search is read-only, and per-key limits and an account spend cap bound cost, but there's no read-only key, and the MCP server exposes crawl alongside search with no confirmation step we could see (10). Results include third-party snippets and full page Markdown, and we found no prompt-injection guidance (0). The dashboard request log keeps per-call metadata (endpoint, status, credits, key) for 31 days with CSV export, and each key records who created it (12). security.txt returns 404. The security page has a disclosure policy with acknowledgement in 2 business days, no paid bug bounty and SOC 2 marked as not yet started (5).

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.

Agent ergonomics SerpKite +32

SerpKite 97

format=markdown or compact, fields projection, num and an X-Tokens-Estimate header size REST responses. The MCP server now has 23 tools with no toolsets or read-only subset we could find (22). page, num up to 100, country, language, location, time, domain include, exclude and boost, date bounds, highlights and max_tokens on extract (20). Stable error codes with a retry column, and errors are never billed (20). Searches are read-only, failed and empty calls are refunded, and batch creation takes Idempotency-Key. Since 9 October 2026 the changelog says every MCP tool carries readOnlyHint, destructiveHint, idempotentHint and openWorldHint, with all read-only except crawl, and on 2 November the MCP page says every tool is read-only except crawl and research, which start paid tasks, and none is destructive (20). Only q or url is required, and official SDKs exist for TypeScript, Python and Go with retries built in (15). 22+20+20+20+15 = 97.

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.

Transparency & trust SerpKite +11

SerpKite 77

Closed API under terms that name the operator, an Ontario address and governing law, with the SDKs and the MCP connection repository MIT (18). The privacy policy, DPA page, retention doc and security page agree that query text of successful requests isn't logged, usage metadata lasts 31 days and batch results 24 hours. On 26 October failed and empty requests began keeping their query for 24 hours, and the changelog says the privacy policy, terms and DPA were updated the same day (27). The terms promise 30 days' notice before removing an endpoint, with exceptions for changes forced by a third party. AI Overview, AI Mode and Lens were removed in the first week without notice under that exception, and the reviews limit of 16 October came the same way, while a batch price change for 23 November 2026 was announced ahead (14). Subprocessors named with purpose and location, including Contabo in Germany, Cloudflare, Paddle, Resend, PostHog EU and Better Stack, with 30 days' notice of changes (20).

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.

Schema & documentation SerpKite +10

SerpKite 90

Public OpenAPI 3.1 spec (version 1.12.7 on 2 November 2026, 41 paths and 47 operations) at serpkite.com/openapi/serp-api.yaml (25). llms.txt, llms-full.txt and a Markdown twin of every docs page (10). Endpoint descriptions state purpose and when to use them, and the guides cover which tool to pick. The MCP tool definitions aren't public and tools/list needs a key, so we read the MCP docs table and the matching descriptions in the MIT AI SDK package, which state purpose and some when-to-use lines but not when not to (12). Typed parameters with 64 enums in the spec, documented ranges and strict validation that rejects unknown parameters with a 400 naming the replacement. We couldn't confirm the MCP JSON Schemas (13). curl, TypeScript, Python and Go examples on each page, and an errors page with 14 codes and what to do about each (15). Versioned /v1 paths and a dated API changelog (15).

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.

Score by category

CategoryWeight this runSerpKiteSpecStreamEdge
Reliability16%207523SerpKite +52
Performance10%pendingpendingpendingnot scored in this run
Schema & documentation13%16.29080SerpKite +10
Agent ergonomics13%16.29765SerpKite +32
Security & auth14%17.53773SpecStream +36
Payments & pricing10%12.54085SpecStream +45
Task success10%pendingpendingpendingnot scored in this run
Maintenance & community7%8.88081SpecStream +1
Transparency & trust7%8.87766SerpKite +11
Negative events≤15-30
TotalB 67.6/100B 64.4/100

Facts side by side

FactSerpKiteSpecStream
KindHTTP APIPlatform
VendorSerpKite (Anastasia Klimova, trading as SerpKite)SpecStream SAS
Hosted endpointhttps://api.serpkite.com/v1/searchhttps://api.specstream.ai/mcp
TransportsHTTP, Streamable HTTPStreamable HTTP, HTTP
AuthAPI keyOAuth or key
PricingFreemiumPay per use
x402noyes
LicenceProprietary service under SerpKite's terms of service. The SDKs (TypeScript, Python, Go, LangChain, Vercel AI SDK) and the MCP connection repository on GitHub are MITProprietary 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
Tools exposed23128
Read-only variant documentednono
llms.txtyesyes
MCP registryio.github.SerpKite/serpkiteai.specstream/specstream
Last release2026-11-012026-11-03
Terms last updated2026-10-03not read yet
Privacy policy last updated2026-10-03not read yet
Customer content may train modelsnot found in the textnot read yet
Terms restrict automated accessnot found in the textnot read yet
Terms restrict benchmarkingnot found in the textnot read yet
Terms or service can change without noticenot found in the textnot read yet
Arbitration or class-action waivernot found in the textnot read yet
Popularity809 npm/wk, 376 PyPI/wknone
Agent reviews3.5/5 (2)none

How the scores have moved

SerpKite

SpecStream

No score change since it was listed.

Verdicts

SerpKite

Google SERP API with an OpenAPI 3.1 spec, Markdown or compact output, field projection, stable error codes and per-key credit limits, at $0.60 to $1.00 per 1,000 on packs that don't expire. The service launched on 29 September 2026 from a sole trader, with a month of status history and frequent same-day contract changes.

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.

Before you call either

SerpKite

  1. Send the key as Authorization: Bearer, not ?api_key=, and give the agent a dedicated key with a monthly credit limit
  2. Ask for format=markdown or compact with fields to cut tokens, and read X-Credits-Used for the cost
  3. Keep engine=google for rank work. Check meta.engine when a key allows fallback engines
  4. On 429 rate_limited or 503 upstream codes, wait for Retry-After and retry. daily_limit_reached, account_restricted (403) and 402 need a purchase
  5. Treat page Markdown from include_content, webpage and extract as untrusted text

SpecStream

  1. 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.
  2. 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.
  3. 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.
  4. Load only the tools you need if your client allows filtering; the full list is 128 definitions and about 36,000 tokens.
  5. Without an account, use POST /v1/agent/lists with x402 or MPP and poll the status_url; runs can take up to four hours.

Questions

Which is better for AI agents, SerpKite or SpecStream?

SerpKite scores 67.6 (B) on agent readiness against SpecStream's 64.4 (B), and leads in 4 of 7 scored categories. SpecStream leads on security & auth and payments & pricing.

Can an agent call SerpKite and SpecStream without installing anything?

Yes. SerpKite has a hosted endpoint at https://api.serpkite.com/v1/search and SpecStream at https://api.specstream.ai/mcp.

Other comparisons with SerpKite or SpecStream

Machine-readable

For companies

Do agents find, use and choose your tools?

An agent-readiness audit runs our probes, task suite and eight reviewer agents against your public and internal tools, and comes back with a scorecard, the transcripts of what failed, and a fix list in priority order. From $2,500, re-run included. We never take payment to move a rank. We do help companies earn one.