Compare search APIs side-by-side for programmatic web search. Free tiers, pricing, search verticals, code examples, and a live demo. Find the best search engine API for SEO tools, competitor analysis, and content research.
Developers use web search APIs to build a wide range of tools. Here are the most popular use cases driving API adoption in 2026:
Track keyword rankings across Google, Bing, and Brave. Monitor position changes for your pages and competitor pages. Alert on ranking drops before traffic is impacted.
Discover what content competitors are ranking for, which keywords they target, and how their SERP presence changes over time. Identify content gaps and opportunities.
Find trending topics, discover content ideas, and analyze what types of pages rank for target keywords. Build data-driven content strategies instead of guessing.
Search for product names and extract pricing data from results. Track competitor pricing across marketplaces. Power dynamic pricing engines for e-commerce.
Search for companies in specific industries, locations, or technology stacks. Extract contact information from business listings. Build targeted prospect lists at scale.
Analyze search trends, track brand mentions, monitor industry news. Aggregate data from multiple search engines to build comprehensive market intelligence reports.
Feature matrix across all 6 web search APIs. Scroll horizontally on mobile.
| Provider | Free Tier | Paid Pricing | Results/Query | Index Source | Auth Required | Verticals |
|---|---|---|---|---|---|---|
| Google Custom Search FREEMIUM | 100 queries/day | $5/1,000 queries | 10 per page | API key + CSE ID | Web, Image | |
| Bing Web Search FREEMIUM | 1,000 calls/mo (S1) | $7/1,000 calls | Up to 50 | Bing | Azure API key | Web, Image, News, Video |
| SerpApi FREEMIUM | 100 searches/mo | From $75/mo | Up to 100 | Google, Bing, Yahoo, DDG | API key | All (parsed SERPs) |
| Brave Search FREEMIUM | 2,000 queries/mo | $5/1,000 queries | Up to 20 | Brave (independent) | API key | Web, News, Image |
| DuckDuckGo Instant FREE | Unlimited | N/A (free only) | Instant answers only | DuckDuckGo | No key needed | Instant answers |
| Frostbyte Search 200 FREE CREDITS | 200 credits | $1/200 credits | Up to 10 | Web (via gateway) | API key (instant) | Web |
Not all search APIs return the same types of results. This matrix shows which verticals each provider supports.
| Provider | Web | Images | News | Videos | Maps/Local | Shopping |
|---|---|---|---|---|---|---|
| Google Custom Search | ✓ | ✓ | ✗ | ✗ | ✗ | ✗ |
| Bing Web Search | ✓ | ✓ | ✓ | ✓ | ✗ | ✗ |
| SerpApi | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
| Brave Search | ✓ | ✓ | ✓ | ✗ | ✗ | ✗ |
| DuckDuckGo Instant | ~ | ✗ | ✗ | ✗ | ✗ | ✗ |
| Frostbyte Search | ✓ | ✗ | ✗ | ✗ | ✗ | ✗ |
✓ = Supported ✗ = Not available ~ = Partial (instant answers only, not full web results)
Detailed analysis of each search API with strengths and weaknesses.
Copy-paste examples for each provider. All return JSON.
# Google Custom Search JSON API
# Requires: API key + Custom Search Engine (CSE) ID
# Get API key: https://console.cloud.google.com/apis/credentials
# Create CSE: https://programmablesearchengine.google.com/
curl "https://www.googleapis.com/customsearch/v1?\
q=best+javascript+frameworks+2026&\
key=YOUR_GOOGLE_API_KEY&\
cx=YOUR_CSE_ID&\
num=10"
# Response: { items: [{ title, link, snippet, displayLink }] }# Bing Web Search API (Azure Cognitive Services)
# Requires: Azure subscription + API key
# Get key: https://portal.azure.com/#create/Microsoft.BingSearch
curl "https://api.bing.microsoft.com/v7.0/search?\
q=best+javascript+frameworks+2026&\
count=20&\
mkt=en-US" \
-H "Ocp-Apim-Subscription-Key: YOUR_BING_API_KEY"
# Response: { webPages: { value: [{ name, url, snippet }] } }# Frostbyte Search API
# Get instant API key: https://agent-gateway-kappa.vercel.app
curl "https://agent-gateway-kappa.vercel.app/v1/search?\
q=best+javascript+frameworks+2026" \
-H "x-api-key: YOUR_KEY"
# Response: { results: [{ title, url, snippet }] }# SerpApi - Paginate through Google results
# start=0 (page 1), start=10 (page 2), start=20 (page 3)
curl "https://serpapi.com/search.json?\
engine=google&\
q=web+search+api+comparison&\
start=10&\
num=10&\
api_key=YOUR_SERPAPI_KEY"
# Returns: organic_results, knowledge_graph,
# people_also_ask, related_searches, pagination
# Brave Search API - Pagination with offset
# offset=0 (first page), offset=20 (second page)
curl "https://api.search.brave.com/res/v1/web/search?\
q=web+search+api+comparison&\
count=20&\
offset=20" \
-H "X-Subscription-Token: YOUR_BRAVE_API_KEY"
# Returns: { web: { results: [{ title, url, description }] } }# Frostbyte Search - Simple query
# Single-page results, up to 10 per query
curl "https://agent-gateway-kappa.vercel.app/v1/search?\
q=web+search+api+comparison" \
-H "x-api-key: YOUR_KEY"
# Returns: { results: [{ title, url, snippet }] }# Google Custom Search - Filter by language and country
# lr=lang_de (German results), gl=de (Germany geo)
curl "https://www.googleapis.com/customsearch/v1?\
q=beste+javascript+frameworks&\
key=YOUR_GOOGLE_API_KEY&\
cx=YOUR_CSE_ID&\
lr=lang_de&\
gl=de&\
num=10"
# lr: language restriction (lang_en, lang_de, lang_fr, etc.)
# gl: geolocation (country code for result localization)
# Bing Web Search - Market and language filtering
# mkt=de-DE targets German market, setLang=de for UI language
curl "https://api.bing.microsoft.com/v7.0/search?\
q=beste+javascript+frameworks&\
mkt=de-DE&\
setLang=de&\
count=20" \
-H "Ocp-Apim-Subscription-Key: YOUR_BING_API_KEY"
# mkt: market code (en-US, de-DE, fr-FR, ja-JP, etc.)
# setLang: response UI language
# Brave Search - Country and language filtering
# country=DE, search_lang=de
curl "https://api.search.brave.com/res/v1/web/search?\
q=beste+javascript+frameworks&\
country=DE&\
search_lang=de&\
count=20" \
-H "X-Subscription-Token: YOUR_BRAVE_API_KEY"
# country: 2-letter country code for result localization
# search_lang: filter results by content language
Use these in Node.js or browser (where CORS allows). All APIs return JSON.
// Google Custom Search JSON API
const GOOGLE_API_KEY = 'YOUR_KEY';
const CSE_ID = 'YOUR_CSE_ID';
const res = await fetch(
`https://www.googleapis.com/customsearch/v1?q=${encodeURIComponent(query)}&key=${GOOGLE_API_KEY}&cx=${CSE_ID}&num=10`
);
const data = await res.json();
data.items.forEach(item => {
console.log(item.title, item.link);
console.log(item.snippet);
});// SerpApi - Parse Google SERPs into structured JSON
const SERPAPI_KEY = 'YOUR_KEY';
const res = await fetch(
`https://serpapi.com/search.json?engine=google&q=${encodeURIComponent(query)}&api_key=${SERPAPI_KEY}`
);
const data = await res.json();
// Rich SERP data
console.log(data.organic_results); // Standard results
console.log(data.knowledge_graph); // Knowledge panel
console.log(data.people_also_ask); // PAA boxes
console.log(data.related_searches); // Related queries// Brave Search API
const BRAVE_KEY = 'YOUR_KEY';
const res = await fetch(
`https://api.search.brave.com/res/v1/web/search?q=${encodeURIComponent(query)}&count=20`,
{ headers: { 'X-Subscription-Token': BRAVE_KEY } }
);
const data = await res.json();
data.web.results.forEach(result => {
console.log(result.title, result.url);
console.log(result.description);
});// Frostbyte Search API - Simple and fast
const FROSTBYTE_KEY = 'YOUR_KEY';
const res = await fetch(
`https://agent-gateway-kappa.vercel.app/v1/search?q=${encodeURIComponent(query)}`,
{ headers: { 'x-api-key': FROSTBYTE_KEY } }
);
const data = await res.json();
// Clean, simple response
data.results.forEach(result => {
console.log(result.title, result.url);
console.log(result.snippet);
});// DuckDuckGo Instant Answer API - No key needed!
// NOTE: Returns instant answers, NOT full web search results
const res = await fetch(
`https://api.duckduckgo.com/?q=${encodeURIComponent(query)}&format=json&no_html=1`
);
const data = await res.json();
console.log(data.AbstractText); // Short answer
console.log(data.AbstractSource); // Source attribution
console.log(data.RelatedTopics); // Related topics with URLs
// Good for: definitions, entity lookups, quick facts
// Not suitable for: full web search resultsEnter any search query to see web results. Uses the Frostbyte Search API - results appear below.
What each search API costs when you need more than the free tier. Costs shown per 1,000 queries.
For teams doing serious search API work, here is the monthly cost at scale:
| Provider | 100K Queries/mo | Cost per Query | Notes |
|---|---|---|---|
| Google CSE | ~$497 | $0.005 | Free tier offsets ~3K/mo |
| Bing Search | ~$693 | $0.007 | Volume discounts available |
| SerpApi | ~$300-600 | $0.003-0.006 | Enterprise plan negotiable |
| Brave Search | ~$490 | $0.005 | $3/1K on higher tiers |
| DuckDuckGo | $0 | $0.000 | Only instant answers |
| Frostbyte | ~$500 | $0.005 | No contract required |
Choose based on your specific use case.
Use SerpApi. It parses rich SERP features like knowledge panels, featured snippets, People Also Ask, and local packs. Essential for rank tracking and SERP analysis. Worth the premium pricing if SEO data is your core product.
Use Brave Search. Independent index, no user tracking, no data sharing. 2,000 free queries/month is the most generous free tier. Great for privacy-focused applications and avoiding Google/Bing dependence.
Use Frostbyte Search. Get an API key instantly with no signup form. Simple single endpoint. 200 free credits to validate your idea. Upgrade to pay-as-you-go when ready to scale.
Use Google Custom Search. Google's index is the largest and most comprehensive. Enterprise reliability. Best for products where search quality is the top priority and you can handle the CSE setup complexity.
Use Bing Web Search. Native support for web, images, news, and video in one API. Azure integration for enterprise workflows. Best choice when you need multiple search verticals in a single product.
Use DuckDuckGo Instant Answer. No API key, no setup, completely free. Perfect for adding quick entity lookups, definitions, and factual answers to your app. Just remember it is not a full web search API.
The three main search APIs with full web results, compared on the dimensions that matter most.
Best for: result quality
Best for: multiple verticals
Best for: independence + privacy
Python is the most popular language for search API integrations. Here are production-ready examples using requests.
import requests
GOOGLE_API_KEY = "YOUR_KEY"
CSE_ID = "YOUR_CSE_ID"
params = {
"q": "best python frameworks 2026",
"key": GOOGLE_API_KEY,
"cx": CSE_ID,
"num": 10
}
r = requests.get("https://www.googleapis.com/customsearch/v1", params=params)
data = r.json()
for item in data.get("items", []):
print(f"{item['title']}")
print(f" {item['link']}")
print(f" {item['snippet']}")
print()import requests
BING_API_KEY = "YOUR_KEY"
headers = {"Ocp-Apim-Subscription-Key": BING_API_KEY}
params = {"q": "best python frameworks 2026", "count": 20, "mkt": "en-US"}
r = requests.get("https://api.bing.microsoft.com/v7.0/search",
headers=headers, params=params)
data = r.json()
for result in data.get("webPages", {}).get("value", []):
print(f"{result['name']}")
print(f" {result['url']}")
print(f" {result['snippet']}")
print()import requests
SERPAPI_KEY = "YOUR_KEY"
params = {
"engine": "google",
"q": "best python frameworks 2026",
"api_key": SERPAPI_KEY,
"num": 10
}
r = requests.get("https://serpapi.com/search.json", params=params)
data = r.json()
# Organic results
for result in data.get("organic_results", []):
print(f"{result['title']} - {result['link']}")
# Knowledge graph (if present)
if "knowledge_graph" in data:
print(f"\nKnowledge Graph: {data['knowledge_graph']['title']}")
# People Also Ask
for paa in data.get("people_also_ask", []):
print(f"PAA: {paa['question']}")import requests
BRAVE_KEY = "YOUR_KEY"
headers = {"X-Subscription-Token": BRAVE_KEY}
params = {"q": "best python frameworks 2026", "count": 20}
r = requests.get("https://api.search.brave.com/res/v1/web/search",
headers=headers, params=params)
data = r.json()
for result in data.get("web", {}).get("results", []):
print(f"{result['title']}")
print(f" {result['url']}")
print(f" {result.get('description', '')}")
print()import requests
FROSTBYTE_KEY = "YOUR_KEY"
headers = {"x-api-key": FROSTBYTE_KEY}
params = {"q": "best python frameworks 2026"}
r = requests.get("https://agent-gateway-kappa.vercel.app/v1/search",
headers=headers, params=params)
data = r.json()
for result in data.get("results", []):
print(f"{result['title']}")
print(f" {result['url']}")
print(f" {result.get('snippet', '')}")
print()programmablesearchengine.google.com and configure it to search the entire web. Each API call takes your query, API key, and CSE ID, returning up to 10 results per page. You can paginate through up to 100 total results. The free tier allows 100 queries per day; paid usage costs $5 per 1,000 queries up to 10,000 per day.