The Problem
Agent platforms need to provide web data access to customer agents. Each customer's agents perform different searches at unpredictable volumes. Building a shared data layer requires: a search backend that scales, per-tenant usage tracking for billing attribution, rate limiting per customer, and multi-platform coverage. Integrating 3-4 separate data providers with different auth, billing, and rate limits creates an operational nightmare.
The Scavio Solution
Use Scavio as the unified data layer for your agent platform. One API key per tenant (or shared key with tenant tracking middleware). All 6 platforms through one endpoint. Per-query pricing at $0.005 maps cleanly to credit-based customer billing. Mark up to $0.01-$0.02/query for platform margin. The data layer becomes a profit center, not just infrastructure cost.
Before
Before the unified layer, the agent platform integrated SerpAPI for Google, Amazon API for products, and Reddit API for discussions. Three separate auth systems, three billing relationships, and three sets of rate limits to manage per tenant.
After
After consolidating to Scavio, one API key and one billing relationship cover all 6 platforms. Usage tracking middleware attributes queries to tenants for billing. The data layer margin (2-4x markup on $0.005 base cost) contributes positively to platform economics.
Who It Is For
Teams building AI agent platforms that need to provide web data access to customer agents. SaaS companies adding agent capabilities that require search data with per-tenant billing attribution.
Key Benefits
- One API covers 6 platforms: Google, Amazon, YouTube, TikTok, Walmart, Reddit
- Per-query pricing maps to credit-based customer billing
- Data layer generates profit margin at 2-4x markup
- Simplified vendor management: one auth, one invoice, one integration
- Bulk pricing tiers reduce base cost as platform scales
Python Example
import requests
from datetime import datetime
from collections import defaultdict
API_KEY = "your_scavio_api_key"
MARKUP = 0.015 # charge $0.02/query, pay $0.005
# Simple tenant usage tracker
tenant_usage = defaultdict(lambda: {"queries": 0, "cost": 0.0, "revenue": 0.0})
def tenant_search(tenant_id: str, query: str, platform: str = "google") -> dict:
"""Search with tenant usage tracking."""
res = requests.post(
"https://api.scavio.dev/api/v1/search",
headers={"x-api-key": API_KEY},
json={"platform": platform, "query": query},
timeout=15,
)
res.raise_for_status()
# Track usage
tenant_usage[tenant_id]["queries"] += 1
tenant_usage[tenant_id]["cost"] += 0.005
tenant_usage[tenant_id]["revenue"] += 0.005 + MARKUP
data = res.json()
return {
"results": data.get("organic", [])[:5],
"query": query,
"platform": platform,
}
def billing_report() -> dict:
total_cost = sum(t["cost"] for t in tenant_usage.values())
total_revenue = sum(t["revenue"] for t in tenant_usage.values())
return {
"date": datetime.utcnow().strftime("%Y-%m-%d"),
"total_queries": sum(t["queries"] for t in tenant_usage.values()),
"total_cost": round(total_cost, 2),
"total_revenue": round(total_revenue, 2),
"margin": round(total_revenue - total_cost, 2),
"per_tenant": dict(tenant_usage),
}
# Simulate multi-tenant usage
tenant_search("tenant_a", "best crm software", "google")
tenant_search("tenant_a", "salesforce reviews", "reddit")
tenant_search("tenant_b", "laptop deals", "amazon")
report = billing_report()
print(f"Queries: {report['total_queries']}, Cost: ${report['total_cost']}, Revenue: ${report['total_revenue']}, Margin: ${report['margin']}")JavaScript Example
const API_KEY = "your_scavio_api_key";
const MARKUP = 0.015;
const tenantUsage = {};
async function tenantSearch(tenantId, query, platform = "google") {
const res = await fetch("https://api.scavio.dev/api/v1/search", {
method: "POST",
headers: { "x-api-key": API_KEY, "content-type": "application/json" },
body: JSON.stringify({ platform, query }),
});
if (!res.ok) throw new Error(`scavio ${res.status}`);
if (!tenantUsage[tenantId]) tenantUsage[tenantId] = { queries: 0, cost: 0, revenue: 0 };
tenantUsage[tenantId].queries++;
tenantUsage[tenantId].cost += 0.005;
tenantUsage[tenantId].revenue += 0.005 + MARKUP;
const data = await res.json();
return { results: (data.organic ?? []).slice(0, 5), query, platform };
}
await tenantSearch("tenant_a", "best crm software");
await tenantSearch("tenant_a", "salesforce reviews", "reddit");
await tenantSearch("tenant_b", "laptop deals", "amazon");
const totalCost = Object.values(tenantUsage).reduce((s, t) => s + t.cost, 0);
const totalRevenue = Object.values(tenantUsage).reduce((s, t) => s + t.revenue, 0);
console.log(`Cost: $${totalCost.toFixed(2)}, Revenue: $${totalRevenue.toFixed(2)}, Margin: $${(totalRevenue - totalCost).toFixed(2)}`);Platforms Used
Web search with knowledge graph, PAA, and AI overviews
Amazon
Product search with prices, ratings, and reviews
YouTube
Video search with transcripts and metadata
TikTok
Trending video, creator, and product discovery
Walmart
Product search with pricing and fulfillment data
Community, posts & threaded comments from any subreddit