cyberbro Google search after January 1, 2027
One setting.
cyberbro's Google engine searches the web for each observable through Google's Custom Search JSON API. Google closed that API to new customers and ends it on January 1, 2027.
Set GOOGLE_CSE_URL=https://api.specstream.ai/customsearch/v1 in cyberbro's .env, put a SpecStream key in GOOGLE_CSE_KEY and any value in GOOGLE_CSE_CX. cyberbro's own Google engine read 10 results this way on November 10, 2026.
SpecStream scores 97.9 F-score on all 1,000 SimpleQA Verified questions and costs $5 per 1,000 searches, with no daily limit. A new account gets $10 of credit, no card.
New accounts get $10 of credit, no card. It covers 2,000 searches.
cyberbro's Google engine on SpecStream and Google's own options, from each company's pages and cyberbro's source on Nov 10, 2026
| SpecStream | Google Custom Search | Agent Search (Vertex AI Search) | Gemini API grounding | |
|---|---|---|---|---|
| cyberbro settings | GOOGLE_CSE_URL=https://api.specstream.ai/customsearch/v1, GOOGLE_CSE_KEY your SpecStream key, GOOGLE_CSE_CX any value | GOOGLE_CSE_URL left at https://www.googleapis.com/customsearch/v1, with a Google key and engine ID | No cyberbro setting. A separate Google Cloud API with its own request | No cyberbro setting. A Gemini model call |
| Open to a new account | Yes. Create a key and start with $10 of credit, no card | No. Closed to new customers, and existing customers have until January 1, 2027 | Yes, with a free trial of 10,000 queries a month | Yes, with 5,000 free search requests a month on Gemini 3 and newer |
| Price per 1,000 searches | $5, with up to 10 results a search | $5 per 1,000 queries after 100 free queries a day, for existing customers only | $1.50 per 1,000 queries on Search Standard Edition, $4.00 on Enterprise Edition | $14 per 1,000 search requests, billed for each query the model decides to run |
| Limit | No limit per key and no daily limit. A busy call gets a 429 with Retry-After and is not charged | 10,000 queries a day | Up to 50 domains, in Google's words | 1,500 requests a day per project by default |
| What comes back | items[] with title, link and snippet and searchInformation.totalResults, the fields cyberbro reads | The URL, title and text snippets of each result, in Google's own format | A different API: a POST to an engine's servingConfigs search | A model answer grounded in the search, with a search suggestions snippet in HTML |
| What answers the search | The whole live web, read at the moment of the call. 97.9 F-score on all 1,000 SimpleQA Verified questions | The Programmable Search Engine you configured | The domains you give it | Google Search, through the model |
Why cyberbro users point the Google engine at SpecStream
The change is one line in .env
cyberbro is "a simple application that extracts your IoCs from garbage input and checks their reputation using multiple services", and its Google engine finds pages that mention each one. The engine calls GOOGLE_CSE_URL when it is set and Google's address when it is empty. Before and after, in .env:
# .env, before
GOOGLE_CSE_CX=<your engine ID>
GOOGLE_CSE_KEY=<your Google key>
GOOGLE_CSE_URL=https://www.googleapis.com/customsearch/v1# .env, after
GOOGLE_CSE_CX=any
GOOGLE_CSE_KEY=<your SpecStream key>
GOOGLE_CSE_URL=https://api.specstream.ai/customsearch/v1The engine needs both a key and an engine ID before it runs, so give GOOGLE_CSE_CX any value: SpecStream accepts cx and does not use it. Restart cyberbro so it reads .env again.
Google's JSON, so the engine's parser reads it
For each observable the engine sends key, cx and q, with the observable in quotes after any dorks. It reads items[], taking title, snippet and link from each, and searchInformation.totalResults for the count. SpecStream returns those fields in Google's shape, and a search operator such as site: in q holds on every result.
The call the engine makes for a domain, in Python with requests:
import os, requests
reply = requests.get(
"https://api.specstream.ai/customsearch/v1",
params={"key": os.environ["SPECSTREAM_API_KEY"], "cx": "any", "q": '"example.com"'},
).json()
print(reply["searchInformation"]["totalResults"])
for item in reply["items"]:
print(item["title"], item["link"], item["snippet"])The route honours q, num, start, hq, exactTerms, orTerms, excludeTerms, siteSearch and siteSearchFilter. Every parameter and field is in the Google Custom Search guide.
$5 per 1,000 searches, with no daily limit
A search of up to 10 results costs $0.005, so a batch of 200 observables costs $1. There is no monthly plan and no daily limit. Credit you buy never expires, and a new account starts with $10 of credit, which covers 2,000 searches. A call stopped by a 429 charges nothing.
The most accurate web search API
The SpecStream Search API scores 97.9 F-score on all 1,000 official SimpleQA Verified questions, with 978 correct, and 64.0 item F1 and 43.4 row F1 on all 200 official WideSearch tasks. The Extract API scores 0.908 F1 on WCXB. Each score and its method is on the benchmarks page.
Nothing kept from an investigation, on a key you choose
Observables from an incident are sensitive. A key made with zero_retention keeps no request text and no answer after the reply, and spend_cap_cents sets the most the key can spend.
curl -X POST https://api.specstream.ai/v1/account/keys \
-H "Authorization: Bearer $SPECSTREAM_API_KEY" -H "Content-Type: application/json" \
-d '{"name": "cyberbro", "scopes": ["account:read", "finds:spend"], "spend_cap_cents": 500000, "zero_retention": true}'Search, pages and rows on one key
The same key reads up to 20 pages or documents a call with the Extract API at $0.80 per 1,000 pages, and a page with no text is not charged. Deep Search returns every match for a request in plain words as structured rows, at 5¢, 15¢ or $1 a row, with a source URL on every value, and the most a run can cost is approved before it starts. More Custom Search clients are on the open-source apps page.
Other options for cyberbro's Google engine
Google Custom Search, until January 1, 2027
Existing customers can keep Google's address in GOOGLE_CSE_URL until the API ends: $5 per 1,000 queries after 100 free a day, up to 10,000 a day. A new project gets no key. SpecStream costs the same $5 per 1,000, with no daily limit, behind one line.
Agent Search (Vertex AI Search)
Google's named alternative, for searching up to 50 domains, at $1.50 per 1,000 queries on Standard Edition. It is a different API, so cyberbro's engine cannot call it. SpecStream searches the whole live web for an observable and answers the call the engine already sends.
Gemini API grounding
A Gemini model searches Google and writes an answer, at $14 per 1,000 search requests after 5,000 free a month, with 1,500 requests a day per project by default. cyberbro needs a list of pages to show, and SpecStream returns that list at $5 per 1,000.
How SpecStream scores
The same numbers as the benchmarks page, from the official tasks and scorers.
How to move cyberbro's Google engine to SpecStream
1. Create a key under Agents & API in the SpecStream workspace. A new account gets $10 of credit, no card, which covers 2,000 searches.
2. Check the key with the call the engine will send. A 200 with items means cyberbro gets the same.
curl "https://api.specstream.ai/customsearch/v1?key=$SPECSTREAM_API_KEY&cx=any&q=%22example.com%22"3. Set the three lines in cyberbro's .env:
GOOGLE_CSE_CX=any
GOOGLE_CSE_KEY=<your SpecStream key>
GOOGLE_CSE_URL=https://api.specstream.ai/customsearch/v14. Restart cyberbro and analyze an observable with the Google engine selected. Each search shows in your SpecStream request log with its price.
Frequently asked questions
Something we didn't answer? Talk to a human
Why will cyberbro's Google engine stop working?
GOOGLE_CSE_URL=https://api.specstream.ai/customsearch/v1 and a SpecStream key the engine keeps searching.What is GOOGLE_CSE_URL in cyberbro?
https://www.googleapis.com/customsearch/v1 by default. Set it to https://api.specstream.ai/customsearch/v1 and the same engine reads SpecStream's results, as it did on November 10, 2026.What goes in GOOGLE_CSE_KEY and GOOGLE_CSE_CX?
GOOGLE_CSE_KEY, and GOOGLE_CSE_CX takes any value, because SpecStream accepts cx and does not use it. A new account starts with $10 of credit, no card.What is the best Google Custom Search replacement for cyberbro?
How much does cyberbro's Google engine cost on SpecStream?
Is there a daily limit?
Sources
SpecStream wrote this page. cyberbro's settings come from its source and README on GitHub, and each provider's figure from that company's own page.
- cyberbro READMEraw.githubusercontent.com/stanfrbd/cyberbro/main/README.md, read Nov 10, 2026
- cyberbro, engines/google.pyraw.githubusercontent.com/stanfrbd/cyberbro/main/engines/google.py, read Nov 10, 2026
- cyberbro, utils/config.pyraw.githubusercontent.com/stanfrbd/cyberbro/main/utils/config.py, read Nov 10, 2026
- Google Custom Search JSON API overviewdevelopers.google.com/custom-search/v1/overview, read Nov 10, 2026
- Google Custom Search, using RESTdevelopers.google.com/custom-search/v1/using_rest, read Nov 10, 2026
- Agent Search pricing, Google Cloudcloud.google.com/generative-ai-app-builder/pricing, read Nov 10, 2026
- Agent Search servingConfigs search referencecloud.google.com/generative-ai-app-builder/docs/reference/rest/v1/projects.locations.collections.engines.servingConfigs/search, read Nov 10, 2026
- Grounding with Google Search, Gemini APIai.google.dev/gemini-api/docs/google-search, read Nov 10, 2026
- Gemini API pricingai.google.dev/gemini-api/docs/pricing, read Nov 10, 2026
- SpecStream benchmarksspecstream.ai/benchmarks, read Nov 10, 2026
- SpecStream pricingspecstream.ai/pricing, read Nov 10, 2026
- SpecStream for agentsspecstream.ai/agents.md, read Nov 10, 2026




