CrewAI Integration
Scavio ships as a ready-made tool package for CrewAI, the framework for orchestrating role-playing autonomous agents. Install crewai-scavio and hand any tool to a CrewAI Agent to give it real-time search across Google, Amazon, Walmart, YouTube, Reddit, TikTok, and Instagram — a cost-effective Tavily and SerpAPI alternative, with one package, one API key, and no custom HTTP code.
32 tools, one package
crewai-scavio gives any CrewAI agent real-time search across seven platforms — a cost-effective Tavily and SerpAPI alternative, each tool a typed CrewAI BaseTool.Introduction
The crewai-scavio package exposes 32 tools across 7 providers, all following the Scavio<Provider><Action>Tool naming convention. Each tool is a CrewAI BaseTool with a typed argument schema, so the agent gets accurate argument hints and CrewAI validates calls before they run.
You need Python 3.10 or later and a Scavio API key from dashboard.scavio.dev. Import only the tools an agent needs, or mix several providers on one agent — calls go through the scavio Python SDK under the hood.
Step-by-Step Integration Guide
Step 1: Install
pip install crewai-scavioThe crewai framework and the scavio Python SDK are pulled in as dependencies. Requires Python 3.10 or later.
Step 2: Set your API key
Get a key at dashboard.scavio.dev (free credits, 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: ScavioSearchTool(api_key="sk_live_...").
Step 3: Basic usage
from crewai import Agent, Crew, Task
from crewai_scavio import ScavioSearchTool
researcher = Agent(
role="Research Analyst",
goal="Find accurate, up-to-date information on any topic",
backstory="An expert researcher who finds reliable sources.",
tools=[ScavioSearchTool()],
verbose=True,
)
task = Task(
description="Research the top 3 trends in AI agents for 2026.",
expected_output="A summary of the top 3 trends with sources.",
agent=researcher,
)
crew = Crew(agents=[researcher], tasks=[task], verbose=True)
print(crew.kickoff())Available Tools
32 tools across 7 providers. All follow the Scavio<Provider><Action>Tool naming convention. Import only the tools an agent needs — each provider is its own tool class:
from crewai_scavio import (
ScavioSearchTool, # Google web search
ScavioAmazonSearchTool, # Amazon product search
ScavioYouTubeSearchTool, # YouTube video search
ScavioRedditSearchTool, # Reddit post search
)
agent = Agent(
role="Market Researcher",
goal="Compare products and gather public sentiment",
tools=[ScavioAmazonSearchTool(), ScavioRedditSearchTool()],
)| Provider | Tools |
|---|---|
ScavioSearchTool | |
| Amazon | ScavioAmazonSearchTool, ScavioAmazonProductTool |
| Walmart | ScavioWalmartSearchTool, ScavioWalmartProductTool |
| YouTube | ScavioYouTubeSearchTool, ScavioYouTubeMetadataTool |
ScavioRedditSearchTool, ScavioRedditPostTool | |
| TikTok | ScavioTikTokProfileTool, ScavioTikTokUserPostsTool, ScavioTikTokVideoTool, ScavioTikTokVideoCommentsTool, ScavioTikTokCommentRepliesTool, ScavioTikTokSearchVideosTool, ScavioTikTokSearchUsersTool |
| Profile, posts, reels, stories, post details, comments, comment replies, and user and hashtag search tools. |
Advanced Example
Run a two-agent crew: a researcher gathers retail listings and community sentiment across providers, then a writer turns the findings into a buyer's guide.
from crewai import Agent, Crew, Task
from crewai_scavio import (
ScavioSearchTool,
ScavioAmazonSearchTool,
ScavioRedditSearchTool,
)
researcher = Agent(
role="Market Researcher",
goal="Gather product data and public sentiment",
backstory="A meticulous analyst who cross-checks retail listings against real user opinions.",
tools=[ScavioAmazonSearchTool(), ScavioRedditSearchTool(), ScavioSearchTool()],
)
writer = Agent(
role="Report Writer",
goal="Turn research into a clear buyer's guide",
backstory="A technical writer who distills findings into concise recommendations.",
)
research = Task(
description="Compare the top mechanical keyboards on Amazon and what r/MechanicalKeyboards says about them.",
expected_output="A ranked shortlist with prices and community sentiment.",
agent=researcher,
)
report = Task(
description="Write a short buyer's guide from the research.",
expected_output="A 3-paragraph guide with a clear top pick.",
agent=writer,
)
crew = Crew(agents=[researcher, writer], tasks=[research, report], verbose=True)
print(crew.kickoff())How it works
Each tool is a CrewAI BaseTool with a typed argument schema, so the agent gets accurate argument hints and CrewAI validates calls before they run. Calls go through the scavio Python SDK, which handles auth, rate limiting, and request formatting. Results are returned to the agent as structured data.
Credit costs
Most calls cost 1 credit, including every Google search. Instagram is priced per endpoint: 10 credits for most calls, 8 for post details and comment replies, and 2 for user posts. See the rate limits reference for plan limits and the errors reference for retry guidance.
Benefits of Scavio + CrewAI
- 32 tools, one package: hand any
Scavio<Provider><Action>Toolto a CrewAIAgent. - Typed argument schemas: every tool is a CrewAI
BaseToolwith validated calls and accurate hints. - Seven platforms, one key: Google, Amazon, Walmart, YouTube, Reddit, TikTok, and Instagram behind a single API key.
- Cost-effective: most calls cost a single credit — a Tavily and SerpAPI alternative with broader platform coverage.
Next Steps
- Scavio API quickstart — keys, credits, and your first request
- Google Search API reference — the endpoint behind
ScavioSearchTool - MCP Integration — every Scavio endpoint as a tool
- crewai-scavio on PyPI
- crewai-scavio on GitHub
- CrewAI documentation