Le problème
Les fournisseurs d'API SERP utilisent des modèles de facturation incompatibles : par recherche, par crédit, par 1 000 résultats, file d'attente vs temps réel, mensuel vs prépayé. Comparer Scavio à 0,005 $/crédit contre DataForSEO à 0,002 $/requête live contre Serper à 0,001 $/crédit contre SerpAPI à 0,025 $/recherche contre Exa à 0,007 $/recherche n'est pas un tableau simple. Certains incluent les AI Overviews gratuitement, d'autres facturent un supplément. Certains reportent les crédits, d'autres les font expirer. Les équipes achats créent des tableurs qui deviennent obsolètes le jour même de leur finalisation, et un mauvais choix gaspille des milliers de dollars par trimestre.
La solution Scavio
Construisez un calculateur de coûts qui normalise chaque fournisseur en une unité commune : le coût pour 1 000 requêtes à votre volume réel. Saisissez votre nombre mensuel de requêtes, votre mix de plateformes et votre exigence de latence, et le calculateur génère un classement comparatif. Scavio coûte 0,005 $/crédit avec 1 crédit par requête, quelle que soit la plateforme. DataForSEO Live coûte 0,002 $/requête. Serper coûte 0,001 $/crédit au palier de 50 $, jusqu'à 0,0003 $ à grande échelle. SerpAPI démarre à 0,025 $/recherche. Le script prend en compte les niveaux gratuits, les remises de volume et les politiques d'expiration, afin que les équipes achats voient le vrai chiffre, pas celui de la page marketing.
Avant
Avant cette approche, les équipes achats comparaient les prix catalogue des pages marketing et choisissaient l'option la moins chère, pour découvrir ensuite des coûts cachés liés aux suppléments de plateforme, à l'expiration des crédits ou à des fonctionnalités manquantes comme l'extraction des AI Overviews.
Après
Après avoir construit un calculateur de coûts normalisés, les équipes achats voient le coût réel pour 1 000 requêtes selon leur volume réel et leur mix de plateformes. La sélection des fournisseurs prend des heures au lieu de semaines, et le fournisseur choisi permet systématiquement d'économiser 20 à 40 % par rapport au choix naïf.
À qui cela s'adresse
Équipes achats évaluant les fournisseurs d'API SERP, responsables ingénierie construisant des modèles de coûts pour l'infrastructure des agents, et fondateurs choisissant leur premier fournisseur d'API de recherche.
Avantages clés
- Normalise les modèles de facturation incompatibles en coût par 1 000 requêtes
- Prend en compte les niveaux gratuits, les remises de volume et l'expiration des crédits
- Compare les niveaux de latence (file d'attente vs temps réel) à leur coût réel
- Se met à jour dynamiquement lorsque les fournisseurs modifient leurs prix
- Inclut les lacunes de couverture des plateformes qui affectent le coût total de possession
Exemple Python
import json
# Verified pricing as of May 2026
VENDORS = {
"scavio": {
"per_query": 0.005,
"free_monthly": 250,
"plans": {
"on_demand": {"per_query": 0.005},
"project": {"monthly": 30, "credits": 7000},
"bootstrap": {"monthly": 100, "credits": 28000},
"startup": {"monthly": 250, "credits": 85000},
"growth": {"monthly": 500, "credits": 200000},
},
"platforms": ["google", "youtube", "amazon", "walmart", "reddit", "tiktok"],
"notes": "1 credit = 1 request, all platforms same price",
},
"dataforseo_live": {
"per_query": 0.002,
"free_monthly": 0,
"min_deposit": 50,
"platforms": ["google", "youtube", "amazon"],
"notes": "Live mode $0.002, queue mode $0.0006 with ~5 min delay",
},
"serper": {
"per_query": 0.001,
"free_onetime": 2500,
"packs": {
"50k": {"cost": 50, "per_query": 0.001},
"500k": {"cost": 375, "per_query": 0.00075},
"2.5m": {"cost": 1250, "per_query": 0.0005},
},
"platforms": ["google"],
"notes": "Credits valid 6 months, Google only",
},
"serpapi": {
"per_query": 0.025,
"free_monthly": 100,
"plans": {
"starter": {"monthly": 25, "searches": 1000},
"enterprise": {"monthly": 3750, "searches": 100000},
},
"platforms": ["google", "youtube", "amazon", "walmart"],
"notes": "Unused searches do not roll over",
},
"exa": {
"per_query": 0.007,
"free_monthly": 1000,
"platforms": ["google"],
"notes": "$7/1k searches with 10 results",
},
}
def calculate_cost(vendor: str, monthly_queries: int) -> dict:
v = VENDORS[vendor]
if "plans" in v and vendor == "scavio":
# Find cheapest Scavio plan
best_plan = None
best_cost = monthly_queries * v["per_query"] # on-demand fallback
for name, plan in v["plans"].items():
if "monthly" in plan and plan["credits"] >= monthly_queries:
if plan["monthly"] < best_cost:
best_cost = plan["monthly"]
best_plan = name
return {
"vendor": vendor,
"monthly_queries": monthly_queries,
"monthly_cost": round(best_cost, 2),
"cost_per_1k": round((best_cost / monthly_queries) * 1000, 2),
"plan": best_plan or "on_demand",
}
else:
cost = monthly_queries * v["per_query"]
free = v.get("free_monthly", 0)
billable = max(0, monthly_queries - free)
cost = billable * v["per_query"]
return {
"vendor": vendor,
"monthly_queries": monthly_queries,
"monthly_cost": round(cost, 2),
"cost_per_1k": round((cost / max(monthly_queries, 1)) * 1000, 2),
}
monthly_volume = 10000
results = [calculate_cost(v, monthly_volume) for v in VENDORS]
results.sort(key=lambda x: x["monthly_cost"])
print(f"Cost comparison for {monthly_volume:,} queries/month:\n")
for r in results:
print(f" {r['vendor']:20s} ${r['monthly_cost']:>8.2f}/mo (${r['cost_per_1k']:.2f}/1k queries)")Exemple JavaScript
const VENDORS = {
scavio: { perQuery: 0.005, freeMonthly: 250, platforms: ["google", "youtube", "amazon", "walmart", "reddit", "tiktok"] },
dataforseo_live: { perQuery: 0.002, freeMonthly: 0, platforms: ["google", "youtube", "amazon"] },
serper: { perQuery: 0.001, freeOnetime: 2500, platforms: ["google"] },
serpapi: { perQuery: 0.025, freeMonthly: 100, platforms: ["google", "youtube", "amazon", "walmart"] },
exa: { perQuery: 0.007, freeMonthly: 1000, platforms: ["google"] },
};
function calculateCost(vendor, monthlyQueries) {
const v = VENDORS[vendor];
const free = v.freeMonthly ?? 0;
const billable = Math.max(0, monthlyQueries - free);
const cost = billable * v.perQuery;
return {
vendor,
monthlyQueries,
monthlyCost: Math.round(cost * 100) / 100,
costPer1k: Math.round((cost / Math.max(monthlyQueries, 1)) * 1000 * 100) / 100,
platforms: v.platforms,
};
}
const volume = 10000;
const results = Object.keys(VENDORS).map((v) => calculateCost(v, volume));
results.sort((a, b) => a.monthlyCost - b.monthlyCost);
console.log(`Cost comparison for ${volume.toLocaleString()} queries/month:\n`);
for (const r of results) {
console.log(` ${r.vendor.padEnd(20)} $${r.monthlyCost.toFixed(2).padStart(8)}/mo ($${r.costPer1k.toFixed(2)}/1k queries)`);
}Plateformes utilisées
Recherche web avec graphe de connaissances, PAA et aperçus IA
YouTube
Recherche de vidéos avec transcriptions et métadonnées
Amazon
Recherche de produits avec prix, notes et avis
Walmart
Recherche de produits avec données de prix et d'exécution
Communauté, publications et commentaires imbriqués de n'importe quel subreddit
TikTok
Découverte de vidéos tendance, créateurs et produits