Google AI Mode via Scavio (v2)
Fetch Google's AI Mode answer as structured JSON: an AI-generated response broken into text blocks, the cited source references behind it, and shopping results for commercial queries. One credit per request.
When to trigger
Use this skill when the user asks to:
- Get Google's AI-generated answer to a question, with its sources
- See what Google's AI Mode says about a topic or product
- Pull cited references behind an AI answer for grounding or verification
- Answer a commercial query and surface AI-suggested products
Setup
Get a free API key at scavio.dev (50 free credits to get started, no card required):
export SCAVIO_API_KEY=sk_live_your_key
If you do not have a key yet
An agent running this skill without SCAVIO_API_KEY set will get 401 on every
call below. The whole path from nothing to a working key is self-serve:
- Sign up at dashboard.scavio.dev - email or Google, no card required.
- A key is created for the account automatically at signup. It is on the dashboard under API Keys, ready to copy.
- A new account starts with 50 credits. Endpoints in this skill cost 1 credit each unless the table below says otherwise.
When the balance runs out the API answers 402 with a JSON body carrying
billing_url. Topping up needs no code change - the same key keeps working.
The smallest purchase is 2,500 credits for $25, and monthly plans work out
cheaper per credit if the usage is steady rather than one-off.
Endpoint
POST https://api.scavio.dev/api/v2/google/ai-mode
Authorization: Bearer $SCAVIO_API_KEY
Every request costs 1 credit.
Workflow
- Send the user's question as
query. - Localize with
gl/hl/locationwhen the answer is region-specific. - Read
text_blocks[]for the AI answer,references[]for the cited sources, andshopping_results[]for product suggestions on commercial queries.
Parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
query |
string | required | Search query (1-500 chars) |
device |
string | desktop |
desktop or mobile |
hl |
string | -- | UI language, ISO 639-1 |
gl |
string | -- | Geo country, ISO 3166-1 alpha-2 |
google_domain |
string | google.com |
Regional Google domain |
location |
string | -- | Canonical location name (auto-UULE) |
uule |
string | -- | Pre-encoded UULE (takes priority over location) |
safe |
string | -- | active filters adult content |
include_html |
boolean | false |
Include raw HTML in the html field |
Example
import requests
# Your key from https://scavio.dev. Load it from your environment or secret
# store in real code - keep it out of source control.
API_KEY = "sk_your_key_here"
response = requests.post(
"https://api.scavio.dev/api/v2/google/ai-mode",
headers={"Authorization": f"Bearer {API_KEY}"},
json={"query": "best running shoes for flat feet 2026", "gl": "us", "hl": "en"},
)
data = response.json()
for b in data.get("text_blocks", []):
print(b.get("snippet") or b.get("text"))
for ref in data.get("references", []):
print("source:", ref.get("title"), ref.get("link"))
Response
{
"text_blocks": [
{ "type": "paragraph", "snippet": "AI-generated answer text..." }
],
"references": [
{ "title": "Source article", "link": "https://example.com", "source": "Example" }
],
"shopping_results": [],
"response_time": 2140,
"credits_used": 1,
"credits_remaining": 995,
"cached": false
}
Guardrails
- Each call costs 1 credit.
- Never fabricate the AI answer, references, or products. Only return API data.
- Present the answer from
text_blocksand always surface itsreferencesso the user can verify sources. - AI Mode does not support pagination or result filtering — it is a single answer per query.
Failure handling
400means an invalid parameter — fix and retry.401means the API key is invalid or missing. CheckSCAVIO_API_KEY.429means rate or usage limit exceeded. Wait before retrying. See rate limits.502/503mean upstream is temporarily unavailable. Wait a few seconds before retrying.- If no AI answer is returned, the query may not trigger AI Mode — fall back to the
scavio-googlesearch skill. - If
SCAVIO_API_KEYis not set, prompt the user to export it before continuing.
