Skip to main content

crewai-scavio

CrewAI integration for the Scavio Search API, a search API for AI agents. Provides 97 search tools -- one per Scavio endpoint -- across Google, Amazon, Walmart, YouTube, Reddit, TikTok, TikTok Shop, Instagram, X (Twitter), and LinkedIn 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
Google ScavioSearchTool Web search with knowledge graphs and related questions
Google ScavioGoogleAiModeTool AI Mode conversational answer with references
Google ScavioGoogleMapsSearchTool Local business results (place_id + data_id per hit)
Google ScavioGoogleMapsPlaceTool Place details by place_id or data_cid
Google ScavioGoogleMapsReviewsTool Place reviews, up to 20 per page
Google ScavioGoogleShoppingTool Shopping listings with price and shipping filters
Google ScavioGoogleShoppingProductTool Shopping product detail and seller list
Google ScavioGoogleShoppingStoresTool More sellers for a shopping product
Google ScavioGoogleFlightsTool Flight itineraries between two airports
Google ScavioGoogleHotelsTool Hotel search for a destination and date range
Google ScavioGoogleHotelsDetailTool Property details and booking sources
Google ScavioGoogleNewsTool News by query, topic, story, or publication
Google ScavioGoogleTrendsTool Trends interest over time and by region
Google ScavioGoogleTrendingTool Trending Now searches for a country
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
YouTube ScavioYouTubeShortsTool Shorts search by keyword
YouTube ScavioYouTubeSuggestionsTool Search autocomplete suggestions
YouTube ScavioYouTubeCommentRepliesTool Replies to a comment, via its reply_cursor
YouTube ScavioYouTubeRelatedTool Videos related to a video
YouTube ScavioYouTubeChannelSearchTool Channel search by keyword
YouTube ScavioYouTubeChannelShortsTool Shorts posted by a channel
YouTube ScavioYouTubeChannelCommunityTool A channel's community posts
YouTube ScavioYouTubeChannelResolveTool Resolve an @handle or URL to a channel ID
Walmart ScavioWalmartSearchTool Product search with price/fulfillment filters
Walmart ScavioWalmartProductTool Product details by ID
Reddit ScavioRedditSearchTool Post search with cursor pagination
Reddit ScavioRedditSearchSuggestionsTool Search query autocomplete
Reddit ScavioRedditPostTool Post details by url or post_id (no comments)
Reddit ScavioRedditPostCommentsTool Top-level comments on a post
Reddit ScavioRedditCommentRepliesTool Replies to a comment, via its reply_cursor
Reddit ScavioRedditSubredditTool Subreddit metadata
Reddit ScavioRedditSubredditPostsTool A subreddit's post feed (accepts RISING)
Reddit ScavioRedditUserTool Redditor profile and karma
Reddit ScavioRedditUserPostsTool A redditor's submitted posts
Reddit ScavioRedditUserCommentsTool A redditor's comments
Reddit ScavioRedditPopularTool Site-wide popular feed
Reddit ScavioRedditTrendingTool Trending Reddit searches
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
Instagram ScavioInstagramProfileTool User profile lookup
Instagram ScavioInstagramUserPostsTool User's posts
Instagram ScavioInstagramUserReelsTool User's reels
Instagram ScavioInstagramTaggedPostsTool Posts user is tagged in
Instagram ScavioInstagramStoriesTool User's active stories
Instagram ScavioInstagramPostTool Post details
Instagram ScavioInstagramPostCommentsTool Post comments
Instagram ScavioInstagramCommentRepliesTool Comment replies
Instagram ScavioInstagramSearchUsersTool User search by keyword
Instagram ScavioInstagramSearchHashtagsTool Hashtag search by keyword
Instagram ScavioInstagramUserFollowersTool User's followers
Instagram ScavioInstagramUserFollowingsTool User's followings
X ScavioXSearchTool Tweet / people search (query field is search)
X ScavioXTweetTool Tweet details by id
X ScavioXTweetCommentsTool Replies to a tweet
X ScavioXTweetRetweetersTool Users who retweeted a tweet
X ScavioXUserTool Profile by screen name
X ScavioXUserTweetsTool A user's tweets
X ScavioXUserRepliesTool A user's replies
X ScavioXUserMediaTool A user's media tweets
X ScavioXUserFollowersTool A user's followers
X ScavioXUserFollowingsTool A user's followings (response key is following)
X ScavioXTrendingTool Trends by country name (e.g. 'UnitedStates')
LinkedIn ScavioLinkedInPersonTool Person profile by username or URL
LinkedIn ScavioLinkedInPersonAboutTool A person's about section
LinkedIn ScavioLinkedInPersonPostsTool A person's posts, comments, or reactions
LinkedIn ScavioLinkedInCompanyTool Company profile with featured employees
LinkedIn ScavioLinkedInCompanyPostsTool A company's posts
LinkedIn ScavioLinkedInSearchJobsTool Job search
LinkedIn ScavioLinkedInJobTool Job details by id
LinkedIn ScavioLinkedInPostTool Post details by id or URL
LinkedIn ScavioLinkedInPostCommentsTool Post comments (paged by integer page)

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. domain is replaced by country, a two-letter marketplace code (us, gb -- the UK is gb, not uk -- de, jp, ...). sort_by, pages, category_id, merchant_id, language, currency, device, zip_code and autoselect_variant are gone: the marketplace ignores all of them, and sort_by was 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 -- price is a number with a sibling currency, not an object, and buybox is gone (use ScavioAmazonOffersTool).

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")

/reddit/post returns a flat post object with no comments. Fetch the thread in a second call, then drill into a comment with its reply_cursor:

from crewai_scavio import (
    ScavioRedditCommentRepliesTool,
    ScavioRedditPostCommentsTool,
)

comments_tool = ScavioRedditPostCommentsTool(max_results=20)
comments = comments_tool.run(post_id="t3_1v6ngaf", sort="TOP")

# cursor is REQUIRED here and must be a comment's reply_cursor,
# not the feed's next_cursor.
replies_tool = ScavioRedditCommentRepliesTool()
replies = replies_tool.run(post_id="t3_1v6ngaf", cursor="<reply_cursor>")

The subreddit and user feeds return data.posts, not data.results. Sort values are uppercase, and RISING exists on the subreddit feed only.

Google Maps

Maps is a two-step lookup: search for the business, then use the place_id or data_id it returns. Google responses are flat -- there is no data wrapper.

from crewai_scavio import ScavioGoogleMapsReviewsTool, ScavioGoogleMapsSearchTool

maps_tool = ScavioGoogleMapsSearchTool(max_results=5)
places = maps_tool.run(query="coffee in brooklyn", gl="us")

reviews_tool = ScavioGoogleMapsReviewsTool(max_results=20)
reviews = reviews_tool.run(place_id="<place_id>", sort_by="newest")

TikTok Shop

Two things to know before wiring these together:

  1. ScavioTikTokShopProductTool resolves only about 44% of the product ids that ScavioTikTokShopSearchTool returns. 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.
  2. ScavioTikTokShopProductTool does not return a price. Upstream masks the digits on the product page, so price.current and price.original come back null. Exact prices are on ScavioTikTokShopSearchTool, ScavioTikTokShopShopProductsTool and ScavioTikTokShopCategoryProductsTool.
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:

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

crewai_scavio-0.6.0.tar.gz (52.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

crewai_scavio-0.6.0-py3-none-any.whl (44.0 kB view details)

Uploaded Python 3

File details

Details for the file crewai_scavio-0.6.0.tar.gz.

File metadata

  • Download URL: crewai_scavio-0.6.0.tar.gz
  • Upload date:
  • Size: 52.0 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

Hashes for crewai_scavio-0.6.0.tar.gz
Algorithm Hash digest
SHA256 9e8eb97b39c511fdb1565c27f58a8865c94e196c443b15c77624871b8960ab9f
MD5 de01b0ad00fd6c8bb71b054fc8118828
BLAKE2b-256 d70d8b4820cbf0f955fa953924b5d4c2b1a0949121f485a19cd52551a69878a8

See more details on using hashes here.

File details

Details for the file crewai_scavio-0.6.0-py3-none-any.whl.

File metadata

  • Download URL: crewai_scavio-0.6.0-py3-none-any.whl
  • Upload date:
  • Size: 44.0 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

Hashes for crewai_scavio-0.6.0-py3-none-any.whl
Algorithm Hash digest
SHA256 33ab7ec48d56be14ed0cc63740086e47b8bf373b72696e3d253ef1aa7526ffde
MD5 b0f07feafdb6ec6035db9faa11307e3a
BLAKE2b-256 75fdad4fdf6d4e08095cb5cf2df677f020aa9a1f5639642ade99c6515df40dd6

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page