crewai-scavio
CrewAI integration for the Scavio Search API, a search API for AI agents. Provides 46 search tools across Google, Amazon, Walmart, YouTube, Reddit, TikTok, TikTok Shop, and Instagram for use with CrewAI agents.
Installation
pip install crewai-scavio
Setup
Get a free API key at dashboard.scavio.dev and set it as an environment variable:
export SCAVIO_API_KEY="sk_live_..."
Quick Start
from crewai import Agent, Crew, Task
from crewai_scavio import ScavioSearchTool
search_tool = ScavioSearchTool()
researcher = Agent(
role="Research Analyst",
goal="Find the latest information on any topic",
backstory="An expert researcher who finds accurate, up-to-date information.",
tools=[search_tool],
verbose=True,
)
research_task = Task(
description="Research the top 3 trends in AI agents for 2026.",
expected_output="A summary of the top 3 AI agent trends with sources.",
agent=researcher,
)
crew = Crew(
agents=[researcher],
tasks=[research_task],
verbose=True,
)
result = crew.kickoff()
print(result)
Available Tools
| Provider | Tool Class | Description |
|---|---|---|
ScavioSearchTool |
Web search with knowledge graphs and related questions | |
| Amazon | ScavioAmazonSearchTool |
Product search across 22 marketplaces |
| Amazon | ScavioAmazonProductTool |
Product details by ASIN |
| Amazon | ScavioAmazonOffersTool |
Every seller offer for an ASIN, including the buy-box winner |
| YouTube | ScavioYouTubeSearchTool |
Video search with filters |
| YouTube | ScavioYouTubeVideoTool |
Video metadata by ID or watch URL |
| YouTube | ScavioYouTubeCommentsTool |
Video comments by ID |
| YouTube | ScavioYouTubeTranscriptTool |
Video transcript / captions by ID |
| YouTube | ScavioYouTubeChannelTool |
Channel details by ID, @handle, or URL |
| YouTube | ScavioYouTubeChannelVideosTool |
Videos uploaded by a channel |
| YouTube | ScavioYouTubeStreamsTool |
Playable / downloadable stream formats |
| Walmart | ScavioWalmartSearchTool |
Product search with price/fulfillment filters |
| Walmart | ScavioWalmartProductTool |
Product details by ID |
ScavioRedditSearchTool |
Post search with cursor pagination | |
ScavioRedditPostTool |
Post details by URL (no comments) | |
| TikTok | ScavioTikTokProfileTool |
User profile lookup |
| TikTok | ScavioTikTokUserPostsTool |
User's posted videos |
| TikTok | ScavioTikTokVideoTool |
Video details |
| TikTok | ScavioTikTokVideoCommentsTool |
Video comments |
| TikTok | ScavioTikTokCommentRepliesTool |
Comment replies |
| TikTok | ScavioTikTokSearchVideosTool |
Video search by keyword |
| TikTok | ScavioTikTokSearchUsersTool |
User search by keyword |
| TikTok | ScavioTikTokHashtagTool |
Hashtag info |
| TikTok | ScavioTikTokHashtagVideosTool |
Videos by hashtag |
| TikTok | ScavioTikTokUserFollowersTool |
User's followers |
| TikTok | ScavioTikTokUserFollowingsTool |
User's followings |
| TikTok Shop | ScavioTikTokShopSearchTool |
Product search by keyword (US), with exact prices |
| TikTok Shop | ScavioTikTokShopSearchSuggestionsTool |
Keyword autocomplete across 8 regions |
| TikTok Shop | ScavioTikTokShopProductTool |
Full product detail (no price -- upstream masks it) |
| TikTok Shop | ScavioTikTokShopProductReviewsTool |
Paginated reviews, up to 200 per call |
| TikTok Shop | ScavioTikTokShopCategoriesTool |
Global category tree (240 nodes, 2 levels) |
| TikTok Shop | ScavioTikTokShopCategoryProductsTool |
Products under a category, with exact prices |
| TikTok Shop | ScavioTikTokShopShopProductsTool |
A seller's catalog, with exact prices |
| TikTok Shop | ScavioTikTokShopResolveTool |
Resolve a Shop URL or share link to an id |
ScavioInstagramProfileTool |
User profile lookup | |
ScavioInstagramUserPostsTool |
User's posts | |
ScavioInstagramUserReelsTool |
User's reels | |
ScavioInstagramTaggedPostsTool |
Posts user is tagged in | |
ScavioInstagramStoriesTool |
User's active stories | |
ScavioInstagramPostTool |
Post details | |
ScavioInstagramPostCommentsTool |
Post comments | |
ScavioInstagramCommentRepliesTool |
Comment replies | |
ScavioInstagramSearchUsersTool |
User search by keyword | |
ScavioInstagramSearchHashtagsTool |
Hashtag search by keyword | |
ScavioInstagramUserFollowersTool |
User's followers | |
ScavioInstagramUserFollowingsTool |
User's followings |
Usage Examples
Amazon Product Search
from crewai_scavio import ScavioAmazonSearchTool, ScavioAmazonOffersTool
amazon_tool = ScavioAmazonSearchTool(country="us", max_results=5)
result = amazon_tool.run("wireless noise cancelling headphones")
offers_tool = ScavioAmazonOffersTool()
offers = offers_tool.run(asin="B08N5WRWNW")
Amazon changed in 0.4.0 (breaking). The upstream provider moved.
domainis replaced bycountry, a two-letter marketplace code (us,gb-- the UK isgb, notuk--de,jp, ...).sort_by,pages,category_id,merchant_id,language,currency,device,zip_codeandautoselect_variantare gone: the marketplace ignores all of them, andsort_bywas verified to return the identical unordered set for every value, so they are removed rather than kept as silent no-ops. Product responses are normalized now --priceis a number with a siblingcurrency, not an object, andbuyboxis gone (useScavioAmazonOffersTool).
YouTube Video Search
from crewai_scavio import ScavioYouTubeSearchTool
youtube_tool = ScavioYouTubeSearchTool(max_results=5, sort_by="relevance")
result = youtube_tool.run("CrewAI tutorial")
Reddit Search
Results come back in relevance order under data.results. The endpoint takes
only query and cursor -- there is no sort or result-type filter. Paginate
by passing back the previous response's data.next_cursor.
from crewai_scavio import ScavioRedditSearchTool
reddit_tool = ScavioRedditSearchTool(max_results=10)
result = reddit_tool.run("AI agents")
TikTok Shop
Two things to know before wiring these together:
ScavioTikTokShopProductToolresolves only about 44% of the product ids thatScavioTikTokShopSearchToolreturns. Upstream has no detail data for the rest, so a not-found result is a normal outcome rather than an error -- skip the product instead of retrying. Search is a listing source, not the first leg of a reliable search-then-detail pipeline.ScavioTikTokShopProductTooldoes not return a price. Upstream masks the digits on the product page, soprice.currentandprice.originalcome back null. Exact prices are onScavioTikTokShopSearchTool,ScavioTikTokShopShopProductsToolandScavioTikTokShopCategoryProductsTool.
import json
from crewai_scavio import (
ScavioTikTokShopSearchTool,
ScavioTikTokShopProductTool,
ScavioTikTokShopProductReviewsTool,
)
# Listing data, including the exact price
search_tool = ScavioTikTokShopSearchTool(max_results=10)
page = json.loads(search_tool.run(search="phone case"))
for product in page["data"]["products"]:
print(product["title"], product["price"]["current"])
# Detail: rich, but priceless and only ~44% resolvable
detail_tool = ScavioTikTokShopProductTool()
detail = json.loads(detail_tool.run(product_id="1732293553906094315"))
if detail.get("not_found"):
pass # normal outcome: skip, do not retry
# Reviews: page with has_more, never with total_reviews (it drifts)
reviews_tool = ScavioTikTokShopProductReviewsTool(max_results=20)
reviews = json.loads(
reviews_tool.run(product_id="1732293553906094315", page_size=100)
)
Configuration
All tools accept api_key as a parameter, or read from the SCAVIO_API_KEY environment variable:
tool = ScavioSearchTool(api_key="sk_live_...", max_results=10)
About Scavio
Scavio is a unified search API built for AI agents — one API key, structured JSON, no scraping or proxies. A real-time Tavily alternative and SerpAPI alternative with data from:
- Google Search API — SERP results, news, images, maps, and knowledge graph
- Amazon Product API and Walmart Product API — product search and details
- YouTube API, TikTok API, and Instagram API — video and social media data
- Reddit API — posts and threaded comments
Get a free API key and explore the documentation. You can also compare Scavio vs alternatives on coverage and pricing.
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file crewai_scavio-0.5.0.tar.gz.
File metadata
- Download URL: crewai_scavio-0.5.0.tar.gz
- Upload date:
- Size: 35.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: uv/0.12.1 {"installer":{"name":"uv","version":"0.12.1","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
dace607e1b8907fcce04f4d3bac1bed01b4554d57d4b4d8aa96767e5ffd143d5
|
|
| MD5 |
5dac0450099c18b502e176c17bcc43ae
|
|
| BLAKE2b-256 |
ec61c6feee360a0ea3748c2e50489159b28dd98a943af0307639cd4361bde592
|
File details
Details for the file crewai_scavio-0.5.0-py3-none-any.whl.
File metadata
- Download URL: crewai_scavio-0.5.0-py3-none-any.whl
- Upload date:
- Size: 33.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: uv/0.12.1 {"installer":{"name":"uv","version":"0.12.1","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d4096c9531dd3e192b6c449eb553b0f04e6bfbad12d7660e2a96f422d02d887b
|
|
| MD5 |
a1ad1c4b9c5a2846df05b0bef8928077
|
|
| BLAKE2b-256 |
30a10f333117054a245a11810ac011c8f5a3b101011155cb9030f6be40491de3
|