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 data across 31 platforms — Google, YouTube, Amazon, Walmart, Target, eBay, Home Depot, Reddit, TikTok, TikTok Shop, Instagram, X, Threads, Kuaishou, LinkedIn, Indeed, Glassdoor, Zillow, Redfin, Booking.com, Airbnb, Tripadvisor, Yelp, the Apple App Store, Google Play, SEC EDGAR, Companies House, G2, Capterra, Google Ads Transparency and the Meta Ad Library — plus ScavioExtract, which reads any URL. A cost-effective Tavily and SerpAPI alternative, with one package, one API key, and no custom HTTP code.
187 tools, one package
langchain-scavio 4.0 gives any LangChain or LangGraph agent real-time data across 31 platforms, plus a read-any-URL tool. 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 187 tools across 31 platforms, plus ScavioExtract for any URL, 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.
Upgrading from 3.x
ScavioExtract. Walmart is the one breaking change: it goes from 2 tools to all 7 endpoints, and device, delivery_zip and store_id are removed from ScavioWalmartSearch and ScavioWalmartProduct because the endpoint retired them. In exchange domain (com, ca, com.mx), page, and the rating_high and new sort orders are exposed, and ScavioWalmartProduct takes product_id and nothing else.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
187 tools across 31 platforms, plus ScavioExtract. 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
ScavioExtract, # read any URL as Markdown, text or HTML
)| Provider | Tools |
|---|---|
| Google (12) | ScavioSearch, ScavioGoogleAIMode, ScavioGoogleMapsPlace, ScavioGoogleMapsReviews, ScavioGoogleShopping, ScavioGoogleShoppingProduct, ScavioGoogleShoppingStores, ScavioGoogleFlights, ScavioGoogleHotels, ScavioGoogleHotelsDetail, ScavioGoogleTrends, ScavioGoogleTrending |
| YouTube (16) | ScavioYouTubeSearch, ScavioYouTubeShorts, ScavioYouTubeSuggestions, ScavioYouTubeVideo, ScavioYouTubeMetadata (deprecated alias of ScavioYouTubeVideo), ScavioYouTubeComments, ScavioYouTubeCommentReplies, ScavioYouTubeTranscript, ScavioYouTubeRelated, ScavioYouTubeChannelSearch, ScavioYouTubeChannel, ScavioYouTubeChannelVideos, ScavioYouTubeChannelShorts, ScavioYouTubeChannelCommunity, ScavioYouTubeChannelResolve, ScavioYouTubeStreams |
| Amazon (3) | ScavioAmazonSearch, ScavioAmazonProduct, ScavioAmazonOffers |
| Walmart (7) | ScavioWalmartSearch, ScavioWalmartProduct, ScavioWalmartReviews, ScavioWalmartCategory, ScavioWalmartOffers, ScavioWalmartSeller, ScavioWalmartSellerProducts |
| Target (4) | ScavioTargetSearch, ScavioTargetCategory, ScavioTargetProduct, ScavioTargetReviews |
| eBay (3) | ScavioEbaySearch, ScavioEbayProduct, ScavioEbaySeller |
| Home Depot (3) | ScavioHomeDepotSearch, ScavioHomeDepotProduct, ScavioHomeDepotReviews |
| Reddit (12) | ScavioRedditSearch, ScavioRedditSearchSuggestions, ScavioRedditPost, ScavioRedditPostComments, ScavioRedditCommentReplies, ScavioRedditSubreddit, ScavioRedditSubredditPosts, ScavioRedditUser, ScavioRedditUserPosts, ScavioRedditUserComments, ScavioRedditPopular, ScavioRedditTrending |
| TikTok (11) | ScavioTikTokProfile, ScavioTikTokUserPosts, ScavioTikTokVideo, ScavioTikTokVideoComments, ScavioTikTokCommentReplies, ScavioTikTokSearchVideos, ScavioTikTokSearchUsers, ScavioTikTokHashtag, ScavioTikTokHashtagVideos, ScavioTikTokUserFollowers, ScavioTikTokUserFollowings |
| TikTok Shop (8) | ScavioTikTokShopSearch, ScavioTikTokShopSearchSuggestions, ScavioTikTokShopProduct, ScavioTikTokShopProductReviews, ScavioTikTokShopCategories, ScavioTikTokShopCategoryProducts, ScavioTikTokShopShopProducts, ScavioTikTokShopResolve |
| Instagram (12) | ScavioInstagramProfile, ScavioInstagramUserPosts, ScavioInstagramUserReels, ScavioInstagramTaggedPosts, ScavioInstagramStories, ScavioInstagramPost, ScavioInstagramPostComments, ScavioInstagramCommentReplies, ScavioInstagramSearchUsers, ScavioInstagramSearchHashtags, ScavioInstagramUserFollowers, ScavioInstagramUserFollowings |
| X (11) | ScavioXSearch, ScavioXTweet, ScavioXTweetComments, ScavioXTweetRetweeters, ScavioXUser, ScavioXUserTweets, ScavioXUserReplies, ScavioXUserMedia, ScavioXUserFollowers, ScavioXUserFollowings, ScavioXTrending |
| Threads (6) | ScavioThreadsProfile, ScavioThreadsUserPosts, ScavioThreadsUserReplies, ScavioThreadsPost, ScavioThreadsPostComments, ScavioThreadsSearchUsers |
| Kuaishou (14) | ScavioKuaishouProfile, ScavioKuaishouUserPosts, ScavioKuaishouUserLive, ScavioKuaishouUserResolve, ScavioKuaishouVideo, ScavioKuaishouVideoComments, ScavioKuaishouCommentReplies, ScavioKuaishouVideosBatch, ScavioKuaishouSearch, ScavioKuaishouSearchVideos, ScavioKuaishouSearchUsers, ScavioKuaishouSearchLive, ScavioKuaishouTagFeed, ScavioKuaishouTrending |
| LinkedIn (9) | ScavioLinkedInPerson, ScavioLinkedInPersonAbout, ScavioLinkedInPersonPosts, ScavioLinkedInCompany, ScavioLinkedInCompanyPosts, ScavioLinkedInSearchJobs, ScavioLinkedInJob, ScavioLinkedInPost, ScavioLinkedInPostComments |
| Indeed (4) | ScavioIndeedSearch, ScavioIndeedJob, ScavioIndeedCompany, ScavioIndeedCompanyReviews |
| Glassdoor (4) | ScavioGlassdoorCompanies, ScavioGlassdoorCompany, ScavioGlassdoorReviews, ScavioGlassdoorSalaries |
| Zillow (3) | ScavioZillowSearch, ScavioZillowProperty, ScavioZillowAgentReviews |
| Redfin (3) | ScavioRedfinSearch, ScavioRedfinProperty, ScavioRedfinMarket |
| Booking.com (3) | ScavioBookingSearch, ScavioBookingHotel, ScavioBookingReviews |
| Airbnb (3) | ScavioAirbnbSearch, ScavioAirbnbListing, ScavioAirbnbReviews |
| Tripadvisor (4) | ScavioTripadvisorLocations, ScavioTripadvisorSearch, ScavioTripadvisorLocation, ScavioTripadvisorReviews |
| Yelp (3) | ScavioYelpSearch, ScavioYelpBusiness, ScavioYelpReviews |
| App Store (3) | ScavioAppStoreSearch, ScavioAppStoreApp, ScavioAppStoreReviews |
| Google Play (3) | ScavioGooglePlaySearch, ScavioGooglePlayApp, ScavioGooglePlayReviews |
| SEC EDGAR (6) | ScavioSECLookup, ScavioSECCompany, ScavioSECFilings, ScavioSECConcept, ScavioSECFacts, ScavioSECSearch |
| Companies House (4) | ScavioCompaniesHouseSearch, ScavioCompaniesHouseCompany, ScavioCompaniesHouseOfficers, ScavioCompaniesHouseFilingHistory |
| G2 (3) | ScavioG2Search, ScavioG2Product, ScavioG2Reviews |
| Capterra (3) | ScavioCapterraSearch, ScavioCapterraProduct, ScavioCapterraReviews |
| Google Ads Transparency (3) | ScavioGoogleAdsAdvertisers, ScavioGoogleAdsSearch, ScavioGoogleAdsCreative |
| Meta Ad Library (3) | ScavioMetaAdsSearch, ScavioMetaAdsAdvertiser, ScavioMetaAdsAd |
| Extract (1) | ScavioExtract — belongs to no platform: point it at any URL and get Markdown, plain text or raw HTML back |
Five platforms are lookup-first
ScavioTripadvisorLocations, ScavioGlassdoorCompanies, ScavioSECLookup, ScavioGoogleAdsAdvertisers and ScavioCompaniesHouseSearch — then pass the id it returns to the detail and review tools.Reading any URL
ScavioExtract is the escape hatch for pages the other 186 tools do not cover: hand it a URL from a search result and get clean Markdown back, with no headless browser to run yourself.
from langchain_scavio import ScavioSearch, ScavioExtract
hits = ScavioSearch(max_results=3).invoke({"query": "langgraph release notes"})
page = ScavioExtract().invoke({"url": "https://example.com/changelog", "format": "markdown"})
print(page)format is markdown (default), text, or html. mode sets the fetch tier and the price: normal (default) and advanced cost 1 credit, ultra costs 2. Only a successful read is billed.
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 across three chains 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,
ScavioAmazonOffers,
ScavioWalmartSearch,
ScavioTargetSearch,
ScavioRedditSearch,
ScavioYouTubeSearch,
)
agent = create_agent(
"openai:gpt-5.5",
tools=[
ScavioAmazonSearch(max_results=5),
ScavioAmazonOffers(),
ScavioWalmartSearch(max_results=5),
ScavioTargetSearch(max_results=5),
ScavioRedditSearch(max_results=5),
ScavioYouTubeSearch(max_results=3),
ScavioSearch(max_results=5),
],
system_prompt=(
"You are a product research analyst. Compare listings across retailers, "
"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, Walmart and Target, "
"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
Cost is set per endpoint, not per platform, and every tool states its own cost in its description — so the model can see the price before it spends. Most calls cost 1 credit, including every Google, Amazon, Target, eBay, Reddit, TikTok, TikTok Shop, X and Zillow tool. The ones worth knowing about:
- YouTube: 1 credit for most endpoints, 2 for search, 3 for streams, 8 for
ScavioYouTubeTranscript. - Instagram: 10 credits for profile, reels, tagged posts, stories, post comments, followers, followings, and user and hashtag search; 8 for
ScavioInstagramPostandScavioInstagramCommentReplies; 2 forScavioInstagramUserPosts. - LinkedIn: 1 credit for the light lookups, 10 for the paged person/company endpoints, and 30 for
ScavioLinkedInJob— the most expensive endpoint in the API. - Walmart: 1 credit on
comandca, 2 oncom.mx, which costs more upstream. - G2: 5 credits per call. Kuaishou ranges from 1 to 40 depending on the endpoint.
- ScavioExtract: priced by
mode, not per call — 1 onnormalandadvanced, 2 onultra.
See the API reference for the per-endpoint price, the rate limits reference for plan limits, and the errors reference for retry guidance.
Benefits of Scavio + LangChain
- 187 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. - 31 platforms, one key: search, retail, video, social, real estate, travel, local, jobs, app stores, company filings, software reviews and ad transparency behind a single API key — plus
ScavioExtractfor everything else. - 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
- API reference — every endpoint behind these tools
- Google Search API reference — the endpoint behind
ScavioSearch - Extract API reference — the endpoint behind
ScavioExtract - MCP Integration — every Scavio endpoint as a tool
- langchain-scavio on PyPI
- langchain-scavio on GitHub
- LangChain documentation