LangChain Integration
Scavio ships as a ready-made tool package for LangChain, the most widely used framework for building LLM applications. Install langchain-scavio and hand any tool to a LangChain agent to give it real-time search across Google, Amazon, Walmart, YouTube, Reddit, TikTok, TikTok Shop, and Instagram — a cost-effective Tavily and SerpAPI alternative, with one package, one API key, and no custom HTTP code.
46 tools, one package
langchain-scavio gives any LangChain or LangGraph agent real-time search across eight platforms. Every tool is a LangChain BaseTool with a typed Pydantic argument schema, sync and async support, and structured results.Introduction
The langchain-scavio package exposes 46 tools across 8 providers, all following the Scavio<Provider><Action> naming convention. Each tool subclasses LangChain's BaseTool and declares an args_schema, so the model gets accurate argument hints and LangChain validates every call before it runs.
You need Python 3.10 or later and a Scavio API key from dashboard.scavio.dev. The package depends only on langchain-core, so it works with LangChain, LangGraph, or any framework that speaks the BaseTool interface — you do not need the full langchain package unless you use create_agent.
Step-by-Step Integration Guide
Step 1: Install
pip install langchain-scavioThis pulls in langchain-core. Install langchain as well if you want the create_agent helper shown below. Requires Python 3.10 or later.
Step 2: Set your API key
Get a key at dashboard.scavio.dev (50 free credits to start, no card), then set it as an environment variable:
export SCAVIO_API_KEY=sk_live_your_keyEvery tool reads SCAVIO_API_KEY from the environment. You can also pass it explicitly per tool with the scavio_api_key keyword argument: ScavioSearch(scavio_api_key="sk_live_...").
Step 3: Invoke a tool directly
Every tool works standalone, which is the fastest way to check your key and see the response shape before wiring up an agent:
from langchain_scavio import ScavioSearch
tool = ScavioSearch(max_results=5)
result = tool.invoke({"query": "best python web frameworks 2026"})
print(result)Step 4: Use with an agent
Scavio tools plug into the current create_agent API from langchain.agents. Pass as many or as few tools as the agent needs:
from langchain.agents import create_agent
from langchain_scavio import ScavioSearch, ScavioRedditSearch
agent = create_agent(
"openai:gpt-5.5",
tools=[
ScavioSearch(max_results=5),
ScavioRedditSearch(max_results=5),
],
system_prompt="You are a research assistant. Cite your sources.",
)
response = agent.invoke(
{"messages": [{"role": "user", "content": "What are people saying about Bun in 2026?"}]}
)
print(response["messages"][-1].content)Available Tools
46 tools across 8 providers. All follow the Scavio<Provider><Action> naming convention — note there is no Tool suffix. Import only the tools an agent needs:
from langchain_scavio import (
ScavioSearch, # Google web search
ScavioAmazonSearch, # Amazon product search
ScavioYouTubeSearch, # YouTube video search
ScavioRedditSearch, # Reddit post search
)| Provider | Tools |
|---|---|
ScavioSearch | |
| Amazon | ScavioAmazonSearch, ScavioAmazonProduct |
| Walmart | ScavioWalmartSearch, ScavioWalmartProduct |
| YouTube | ScavioYouTubeSearch, ScavioYouTubeVideo, ScavioYouTubeComments, ScavioYouTubeTranscript, ScavioYouTubeChannel, ScavioYouTubeChannelVideos, ScavioYouTubeStreams, ScavioYouTubeMetadata (deprecated alias of ScavioYouTubeVideo) |
ScavioRedditSearch, ScavioRedditPost | |
| TikTok | ScavioTikTokProfile, ScavioTikTokUserPosts, ScavioTikTokVideo, ScavioTikTokVideoComments, ScavioTikTokCommentReplies, ScavioTikTokSearchVideos, ScavioTikTokSearchUsers, ScavioTikTokHashtag, ScavioTikTokHashtagVideos, ScavioTikTokUserFollowers, ScavioTikTokUserFollowings |
| TikTok Shop | ScavioTikTokShopSearch, ScavioTikTokShopSearchSuggestions, ScavioTikTokShopProduct, ScavioTikTokShopProductReviews, ScavioTikTokShopCategories, ScavioTikTokShopCategoryProducts, ScavioTikTokShopShopProducts, ScavioTikTokShopResolve |
ScavioInstagramProfile, ScavioInstagramUserPosts, ScavioInstagramUserReels, ScavioInstagramTaggedPosts, ScavioInstagramStories, ScavioInstagramPost, ScavioInstagramPostComments, ScavioInstagramCommentReplies, ScavioInstagramSearchUsers, ScavioInstagramSearchHashtags, ScavioInstagramUserFollowers, ScavioInstagramUserFollowings |
Configuring a tool
Tool options split into two groups, which is what keeps agent behaviour predictable:
- Instantiation-only options are fixed by you when you construct the tool and the model cannot change them. These control cost and payload size —
max_results,include_knowledge_graph,include_questions,include_related,include_ai_overviews, and the otherinclude_*flags. - Model-controlled arguments live in the tool's
args_schemaand are chosen per call —query,search_type,country_code,language,device, andpage. Set any of them at construction time to pin a default the model can still override.
from langchain_scavio import ScavioSearch
tool = ScavioSearch(
max_results=10,
include_knowledge_graph=True,
include_questions=True,
country_code="gb", # default the model may still override
)Async
Every tool supports async invocation, so agents can fan out across platforms concurrently:
import asyncio
from langchain_scavio import ScavioSearch, ScavioRedditSearch
async def main():
google, reddit = ScavioSearch(), ScavioRedditSearch()
web, threads = await asyncio.gather(
google.ainvoke({"query": "vector database benchmarks 2026"}),
reddit.ainvoke({"query": "vector database benchmarks"}),
)
print(web, threads)
asyncio.run(main())Advanced Example
A single agent that cross-checks retail listings against real community sentiment — the kind of multi-platform research a Google-only search tool cannot do:
from langchain.agents import create_agent
from langchain_scavio import (
ScavioSearch,
ScavioAmazonSearch,
ScavioAmazonProduct,
ScavioRedditSearch,
ScavioYouTubeSearch,
)
agent = create_agent(
"openai:gpt-5.5",
tools=[
ScavioAmazonSearch(max_results=5),
ScavioAmazonProduct(),
ScavioRedditSearch(max_results=5),
ScavioYouTubeSearch(max_results=3),
ScavioSearch(max_results=5),
],
system_prompt=(
"You are a product research analyst. Compare listings, then check what "
"real users say on Reddit and YouTube before recommending anything."
),
)
response = agent.invoke(
{
"messages": [
{
"role": "user",
"content": (
"Compare the top mechanical keyboards on Amazon and tell me "
"what r/MechanicalKeyboards actually thinks of them."
),
}
]
}
)
print(response["messages"][-1].content)How it works
Each tool is a LangChain BaseTool with a Pydantic args_schema, so the model gets accurate argument hints and LangChain validates calls before they run. Requests go to the Scavio API over HTTPS with your key as a bearer token; the shared API wrapper handles auth, headers, client-side rate limiting, and sync and async transport. Errors are raised as ToolException with a remediation hint, and because handle_tool_error is enabled the agent sees the message and can retry rather than crashing the run.
Credit costs
Most calls cost 1 credit, including every Google, Amazon, Walmart, YouTube, Reddit, TikTok, and TikTok Shop tool. Instagram is priced per endpoint because upstream costs differ: 10 credits for profile, reels, tagged posts, stories, post comments, follower and following, and user and hashtag search; 8 credits for ScavioInstagramPost and ScavioInstagramCommentReplies; and 2 credits for ScavioInstagramUserPosts. See the rate limits reference for plan limits and the errors reference for retry guidance.
Benefits of Scavio + LangChain
- 46 tools, one package: hand any
Scavio<Provider><Action>tool to a LangChain or LangGraph agent. - Typed argument schemas: every tool is a
BaseToolwith a Pydanticargs_schema, so calls are validated before they run. - Eight platforms, one key: Google, Amazon, Walmart, YouTube, Reddit, TikTok, TikTok Shop, and Instagram behind a single API key.
- Sync and async:
invokeandainvokeon every tool, so agents can fan out across platforms concurrently. - Cost-effective: most calls cost a single credit — a Tavily and SerpAPI alternative with far broader platform coverage.
Next Steps
- Scavio API quickstart — keys, credits, and your first request
- Google Search API reference — the endpoint behind
ScavioSearch - MCP Integration — every Scavio endpoint as a tool
- langchain-scavio on PyPI
- langchain-scavio on GitHub
- LangChain documentation