pydantic-scavio
Real-time Google search for Pydantic AI agents, powered by Scavio — a unified search API for AI agents covering 31 platforms (Google, YouTube, Amazon, Walmart, eBay, Target, Home Depot, Reddit, X, TikTok, TikTok Shop, Instagram, LinkedIn, Threads, Kuaishou, Zillow, Redfin, Booking.com, Tripadvisor, Airbnb, Yelp, Indeed, Glassdoor, the app stores, G2, Capterra, ad transparency, SEC EDGAR and Companies House) plus an Extract endpoint for any URL.
Scope: 1 endpoint, by design
This package is a curated subset of the Scavio API, not a wrapper around all of it. It ships exactly 1 of Scavio's 195 endpoints:
| Tool | Endpoint | Platform | Credits |
|---|---|---|---|
scavio_search |
POST /api/v2/google |
Google (web search) | 1 |
That is the whole surface, and it stays that way on purpose: one small, well-described tool an agent picks correctly every time beats a hundred it has to disambiguate between.
Credits: 1 credit per search, flat. Nothing here reaches the endpoints that cost more (YouTube transcripts are 5, most Instagram calls are 2, a LinkedIn job is 30), nor the body-priced ones whose cost depends on the request rather than a flat number (Walmart, Threads, Kuaishou and extract).
Reaching the rest of the API
Scavio covers 195 live endpoints: 194 across 31 platforms, plus extract, which reads any URL. The platforms are Google, YouTube, Amazon, Walmart, eBay, Target, Home Depot, Reddit, X, TikTok, TikTok Shop, Instagram, LinkedIn, Threads, Kuaishou, Zillow, Redfin, Booking.com, Tripadvisor, Airbnb, Yelp, Indeed, Glassdoor, the Apple App Store, Google Play, SEC EDGAR, Companies House, G2, Capterra, Google Ads Transparency and the Meta Ad Library. The most recent batch added 93 endpoints across 22 platforms plus extract — 21 of those platforms are new to Scavio and Walmart was rebuilt. None of them are reachable through this package, which stays at Google web search. Point a Pydantic AI agent at the hosted MCP server for all of them:
from pydantic_ai import Agent
from pydantic_ai.mcp import MCPServerStreamableHTTP
scavio = MCPServerStreamableHTTP(
'https://mcp.scavio.dev/mcp',
headers={'x-api-key': 'sk_live_...'},
)
agent = Agent('openai:gpt-5.5', toolsets=[scavio])
That server exposes 191 tools; a curated subset loads by default and the rest is one env var away. See the MCP docs.
Alternatively, call the scavio SDK directly — it is already a dependency here — and wrap whichever endpoints you need as your own tools: client.youtube.transcript(...), client.ebay.search(...), client.sec.filings(...), client.meta_ads.search(...). Reading an arbitrary URL is a top-level method, not a namespace: client.extract(url, format="markdown"), never client.extract.extract(...). See the SDK reference and the full endpoint list.
The newer verticals each have their own page: eBay, Target and Home Depot, Zillow and Redfin, Booking.com, Tripadvisor and Airbnb, Yelp, Indeed and Glassdoor, the Apple App Store and Google Play, G2 and Capterra, Google Ads Transparency and the Meta Ad Library, SEC EDGAR and Companies House, Threads and Kuaishou, plus Extract.
Install
pip install pydantic-scavio
Get a free API key (50 one-time signup credits, no monthly refill, no credit card) at dashboard.scavio.dev.
Usage
from pydantic_ai import Agent
from pydantic_scavio import scavio_search_tool
agent = Agent(
"openai:gpt-5.5",
tools=[scavio_search_tool(api_key="sk_live_...")],
system_prompt="Search the web when you need current information.",
)
result = agent.run_sync("What changed in the latest Pydantic AI release?")
print(result.output)
Fixing parameters for the agent
Parameters you pass to the factory are fixed for all searches and hidden from the LLM's tool schema; parameters you leave unset stay available for the LLM to set per call.
# Always search from the US in English; the LLM only controls the query.
tool = scavio_search_tool(api_key="sk_live_...", country_code="us", language="en")
Sharing a client
from scavio import AsyncScavioClient
from pydantic_scavio import scavio_search_tool
client = AsyncScavioClient(api_key="sk_live_...")
tool = scavio_search_tool(client=client)
Result shape
The tool returns list[ScavioSearchResult]:
| Field | Type | Description |
|---|---|---|
position |
int |
Rank of the result on the page |
title |
str |
Result title |
url |
str |
Result URL |
domain |
str |
Result domain |
content |
str |
Snippet |
date |
str | None |
Publication date when available |
License
MIT
Metadata
Release files for pydantic-scavio 0.1.4
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| pydantic_scavio-0.1.4.tar.gz | 8.8 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| pydantic_scavio-0.1.4-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 15.3 kB
Release files / pydantic_scavio-0.1.4.tar.gz
| Download URL | pydantic_scavio-0.1.4.tar.gz |
|---|---|
| Size | 8.8 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
e45351f4f7ce5e4cac4b8730940f8fd757d52e06416701e65cadf9abe7e9fc7e
|
|
BLAKE2b-256 checksum How to use checksums |
4bacc3f465a20ba82b5246e146f63b430d8172436b402dc2bc21cc63fb23a27a
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.15
|
Release files / pydantic_scavio-0.1.4-py3-none-any.whl
| Download URL | pydantic_scavio-0.1.4-py3-none-any.whl |
|---|---|
| Size | 6.5 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
f066b22ccb9ad547e40c83467294d8db1ca2704720b0e38a7209307f51a86ec1
|
|
BLAKE2b-256 checksum How to use checksums |
e89e84628fe711cd56170fd5f8f31bdd94fe8caf818e2c6419725f28e8bb063d
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.15
|