Composio Integration
Scavio ships as a custom toolkit for Composio, the tool layer that connects your agents to external services across every major framework. Bind the Scavio toolkit to a Composio session and any Composio-powered agent gets real-time search across Google, YouTube, Amazon, Walmart, Reddit, TikTok, and Instagram — one toolkit, one API key, and a cost-effective Tavily and SerpAPI alternative. Available for both Python and TypeScript.
One toolkit, 32 tools
composio-scavio package exposes every Scavio endpoint as a Composio custom tool grouped under a single SCAVIO toolkit — broader platform coverage than Tavily or SerpAPI, at a fraction of the cost.Introduction
Composio is the tool layer that binds agents to external services across frameworks like OpenAI, LangChain, and CrewAI. The composio-scavio package (Python and TypeScript) wraps the official Scavio SDK and registers each endpoint as a provider-prefixed custom tool, so any Composio agent can call live search without bespoke glue code.
You bring two keys: a Scavio API key from dashboard.scavio.dev and a Composio API key from app.composio.dev. Because the tools run in-process against your own Scavio key, Composio never proxies the request — it handles auth, rate limiting, and request formatting through the SDK.
Step-by-Step Integration Guide
Step 1: Install
Requires Python 3.9+ or Node.js 18+. Install Composio alongside the Scavio toolkit:
pip install composio composio-scavioStep 2: Set your API key
Get a Scavio key at dashboard.scavio.dev (free credits, no card) and a Composio key at app.composio.dev, then export both:
export SCAVIO_API_KEY=sk_live_your_key
export COMPOSIO_API_KEY=your_composio_keyThe toolkit reads SCAVIO_API_KEY from the environment, or you can pass it explicitly when you build the toolkit.
Step 3: Basic usage
Build the toolkit, attach it to a Composio session, then hand the tools to your agent or call one directly:
from composio import Composio
from composio_scavio import build_scavio_toolkit
composio = Composio()
scavio = build_scavio_toolkit() # reads SCAVIO_API_KEY
session = composio.create(
user_id="user_1",
experimental={"custom_toolkits": [scavio]},
)
# Hand the tools to your agent, or call one directly:
result = session.execute(
"SCAVIO_GOOGLE_SEARCH",
arguments={"query": "best search API for AI agents", "light_request": True},
)
print(result)Tool slugs differ by language
SCAVIO toolkit; the agent-facing slug is the toolkit slug plus the tool name. In Python the slug is SCAVIO_GOOGLE_SEARCH; in TypeScript Composio prepends its reserved LOCAL_ prefix for custom tools, so the same tool is LOCAL_SCAVIO_GOOGLE_SEARCH. Use the matching form when you call session.execute(...).Available Tools
Each Scavio endpoint is exposed as a provider-prefixed tool (32 in total). Slugs below omit the SCAVIO_ / LOCAL_SCAVIO_ prefix for brevity. Every tool returns the Scavio response as a JSON object the model can read directly.
| Provider | Tools |
|---|---|
GOOGLE_SEARCH | |
| Amazon | AMAZON_SEARCH, AMAZON_PRODUCT |
| Walmart | WALMART_SEARCH, WALMART_PRODUCT |
| YouTube | YOUTUBE_SEARCH, YOUTUBE_METADATA |
REDDIT_SEARCH, REDDIT_POST | |
| TikTok | TIKTOK_PROFILE, TIKTOK_USER_POSTS, TIKTOK_VIDEO, TIKTOK_VIDEO_COMMENTS, TIKTOK_COMMENT_REPLIES, TIKTOK_SEARCH_VIDEOS, TIKTOK_SEARCH_USERS, TIKTOK_HASHTAG, TIKTOK_HASHTAG_VIDEOS, TIKTOK_USER_FOLLOWERS, TIKTOK_USER_FOLLOWINGS |
INSTAGRAM_PROFILE, INSTAGRAM_USER_POSTS, INSTAGRAM_USER_REELS, INSTAGRAM_USER_TAGGED, INSTAGRAM_USER_STORIES, INSTAGRAM_POST, INSTAGRAM_POST_COMMENTS, INSTAGRAM_COMMENT_REPLIES, INSTAGRAM_SEARCH_USERS, INSTAGRAM_SEARCH_HASHTAGS, INSTAGRAM_USER_FOLLOWERS, INSTAGRAM_USER_FOLLOWINGS |
Most calls cost 1 credit. Reddit and Instagram cost 2 credits, and Google costs 2 when light_request=false. See the rate limits reference for plan limits and the errors reference for retry guidance.
Advanced Example
Every provider is enabled by default, and each is gated by a flag, so you can expose a lean, web-only tool list to the model. Pass all=True (Python) or { all: true } (TypeScript) to register every tool regardless of the individual flags.
from composio import Composio
from composio_scavio import build_scavio_toolkit
# Web-only toolkit (Google, YouTube, Reddit)
scavio = build_scavio_toolkit(
enable_google=True,
enable_youtube=True,
enable_reddit=True,
enable_amazon=False,
enable_walmart=False,
enable_tiktok=False,
enable_instagram=False,
)
composio = Composio()
session = composio.create(
user_id="user_1",
experimental={"custom_toolkits": [scavio]},
)
result = session.execute(
"SCAVIO_REDDIT_SEARCH",
arguments={"query": "Tavily alternatives"},
)
print(result)Benefits of Scavio + Composio
- Cross-framework: one toolkit works with every Composio-supported agent framework.
- Multi-platform: web, video, shopping, and social in a single API key.
- Lean tool lists: per-provider flags expose only the tools the model needs.
- Cost-effective: most calls cost a single credit — a Tavily and SerpAPI alternative.
Next Steps
- Scavio API quickstart — keys and first request
- Google Search API reference — params and response shape
- Rate limits — plan limits and concurrency
- Composio documentation
- composio-scavio on GitHub (Python)
- composio-scavio on GitHub (TypeScript)