Search APIs for Enterprise AI (2026): Security, Rate Limits and Cost at Scale
By Kartey R
Founder of Serpex
Choosing a search API for a prototype takes an afternoon. Choosing one for a few million searches a month takes a security review, a contract and a proper test, because at that volume billing rules, rate limits and data handling matter as much as result quality. This guide lists the questions procurement, security and engineering should ask, compares eight search APIs on the attributes that come up in enterprise deals, and gives a one-week method for testing them on your own queries.
We make one of these APIs, Serpex, so read this as a vendor's guide. Competitor facts come from each vendor's own pages, checked 24 October 2026. Where a vendor does not publish something, we write "not published" rather than guess. The Serpex section lists what we do not have as well as what we do.
What changes between a prototype and production
Four things change when search goes from a demo to a workload.
Volume, and its shape. One million searches a month averages about 0.4 a second; ten million averages about 4. Averages hide the shape. An enrichment job that works through 50,000 companies overnight, or a fleet of agents that starts at 9 a.m., sends traffic in bursts many times the average. Your peak decides the rate limit you need, not your monthly total.
Money. At $5 per 1,000 searches, 10 million a month is $50,000. Small billing rules then move real money: if 5% of requests fail or come back empty and those are billed, that is $2,500 a month for nothing.
Risk. Queries carry data. An enrichment query often contains a person's name and employer. An agent's query can contain a fragment of a user's prompt. Where those queries are stored, for how long, and who can read them is a security question.
Procurement. At this size someone will send a security questionnaire, ask for a data processing agreement, and want to pay by invoice. Some vendors can do all of that and some cannot. Find out before the pilot, not after.
The questions procurement and security will ask
Send these in writing and keep the answers. "We're working on it" is a fine answer if it comes with a date.
| Question | Why it matters | What a good answer looks like |
|---|---|---|
| Do you have a SOC 2 Type II report or ISO 27001 certificate? | Most security reviews start here. Without one, expect a long questionnaire instead. | A current report available under NDA, with the audit period stated. "In progress" with a target date is honest. |
| How long do you keep our queries, and can retention be turned off? | Queries can contain names, emails and prompt fragments. | A stated retention period for queries, results and logs, and a zero-data-retention option in writing if your data needs it. |
| Will you sign a DPA? Where is data processed? | GDPR and most enterprise contracts require one when queries contain personal data. | A DPA you can review, a sub-processor list, and the regions where data is stored. |
| What is the uptime SLA, and what are the service credits? | An SLA without credits is a target, not a commitment. | A published monthly uptime percentage, how it is measured, and the credit you get when it is missed. |
| What are the rate limits, and what happens in a burst? | Your peak decides whether requests fail. | A per-organization requests-per-second limit, how to raise it, and whether excess requests wait or get a 429 with Retry-After. |
| What does volume pricing look like? Is there a commitment? | List price at 10M a month is rarely what anyone pays. | A published volume band or a written quote, the commitment term, and what happens to unused prepaid credit. |
| Can we pay by invoice against a PO, on an annual contract? | Many finance teams cannot put a five-figure monthly bill on a card. | Invoices with your PO number, payment terms, and a choice of monthly or annual terms. |
| Who do we contact when it breaks? | At 10M a month, one hour of outage is about 14,000 failed searches. | A named contact or shared channel, response targets by severity, and a status page. |
| Does the dashboard support SSO? | Offboarding and access reviews depend on it. | SAML or OIDC with your identity provider; at minimum, roles and per-key revocation. |
| What exactly is billed: errors, empty results, cached repeats? | Errors, empties and retries can be several percent of traffic. | Written rules for each case, and per-request cost reported in the API response so you can reconcile the invoice. |
The questions engineering will ask
What is latency at our peak, with our queries?
A single published latency figure tells you little. You need p50 and p95 at your peak requests per second, with your query mix. Long queries, quoted phrases and operators such as site: are slower than short keyword queries on most APIs. Parallel is one vendor that publishes approximate latency per mode, from about 200 ms (Turbo) to about 3 s (Advanced), which is a useful reminder that "deeper" modes trade time for recall.
How are rate limits scoped, and how do they count?
Ask whether the limit is per key, per account or per organization, and how a single request is counted. Published defaults range from 10 queries per second (Linkup, Parallel, Exa's default) to 50 (Brave, Perplexity). Some requests count as more than one unit: Perplexity counts a request carrying five queries as five rate-limit units, even though it bills it once. If your traffic bursts, ask what a rejected request looks like and whether you can pre-arrange a higher ceiling for a known batch job.
Is the output structured, and does every result carry its source?
For citation-backed answers, your model needs each result's URL, title and text as separate fields, so it can quote and link without guessing. There are two designs. Retrieval APIs return ranked results and let your model write and cite the answer. Answer APIs run the search and write a cited answer with their own model. Both can work. With either, check that the cited URL is the page the text actually came from, and that the response format is stable enough to parse without a model in the loop.
Does page content come in the same call?
Snippets are rarely enough for grounding. Some APIs return page text with the results (Tavily's include_raw_content, Perplexity's extracted content, Brave's LLM context, Serpex's optional page content). Others sell it as a separate call: Parallel's Extract at $1 per 1,000 URLs, Linkup's Fetch at $1 to $11 per 1,000 calls, You.com's Contents API at $1 per 1,000 pages. A second call means a second price, a second latency budget and a second failure path. Ask how content is billed when a page cannot be fetched.
What does "real-time" mean here?
Vendors use the word for different things. Some query a live web index at request time. Some serve page text from their own cache: Exa's docs say its Lite mode serves page content from Exa's cache and never fetches a page live, and results with no cached copy are left out. Neither is wrong, but they answer different questions. Ask how old a result or its page text can be, and whether there is a date filter. Then test with queries about events from the last 48 hours.
What do we integrate with?
Official SDKs in your languages, an MCP server if your agents run in MCP clients, and LangChain, LlamaIndex or n8n integrations. Check that they track the current API.
How do failures surface?
At volume, failures are a daily event, so their shape matters. You want HTTP status codes that separate your mistakes (400) from rate limiting (429) and the vendor's problems (5xx), a Retry-After header on 429s, and an error body with a machine-readable type. An empty result must be distinguishable from an error. Ask whether a timed-out request is billed.
How the main search APIs compare on enterprise attributes
Published facts only, from each vendor's own pricing or docs page, checked 23 October 2026. "Not published" means we did not find it on the vendor's pages, not that the vendor does not offer it: ask.
| API | Default rate limit | Errors billed? | Empty results billed? | Page content |
|---|---|---|---|---|
| Serpex | 5, 25 or 50 requests/sec by tier; custom on Enterprise | No | Only when confirmed genuinely empty; can be free on a custom contract | Same call, top 5 or 10 results as Markdown, billed on pages delivered |
| Tavily | 1,000 requests/min on production keys | Not published for search (failed Extract URLs are free) | Not published | include_raw_content on the search call |
| Exa | 10 QPS (25 after $1,000 of credits; more through sales); 5 QPS on Deep | Not published | Not published | Included in Lite from Exa's cache; results with no cached copy are left out |
| Brave Search API | 50 queries/sec | Not published | Not published | LLM Context endpoint, same price per call |
| Perplexity Search API | 50 query units/sec | No (invalid, rate-limited and upstream failures are free) | Yes | Extracted content in the results |
| Linkup | 10 queries/sec per organization | No | No ("including when nothing relevant is found") | Separate Fetch call, $1 to $11 per 1,000 |
| Parallel | 600 requests/min | Not published for Search (failed Task runs are free) | Not published | Excerpts included; full pages via Extract, $1 per 1,000 URLs |
| You.com | 10 requests/sec self-serve; custom on Enterprise | Not published | Not published | Separate Contents API, $1 per 1,000 pages |
Security paperwork, as published
What each vendor states on its own site, checked 24 October 2026. Most of it applies to enterprise plans or needs a signed agreement, so get it in writing for your contract.
| API | SOC 2 | Uptime figure published | Zero data retention | SSO |
|---|---|---|---|---|
| Serpex | No | No | No (search logs kept 30 days) | No |
| Tavily | SOC 2, type not stated; ISO 27001 badge | 99.99% (homepage) | Stated in its FAQ; check the default for your region | Not published |
| Exa | Type II | Enterprise SLAs, no figure | Enterprise or by agreement | Not published |
| Brave Search API | Type II | Not published | By agreement; query logs kept 90 days by default | Not published |
| Perplexity Search API | Type II | Not published | Eligible customers, written agreement | Not published |
| Linkup | Type II; ISO 27001 | SLA mentioned, no figure | On request | Enterprise |
| Parallel | Type II | In contract only | Enterprise or by agreement | Enterprise |
| You.com | SOC 2, type not stated | SLA-backed support, no figure | Search and answer APIs, by agreement | Not published |
What it costs at 1M and 10M searches a month
List prices, one search per request, no free credits and no tax. These are the default search modes; deeper modes cost more (Tavily advanced depth is 2 credits, Exa Deep is $12 to $15 per 1,000, Linkup deep is $50 per 1,000).
| API (default search mode) | Per 1,000, list | 1M searches a month | 10M searches a month |
|---|---|---|---|
| Serpex | $0.50 with $500+ top-ups; from $0.20 at 10M+ on a custom plan | $500 | $2,000 on a custom plan ($5,000 at $0.50) |
| Parallel Search (Turbo or Fast) | $1.00 | $1,000 | $10,000 |
| Perplexity Search API (Fast Search) | $1.00 | $1,000 | $10,000 |
| Exa (Lite / Auto) | $4.00 / $7.00 | $4,000 / $7,000 | $40,000 / $70,000 |
| Perplexity Search API (standard) | $5.00 | $5,000 | $50,000 |
| Brave Search API | $5.00 | $5,000 | $50,000 |
| Linkup (standard depth) | $5.00 | $5,000 | $50,000 |
| You.com Web Search API | $5.00 | $5,000 | $50,000 |
| Tavily (basic depth, pay-as-you-go) | $8.00 | $8,000 | $80,000 |
Prices checked 23 October 2026 on each vendor's own pricing page. Tavily's Growth plan brings the rate to $5.00 per 1,000 for the first 100,000 credits a month, with $0.008 per credit after that. At this volume, treat list prices as a ceiling: You.com lists custom QPS on its Enterprise plan, Exa raises limits through sales, and Serpex has custom plans from $2,000 a month. Ask each vendor for a written quote.
Two things change these numbers more than the list price does. First, page content: if you need text for ten results and the API sells it separately, add that call to every search. Second, billing rules: an API that charges for errors and empty results costs more per useful answer than its list price suggests. That is why the bake-off below measures cost per answered query.
How to run a bake-off in a week
Published facts get you a shortlist of two or three. Your own queries decide the rest. This method takes about a week of one engineer's time.
Day 1: build the query set. Take 200 to 500 queries from your real traffic, not ones written for the test. Include short and long queries, quoted names, site: and date-restricted queries if you use them, non-English if you serve it, and recent events. Remove anything you cannot send to a third party under your current agreements.
Day 2: label what a good answer is. For each query, write down what your application needs: the company's official site, a person's profile page, a news article from this week. A list of acceptable URLs or domains per query is enough. Write the labels before you see any vendor's results.
Days 3 and 4: run every API on the full set at your real peak requests per second, because rate limits and latency change under load. Log status code, latency, result count, whether page content arrived, and the cost of each request.
Day 5: score. Four numbers per API:
- Recall: share of queries where a labelled correct result appears in the results your application reads (top 5 or top 10).
- Precision: share of returned results that are relevant, on a sample you check by hand.
- p50 and p95 latency at your peak rate, and the share of requests that failed or were rate-limited.
- Cost per answered query: total billed cost divided by the number of queries that produced a usable answer. This is the number to compare. A lower list price with lower recall can cost more per useful answer.
Also check the failure path. Send malformed requests, exceed the rate limit on purpose, and include queries with no results. Check that your code can tell the cases apart, and whether you were charged.
Keep the query set and run it again before renewal; results drift.
Where Serpex fits, honestly
Serpex is a search API for AI agents, RAG pipelines and data enrichment. It returns web search results as structured JSON, with optional page content.
Pricing. Pay-as-you-go is $0.80, $0.65 or $0.50 per 1,000 searches, depending on top-up size. Custom plans have volume pricing from $0.20 per 1,000 at 10M+ searches a month. Enterprise starts at $2,000 a month.
Rate limits. Standard tiers are 5, 25 and 50 requests per second. Enterprise plans get custom limits.
What is billed. Errors are never charged. An empty result is charged only when it is confirmed genuinely empty, and custom contracts can make empty results free. If your organization repeats the same query within 5 minutes, the repeat is free.
Page content. Optionally, the top 5 or 10 results come back with their page content as Markdown in the same call, billed on the pages actually delivered.
Integration. A REST API, TypeScript and Python SDKs, an MCP server, and LangChain, LlamaIndex, Haystack and n8n integrations.
Data. Search logs are kept for 30 days.
What Serpex does not have today:
- No SOC 2 report.
- No published uptime SLA.
- No SSO. Sign-in to the dashboard is with Google or GitHub.
If your security review requires a SOC 2 report or SSO before a pilot, Serpex will not pass it today, and you should shortlist vendors that do. If your main constraints are cost per answered query at millions of searches a month, billing that does not charge for failures, and page content in the same call, it belongs in your bake-off.
FAQ
What are the leading search APIs for enterprise apps?
The independent search APIs most often evaluated for AI workloads are Tavily, Exa, Brave Search API, Linkup, Parallel, Perplexity Search API, You.com and Serpex. They differ less on result format than on billing rules, rate limits, page content and security paperwork. Use the procurement table above to narrow the list, then test two or three on your own queries.
What are the best citation-backed search APIs for enterprise LLMs?
Any search API that returns each result's URL, title and text as separate fields supports citations, because your model can quote the text and link the URL. If you want the vendor to write the cited answer, look at answer-style products such as Tavily's answer option or Perplexity's Agent API. If your own model writes the answer, a retrieval API with page content in the same call (Tavily, Perplexity Search API, Brave, Serpex) keeps the pipeline to one request. Check that each citation points to the page the text came from.
Which search APIs support real-time data?
All the APIs in the comparison table return current web results, but "real-time" varies. Some query a live index at request time; some serve page text from their own cache. Exa, for example, documents that its Lite mode never fetches pages live. Ask each vendor how old a result or its page text can be, and test with queries about events from the last 48 hours.
Which real-time search APIs return structured output?
All of them return JSON with a list of results. They differ in what each result carries (URL, title, snippet, date, page text), whether page text comes in the same call, and whether an empty result looks different from an error. Ask for sample responses for both.
Should errors and empty results be billed?
Errors should not be. Most vendors that publish a rule say so, and those that do not publish one are worth asking. Empty results are less clear-cut: some vendors bill a successful response with no results, some never bill empties, and Serpex bills an empty result only when it is confirmed genuinely empty. At 10M searches a month the difference is real money, so get the rule in writing.
How much does a search API cost at 10 million searches a month?
At list prices for the default search mode, from $10,000 to $80,000 a month for the APIs in the cost table above, and $2,000 for Serpex at its 10M+ volume rate. Treat list price as a ceiling at this volume and ask each vendor for a written quote before you compare.
Pricing and features change; we re-check this page monthly. For a broader comparison of AI-ready search APIs, see Best Search APIs for AI Agents and LLMs (2026), and for current Serpex prices, see pricing.