Head to head · Web search · October 2026 research run

Perplexity Search API vs SpecStream

Perplexity Search API scores 70.2 (BB) 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. Perplexity Search API doesn't.

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

Which one, for what

Perplexity Search API BB

Best for Agents on any model that need raw ranked sources with extracted text at a low per-request price, and teams that want cited answers from the same key through the Agent API.

Ahead on

  • Reliability, 80 against 23
  • Schema & documentation, 89 against 80
  • Agent ergonomics, 85 against 65

Also in its favour

  • Agent-ready, a grade of BB or better
  • Runs on your own machine

Watch for

The FAQ says uptime and recovery time are not guaranteed, and the terms carry no SLA

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 56
  • Payments & pricing, 85 against 25

Also in its favour

  • An agent can pay per call over x402, with no account
  • Free to start without a card

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.

Payments & pricing SpecStream +60

Perplexity Search API 25

No x402, MPP or L402 in the docs, pricing page, OpenAPI or llms.txt (0). $5 per 1,000 successful requests, $1 with Fast Search, published without a login, with failed and rate-limited requests not billed (20). Usage is prepaid with a card on the billing page, and no free allowance was found. The console playground needs no key but is a page for a person, not an API allowance (0). A person signs up in the console. The Stripe Projects route provisions a project, key and credits from a terminal, but needs a person's Stripe account with a payment method and a $10 minimum purchase (5 of 20, as on the Decisions API listing). 0 + 20 + 0 + 5 = 25.

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.

Reliability Perplexity Search API +57

Perplexity Search API 80

Graded on the hosted lines, for POST /search and the hosted MCP server. status.perplexity.com, on incident.io since 10 September 2026, has an API component with an RSS feed and a JSON summary. There is no separate Search component (20). In the 90 days from 8 August the feed lists 'Investigating API issue' on 13 August, resolved with no detail, a usage-based billing issue on 3 September, and on 9 October elevated errors on the website, app and Computer, where the API 'remained operational throughout'. Minor only, with the caveat that history before the migration may be incomplete (20). The Search API is limited to 50 query units a second with a burst of 50 on every tier, and the other APIs publish QPS and token limits per tier (15). 429 carries Retry-After and an error.type, the SDKs retry 429 and 5xx twice honouring Retry-After, the Search best-practices page shows backoff, and failed or rate-limited searches are not billed. Searches have no side effects (15). The FAQ says Perplexity does not guarantee uptime, failure frequency or recovery time, and the terms carry no SLA (0). No beta label on the Search API, launched on 25 September 2025 (10). 20 + 20 + 15 + 15 + 0 + 10 = 80.

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.

Agent ergonomics Perplexity Search API +20

Perplexity Search API 85

max_results 1 to 20, max_tokens and max_tokens_per_page cap the extracted text, and results are title, url, snippet and two dates. The MCP server has four tools (23 of 25). Domain, language, recency, publication and update date filters and country, with up to five queries in one request. No pagination or offset (16 of 20). 429 bodies name the limit hit, the SDKs map status codes to typed errors, and 402 marks an empty balance. Search-specific error bodies beyond 422 validation are not documented (13 of 20). Searches only read, failed and rate-limited requests are not billed, and the MCP server sets readOnlyHint true, destructiveHint false and idempotentHint false on every tool (18 of 20). Only query is required. Official Python and TypeScript SDKs, a CLI and a Python Search SDK (15). 23 + 16 + 13 + 18 + 15 = 85.

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.

Security & auth SpecStream +17

Perplexity Search API 56

Project API keys, shown once, revocable, and generated and revoked through two documented endpoints with a rotation guide. No per-key scopes or spending limits were found. The hosted MCP server also takes Sign in with Perplexity (OAuth). Keys go in the Authorization header only (22 of 30, as on the Decisions API listing). Search only reads, and MCP clients can disable tools, but any key reaches every API on the account, including the Agent API's sandbox and MCP tools (8 of 20). Snippets are third-party page text, and no guidance on treating them as untrusted was found in the docs, the MCP server or its SECURITY.md (0 of 15). Responses carry a request id, and the console shows usage by key. The Audit API covers enterprise organisations' web app events with its own keys, not API calls (8 of 15). security.txt valid until 31 December 2027 linking a security page, a SOC 2 Type II report, a 2025 HIPAA gap assessment and a CAIQlite listed on the trust centre, and a SECURITY.md on the MCP server that takes private reports through GitHub advisories or security@perplexity.ai. The trust centre is drawn by script and wasn't read (18 of 20). 22 + 8 + 0 + 8 + 18 = 56.

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.

Schema & documentation Perplexity Search API +9

Perplexity Search API 89

OpenAPI 3.1.0 at docs.perplexity.ai/openapi.json describes POST /search with typed request and response schemas, listed in llms.txt (25). llms.txt indexes every page, each with a Markdown twin (10). The overview says what a result holds, that snippets can be empty, when to use the Search API instead of the Agent API, and that it takes queries not URLs and does not re-fetch pages (19 of 20). search_type is an enum, max_results, max_tokens and max_tokens_per_page carry minimum and maximum, country and language codes carry lengths, and query is a string or an array. The recency filter is an enum in the docs, and date filters are MM/DD/YYYY strings (14 of 15). Python, TypeScript and cURL examples with a recorded response. The spec documents only 200 and 422 for /search, and status codes are listed on the SDK error-handling page and the rate-limit page rather than for Search (11 of 15). A public changelog with several entries a month, dated by month only, and an unversioned /search path (10 of 15). 25 + 10 + 19 + 14 + 11 + 10 = 89.

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 runPerplexity Search APISpecStreamEdge
Reliability16%208023Perplexity Search API +57
Performance10%pendingpendingpendingnot scored in this run
Schema & documentation13%16.28980Perplexity Search API +9
Agent ergonomics13%16.28565Perplexity Search API +20
Security & auth14%17.55673SpecStream +17
Payments & pricing10%12.52585SpecStream +60
Task success10%pendingpendingpendingnot scored in this run
Maintenance & community7%8.88281Perplexity Search API +1
Transparency & trust7%8.86666even
Negative events≤1500
TotalBB 70.2/100B 64.4/100

Facts side by side

FactPerplexity Search APISpecStream
KindHTTP APIPlatform
VendorPerplexitySpecStream SAS
Hosted endpointhttps://api.perplexity.ai/mcphttps://api.specstream.ai/mcp
TransportsStreamable HTTP, stdioStreamable HTTP, HTTP
AuthOAuth or keyOAuth or key
PricingPay per usePay per use
Price for web search$2.50 per 1,000 tool callsnot published
x402noyes
LicenceProprietary service under the Perplexity API Terms of Service. The MCP server is MIT and the official SDKs Apache-2.0Proprietary 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 exposed4128
Read-only variant documentednono
llms.txtyesyes
MCP registryai.perplexity/mcp-serverai.specstream/specstream
Last release2026-10-232026-11-03
Terms last updatedcouldn't be readnot read yet
Privacy policy last updatedcouldn't be readnot read yet
Customer content may train modelscouldn't be readnot read yet
Terms restrict automated accesscouldn't be readnot read yet
Terms restrict benchmarkingcouldn't be readnot read yet
Terms or service can change without noticecouldn't be readnot read yet
Arbitration or class-action waivercouldn't be readnot read yet

Verdicts

Perplexity Search API

Raw ranked results with token-capped page text from Perplexity's own index, $5 per 1,000 requests or $1 with Fast Search, an OpenAPI description and a hosted MCP server with read-only annotations. Uptime is not guaranteed, there is no free allowance, keys carry no scopes, and no guidance on untrusted page text was found.

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

Perplexity Search API

  1. Set max_tokens_per_page and max_tokens before calling; extracted text otherwise fills the context, and the price does not change with size
  2. Skip results with an empty snippet and dedupe by url when sending a query array; each query costs one rate-limit unit
  3. Use search_type: "fast" for $1 per 1,000 when latency and cost matter more than depth
  4. On 429 wait for Retry-After, then back off; on 402 stop and ask the user to add credits
  5. Use the Search API for sources and the Agent API's web_search tool for a written answer with citations

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, Perplexity Search API or SpecStream?

Perplexity Search API scores 70.2 (BB) 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 Perplexity Search API and SpecStream without installing anything?

Yes. Perplexity Search API has a hosted endpoint at https://api.perplexity.ai/mcp and SpecStream at https://api.specstream.ai/mcp.

Other comparisons with Perplexity Search API 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.