The Cheapest SERP API for Developers

Google, Bing, Yahoo, DuckDuckGo and Brave, one response shape — the same keys, whichever engine you call.

Try for Free View Documentation
From $0.03
Per 1K Web Calls
5
Search Engines, One Key
112
Country Codes
10
Free Calls, No Card

Run a live search on any of the five engines

One real call against the API, no signup and no key. Switch the engine and run it again — the shape never changes.

Five Search Engines, One API Key

Every engine is billed at the same Web category rate, so pick on the data you need, not the price. Each page below goes deep on one engine.

Google

From $0.03/1K calls
Web · News · Images · Videos
  • The richest Deep Search feature set
  • Featured snippets, PAA, knowledge panel
  • Sitelinks and local pack
  • AI Overview on request (include_aio)
  • News from $0.01/1K calls
Learn more →

Yahoo

From $0.03/1K calls
Web · News · Images · Videos
  • People Also Ask, answers and sources
  • Related searches and inline videos
  • AI Overview on request (include_aio)
  • Broad image filters: size, colour, type
  • 112 country codes
Learn more →

Bing

From $0.03/1K calls
Web · News · Images · Videos
  • People Also Ask, answers and sources
  • Related searches and inline videos
  • News up to ~49 articles per call
  • Knowledge panel, local pack if shown
  • 112 country targeting
Learn more →

DuckDuckGo

From $0.03/1K calls
Web · News · Images · Videos
  • The leanest response of the five
  • Organic results and ads, ~10 per page
  • Deepest image results (~95 at num=100)
  • Unpersonalized results
  • Images from $0.25/1K calls
Learn more →

Brave

From $0.03/1K calls
Web · News · Images · Videos
  • Independent web index
  • Widest organic page: 10–20 results
  • People Also Ask and related searches
  • AI Overview on request (include_aio)
  • Same web pricing as every engine
Learn more →

What Actually Differs Between the Five Engines

Same price, same keys, same parameters. What changes is which blocks a result page carries and how deep a single call goes.

Deep Search feature coverage

Read this as how often a block is filled in, never as which keys you get — the keys are identical on all five. Quick Search is organic-only on every engine by design, so every row below describes GET /api/search.

Deep Search block Google Bing Yahoo DuckDuckGo Brave
Organic results per page~10~7~7~10~10–20
AdsYesYesYesYesYes
People Also Ask (answers + sources)YesYesYesNoYes
Related searchesYesYesYesNoYes
Inline videosYesYesYesNoYes
Featured snippetMore frequentWhere presentWhere presentWhere presentWhere present
Knowledge panelYesWhere presentWhere presentWhere presentWhere present
Local packYesWhere presentWhere presentNoWhere present
SitelinksYesNoNoNoNo
AI Overview — opt in with include_aioYesAlways nullYesAlways nullYes
Pixel positions — pixel_position (beta)YesYesYesYesNot supported

A block a result page did not carry comes back as null or [], never as a missing key, so the table changes what your parser finds, never what it has to handle. AI Overview and pixel positions are paid-tier features; on a free-tier call they return empty with metadata.aiOverviewUnavailable / metadata.pixelPositionUnavailable set to free_tier.

How deep one call goes, per engine

Measured on our own endpoints at the maximum num each one accepts. Every figure is a ceiling, not a promise — a short answer always carries a delivery block telling you exactly how short it is.

Endpoint Google Bing Yahoo DuckDuckGo Brave
/api/search — web, num=100Up to 100 organic results on every engine, retrieved across up to 10 result pages in one call
/api/newsnum=50Full set in one call~47–49~47–49~44~29
/api/imagesnum=100~60~60~60~95~50
/api/videosnum=100~60~59~60~59~50
Image filters: size, type, colour, aspectYesYesYesYesNo
Image filters: people, timeNoYesYesTime onlyNo

News caps at num=50; web, images and videos cap at num=100. On engine=google the news endpoint returns its whole result set in a single call, so pages has no effect there and it is always billed as one page. language coverage is broadest on Yahoo, Bing and Brave and narrower on DuckDuckGo; it is not accepted on /api/videos. safe is not accepted on /api/images.

So which one do you call?

Rank tracking and URL lists → any engine on Quick Search

Quick Search (/api/search/quick) is organic-only on all five engines: position, title, URL, snippet and displayed URL, and nothing else to parse. It is the smallest, fastest payload and it costs the same Web rate as Deep Search, so a rank tracker never pays for blocks it throws away.

SERP-feature research → Google, then Yahoo or Bing

If the question is "what else is on this page", Google Deep Search carries the most: sitelinks, the most frequent featured snippets, knowledge panel and local pack. Yahoo and Bing carry People Also Ask with answers and source links, related searches and inline videos at the same price.

AI answers and citations → Google, Yahoo or Brave

Add include_aio=true to a paid Deep Search call and results.aiOverview comes back with the answer text and the source pages it cites. Those are the three engines that accept it; on bing and ddg the key is always null.

A second, independent read → Brave or DuckDuckGo

Brave runs its own index and returns the widest organic page of the five, 10–20 results. DuckDuckGo returns unpersonalized results and the deepest image sets we measure at num=100, about 95. Both are worth calling when you want a view that is not shaped by personalization.

One Request Format, Five Search Engines

A single GET with an API key header. To switch engine you change one query parameter — nothing else about the call or the response changes.

cURL — the same query on two engines
# Deep Search on Google — the full SERP object, up to 100 results
curl "https://apiserpent.com/api/search?q=best+crm+software&engine=google&num=20&country=us" \
  -H "X-API-Key: YOUR_API_KEY"

# Same query, Brave index. Only `engine=` changed.
curl "https://apiserpent.com/api/search?q=best+crm+software&engine=brave&num=20&country=us" \
  -H "X-API-Key: YOUR_API_KEY"

# Quick Search — organic only, built for rank tracking
curl "https://apiserpent.com/api/search/quick?q=best+crm+software&engine=ddg&num=10" \
  -H "X-API-Key: YOUR_API_KEY"
JSON Response — the key set is identical on every engine
{
  "success": true,
  "query": "best crm software",
  "type": "web",
  "engine": "brave",
  "country": "us",
  "pagesRequested": 2,
  "pagesScraped": 2,
  "results": {
    "organic": [
      {
        "title": "The 12 Best CRM Software Platforms of 2026",
        "url": "https://example.com/best-crm",
        "snippet": "We tested 30 CRMs across pricing, pipeline tools and…",
        "displayedUrl": "example.com/best-crm",
        "position": 1
      }
    ],
    "ads": { "top": [], "bottom": [], "totalCount": 0 },
    "peopleAlsoAsk": [
      {
        "question": "What is the easiest CRM to use?",
        "answer": "Most small teams start with a pipeline-first tool…",
        "sourceUrl": "https://example.com/easy-crm",
        "sourceTitle": "Choosing a CRM",
        "sourceDisplay": "example.com › easy-crm"
      }
    ],
    "relatedSearches": [ { "query": "free crm software" } ],
    "featuredSnippet": null,
    "aiOverview": null,      // opt in with include_aio=true
    "knowledgePanel": null,
    "localPack": [],
    "richSnippets": [],
    "videos": [],
    "shopping": []
  },
  "metadata": {
    "totalOrganicResults": 20,
    "hasAds": false,
    "hasPeopleAlsoAsk": true,
    "hasRelatedSearches": true,
    "hasFeaturedSnippet": false,
    "hasAiOverview": false,
    "hasKnowledgePanel": false,
    "hasLocalPack": false
  },
  "meta": { "totalOrganic": 20, "requestedNum": 20, "elapsed": "8100ms" }
}

Every key above is always present. A block the result page did not contain — or that the engine you asked for does not carry — arrives as its own empty value (null for object-shaped blocks, [] for array-shaped ones), never as a missing key. That is the whole reason one parser can serve all five engines. Prefer a flat list? format=simple returns a single results array of position, title, url plus a total.

Every Parameter, Every Field, Written Once

The same parameter names work on every engine and, where the endpoint supports them, across web, news, image and video search.

Core request parameters

  • q — query, up to 2048 chars
  • engine — google | yahoo | bing | ddg | brave
  • country — 112 codes, default us
  • language — 2-letter ISO 639-1
  • num — results, up to 100 (news 50)
  • pages — 1–10 web, 1–5 news; num wins
  • freshness — h | d | w | m | y
  • safe — off | moderate | strict
  • format — full | simple

Opt-in extras

  • include_aio — AI Overview block
  • include_video_stats — views, duration
  • pixel_position — on-screen coordinates
  • timeout — your own ceiling, in seconds
  • timeout_ms — the same, in milliseconds
  • sort — relevance | date (news: yahoo, bing)
  • size, type, color, aspect (images)
  • license — cc, public, share… (images)
  • time — day | week | month | year (videos)

Web search result fields

  • organic[].position
  • organic[].title
  • organic[].url
  • organic[].snippet
  • organic[].displayedUrl
  • featuredSnippet.text
  • peopleAlsoAsk[].question
  • relatedSearches[].query
  • ads.top[].title, ads.top[].url

News, image and video fields

  • articles[].title, .url, .source
  • articles[].publishedTime (YYYY-MM-DD)
  • articles[].snippet, .image
  • images[].thumbnail, .original
  • images[].width, .height, .pageUrl
  • videos[].title, .url, .duration
  • videos[].views (a number), .publisher
  • videos[].publishedTime, .thumbnail
  • delivery.requested / .returned

Field sets are standardised across engines: the seven news keys, the eight image keys and the eleven video keys are the complete set, in the same order, whichever engine you called. Full API reference →

You Are Told Exactly What You Got

A SERP API earns its keep on the imperfect calls. Here is what the response tells you when one comes back short.

Short answers ship, they do not fail

Every endpoint has a maximum time it will spend on a request. When that budget runs out we return the results already gathered plus a top-level delivery block: requested, returned, a machine-readable reason and a sentence safe to show a human. We never throw away the work and hand you an error instead.

Every block stands on its own

The response is never all-or-nothing. Each of the eleven result blocks carries its own value, so a page with no knowledge panel still returns organic results, People Also Ask and related searches — and the shape is identical either way. Your parser never has to branch on what a particular result page happened to carry.

Set your own deadline

Send timeout in seconds (or timeout_ms) and the call answers inside your budget rather than ours. It can only lower the endpoint's limit, never raise it, and it is clamped rather than rejected. GET /api/status publishes the live limit for every endpoint mounted on your account.

Empty is refunded, short is charged

If a search could not be completed on our side and comes back empty, the credits go back automatically. A search that completes and genuinely has no matches is a real answer and is charged. A short-but-delivered response is charged normally — and says so, in the same delivery block.

Up to 833× Cheaper Than Competitors

Every price below comes from the provider's own pricing page. Watch the two right-hand columns — the cheap-looking rates often hide a queue, a credit multiplier, or no AI Overviews at all.

Provider Entry price /1K Cheapest /1K Free tier AI Overviews
Serpent API (Web — all engines) $0.60 $0.03 Free to start Opt-in via include_aio (paid Deep Search — google, yahoo, brave)
Scrapingdog $1.00 (LITE, $40/mo) $0.14 ($30,000 plan) 200 credits (~40 Google searches) Separate request
Serper $1.00 $0.30 2,500 queries No endpoint published
DataForSEO $0.60 $0.60 (~5-min queue; $2.00 synchronous) ~$1 trial credit Doubles the task price
Oxylabs $1.00 $0.50 (quote-only Custom+ tier; Google billed at 2× base) 2,000 results No published support
Bright Data $1.50 $1.30 ($499/mo Scale plan) 5,000/mo Not stated
SerpApi $25.00 $1.96 ($106,050 plan) 250/mo Sometimes a separate request

Web from $0.03/1K calls at the Scale tier, across every engine. Volume pricing locks in with a one-time deposit — $100 for Growth (10× off), $500 for Scale (20× off). SerpApi's entry plan is $25/1K — 42× our entry rate, and up to 833× once the Scale discount is in.

Rates read from each provider's published pricing on 10 September 2026. “Cheapest” is the best rate a vendor lists, whatever it costs to reach; entry price is the lowest paid plan. Oxylabs shows its plan tiles in a rotating carousel, so one page view shows only part of the ladder: $0.50 is the Google rate on its quote-only Custom+ tier, and $0.60 on the $999-a-month Business plan is the cheapest rate on a tier with a published price. Serper is the exception — its /pricing page 404s and only the free tier is published, so its ladder comes from ColdIQ's July 2026 analysis. SerpApi · Serper · DataForSEO · Bright Data · Oxylabs · Scrapingdog

One Rate Card, Every Engine

Prices are flat per category and identical across Google, Bing, Yahoo, DuckDuckGo and Brave. No subscription, no seat fee, and credits do not expire.

Web Search

from $0.03
per 1,000 calls (Scale tier)
  • Quick and Deep share one price
  • Up to 100 results per Deep call
  • Every feature block included
  • All five engines, same rate
Default$0.60/1K calls
Growth$0.06/1K calls
Scale$0.03/1K calls
Read the docs →

News

from $0.01
per 1,000 calls (Scale tier)
  • Up to 50 articles per request
  • Title, URL, source, date, image
  • Freshness: hour, day, week, month
  • Sort by relevance or date
Default$0.20/1K calls
Growth$0.02/1K calls
Scale$0.01/1K calls
News API →

Images

from $0.25
per 1,000 calls (Scale tier)
  • Thumbnail and full-size URLs
  • Dimensions and source page
  • Size, type, colour, aspect filters
  • Licence filters where supported
Default$0.35/1K calls
Growth$0.32/1K calls
Scale$0.25/1K calls
Image API →

Videos

from $0.07
per 1,000 calls (Scale tier)
  • Eleven standardised video fields
  • Views as a number, not a string
  • Duration, publisher, published date
  • Freshness filtering on every engine
Default$0.10/1K calls
Growth$0.09/1K calls
Scale$0.07/1K calls
Video API →

Tiers

locked forever
by your largest single deposit
  • $100 once locks Growth — 10× off
  • $500 once locks Scale — 20× off
  • Never downgrades as you spend down
  • $10 minimum first deposit
Web & News10× / 20× off
Images & Videos10% / 30% off
Free calls10 calls
Full pricing →

Quick Search is billed one Web unit per request whatever your tier or balance. On Deep Search, Growth and Scale accounts — and Default accounts holding at least a $10 live balance — are billed one Web unit per request for supported page depths, so 100 results cost the same as 10. Default-tier accounts under a $10 balance are billed per result page. Results are identical either way; only the price differs.

The Most Affordable Search API for Developers

No monthly subscriptions. No complicated setups. Just low-cost search results with reliable, structured data.

Pay-As-You-Go Pricing

No monthly minimums. Web SERP from $0.03/1K calls. Credits never expire. The most cost-effective SERP solution available.

Clean JSON Responses

Organic results, People Also Ask with sources, featured snippets, knowledge panels, local packs and inline videos — already parsed, in named fields.

Unified Search API

One endpoint format for all five search engines, and one results shape. Switch between Google, Bing, Yahoo, DuckDuckGo and Brave with a single parameter.

Free Tier — no card required

Get started with free access to all five search engines. No credit card needed. The best way to test and prototype before committing to a paid plan.

Volume Discounts

Growth pricing applies with a one-time $100 deposit, Scale with a one-time $500 deposit. Web search drops to $0.03/1K at Scale and news to $0.01/1K. Ideal for high-volume workloads.

RESTful & Simple

Standard GET requests with API key auth. Works with cURL, Python, JavaScript, or any HTTP client. Integrate in minutes.

SERP API Questions

A SERP API (Search Engine Results Page API) lets you programmatically retrieve search results from engines like Google, Bing, Yahoo, DuckDuckGo, and Brave. Instead of building and maintaining your own collector, you send an HTTP request with your query and receive structured JSON containing organic results, ads, news, image and video data, plus rich features like People Also Ask boxes, featured snippets, knowledge panels and local packs. Serpent API offers budget-friendly SERP data with searches from just $0.03 per 1,000 SERP API calls at Scale tier and free API calls on a new account.
All five engines are billed at the same Web category rate, so the choice is about the data, not the bill. Google Deep Search carries the richest feature set — sitelinks, the most frequent featured snippets, knowledge panel and local pack, and an AI Overview on request. Yahoo and Bing return People Also Ask with answers and source links, related searches and inline videos. DuckDuckGo returns the leanest object — organic results and ads — which is exactly what a rank tracker wants. Brave returns 10 to 20 organic results per page, the widest of the five, and also accepts include_aio. The only parameter that is not available everywhere is pixel_position, which Deep Search supports on google, yahoo, bing and ddg but not on brave.
Yes. GET /api/search returns one results object whose keys are identical on google, yahoo, bing, ddg and brave: organic, ads, peopleAlsoAsk, relatedSearches, featuredSnippet, aiOverview, knowledgePanel, localPack, richSnippets, videos and shopping. A block the result page did not contain comes back as its own empty value — null for object-shaped blocks, [] for array-shaped ones — never as a missing key. The metadata object follows the same rule and carries a has* boolean for each block, so you can write one parser and point it at any engine. What varies between engines is how often a given block is filled in, not which keys you get.
Yes, Serpent gives every new account free API calls — no credit card required. They can be used on any endpoint: Web Search (Quick or Deep, any engine), News, Images, Videos, AI Rank, LinkedIn, Maps, YouTube, and Instagram. When you are ready to scale, the minimum deposit for new users is $10.
Pricing is flat per category and the same for every engine. Web requests are $0.60 / $0.06 / $0.03 per 1,000. News is $0.20 / $0.02 / $0.01 per 1,000. Images are $0.35 / $0.32 / $0.25 per 1,000. Videos are $0.10 / $0.09 / $0.07 per 1,000. Tiers shown as Default / Growth / Scale. Growth pricing applies with a one-time $100 deposit; Scale pricing with a one-time $500 deposit, and the tier is locked by your largest single deposit — it never downgrades, even as your balance spends down. AI Ranking single-engine starts from $1/1K at Scale; all-engine calls start from $2/1K. Social: YouTube from $0.01/1K, Instagram from $0.28/1K.
No. Quick Search and Deep Search share one price — the Web category rate. Quick Search is billed one Web unit per request whatever your tier or balance. On Deep Search, Growth and Scale accounts, and Default accounts holding at least a $10 live balance, are billed one Web unit per request for supported page depths, so asking for 100 results costs the same as asking for 10. Default-tier accounts under a $10 balance are billed per result page.
Every endpoint has a maximum time it will spend on a request. When that budget runs out we return the results already gathered plus a top-level delivery block giving what you requested, what was returned and a plain-English note — we do not discard the work and return an error. You can lower the ceiling yourself with timeout (seconds) or timeout_ms; it can only shorten the endpoint budget, never extend it. GET /api/status publishes the live limit for every endpoint mounted on your account. On billing: an empty response that could not be completed is refunded automatically, while a short but delivered response is charged normally and says so.
AI Overviews are opt-in. Send include_aio=true on a Deep Search call (GET /api/search) with engine=google, engine=yahoo or engine=brave, on a paid tier. When one is available you get results.aiOverview with the answer text and the source pages it cites, and metadata.hasAiOverview is true. On engine=bing and engine=ddg the key is always null. If no AI Overview is available for the query, aiOverview comes back null and every other block still returns — the request is never all-or-nothing.
SerpApi's entry plan is $25 per 1,000 searches — $25 a month for 1,000. Serpent Web requests start at $0.60 per 1,000 on the Default tier and $0.03 per 1,000 at Scale. There are no monthly subscriptions, and credits are usage-based.

Try the Free SERP API Today

Get free API calls on a new account, usable on any endpoint. No credit card needed. Web requests start from $0.03/1K at Scale.

Try for Free

Related guides

Hands-on tutorials and comparisons built on the SERP API.

What Is a SERP API?The plain-English primer on what a SERP API does and why developers use one. SERP API Pricing ComparedEvery major provider's pricing side by side, with the cheapest pick by use case. Best SERP APIs in 2026Five providers tested, compared, and ranked on price, speed, and data quality. Scrape Google in PythonThree methods to pull Google results in Python, tested side by side. SERP API for AI AgentsGive an LLM agent real-time web search with a single API call. Keyword Research at ScaleRun keyword research programmatically with live SERP data.