原始内容
name: scavio-google description: Search Google and get the full structured SERP as JSON — organic results, ads, knowledge graph, AI overview, related questions, and more. Use for any query needing current web information. v2 engine, 1 credit per request. version: 3.0.0 tags: google, web-search, search, serp, ai-overview, knowledge-graph, agents, langchain, crewai, autogen, structured-data, json, ai-agents, research metadata: openclaw: requires: env: - SCAVIO_API_KEY primaryEnv: SCAVIO_API_KEY timeout: 90 throttle: 1 emoji: "\U0001F50D" homepage: https://scavio.dev/docs/search-api
Google Search via Scavio (v2)
Search Google and return the full structured SERP as JSON — no HTML parsing required. One call returns organic results, ads, knowledge graph, AI overview, related questions, related searches, top stories, videos, and pagination.
When to trigger
Use this skill when the user asks to:
- Look something up on the web or check a current fact
- Find recent results or events
- Answer any question that requires real-time or up-to-date information
- Pull Google's knowledge graph, AI overview, or "people also ask" for a query
Do not answer from memory when current information is needed. Search first.
Setup
Get a free API key at https://scavio.dev (50 free credits to get started, no card required):
export SCAVIO_API_KEY=sk_live_your_key
Endpoint
POST https://api.scavio.dev/api/v2/google
Authorization: Bearer $SCAVIO_API_KEY
Every request costs 1 credit.
Workflow
- Send the user's query as
query. Addgl/hlto localize by country and language. - Page with
start(0 = page 1, 10 = page 2, 20 = page 3, ...). - Narrow recency with
time_periodwhen the user wants fresh results. - Read
organic_resultsfor the main links; checkai_overview,knowledge_graph, andrelated_questionsfor richer answers. - Return results in a clear, structured response. Cite URLs.
Parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
query |
string | required | Search query (1-500 chars) |
device |
string | desktop |
desktop or mobile (SERP layout) |
start |
number | 0 |
Result offset: 0 = page 1, 10 = page 2, ... (max 990) |
gl |
string | -- | Geo country, ISO 3166-1 alpha-2 (e.g. us, gb, de) |
hl |
string | -- | UI language, ISO 639-1 (e.g. en, fr, es) |
google_domain |
string | google.com |
Regional Google domain |
location |
string | -- | Canonical location name, auto-UULE (e.g. New York,New York,United States) |
uule |
string | -- | Pre-encoded UULE (takes priority over location) |
lr |
string | -- | Language restrict (lang_en) |
cr |
string | -- | Country restrict (countryUS) |
safe |
string | -- | active filters adult content (SafeSearch) |
nfpr |
boolean | false |
Set true to disable spelling autocorrection |
filter |
string | 1 |
0 disables similar/omitted-results filtering |
time_period |
string | -- | last_hour, last_day, last_week, last_month, last_year |
resolve_ai_overview |
boolean | true |
Inline the full AI Overview when Google defers it; set false to skip the extra upstream call |
include_html |
boolean | false |
Include raw Google HTML in the html field |
Example
import os, requests
response = requests.post(
"https://api.scavio.dev/api/v2/google",
headers={"Authorization": f"Bearer {os.environ['SCAVIO_API_KEY']}"},
json={"query": "langchain agents tutorial", "gl": "us", "hl": "en"},
)
data = response.json()
for r in data["organic_results"]:
print(r["position"], r["title"], r["link"])
Response
{
"search_information": {
"page_title": "langchain agents tutorial - Google Search",
"organic_results_state": "Results for exact spelling"
},
"organic_results": [
{
"position": 1,
"title": "Result title",
"link": "https://example.com",
"displayed_link": "https://example.com › docs",
"snippet": "Snippet text..."
}
],
"related_questions": [],
"related_searches": [],
"response_time": 812,
"credits_used": 1,
"credits_remaining": 999,
"cached": false
}
The response is a faithful passthrough of the SERP. Depending on the query it may also include: ai_overview, knowledge_graph, top_ads, bottom_ads, top_stories, video_results, discussions_and_forums, local_results, local_map, and pagination.
Guardrails
- Never fabricate search results or URLs. Only return what the API gives you.
- If the query is time-sensitive, always call the API — do not answer from training data.
- Organic links live in
organic_results[].linkand result order isposition. - Cite sources when summarizing results.
Failure handling
400means an invalid parameter — report the message and fix the request.401means the API key is invalid or missing. Prompt the user to check theirSCAVIO_API_KEY.429means rate or usage limit exceeded. Wait before retrying. See https://scavio.dev/docs/rate-limits.502/503mean upstream is temporarily unavailable. Wait a few seconds before retrying.- If no results are returned, tell the user and suggest rephrasing.
- If
SCAVIO_API_KEYis not set, prompt the user to export it before continuing.
LangChain
pip install langchain-scavio
from langchain_scavio import ScavioSearchTool
tool = ScavioSearchTool(engine="google")