Skip to the page

Parallel Search API compatible

Change the address, keep the code.

SpecStream answers Parallel's POST /v1/search in Parallel's own JSON, at $0.005 a search of up to 10 results in every mode. Every line below was measured on production on November 10, 2026 with the parallel-web Python SDK 1.3.7.

The switch is one line: base_url="https://api.specstream.ai/parallel" in place of https://api.parallel.ai, and a SpecStream key in x-api-key. Your code reads results[].url, title, publish_date and excerpts as before.

SpecStream scores 97.9 F-score on all 1,000 SimpleQA Verified questions and 64.0 item F1 on all 200 WideSearch tasks. It takes up to 8,800 searches a minute on one account.

New accounts get $10 of credit, no card. It covers 2,000 searches.

Parallel Search API to SpecStream, parameter by parameter and field by field

SpecStreamParallel Search API
AddressPOST https://api.specstream.ai/parallel/v1/searchPOST https://api.parallel.ai/v1/search
The keyA SpecStream key in x-api-keyA Parallel key in x-api-key
`mode`turbo and fast return each result's search excerpt; basic and advanced, the default, read each page and return up to about 3,500 characters of it. Every mode costs $0.005turbo and fast cost $1 per 1,000 requests; basic and advanced, the default, $5 per 1,000
`max_results`In advanced_settings, 10 when you send none, up to 100In advanced_settings, defaults to 10. Public modes cap results at 20
`search_queries`One or more queries, searched as one search for any of themOne or more keyword queries, required
Filters and excerptssource_policy include_domains, exclude_domains and after_date, excerpt_settings.max_chars_per_result, max_chars_total and session_idThe same source_policy, excerpt settings, max_chars_total and session_id. Excerpt length does not change the price
The replysearch_id, session_id and results[] with url, title, publish_date when the page has a date, and excerpts. Not returned: warnings and usagesearch_id, results[] with url, title, publish_date and excerpts, warnings, usage and session_id
ErrorsParallel's {"type": "error", "error": {...}}: 422 for a mode or a field Parallel does not take, 401 with no key, 402 for an empty balance. A busy call answers 429 with Retry-After and charges nothing402 for insufficient credit, 422 when validation fails, 429 when rate limited
Price per 1,000 searches$5 for up to 10 results in every mode, page text included. 20 results cost $0.011 a call$1 to $5 per 1,000 requests with 10 results included, and $1 per 1,000 additional results
Calls a minuteUp to 8,800 searches a minute on one account600 a minute on /v1/search
Free to start$10 of credit, no card, which covers 2,000 searches$5 free monthly with a card on file, plus up to $80 at signup

The Parallel Search API reference, on SpecStream

What else Parallel Search API users price

How SpecStream scores

The same numbers as the benchmarks page, from the official tasks and scorers.

How to migrate, step by step

1. Create a key under Agents & API in the workspace. A new account gets $10 of credit, no card, which covers 2,000 searches.

2. Set the base address to https://api.specstream.ai/parallel where your code has https://api.parallel.ai, and send the SpecStream key in x-api-key. In Python:

import requests

BASE = "https://api.specstream.ai/parallel"  # was https://api.parallel.ai

reply = requests.post(
    f"{BASE}/v1/search",
    headers={"x-api-key": SPECSTREAM_KEY},
    json={
        "search_queries": ["Mistral AI founders"],
        "mode": "fast",
        "advanced_settings": {"max_results": 10},
    },
    timeout=30,
)
reply.raise_for_status()
for result in reply.json()["results"]:
    print(result["title"], result["url"], result["excerpts"][0][:200])

3. In JavaScript:

const res = await fetch("https://api.specstream.ai/parallel/v1/search", {
  method: "POST",
  headers: {
    "x-api-key": process.env.SPECSTREAM_KEY,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({ search_queries: ["Mistral AI founders"], mode: "fast" }),
});
const data = await res.json();
for (const result of data.results) console.log(result.title, result.url);

4. Read 402 as an empty balance and 429 as a call to send again after Retry-After; neither is charged.

5. When your product needs every match in place of a results page, write the request in plain words. SpecStream reads it back as the conditions every row must meet and the facts to bring back, quotes the most it can cost, and delivers the rows after you approve.

Frequently asked questions

Something we didn't answer? Talk to a human

Is there a Parallel Search API compatible API?
Yes. SpecStream answers Parallel's POST /v1/search at https://api.specstream.ai/parallel in Parallel's JSON, checked on production on November 10, 2026, for $0.005 a search of up to 10 results.
How do I migrate from the Parallel Search API?
Change one line: set base_url to https://api.specstream.ai/parallel (or PARALLEL_BASE_URL) and use a SpecStream key. The request body and the code that reads results[] stay as they are.
How much does the Parallel Search API cost?
Parallel charges $1 per 1,000 requests in turbo and fast and $5 per 1,000 in basic and advanced, its default, plus $1 per 1,000 results beyond 10. SpecStream charges $5 per 1,000 searches of up to 10 results in every mode.
Which apps and SDKs take the SpecStream address for Parallel Search API?
LiteLLM 1.108.4: set PARALLEL_AI_API_BASE to https://api.specstream.ai/parallel and put your SpecStream key in PARALLEL_AI_API_KEY. The call stays litellm.search(search_provider="parallel_ai"). LangChain, langchain-parallel 0.5.0: pass base_url="https://api.specstream.ai/parallel" to ParallelWebSearchTool, or set PARALLEL_BASE_URL. OpenClaw: set plugins.entries.parallel.config.webSearch.baseUrl to https://api.specstream.ai/parallel. The plugin adds /v1/search itself. Cherry Studio: in the Parallel provider, set API Host to https://api.specstream.ai/parallel.
Does the parallel-web SDK work with SpecStream?
Yes. The parallel-web Python SDK 1.3.7 ran every check in the pass table with base_url="https://api.specstream.ai/parallel" and a SpecStream key, and client.search reads the reply into its own objects.
Which Parallel fields does SpecStream not return?
Two: warnings and usage. Each result has url, title and excerpts, and publish_date when the page has a date; the reply has search_id and session_id.
How many searches a minute can I send?
Up to 8,800 a minute on one account. A call over that answers 429 with a Retry-After header and charges nothing.

Sources

SpecStream wrote this page. Each Parallel figure comes from Parallel's own pages, and each other provider's figure from that company's own page. The route's behavior is taken from its code and from the pass table measured on production on November 10, 2026.

  1. Parallel search referencedocs.parallel.ai/api-reference/search/search.md, read Nov 10, 2026
  2. Parallel search modesdocs.parallel.ai/search/modes.md, read Nov 10, 2026
  3. Parallel advanced search settingsdocs.parallel.ai/search/advanced-search-settings.md, read Nov 10, 2026
  4. Parallel API pricingdocs.parallel.ai/getting-started/pricing.md, read Nov 10, 2026
  5. Parallel rate limitsdocs.parallel.ai/getting-started/rate-limits.md, read Nov 10, 2026
  6. Parallel warnings and errorsdocs.parallel.ai/resources/warnings-and-errors.md, read Nov 10, 2026
  7. Parallel pricingparallel.ai/pricing, read Nov 10, 2026
  8. SpecStream pass table, Parallel routespecstream.ai/specstream/dialects/parallel.md, read Nov 10, 2026
  9. Exa pricingexa.ai/docs/admin/pricing.md, read Nov 9, 2026
  10. Tavily API creditsdocs.tavily.com/documentation/api-credits.md, read Nov 9, 2026
  11. Brave Search APIbrave.com/search/api/, read Nov 9, 2026
  12. SpecStream benchmarksspecstream.ai/benchmarks, read Nov 10, 2026
  13. SpecStream pricingspecstream.ai/pricing, read Nov 10, 2026
  14. SpecStream for agentsspecstream.ai/agents.md, read Nov 10, 2026