“Search API” covers three genuinely different products, and mixing them up is the fastest way to build against the wrong one. A native-index engine (Brave, You.com’s Web Search, Parallel, Linkup) crawls and ranks the web itself. A SERP-scraping API (SerpApi, SearchAPI.io, and Serper, NativePort’s existing Google-focused baseline) fetches and structures another engine’s results page — usually Google’s. Some products blur the line by also offering AI-synthesized, cited answers on top of raw results. NativePort proxies seven of these under one key; this guide compares all seven fairly, sourced from each provider’s own documentation, and is explicit about which parts of each provider NativePort actually exposes — several of these providers ship broader APIs than what’s mounted here.
What you’ll need
- A NativePort API key. Sign up to get a key and $5 in credits.
- Python 3, standard library only —
urllib.request, nopip install. - Your key exported as an environment variable, never hardcoded:
export NATIVEPORT_API_KEY="np_..."
Native-index search: Brave, You.com, Parallel, Linkup
These four run their own crawl or index rather than scraping another engine’s results — Brave’s own docs are explicit that it is “not a scraper that simply uses bots to query Google or Bing”, and Parallel similarly builds and ranks its own index rather than reselling another engine’s results.
Brave Search — an independently built index (30B+ pages, refreshed continuously), with a privacy-first sourcing story. NativePort mounts seven verticals as GET /brave/<vertical>/search: web, images, videos, news, suggest, spellcheck, summarizer (full list in Brave’s API documentation). Brave’s separate AI “Answers” endpoints are not mounted — Brave prices Answers as a per-request charge plus per-token charges for the summarization output, unlike Search’s flat per-request rate, which doesn’t fit this gateway’s flat metering. A single Brave request is capped at 20 results.
You.com — an independent index with a distinct raw-results Web Search API, separate from its own AI-synthesis products. NativePort mounts only GET /youcom/search — flat-priced, synchronous, up to 100 results per call. You.com’s Contents API (fetch-by-URL, priced per page fetched) and Research/Finance-Research APIs (multi-step, AI-synthesized, citation-backed, priced per effort tier) are not mounted: their cost is per-URL or per-effort-tier and variable, which a flat per-call meter can’t attribute cleanly. If your use case needs You.com’s synthesized research output specifically, that tier isn’t reachable through NativePort today.
Parallel — an index built around agent consumption: instead of a keyword query, you send a natural-language objective plus keyword queries, and get back ranked URLs with pre-compressed, token-dense excerpts rather than raw snippets or a full synthesized answer. NativePort mounts only POST /parallel/search. Parallel’s broader Task API (deep multi-hop research) is not mounted — it’s priced per processor tier from $5 (lite) to $300 (ultra) per 1,000 runs, a 60x spread, and runs asynchronously; neither fits a flat, synchronous per-call meter.
Linkup — an own-index search API that lets you tune which sources the index draws from. NativePort mounts only POST /linkup/search, but that one endpoint is more flexible than it sounds: an outputType field switches between raw searchResults, an AI-composed sourcedAnswer with citations, or structured output conformed to a JSON schema you supply, and a depth field (standard or deep) trades cost for a more thorough, multi-iteration search. Deep search runs roughly 10x the cost of standard — a real trade-off worth confirming you need before defaulting to it. Linkup’s separate /fetch (direct URL retrieval) and /research (higher-reasoning-depth) endpoints are not mounted.
Of these four, Linkup is the only one whose AI-synthesized answer tier is actually reachable through NativePort in one call — You.com’s and Parallel’s live on endpoints this gateway doesn’t mount.
SERP-scraping and aggregation: Serper, SerpApi, SearchAPI.io
These three fetch and structure an existing search engine’s real results page, rather than running their own index.
Serper is NativePort’s existing Google-focused baseline, already covered in its own guide: How to Use Serper Google Search Through NativePort. It’s Google-only, cheapest of the three, and the one most agent frameworks default to.
SerpApi scrapes and structures results from a wide roster of engines beyond Google — Bing, DuckDuckGo, Baidu, Yandex, Yahoo, plus marketplace/vertical engines like Amazon, eBay, YouTube and the app stores — with official SDKs across several languages. NativePort mounts the single search endpoint, GET /serpapi, with engine and every other control entirely client-controlled in the query string, exactly as if you called SerpApi directly.
SearchAPI.io covers a broad engine roster (spanning Google’s own verticals plus Bing, Baidu, Yandex, Amazon, YouTube and more), and documents billing only successful (200-status) searches rather than every attempt. NativePort mounts it the same shape as SerpApi: GET /searchapi, engine and q (and everything else) in the query string.
Making the calls
Every provider here shares the same key and Authorization: Bearer <NATIVEPORT_API_KEY> header — the difference is GET-with-query-string (Brave, You.com, SerpApi, SearchAPI.io) versus POST-with-JSON-body (Parallel, Linkup):
import json
import os
import urllib.parse
import urllib.request
GATEWAY = "https://api.nativeport.ai"
API_KEY = os.environ["NATIVEPORT_API_KEY"]
def get_search(path, params):
qs = urllib.parse.urlencode(params)
req = urllib.request.Request(f"{GATEWAY}{path}?{qs}", method="GET")
req.add_header("Authorization", f"Bearer {API_KEY}")
with urllib.request.urlopen(req, timeout=30) as resp:
return json.loads(resp.read())
def post_search(path, body):
req = urllib.request.Request(
f"{GATEWAY}{path}", data=json.dumps(body).encode(), method="POST"
)
req.add_header("Authorization", f"Bearer {API_KEY}")
req.add_header("Content-Type", "application/json")
with urllib.request.urlopen(req, timeout=30) as resp:
return json.loads(resp.read())
brave = get_search("/brave/web/search", {"q": "nativeport ai gateway"})
youcom = get_search("/youcom/search", {"query": "nativeport ai gateway"})
serpapi = get_search("/serpapi", {"engine": "google", "q": "nativeport ai gateway"})
searchapi = get_search("/searchapi", {"engine": "google", "q": "nativeport ai gateway"})
parallel = post_search("/parallel/search", {
"objective": "find NativePort's gateway pricing model",
"search_queries": ["nativeport ai gateway pricing"],
})
linkup = post_search("/linkup/search", {
"q": "nativeport ai gateway",
"depth": "standard",
"outputType": "searchResults",
})
Each response is that provider’s own JSON, shaped exactly as their own documentation describes it — the gateway doesn’t reshape any of them, so treat each one’s schema as that provider’s to document, not NativePort’s.
Picking one
- Google’s actual results, nothing more, cheapest: Serper.
- Breadth across many engines beyond Google, official SDKs: SerpApi.
- The same breadth, cheaper, billed only on success: SearchAPI.io.
- An index independent of Google/Bing, with a privacy angle and verticals beyond plain web search: Brave.
- Pre-compressed, agent-ready excerpts driven by a natural-language objective rather than a keyword string: Parallel.
- A sourced, cited answer or schema-structured output from one call, without stitching results together yourself: Linkup (
outputType: "sourcedAnswer"or"structured") — the one provider here whose answer tier NativePort actually mounts. - Raw web results with fine-grained domain include/exclude/boost controls: You.com.
For semantic, embeddings-driven discovery rather than any of the above — finding pages by meaning instead of keywords, or a dedicated find-similar action — see Exa instead; it’s a different search paradigm from every provider in this guide.
Errors you’ll actually hit
402 Payment Required: the NativePort balance is at $0. Every request answers this deterministically, so top up and retry.401 Unauthorized: theAuthorization: Bearer <NATIVEPORT_API_KEY>header is missing, malformed, or doesn’t resolve to an account.403 Forbidden: the key is valid but the account isn’t active.404: a path outside what’s listed above — most often reaching for a broader endpoint one of these providers offers that NativePort doesn’t mount (You.com’s Research API, Parallel’s Task API, Linkup’s/fetchor/research, Brave’s Answers endpoints). Check the exclusions above before assuming a typo.- Provider-specific
400/422: a malformed query or body for that provider — missingq/query, or in Parallel’s case a missingsearch_queriesarray. Each provider validates its own request shape; the gateway doesn’t pre-check it for you. - A
200with an empty results array: the provider itself found nothing, not a gateway fault.
Security
Treat NATIVEPORT_API_KEY like any other credential: environment variable or secret store, never a literal string in source, never logged. None of these seven providers’ own credentials ever reach your process — the gateway injects each one server-side.
What this costs
Six of these seven bill flat per accepted request (Brave, You.com, Parallel, Linkup, SerpApi, SearchAPI.io); Serper is metered from the credit count its own response reports, which varies by vertical. None of it carries a NativePort markup — current per-request pricing for each lives on its own provider page (Brave, You.com, Parallel, Linkup, SerpApi, SearchAPI.io, Serper) rather than restated here, since rates move. A zero balance answers every request with 402 instead of degrading. Adding credit carries a flat 5.5% fee on top-ups between $10 and $5,000 — never on the calls themselves. Full breakdown: pricing.
Where to go next
- Web search leaderboard and SERP verticals leaderboard: how these providers score against each other and the rest of the field.
- How to Use Serper Google Search Through NativePort: the deep dive on NativePort’s existing Google-focused baseline.
- How to Build a Semantic Research Pipeline with Exa on NativePort: a fundamentally different, embeddings-driven search paradigm from every provider covered here.
- Methodology: how NativePort’s benchmark scores are produced.
- Pricing: the full billing model.