Our own visit statistics are always on. Google Analytics, which helps us understand how people use our public pages (not your signed-in workspace), is enabled only with your permission. See our Privacy policy.

Serper API Alternative: Pricing, Free Tier, Real Tests

Serper API pricing vs EveryInfra: $1.00 vs $0.694 per 1,000 searches, 6-month credit expiry, free tier, and 35 live calls with refunds for empty results.

Illustration: on the left, a large glass jar full of gray prepaid tokens; the top layer has turned into clear outlines, and an hourglass beside it has nearly run out, showing credit that expired. On the right, a small metering machine takes in one capsule-shaped request and drops exactly one teal coin into a small wallet that already holds a few teal coins: one charge per call, and the balance stays.

For 1,000 web searches, Serper's entry Starter pack lists $1.00. EveryInfra charged $0.694 per 1,000 in our test: 35 live calls on October 26, 2026, 13:37–13:43 Singapore time, 29 of them billed. That is 1.44x cheaper. Serper credits expire after six months and the smallest pack is $50, so at 1,000 searches a month you really pay $8.33 per 1,000, 12x our price. All of this holds only below about 300,000 searches a month. Above that line, Serper's two big packs cost less than we do.

In this article, a "Serper API alternative" means a pay-per-call API that takes a keyword and returns a page of web search results. A result has a title, a link, a snippet and a rank. Most APIs of this type also return news, places, shopping, images and scholar results. We compare four things only. They are the price per 1,000 calls and how each side counts a call.

They are also the cost of failed or empty calls, and the steps to start. We do not compare the field names of the two responses. Our fields are in our own search tool catalog.

Isometric illustration. On a base plate, a rack holds 10 upright result cards, one for each result on a search page. A teal outline goes around the full rack, so the 10 cards are one unit. A gantry above the rack lowers its probe one time onto the rack. To the right, a small stand holds a stack of 4 coins. The picture shows per-call billing: one page, one charge.

The short answer: one table

The table has two kinds of numbers. The first kind is Serper's public prices and rules from the pricing section of serper.dev. We read it on October 26, 2026, at 13:32 Singapore time, and we keep a copy of the page text on file.

The second kind is what our own API returned in live calls on the same day. We did not open a Serper account, buy credits or use a Serper key. When a rule is visible only after login, the table says "not on the page".

ItemSerper (public page)EveryInfra (measured)
Price per 1,000 calls$1.00 / $0.75 / $0.50 / $0.30 by pack$0.694, one tier
Smallest payment$50 (Starter, 50,000 credits)$10 (smallest top-up)
ExpiryCredits valid for 6 monthsBalance does not expire
Free use2,500 queries, no credit card$1 trial credit (about 1,440 searches), valid 24 hours, claimed with a GitHub star
More than 10 results in one call2 credits, per user reportsUp to 10 per page, one call per page; use page for more
When you payOn each successful responseOnly when results come back; empty results are refunded
401, 422, 429Not on the pageNot billed; the response says "Nothing was charged"
RefundsFull refund within 7 days of the first purchase if less than 20% is usedBalance stays; no expiry to refund
Result typesSearch, Images, News, Maps, Places, Videos, Shopping, Scholar, Patents, Autocompleteweb, news, places, shopping, media (images and videos), scholar (papers and patents), suggest and 10 more
Speed limit50 per second on Starter, up to 300 per second on Ultimate10 per minute on our test key; limits depend on the account
MCPNo first-party server on the page; third-party servers on GitHubFirst-party remote MCP endpoint with one tool, everyinfra_search

Two rows in this table do not show up in the price column, but they decide your real bill. They are the expiry row and the "more than 10 results" row. The next sections take Serper's price apart, then show where our price comes from, and then check each cell with five sets of live calls.

Serper API pricing: four prepaid packs, valid six months

Serper sells prepaid packs. The page says "No monthly subscriptions; simply pay for the credits you need." There are four packs. Starter is $50 for 50,000 credits, or $1.00 per 1,000, at 50 queries per second. Standard is $375 for 500,000 credits, or $0.75 per 1,000, at 100 queries per second. Scale is $1,250 for 2.5 million credits, or $0.50 per 1,000, at 200 per second. Ultimate is $3,750 for 12.5 million credits, or $0.30 per 1,000, at 300 per second.

Each of the four cards ends with the same line: "Credits valid for 6 months". A note under the cards says the prices exclude sales tax, VAT and GST. The screenshot below shows the four cards with that line marked.

Screenshot of the serper.dev pricing section, titled Simple, Affordable Pricing. Four cards: Starter $50, 50k credits at $1.00 per 1k, 50 queries per second. Standard $375, 500k credits at $0.75 per 1k, 100 per second. Scale $1250, 2.5M credits at $0.50 per 1k, 200 per second. Ultimate $3750, 12.5M credits at $0.30 per 1k, 300 per second. On each card, the last line, Credits valid for 6 months, has a teal box around it.
Serper's pricing section. The teal boxes mark "Credits valid for 6 months" on all four packs. Captured on October 26, 2026, 13:41 Singapore time. serper.dev home page

The FAQ on the same page gives three more rules about money. First, when credits go: "Every time you receive successful responses to queries, we will deduct credits from your account balance." When the balance reaches zero, Serper stops new queries. Second, refunds: you get a full refund within 7 days of your first purchase if you used less than 20% of the credits. The terms of service say the same in their Refund Policy section, and the terms page shows an update date of May 29, 2024. Third, payment: Visa, Mastercard, American Express, Discover and PayPal.

One rule is not on the pricing cards, but users repeat it often. A call that asks for more than 10 results costs 2 credits. A user on Hacker News wrote that Serper counts "10 results to be 1 credit, and 20 to 100 results to be 2 credits" (Hacker News thread). So 10 results per call cost $1 per 1,000 calls, and 100 results per call cost $2. We have no Serper account, so we cannot check this rule today. In this article it is a user report, and the charts mark it apart from the prices on the page.

Horizontal bar chart of the price per 1,000 searches in USD. Serper Starter with num above 10, at 2 credits per call as users report: $2.00. Serper Starter: $1.00. Serper Standard: $0.75. EveryInfra web, measured: $0.694, in teal. Serper Scale: $0.50. Serper Ultimate: $0.30. At list prices the entry pack costs 1.44x more; if the reported 2-credit rule holds, 2.88x. The two big packs cost less than EveryInfra.

So Serper's real price per 1,000 has three inputs. They are the pack you buy, the share you use within six months, and the number of results per call. The pricing cards show only the first input. The second input is the small last line on each card. The third input lives in forums. A user in a Reddit thread about SERP APIs put it this way: Serper "looks cheap until you map credits to your real workload" (r/WebScrapingInsider thread).

How much does expiry add? Real price by monthly volume

This section is our own calculation. Say you run V searches a month. Serper credits expire after six months, so every six months you must buy at least 6V credits. We try every mix of the four packs, take the cheapest one, and divide its cost by 6V.

That gives the price you really pay per 1,000. EveryInfra does not expire, so our price stays at $0.694. Our script reads the four prices from the saved page text, so no number is typed by hand. We keep the script and the page text on file.

Explanatory illustration. A glass jar is full of round tokens, and an hourglass next to it is almost empty. Part of the tokens in the jar have turned into clear outlines; these are credits that expired unused. A short line of teal tokens rolls down a chute to a search result card on the right; these are the credits that were used.
Prepaid credits that expire unused are part of your real price per search.

The table shows the result. A small project at 1,000 searches a month still needs one Starter pack. It uses 6,000 credits in six months, and 44,000 credits expire. That is $8.33 per 1,000.

At 5,000 a month the real price is $1.67. Only at exactly 8,333 a month, when you use one full Starter pack in six months, do you pay the $1.00 on the card. At about 83,000 a month you use one full Standard pack, at $0.75, which is still 8% more than our price. The two sides meet at 300,000 a month, when you use one full $1,250 Scale pack in six months.

Searches per monthNeeded in 6 monthsCheapest Serper packsSerper real price per 1,000EveryInfra per 1,000Serper ÷ EveryInfra
1,0006,0001 Starter ($50)$8.33$0.69412.0x
5,00030,0001 Starter ($50)$1.67$0.6942.4x
20,000120,0003 Starter ($150)$1.25$0.6941.8x
83,333about 500,0001 Standard ($375)$0.75$0.6941.08x
300,0001.8 million1 Scale ($1,250)$0.694$0.6941.0x
500,0003 millionStandard + Scale ($1,625)$0.54$0.6940.78x
2,083,33312.5 million1 Ultimate ($3,750)$0.30$0.6940.43x
Line chart. X axis: searches per month, log scale, from 1,000 to 3 million. Y axis: real price per 1,000 in USD, log scale, from $0.2 to $10. The gray line is Serper with the cheapest mix of packs for each 6-month window. It starts at $8.33 at 1,000 a month and goes down, with small jumps where one more Starter pack is needed. The teal flat line is EveryInfra at $0.694. The lines cross at about 300,000 a month. After that point Serper costs less, down to $0.30.

This calculation has three limits. First, it assumes you buy once every six months. If you buy a Starter pack every month instead, a 1,000-a-month project pays $50 each month, and the real price goes up, not down. Second, it uses only the four public prices. It does not include private prices that Serper may give to large customers, and it does not include tax.

Third, the crossover comes from the Scale price. $1,250 divided by our $0.000694 per call is 1.8 million calls in six months, or 300,000 a month. Ultimate needs 5.4 million calls in six months to beat us. Standard and Starter never beat us, because their card prices, $0.75 and $1.00, are already above $0.694.

Where the EveryInfra price comes from

EveryInfra bills search per call. The price is in the public search tool catalog, which you can read without a key. Its billing.tiers list has three tiers. Standard is $0.000694 per call, or $0.694 per 1,000, and almost every search tool is in it.

Deep is $0.001389 per call, for the deep mode of semantic search. Cross-check is $0.002778 per call, because it runs several searches at the same time. The web tool is in the standard tier. The same price is on our pricing page and our search product page.

Animated flow chart with five boxes from left to right. 1 Auth: no key returns 401. 2 Params: an unknown parameter returns 422. 3 Rate: too fast returns 429. 4 Search: web, news, maps and other tools. 5 Results: are there any results? Under each of the first three boxes, a dashed line goes to "no charge". Step 5 splits into two boxes. Results: charged $0.000694, and charged_usd is in the response, in a teal box. Empty: refunded, with reason empty_result_refunded. A teal dot moves from step 1 to step 5 and then down to the charged box.

We do not stop at the catalog number. We check it against live responses. Every billed response has a billing object with charged and charged_usd. In our test, all 29 billed calls had charged_usd equal to 0.000694.

The mean times 1,000 is $0.694, the same as the catalog. A fixed price per call lets you work out the bill before you run anything. One round of 10 keywords costs $0.00694. A round of 10,000 keywords costs $6.94.

Here is the request. The key comes from an environment variable and is never written to a file.

bash
curl -s https://api.everyinfra.com/api/v1/search \
  -H "Authorization: Bearer $EVERYINFRA_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"tool":"web","params":{"q":"best running shoes 2026","num":10}}'

The web tool has 7 parameters. q is the query. site limits results to one domain, the same as site: in the query. location is a region: a country name or a two-letter country code, and a city counts as its country. after and before keep results after or before a date.

page is the result page, from 1. num is the number of results per page, up to 10, with 10 as the default. A larger value returns 10 and does not raise an error. Each result has title, url and snippet, plus published when a date is known. The catalog also gives each tool units: 1 and price_usd: 0.000694. One request is one billing unit, whatever num you send.

If you need finer control of country and language, our data catalog also has a web/search capability. It takes country and language parameters and costs $0.001389 per call, the standard data tier. You can see it in the data catalog. It is a second way in, next to the web search tool, and it suits jobs that must filter results by language.

Per 1,000 calls or per 1,000 results?

So far we have counted calls. Many teams care more about results. A rank tracker wants the top 30. A research team wants the top 50. The number of results in one call sets the bill, and the search engine itself limits that number.

In our test, the EveryInfra web tool returned 9.3 results per call on average. That is $0.0746 per 1,000 results, or $0.0694 with full pages of 10. On the Serper side there are two cases, and we show both. In the first case, one call still returns about 10 results, as it does after Google dropped num=100.

Then the Starter pack costs $0.10 per 1,000 results, or $0.20 with num=100 at 2 credits. That is 1.3x to 2.7x our price. In the second case, Serper really returns 100 results for num=100. Then the price is $0.02 per 1,000 results, which is 3.7x cheaper than us.

We cannot tell which case is true today, because we have no Serper account. The Hacker News comment above dates from before the Google change. If your work needs deep results for each keyword, test this first. Use Serper's free credits, call once with num=100, and count the organic results and the credits used.

The test costs nothing, and it turns a guess into a fact. Our side of the answer is in the next section. A page holds up to 10 results and bills one call, and more results need more pages with page.

The five test sets at a glance

SetTime (Singapore)ToolsCallsBilledMain result
1. num and page13:37–13:42web559–10 results per page, up to 10
2. Country, site, date13:38–13:40web55Local sites per country; site gave 3 results
3. Rank check13:41–13:43web101096 results, $0.00694, median 2.07 s
4. Result types13:39–13:408 other tools9910 results each; read gave 1 page
5. Billing edge cases13:38–13:41web60Empty, 422, 401 and 3 × 429, all free

The counts add up to 35 calls and 29 billed calls. Three calls got a 429 first and we sent them again. The retries count in sets 2, 3 and 4, and the three 429s count in set 5. We logged every call with its time, status, seconds, results and charge, and we keep the log on file.

Test 1: num and page, results per call and calls billed

We start with the parameters that set the price per result. On October 26, 2026, at 13:37, 13:38 and 13:42 Singapore time, we sent five calls. num=10, num=100 and page 2 used the query "best running shoes 2026". num=20 and page 3 used "best crm software for small business" from Test 3. Here is what came back. A page holds up to 10 results. num=10 returned 9 and num=20 returned 10.

num=100 returned the same single page, the 9 URLs from num=10. Page 2 and page 3 each returned 10, and none of them repeated a page 1 result for the same query. Each of the five calls was billed once, at $0.000694. Our catalog now also lists 10 as the num maximum for web (news, scholar and forum are also 10, places 20, shopping 40). At 16:04 SGT we checked again: num=100 returned 9 results with no error, and page=2 returned 10, with no URL repeated across the two pages.

Horizontal bar chart of results returned per call. num=10, page 1: 9 results. num=20, page 1: 10 results, in teal. num=100, page 1: 9 results, in teal. num=10, page 2: 10 results. num=10, page 3: 10 results. A larger num did not return more results. To get more, you request more pages, and each page is one call.

Why is a page capped at 10 results? The search engine changed. In September 2025, Google stopped showing 100 results per page through a URL parameter. A Google spokesperson told Search Engine Land that the parameter "is not something that we formally support" (Search Engine Land, September 18, 2025). Google's own Custom Search JSON API also limits num to values from 1 to 10. Today, almost every API needs pages to go past result 10.

This matters for the price. Say Serper still bills 2 credits above 10 results, and a page holds only about 10. Then a num=100 call pays double for about the same results. We cannot test that on Serper.

Our side is clear: a page holds up to 10 results and bills one call. For 30 results you send 3 pages and pay 3 times, $0.002083 in total. Across the 20 billed web calls in this test, we got 186 results, or 9.3 per call: $0.0746 per 1,000 results, or $0.0694 with full pages.

Test 2: country and local results

The second set tests the region parameter. We wrote each query in the local language and set location to the matching country. "beste laufschuhe 2026" went to Germany at 13:38 Singapore time. "mejores tenis para correr 2026" went to Mexico at 13:38.

A Chinese query for running shoe advice went to Taiwan at 13:38. The German call returned 9 results with German media such as stern.de and faz.net, and German shops such as alltricks.de and sport-conrad.com. The Taiwan call returned adidas.com.tw, salomon.com.tw and some Hong Kong media. The Mexico call mixed English sites such as runnersworld.com with Spanish sites such as runnea.com and sprintersports.com.

So the region parameter changes the results, but it is a preference and not a filter. The catalog says it plainly: location affects where results come from, but it does not promise that every result is in that country. Serper's page says you can set the search location by country and language. The LangChain wrapper code shows the parameters people use. They are gl for country, hl for language, tbs for time range and type for the result type.

The defaults are gl=us and hl=en. Our web tool has no separate interface-language parameter. You set the language through the query and the country through location. When you must filter by language, use web/search from the section above.

We also tested site and date limits in this set. At 13:38 Singapore time, site=serper.dev with the query "pricing" returned only 3 results, all from serper.dev. The first snippet listed the four pack prices, the same as our saved copy of the page. At 13:40, after=2026-10-01 with "search api pricing" returned 10 results.

All 9 results with a date were from October. The oldest was October 6, 2026, and the newest said "3 days ago", which is October 23, 2026, counted from the test day. So site and after really narrow the set; they do not only reorder it. Fewer results is the proof. For monitoring, after keeps only new pages, which costs less than pulling everything and removing duplicates yourself.

TaskSerper parameter (from public wrappers)EveryInfra search toolNote
Results for one countrygllocation (country name or two-letter code)Both are a preference, not a filter
Results in one languagehlNot in web; language in data catalog web/searchLanguage tags follow RFC 5646
A time windowtbsafter, before (dates)Plain dates, no short codes
One website onlysite: in the querysite parameter or site:site=serper.dev returned 3 results
Next pagepagepageOne call per page
Results per callnum (2 credits above 10, per user reports)Up to 10 per page, one call per page, page for moreAbout 9–10 per page in our test

Test 3: a 10-keyword rank check, cost and speed

The third set copies the most common job. A content or SEO team checks the top 10 for a list of keywords every day. On October 26, 2026, from 13:41 to 13:43 Singapore time, we checked 10 English keywords with location set to the US. They went from "best crm software for small business" to "best air purifier". All 10 calls worked. They returned 96 results in total, cost $0.00694, and had a median time of 2.07 seconds.

The 96 results also show something SEO teams care about. They came from 64 different domains, and 58 had a date. reddit.com was in the top 10 for all 10 keywords: third place for 9 of them and second for the other. nytimes.com and youtube.com each showed up for 5 keywords. The 10 first-place URLs came from 10 different sites, mostly product sites or review sites. So for "best + category" queries, a forum thread holds a top-3 slot almost every time. If you track ranks, your own position is not enough; also count how many slots forums and videos take on the same page, because they push organic results down. One check a day for these 10 keywords is 300 calls a month, $0.21.

Now scale the round up. Say you check 500 keywords a day, first page only. That is 15,000 calls a month. On EveryInfra the bill is 15,000 × $0.000694 = $10.42. On Serper you need 90,000 credits in six months.

The cheapest buy is 2 Starter packs, $100, which is $16.67 a month or $1.11 per 1,000. Now say you want the top 30 for each keyword. On our side you send 3 pages, so 45,000 calls a month and $31.25. On Serper, if you send num=30 once and it costs 2 credits as users report, you need 30,000 credits a month and 180,000 in six months. The cheapest buy is 4 Starter packs, $200, about $33.33 a month.

The two sides are close. The lesson is not that one side always wins. Write down your exact query pattern first, and then compare.

Bar chart of the 29 billed calls, sorted from fastest to slowest. Each bar is one call's time in seconds. Teal bars are web calls and gray bars are other tools. A shaded band from 1 to 2 seconds marks the response time that Serper states on its page. Fastest 0.99 s (read), median 2.02 s, 90th percentile 2.77 s, slowest 3.09 s (patents). 13 calls fell between 1 and 2 seconds, and 15 took more than 2 seconds.

We report speed as we measured it. For the 29 billed calls, from send to last byte, the median was 2.02 seconds and the 90th percentile was 2.77 seconds. The fastest call took 0.99 seconds and the slowest took 3.09 seconds. 15 calls took more than 2 seconds. We measured from a machine in Singapore, so the times include the network trip.

Serper's page says results return "in 1 to 2 seconds", and 2 to 4 seconds when a retry is needed. We did not call Serper, so this is not a same-conditions test. Does your app wait for search inside a chat reply? Then test both sides with 50 of your own queries first.

Three real users, three monthly bills

The curve above uses an abstract "V searches a month". Here are three real jobs instead. One function makes every number in the table. EveryInfra is the number of billed calls times $0.000694. Serper is the cheapest mix of the four public packs for six months of use, divided by six.

JobCalls per monthEveryInfra per monthSerper per month (cheapest packs)Ratio
A solo developer's AI assistant, about 100 web searches a day3,000$2.08$8.33 (1 Starter, 36% used in 6 months)4.0x
A content team checks page 1 for 500 keywords a day15,000$10.42$16.67 (2 Starter)1.6x
The same team, top 30 for each keyword (3 pages)45,000$31.25$50.00 (6 Starter)1.6x
Brand monitoring, with 15% empty results as an assumption200,000$118.05$158.33 (4 Starter + 2 Standard)1.34x
The same, with no empty results200,000$138.89$158.331.14x

The first row tells the most. A solo AI assistant that searches about 100 times a day needs 3,000 calls a month. On EveryInfra that is just over $2 a month. On Serper, the smallest pack is $50.

In six months you use 18,000 credits, and 32,000 expire, so you pay $8.33 a month. For this user the pain is not the unit price. It is paying $50 and then watching the credits expire. Serper's 2,500 free queries cover the first few weeks, but the first payment after that is $50.

The "15% empty" in the fourth row is our assumption, not a measurement. In our 35 calls, only 1 was empty, and we made that one on purpose. Brand monitoring tracks new brand names, product codes and niche topics, so it finds nothing far more often than everyday search does. We refund empty results, so 15% empty calls cut the bill from $138.89 to $118.05.

Serper's page says credits go on "successful responses". It does not say whether an empty response counts as successful. So the table bills every call on the Serper side, which is the upper limit. If Serper does not bill empty results, the fourth row goes back to the 1.14x of the fifth row.

Rows two and three have the same ratio, because both sit inside Serper's Starter tier: three times the calls, three times the packs. Only two things change the ratio. One is crossing the line to a bigger pack. The other is whether you use the credits within six months. So before you choose, use the last three months of your logs to find your monthly volume and how much it moves. That tells you more than any price table.

Test 4: news, places, shopping, images, scholar and other result types

When you pick a search API, web results are not the only question. You also need the other result types your product uses. The table groups them by result type. The "Listed by Serper" column only says whether that type is in the result list on Serper's home page. The last three columns are our own calls, one per type with the EveryInfra tool, between 13:39 and 13:40 Singapore time. Each call was billed $0.000694.

Result you needListed by SerperEveryInfra toolResultsWhat came back
WebYesweb9–10Title, URL, snippet, date
NewsYesnews10Stories about the DeepSeek search API; the newest was 1 day old
Places and mapsYesplaces10Singapore coffee shops with rating, rating count, address, phone, latitude, longitude and opening hours
ShoppingYesshopping10Running shoes with price, merchant and rating
ImagesYesmedia (kind=image)10Image titles and URLs
VideosYesmedia (kind=video)10Video titles and URLs
PapersYesscholar10Paper titles, URLs and snippets
PatentsYesscholar (kind=patents)10Patent titles, URLs and snippets
AutocompleteYessuggest1010 suggestions for "serper api"
Page textNot in its result listread1The text of one URL

Places needs one more note. The first places result was a Singapore coffee shop rated 4.7 by 2,324 people, with address, phone and coordinates. If you need every review for one place, a search tool is not enough. Use google_maps_reviews/search and the review capabilities in our data catalog, at $0.001389 per call in the standard data tier. The platform page is the Google Maps reviews API. For local results in Korea and Russia, use naver/search and yandex/search.

Two calls in this set helped us write this article. The first was suggest. At 13:40 Singapore time we asked it about "serper api" and got 10 suggestions, including "serper api pricing", "serper api free tier" and "serper api key free". They matched the suggestions we had found with another tool before writing, and they set the title and the FAQ of this article.

The second was news, for "DeepSeek search API". The 10 stories were between 1 day and 1 week old, which matched DeepSeek's launch on October 17, 2026. We followed those stories to the first item in the "What changed recently" section.

The shopping call is worth a look too. All 10 running shoes came with price, merchant and rating. The first was a Nike Revolution 8 from DICK'S Sporting Goods at $74.99. But its url points to the search engine's own product page, not to the shop.

If you build price comparison, note this. When you need stock, sizes and reviews from the shop page, read the product page with an e-commerce capability from the data catalog. Do not rely on the price in a search result alone.

Test 5: empty results, rate limits, bad parameters, no key

This is where the two sides differ most. Serper's page says credits go on each "successful response". It does not define success. Is a 200 response with zero results a success? The page does not say. On our side the rule is in every response, and here is what we measured.

On October 26, 2026, at 13:40 Singapore time, we searched for a phrase that does not exist. The response was 200 with no results. Its billing said charged: false, charged_usd: 0.0 and reason: empty_result_refunded, and refund.status was succeeded. In the same minute we sent gl, a parameter that web does not take.

The response was 422. The message listed the 7 parameters that web takes and ended with "Nothing was charged". A call with no key returned 401, and it also said nothing was charged.

Screenshot of two real EveryInfra API responses. Top: POST /api/v1/search for best running shoes 2026 with num 10 returns 200. Two results are shown, Runner's World and RunRepeat. In billing, charged true and charged_usd 0.000694 have teal boxes. Bottom: a search for a phrase that does not exist returns 200 with an empty results array. In billing, charged false, charged_usd 0.0 and reason empty_result_refunded have teal boxes, and so does status succeeded in refund.
Two real responses. The top one has results and was charged $0.000694. The bottom one was empty and was refunded. Balance fields were removed. Captured on October 26, 2026, 13:41 Singapore time. real EveryInfra API responses, 2026-10-26 13:41 SGT

We also hit one limit by accident. Our test key allows 10 calls per minute, and we got a 429 at 13:38, 13:39 and 13:41 Singapore time. The response said "10 requests per minute for this API key's own limit. Retry after 7s", and again "Nothing was charged".

RFC 6585 defines 429 as too many requests in a given time. RFC 9110 defines 401. We copied the body of one 429 response from the terminal and keep it on file.

Horizontal bar chart of the billing outcome of 35 requests. 200 with results, charged: 29, in gray. 200 empty, refunded: 1. 429 rate limited: 3. 422 unknown parameter: 1. 401 no key: 1. The last four are teal and none of them were charged. Title: 35 requests, 29 charged, $0.020126 in total.
Explanatory illustration. A conveyor belt carries trays out of a machine with a magnifying glass on its side. Most trays hold a stack of blank result cards, and each one drops a gray coin into a coin slot. One tray is empty, and above it a teal coin flies back from the slot into a small wallet on the left.
Empty results cost nothing. The charge for that call goes back to the balance.

Why compare this row on its own? After Google closed the Custom Search JSON API to new customers, a user on r/googlecloud asked for a replacement for 60,000 calls a month. One reply came from someone who said they run a similar search API. The advice: ask each vendor how it counts a request, and whether retries, empty results and extra pages are billable, "because that changes your real cost".

Empty results are common in monitoring. A new brand name, a rare keyword or a tight date range can all return nothing. In our own 35 calls, 6 were not billed, which is 17%.

Getting started: from sign-up to the first result

StepSerperEveryInfra
1Sign up at serper.dev and get 2,500 free queries, no credit cardSign up at everyinfra.com for free
2Copy the API key from the dashboardCopy the API key from the console; for the trial, star everyinfra-agent-plugins on GitHub and claim $1
3After the free queries, buy at least the $50 Starter packTop up at least $10; the balance does not expire
4Send the key in the X-API-KEY header (see LangChain and other wrappers)Send Authorization: Bearer to /api/v1/search
5Connect AI tools through LangChain, CrewAI or Haystack wrappers, or a third-party MCP serverConnect AI tools through the first-party MCP endpoint with one config block

Serper's free tier is larger, and 2,500 queries are enough to test a new idea. That is a real strength. Our $1 trial is about 1,440 searches and must be used within 24 hours. It suits "make one run work today" more than "use it for a month". To see results in the browser first, use the one-click trial on the web search tool page, with sample parameters already filled in. The full steps are in the quickstart, and every capability and price is in the market.

Free offerSerperEveryInfra
Amount2,500 queries$1 credit, about 1,440 searches
Valid forNot on the page24 hours
Card neededNoNo
Best useWeeks inside a real productOne afternoon of tests across tools and errors

The two free offers suit different tests. Serper's 2,500 queries let you run it in a real product for a few weeks: at 50 searches a day they last 50 days. Our $1 lets you try every tool and every error case in one afternoon: our 35 calls cost $0.020126, so $1 covers the same test almost 50 times. Do not use either free offer for load tests, because test keys and free accounts have lower rate limits.

After the free use, the first payment differs even more. On Serper it is at least $50, and what you do not use in six months expires. On EveryInfra it is at least $10, and the balance stays. For a team that still tests an idea, this means you can add $10, run for a month, see your real volume, and then decide.

You do not need to guess six months of use. For a large, stable team the difference is small, and the unit price is what counts. In that case, go back to the monthly volume table and see which side of the crossover you are on.

Switching from Serper: four changes in your code

If you use Serper now, a move to EveryInfra needs four changes. For each one, here is why and what you see if you get it wrong.

ChangeFrom (Serper wrappers)To (EveryInfra)If you get it wrong
Endpoint and keyOne URL per type, X-API-KEY/api/v1/search, Authorization: Bearer401, not billed
Parametersgl, hl, tbs, typelocation, after, before, tool422 with the allowed list, not billed
ResultsVendor fieldstitle, url, snippet, publishedParse errors in your code
Billing and retriesCredits stop at zerocharged_usd per call, retry_after on 429More 429s if you retry at once

The first change is the endpoint and the key. Serper wrappers put the key in an X-API-KEY header and use one URL per result type.

We have one URL, /api/v1/search, and the key goes in Authorization: Bearer. The result type goes in the tool field of the request body. If the key is in the wrong header, you get a 401, you pay nothing, and the error message tells you what is missing.

The second change is parameter names. gl becomes location. tbs becomes two dates, after and before. type=news becomes tool: "news", and type=places becomes tool: "places". The usual mistake is to keep an old parameter, for example gl.

We do not drop it quietly and bill the call anyway. We return 422, list the 7 parameters that web takes, and say that nothing was charged. Call 17 in this test was that mistake, on purpose. This helps AI agents most: the model reads the allowed values in the error and fixes its next call by itself.

The third change is how you read results. Each of our results has title, url and snippet, and sometimes published. places adds rating, address, coordinates and more. The search tool catalog lists every field.

We suggest one layer of your own data types in your code. Convert every vendor's response into that layer before your other code reads it. Then you can change vendors later without touching the rest of your code. The Cloudflare item in the "What changed recently" section points the same way.

The fourth change is billing and retry logic. Serper stops new queries when the balance reaches zero. We also stop when the balance is too low, but the balance never expires. Every response from us has charged_usd, so you can log each charge and match the total to your invoice at month end.

When you get a 429, wait for the number of seconds in retry_after and then retry. Do not send again at once, or you get more 429s. After these four changes, run 20 of your real queries on both sides. Compare result counts and times before you move everything.

Connecting AI tools: MCP, LangChain, n8n

Serper has many ready wrappers in AI frameworks, and this is another real strength. LangChain, the CrewAI SerperDevTool and the Haystack SerperDevWebSearch all include it, and one environment variable is enough to start. For MCP, the serper.dev page shows no first-party server. GitHub has third-party servers such as mcp-server-serper and serper-mcp-server, which you run on your own machine.

EveryInfra runs a first-party remote MCP endpoint. It follows the MCP specification for Streamable HTTP, so you install nothing locally. If MCP is new to you, the MCP introduction explains the parts. Search is one tool, everyinfra_search.

It takes tool and params, exactly like the REST API. Its description also says that failed or empty searches leave no final charge. In clients that support remote MCP, such as Claude and Cursor, the config is:

json
{
  "mcpServers": {
    "everyinfra": {
      "url": "https://api.everyinfra.com/mcp",
      "headers": { "Authorization": "Bearer ${env:EVERYINFRA_API_KEY}" }
    }
  }
}

After you connect, ask the client to "use everyinfra_search with the web tool for best crm software, US, page 2". The client sends the same request as the curl above. To choose a search tool in code, see our guide to search tool selection for agents. To let an AI fix its own parameters from error codes, see self-healing API errors.

To match refunds to charges, see failure refund reconciliation. In n8n, if there is no ready node, send the same JSON with the HTTP Request node. The n8n docs for its SerpApi tool node show a similar parameter layout.

Test it yourself in one afternoon

A price table can only narrow your list. The final choice should come from your own queries. We suggest three steps, each with a clear pass rule that you write down before you see the results. Step one: take 50 real queries at random from your logs. Cover the countries, languages and result types you use most. Do not pick only popular words, because rare and long queries show empty results and region drift best.

Step two: run the 50 queries on both sides. Record the time, the number of results, whether the call was billed, and how much. On Serper, the 2,500 free queries are more than enough. On our side, the $1 trial covers it, and 50 calls cost $0.035. Step three: compare by your own rules, not by any vendor's marketing.

For example, count how many of the top 10 match what you see by hand in a browser. Note the 90th percentile time. Count empty results and whether each one was billed. Add up the cost. Write the pass rules first, for example "at least 7 of 10 match, 90th percentile under 3 seconds, empty results free", and do not change them after you see the data.

This Python script runs our side. It prints the result count, the time and the charge for each call, and it reads the key from an environment variable:

python
import json, os, time, urllib.request

def search(q, **params):
    body = json.dumps({"tool": "web", "params": {"q": q, **params}}).encode()
    req = urllib.request.Request(
        "https://api.everyinfra.com/api/v1/search", data=body, method="POST",
        headers={"Authorization": "Bearer " + os.environ["EVERYINFRA_API_KEY"],
                 "Content-Type": "application/json", "User-Agent": "price-test/1.0"})
    t0 = time.time()
    with urllib.request.urlopen(req, timeout=60) as r:
        d = json.load(r)
    return len(d.get("results", [])), round(time.time() - t0, 2), d["billing"]["charged_usd"]

for q in ["best crm software for small business", "best air purifier"]:
    print(q, search(q, num=10, location="us"))
    time.sleep(7)  # the test key allows 10 calls per minute

We ran this script as written on October 26, 2026, at 14:00 Singapore time. Each query returned 10 results, in 2.84 and 2.02 seconds, and each was billed $0.000694. These two calls are not part of the 35 above; we logged them separately. Note the User-Agent header.

Python's default request is sometimes blocked by site protection, and the 403 that comes back does not mean the key is bad. The 7-second sleep keeps the test key under 10 calls a minute. Your own account limit may be higher; check it in the console.

When Serper is the better choice

Here are five cases where Serper fits better, stated plainly. First, very large volume. Say you run more than 300,000 searches every month and use your credits within six months. Then Serper Scale at $0.50 and Ultimate at $0.30 cost 28% to 57% less than our $0.694. The more you search, the bigger the gap.

Second, high concurrency. Serper's Ultimate pack allows 300 queries per second by default, and the page says that means 15,000 to 18,000 searches a minute. Our limits depend on the account, and our test key allowed only 10 calls a minute. For big batch jobs, check your limit in the console first.

Third, you already use the ready wrappers in LangChain, CrewAI or Haystack, and your code depends on Serper's parameters and response shape. Any move means new code and new parsing. If you spend only tens of dollars a month, the work to move may cost more than you save. The wrappers themselves are changing, though. The Haystack SerperDevWebSearch source says the component leaves the main package in Haystack 3.0 and moves to a separate serperdev-haystack package. The crewAI-tools repository that held CrewAI's SerperDevTool was archived on November 10, 2025. When you have to touch those dependencies anyway, it is a good time to compare prices. Fourth, you need fine control of the interface language. Serper has hl. Our web search tool has no separate language parameter, so you need web/search from the data catalog, which costs twice as much per call.

Fifth, you need the extra blocks on a results page. Serper's sample response on its home page has a knowledge graph (knowledgeGraph), "people also ask" (peopleAlsoAsk) and related searches (relatedSearches) next to the organic results. In our test, our web tool returned only the title, URL, snippet and date of organic results. Suggestions need a separate suggest call, and news, places and shopping each have their own tool. Some products need all of those blocks in one call, for example a full snapshot of a results page. For them, an API like Serper is more direct.

Two more paths sit outside these two vendors. One is to host your own, for example SearXNG, an open-source metasearch engine (source on GitHub). It has no per-call fee, but you run the server and you handle blocks and unstable results yourself.

The other path is vendors that count results differently. In the same Hacker News thread, another user wrote that Bright Data bills a 100-result request as one request, at $1.5 per 1,000. The Bright Data FAQ also explains how it bills after Google removed the num parameter. Each vendor counts "one call" in its own way, and that is where most price comparisons go wrong.

EveryInfra fits better in other cases. You run fewer than 300,000 searches a month. Your volume moves up and down, and you do not want prepaid credits to expire. Many of your queries find nothing.

You want to connect AI tools over remote MCP. Or you also need platform data with the same key. Next to the web search API, that includes Google Maps reviews, Naver and Yandex. We also have comparison pages for SerpApi and DataForSEO.

Other options: public prices per 1,000

Serper is not the only choice. Here are the public prices we read on October 26, 2026, all as USD per 1,000 requests. The units are not the same everywhere. The search tools of model vendors also bill the search content as tokens.

Exa bills extra above 10 results. SerpApi is a monthly plan. So read this table for the order of size, not as a like-for-like list.

ServicePer 1,000 (USD)Billing terms (key points from the source)
Serper Ultimate / Scale / Standard / Starter$0.30 / $0.50 / $0.75 / $1.00Prepaid, valid 6 months
EveryInfra web (measured)$0.694Per call, only with results, no expiry
DeepSeek Search API$0.75Billed only on 200 with results; empty results and timeouts free
Exa Lite Search$4Up to 10 results; $1 per 1,000 extra above that
Google Custom Search JSON API$5Existing customers only; ends January 1, 2027
OpenAI web search tool$10Plus search content tokens at model rates
Claude web search tool$10Not billed on error; plus tokens
Gemini grounding with Google Search$14First 5,000 a month free
SerpApi Starter$25$25 a month for 1,000 searches
Dot plot on a log scale of public prices per 1,000 requests, from low to high: Serper Ultimate $0.30, Serper Scale $0.50, EveryInfra web measured $0.694 in teal, DeepSeek Search API $0.75, Serper Standard $0.75, Serper Starter $1.00, Serper Starter num above 10 $2.00, Exa Lite Search $4.00, Google Custom Search for existing users $5.00, OpenAI web search tool $10, Claude web search tool $10, Gemini Search grounding above free use $14, SerpApi Starter $25.

For a Serper decision, the most useful row is DeepSeek: the search API it opened on October 17, 2026, also bills nothing for empty results and timeouts, at $0.75 per 1,000 (DeepSeek release notes, October 17, 2026). Use it as another point of comparison.

What changed recently

DateEventWhat it means for you
October 2, 2026Cloudflare Web Search API in AI GatewaySearch providers are becoming swappable parts
October 13, 2026SerpApi Extract APICompare page reading prices too
October 17, 2026DeepSeek Search API at $0.75 per 1,000Free empty results are becoming the norm
January 1, 2027Google Custom Search JSON API endsExpect migrations before the end of the year

DeepSeek opened its search API (October 17, 2026). The DeepSeek Search & Fetch guide sets $0.75 per 1,000 successful requests. The count parameter changes only the number of results, not the price. Search Engine Journal reported on October 19, 2026 that each result also carries a page authority tier. PPC Land reports that DeepSeek searches from Claude Code and Codex stay free until October 31, 2026.

Its source is the DeepSeek guide above. What it means for you: low prices and billing only for calls with results are becoming the basic standard. Ask every vendor about both.

Cloudflare launched a Web Search API (October 2, 2026). The Cloudflare developer docs say one parameter in AI Gateway switches between several search providers. Each search draws from your AI Gateway credit at the provider's list price, with no markup. What it means for you: search APIs are becoming parts you can swap. Keep your code tied to your own layer, not to one vendor's response shape.

SerpApi launched an Extract API (October 13, 2026). In its blog post, SerpApi said it now also fetches any public web page, not only results pages. The docs say crawl mode bills one credit per page it extracts. What it means for you: search and page reading are merging into one product, so compare the price of reading pages too. The EveryInfra read tool is also $0.000694 per call.

Google Custom Search JSON API ends on January 1, 2027. Google's overview page says the API takes no new customers. Current customers must move by January 1, 2027. For them, the first 100 queries a day are free, and then it costs $5 per 1,000. Before that, Microsoft retired the Bing Search APIs on August 11, 2025 (Microsoft Learn).

Its suggested replacement is Grounding with Bing Search inside Azure agents, which does not give developers the raw results. What it means for you: neither big search engine sells raw results directly now, so third-party APIs are the main choice left. Expect a wave of moves before the end of the year.

Limits: when these results do not hold

First, the sample is small. We sent 35 calls across 10 tools and 4 countries. That is enough to check prices and billing rules, but not enough to judge result quality or long-term stability. The 29 time values come from one afternoon on one machine in Singapore.

Second, everything on the Serper side comes from public pages and user posts. "2 credits above 10 results" is a user report. Where the page is silent, for example on empty results, we did not guess.

Third, we compare list prices without tax. Serper's page says its prices exclude sales tax, VAT and GST, and our top-up page has its own note. Fourth, our rate limits depend on the account. The 10 calls a minute in this article is the setting of our test key only. Fifth, prices change.

We read Serper's four prices on October 26, 2026, at 13:32 Singapore time, and our price comes from our catalog on the same day. If either side changes its price, the ratios and the crossover need a new run. That takes two steps: read the serper.dev page and our search tool catalog again, then put the new pack prices and unit price into the method from the expiry section. Every number in the tables and charts follows. We will read both prices again before we publish.

One more point: this article does not compare the rankings the two sides return for the same keyword. We compared prices, billing, result types and setup steps. To compare results, run 50 of your own real queries on both sides and read the raw responses.

FAQ

How big is the Serper API free tier, and does it expire?

This question comes from the Google suggestions "serper api free tier" and "serper dev free tier". The Serper home page says "Get 2,500 free queries" with no credit card. The page does not give an expiry for the free queries. Paid credits are valid for 6 months. The EveryInfra trial is $1, about 1,440 searches, which you claim after you star our GitHub repository. It is valid for 24 hours.

How does Serper API pricing work? Does asking for 100 results cost double?

This question comes from the suggestions "serper api pricing" and "serper dev pricing". You prepay one of four packs, $50, $375, $1,250 or $3,750, which is $1.00 to $0.30 per 1,000, valid for 6 months. The "2 credits above 10 results" rule comes from a Hacker News user and is not on the pricing cards. On EveryInfra a page holds up to 10 results and bills one call; use page for more.

Is there a cheaper alternative to Serper for Google search results?

This question comes from the suggestions "serper api alternative free" and "serper alternatives". It depends on volume. Below 300,000 searches a month, count the 6-month expiry. Then the EveryInfra price of $0.694 per 1,000 is lower than what you really pay on Serper.

The smaller your volume, the bigger the gap. Above 300,000 a month, Serper Scale and Ultimate cost less. DeepSeek, at $0.75 per 1,000, is in the same range.

What is the difference between Serper and SerpApi?

This question comes from the suggestion "serper api vs serpapi". From the two public pages: Serper sells prepaid credits at $0.30 to $1.00 per 1,000. SerpApi sells monthly plans; Starter is $25 a month for 1,000 searches, with more engines and result types and a U.S. legal coverage term. Our SerpApi comparison page has a longer table.

Does Serper have a rate limit?

This question comes from the suggestion "serper dev rate limit". Yes, by pack: 50 per second on Starter, 100 on Standard, 200 on Scale and 300 on Ultimate. The page says you can ask for more. EveryInfra limits depend on the account. Too many calls return 429 with retry_after, and you pay nothing.

Do failed calls, empty results or retries cost money?

This question comes from a reply, by someone who said they run a similar API, in the r/googlecloud thread. Serper says credits go on each "successful response". In our test, EveryInfra returned charged: false for an empty result and refunded it, and 401, 422 and 429 responses all said "Nothing was charged".

What can replace the Google Custom Search API?

This question comes from the same r/googlecloud post. The poster runs 40,000 to 60,000 calls a month and budgeted about $5 per 1,000. With the numbers in this article, 60,000 calls cost $41.67 a month on EveryInfra. On Serper, 360,000 calls in six months fit one Standard pack at $375, which is $62.50 a month.

References

  1. Serper home page (pricing section and FAQ), serper.dev, read October 26, 2026. https://serper.dev/
  2. Serper Terms of Service (Refund Policy), serper.dev, updated May 29, 2024. https://serper.dev/terms
  3. Thread on Serper result counts and credits, Hacker News. https://news.ycombinator.com/item?id=43921687
  4. "Picking ONE Google SERP API in 2026", Reddit r/WebScrapingInsider. https://www.reddit.com/r/WebScrapingInsider/comments/1sesvvq/picking_one_google_serp_api_in_2026_feels_less/
  5. "Google Custom Search API is closing", Reddit r/googlecloud. https://www.reddit.com/r/googlecloud/comments/1qp4mlz/google_custom_search_api_is_closing_need/
  6. Custom Search JSON API overview, Google for Developers. https://developers.google.com/custom-search/v1/overview
  7. Method: cse.list, Google for Developers. https://developers.google.com/custom-search/v1/reference/rest/v1/cse/list
  8. Bing Search APIs retiring on August 11, 2025, Microsoft Learn. https://learn.microsoft.com/en-us/lifecycle/announcements/bing-search-api-retirement
  9. Grounding with Bing Search, Microsoft Learn. https://learn.microsoft.com/en-us/azure/ai-foundry/agents/how-to/tools/bing-grounding
  10. Search & Fetch guide, DeepSeek API Docs. https://api-docs.deepseek.com/guides/search
  11. DeepSeek-V4.1-Flash-1017 release with the Search and Fetch API, DeepSeek, October 17, 2026. https://api-docs.deepseek.com/news/news261017
  12. "DeepSeek Opens Its In-House Search Engine To Developers", Search Engine Journal, October 19, 2026. https://www.searchenginejournal.com/deepseek-opens-its-in-house-search-engine-to-developers/593526/
  13. "DeepSeek prices web search for AI agents at $0.75 per 1,000 calls", PPC Land (secondary; source in item 11). https://ppc.land/deepseek-prices-web-search-for-ai-agents-at-0-75-per-1-000-calls/
  14. Cloudflare Web Search API docs, Cloudflare, updated October 2, 2026. https://developers.cloudflare.com/web-search/
  15. "Introducing the SerpApi Extract API", SerpApi blog, October 13, 2026. https://serpapi.com/blog/introducing-extract-api/
  16. Extract API docs, SerpApi. https://serpapi.com/extract-api
  17. SerpApi pricing, serpapi.com. https://serpapi.com/pricing
  18. "Google Search confirms it does not support the results per page parameter", Search Engine Land, September 18, 2025. https://searchengineland.com/google-search-confirms-it-does-not-support-the-results-per-page-parameter-462244
  19. Exa pricing, exa.ai. https://exa.ai/pricing
  20. Pricing, OpenAI platform docs. https://platform.openai.com/docs/pricing
  21. Web search tool, Claude docs. https://docs.claude.com/en/docs/agents-and-tools/tool-use/web-search-tool
  22. Gemini Developer API pricing, Google AI for Developers. https://ai.google.dev/gemini-api/docs/pricing
  23. GoogleSerperAPIWrapper, LangChain Reference. https://reference.langchain.com/python/langchain-community/utilities/google_serper/GoogleSerperAPIWrapper
  24. google_serper.py source, langchain-community, GitHub. https://github.com/langchain-ai/langchain-community/blob/main/libs/community/langchain_community/utilities/google_serper.py
  25. SerperDevTool, CrewAI docs. https://docs.crewai.com/v1.15.28/en/tools/search-research/serperdevtool
  26. SerperDev, Haystack docs. https://docs.haystack.deepset.ai/reference/integrations-serperdev
  27. mcp-server-serper, GitHub. https://github.com/marcopesani/mcp-server-serper
  28. serper-mcp-server, GitHub. https://github.com/garylab/serper-mcp-server
  29. Model Context Protocol specification 2025-11-25. https://modelcontextprotocol.io/specification/2025-11-25
  30. Introduction to MCP, modelcontextprotocol.io. https://modelcontextprotocol.io/docs/getting-started/intro
  31. EveryInfra search tool catalog (no key needed), read October 26, 2026. https://api.everyinfra.com/api/v1/search/tools
  32. EveryInfra data capability catalog (no key needed), read October 26, 2026. https://api.everyinfra.com/api/v1/social/catalog
  33. RFC 6585: Additional HTTP Status Codes (429), IETF. https://www.rfc-editor.org/rfc/rfc6585
  34. RFC 9110: HTTP Semantics (401, 422), IETF. https://www.rfc-editor.org/rfc/rfc9110
  35. RFC 5646: Tags for Identifying Languages, IETF. https://datatracker.ietf.org/doc/html/rfc5646
  36. SearXNG documentation. https://docs.searxng.org/
  37. SearXNG, GitHub. https://github.com/searxng/searxng
  38. SERP API FAQs, Bright Data docs. https://docs.brightdata.com/scraping-automation/serp-api/faqs
  39. SerpApi Tool node, n8n docs. https://docs.n8n.io/integrations/builtin/cluster-nodes/sub-nodes/n8n-nodes-langchain.toolserpapi/
  40. SerperDevWebSearch source, Haystack, GitHub. https://github.com/deepset-ai/haystack/blob/main/haystack/components/websearch/serper_dev.py
  41. serper_dev_tool.py (crewAI-tools, archived November 10, 2025), GitHub. https://github.com/crewAIInc/crewAI-tools/blob/main/crewai_tools/tools/serper_dev_tool/serper_dev_tool.py

Reference BL-48