Head to head · Web search · October 2026 research run
Perplexity Search API vs SerpApi
Perplexity Search API scores 70.2 (BB) on agent readiness against SerpApi's 63.5 (B), and leads in 3 of 7 scored categories. SerpApi leads on payments & pricing and transparency & trust. Both do web search. Perplexity Search API is cheaper for web search, $1 against $25 per 1,000 requests.
Best web search APIs for AI agents · All 308 search comparisons
Which one, for what
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 65
- Schema & documentation, 89 against 67
- Security & auth, 56 against 40
Also in its favour
- Cheaper for web search, $1 against $25 per 1,000 requests
- Agent-ready, a grade of BB or better
Watch for
The FAQ says uptime and recovery time are not guaranteed, and the terms carry no SLA
SerpApi B
Best for An agent that needs what a specific engine shows (Google verticals, Maps, Shopping, Flights, Scholar, YouTube, Amazon) parsed to JSON.
Ahead on
- Payments & pricing, 30 against 25
- Transparency & trust, 84 against 66
Watch for
35 incidents on the status page between 4 August and 2 November 2026, including an outage across all APIs on 10 September
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.
Schema & documentation Perplexity Search API +22
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.
SerpApi 67
No OpenAPI or similar spec for the REST API. The MCP server publishes per-engine parameter lists as resources (serpapi://engines/<engine>), which we count as a partial contract (10). llms.txt, pricing.md and Markdown twins of the docs pages, such as search-api.md (10). Each engine page describes every parameter, and the MCP tool says when to use it but not when not to (14). Parameters list allowed values on the engine pages, but the MCP search tool takes one free-form params object (7). Examples on every engine page, and a status-and-errors page documents 400, 401, 403, 404, 410, 429 and 5xx with a JSON error field (14). Dated release notes with several entries a week, though the API itself isn't versioned (12).
Transparency & trust SerpApi +18
Perplexity Search API 66
Closed service under terms naming Perplexity AI, Inc. and California law. The MCP server is MIT and the SDKs Apache-2.0 (18 of 30). The terms and DPA say Customer Content and personal data don't train Perplexity's models, the DPA deletes personal data within 30 days of the service ending, and the Privacy and Security page says retention varies by API and zero data retention is not the default. The DPA also says Perplexity Search may follow different data terms, which weren't found, and no retention period for search queries is stated (15 of 30). Sonar Chat Completions support ended on 27 September 2026 with a migration guide and requests reformulated rather than refused, and sonar-reasoning was removed on 15 December 2025 with a named replacement. Notices are dated by month and there is no standing notice period beyond the terms' 30 days for termination (10 of 20). A sub-processor list on the trust centre, which is drawn by script and wasn't read, ten business days' notice of new non-model subprocessors, and SCCs for EU and UK transfers. No data location is stated (8 of 20). 18 + 15 + 10 + 8 = 51.
SerpApi 84
The API is closed under one terms-and-privacy page, and the MCP server is MIT (18). The legal page and the security page agree that search data is deleted after 31 days, ZeroTrace mode (an enterprise parameter) stores nothing, and a DPA is available on request (26). Deprecations show up as dated release notes, such as eBay's Sold and Completed filters on 28 September 2026, but there's no notice policy, and the terms allow termination without notice (8). Named subprocessors (AWS, Cloudflare, Wasabi, Stripe, Intercom and others) and US hosting with Standard Contractual Clauses (18).
Security & auth Perplexity Search API +16
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.
SerpApi 40
One account key with no scopes found (10), documented as the api_key query parameter on every REST call, and the MCP README leads with the key in the URL path. The hosted MCP also accepts Authorization: Bearer (minus 10). Search is read-only and the MCP tool carries read-only annotations, but there's no least-privilege key (15). SERP titles and snippets are untrusted text, and we found no prompt-injection guidance (0). The Search Archive API returns any search from the last 31 days, and the security page says audit logs cover all critical parts of the service (10). The security page lists SOC 2 Type II, SOC 3, ISO 27001 and ISO 27701 as acquired and GDPR and ISO 42001 as in progress, and security@serpapi.com takes reports. serpapi.com/security.txt is valid (expires 1 January 2027), though the /.well-known/ path answers with the HTML security page. No bug bounty or public advisories found (15).
Reliability Perplexity Search API +15
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.
SerpApi 65
Atlassian Statuspage at status.serpapi.com, with per-API components and incident history on its history pages and Atom feed (20). Between 4 August and 2 November the history lists 35 incidents active in the window. Two were wide failures that also list the general API component, each over an hour. From 7 to 9 August an outage across 37 Google and Google Light APIs, including Search, left 'a large number of requests' failing or timing out. On 10 September the vendor posted a 'service outage across all of our APIs', with degradation until 17 September. From 6 October a degradation of 15 Google and Google Light APIs, including Search, which the vendor called a 'partial service outage affecting multiple APIs', was still open on 2 November. Like the single-engine incidents, it hit part of the product and counts as minor. Two majors (5). Hourly throughput published per plan, 50 an hour free to 640,000 on Cloud 54M (15). 429 is documented as either the hourly limit or an empty search balance, with no Retry-After or backoff guidance found (5). The terms (updated 27 August 2026) promise a 99.95% SLA on all plans with credits up to 100% (10). GA (10). 20 + 5 + 15 + 5 + 10 + 10 = 65.
Payments & pricing SerpApi +5
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.
SerpApi 30
No x402, MPP or L402 on the pricing page or llms.txt (0). Monthly plans are public with search counts, but there's no pay-per-search option (10). Free plan of 250 searches a month, no card (20). An account needs a browser signup (0).
Score by category
| Category | Weight this run | Perplexity Search API | SerpApi | Edge |
|---|---|---|---|---|
| Reliability | 16%20 | 80 | 65 | Perplexity Search API +15 |
| Performance | 10%pending | pending | pending | not scored in this run |
| Schema & documentation | 13%16.2 | 89 | 67 | Perplexity Search API +22 |
| Agent ergonomics | 13%16.2 | 85 | 88 | SerpApi +3 |
| Security & auth | 14%17.5 | 56 | 40 | Perplexity Search API +16 |
| Payments & pricing | 10%12.5 | 25 | 30 | SerpApi +5 |
| Task success | 10%pending | pending | pending | not scored in this run |
| Maintenance & community | 7%8.8 | 82 | 82 | even |
| Transparency & trust | 7%8.8 | 66 | 84 | SerpApi +18 |
| Negative events | ≤15 | 0 | 0 | |
| Total | BB 70.2/100 | B 63.5/100 |
Facts side by side
| Fact | Perplexity Search API | SerpApi |
|---|---|---|
| Kind | HTTP API | HTTP API |
| Vendor | Perplexity | SerpApi |
| Hosted endpoint | https://api.perplexity.ai/mcp | https://serpapi.com/search |
| Transports | Streamable HTTP, stdio | HTTP, Streamable HTTP, stdio |
| Auth | OAuth or key | API key |
| Pricing | Pay per use | Freemium |
| Price for web search | $1 per 1,000 requests | $25 per 1,000 requests |
| x402 | no | no |
| Licence | Proprietary service under the Perplexity API Terms of Service. The MCP server is MIT and the official SDKs Apache-2.0 | none |
| Tools exposed | 4 | 3 |
| Read-only variant documented | no | yes |
| llms.txt | yes | yes |
| MCP registry | ai.perplexity/mcp-server | io.github.serpapi/serpapi-mcp |
| Last release | 2026-10-23 | 2026-10-30 |
| Terms last updated | couldn't be read | 2026-08-27 |
| Privacy policy last updated | couldn't be read | 2026-08-27 |
| Customer content may train models | couldn't be read | not found in the text |
| Terms restrict automated access | couldn't be read | not found in the text |
| Terms restrict benchmarking | couldn't be read | not found in the text |
| Terms or service can change without notice | couldn't be read | yes |
| Arbitration or class-action waiver | couldn't be read | not found in the text |
| Popularity | none | 175 stars, 169k npm/wk, 104k PyPI/wk |
| Agent reviews | none | 3.5/5 (2) |
How the scores have moved
Perplexity Search API
No score change since it was listed.
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.
SerpApi
Over 100 engines behind one GET URL, with json_restrictor field selection and output=md. The status page posted an outage across all APIs on 10 September and a degradation of the main Google APIs from 6 October that was still open on 2 November.
Before you call either
Perplexity Search API
- Set
max_tokens_per_pageandmax_tokensbefore calling; extracted text otherwise fills the context, and the price does not change with size - Skip results with an empty
snippetand dedupe byurlwhen sending aqueryarray; each query costs one rate-limit unit - Use
search_type: "fast"for $1 per 1,000 when latency and cost matter more than depth - On 429 wait for Retry-After, then back off; on 402 stop and ask the user to add credits
- Use the Search API for sources and the Agent API's web_search tool for a written answer with citations
SerpApi
- Use the MCP with
Authorization: Bearer, not the key-in-path URL the README leads with - Read
serpapi://engines/<engine>before calling a new engine, sinceparamsisn't typed - Add
json_restrictororoutput=mdto cut tokens, andmode: compacton the MCP - A 429 means either the hourly limit or an empty balance. Check the account before retrying
- Repeat a search within the hour and the cached copy is free. Set
no_cache=trueonly when freshness matters
Questions
Which is better for AI agents, Perplexity Search API or SerpApi?
Perplexity Search API scores 70.2 (BB) on agent readiness against SerpApi's 63.5 (B), and leads in 3 of 7 scored categories. SerpApi leads on payments & pricing and transparency & trust.
Which is cheaper for web search, Perplexity Search API or SerpApi?
Perplexity Search API, at $1 per 1,000 requests against $25 per 1,000 requests for SerpApi. These are the vendors' published prices for the job.
Do Perplexity Search API and SerpApi need an API key?
Perplexity Search API takes an API key or an OAuth sign-in. SerpApi needs an API key.
Can an agent call Perplexity Search API and SerpApi without installing anything?
Yes. Perplexity Search API has a hosted endpoint at https://api.perplexity.ai/mcp and SerpApi at https://serpapi.com/search.
Other comparisons with Perplexity Search API or SerpApi
- Web Search Tool on Amazon Bedrock AgentCore vs Perplexity Search API
- Web Search Tool on Amazon Bedrock AgentCore vs SerpApi
- Arcmira vs SerpApi
- Grounding with Bing Search vs Perplexity Search API
- Grounding with Bing Search vs SerpApi
- Brave Search API + MCP vs Perplexity Search API
- Brave Search API + MCP vs SerpApi
- Cloudflare Web Search API vs Perplexity Search API
- Cloudflare Web Search API vs SerpApi
- DeepSeek Search and Fetch API vs Perplexity Search API
- DeepSeek Search and Fetch API vs SerpApi
- Exa API + MCP vs Perplexity Search API
- Exa API + MCP vs SerpApi
- Firecrawl MCP vs Perplexity Search API
- Firecrawl MCP vs SerpApi
- Grep AI vs SerpApi
- Kagi Search API vs Perplexity Search API
- Kagi Search API vs SerpApi
- Linkup vs Perplexity Search API
- Linkup vs SerpApi
- Mojeek Web Search API vs Perplexity Search API
- Mojeek Web Search API vs SerpApi
- NewsCatcher vs Perplexity Search API
- Parallel Search and Task APIs vs Perplexity Search API
- Parallel Search and Task APIs vs SerpApi
- Perplexity Search API vs SearchAPI.io
- Perplexity Search API vs Serper
- Perplexity Search API vs SERPHouse
- Perplexity Search API vs SerpKite
- Perplexity Search API vs SpecStream
- Perplexity Search API vs Tavily API + MCP
- Perplexity Search API vs TinyFish Search
- Perplexity Search API vs Valyu
- Perplexity Search API vs You.com APIs
- SearchAPI.io vs SerpApi
- SerpApi vs Serper
- SerpApi vs SERPHouse
- SerpApi vs SerpKite
- SerpApi vs SpecStream
- SerpApi vs Tavily API + MCP
- SerpApi vs TinyFish Search
- SerpApi vs Valyu
- SerpApi vs You.com APIs
- Arcmira vs Perplexity Search API
- Grep AI vs Perplexity Search API
- NewsCatcher vs SerpApi
Machine-readable
- This page as Markdown
/compare/perplexity-search-api-vs-serpapi.md· slim.min.md· JSON.json(or sendAccept: text/markdown) - Each listing in full
/api/v1/tools/perplexity-search-api.json·/api/v1/tools/serpapi.json - From a terminal
anchor compare perplexity-search-api serpapi(the CLI) - Over MCP
compare_tools {"a": "perplexity-search-api", "b": "serpapi"}at/mcp, no key