Outscraper is the standard answer for bulk Google Maps records: $3 per 1,000 basic records, free first 500/mo. For agencies that need agent-shaped per-lead enrichment instead of raw bulk records, the calculus changes. The honest comparison is per-job, not per-vendor.
What Outscraper is right for
Bulk Maps records at scale. 50K+ records this month? Outscraper wins on price and is purpose-built. The first 500 records/mo are free; basic records run $3/1K; full profile (with email, photos, reviews) runs $14/1K. PAYG, no monthly minimum, mature tooling.
What Scavio is right for
Per-lead enrichment plus AI visibility scoring. Find local businesses with the Google Maps search endpoint, verify each website via the extract endpoint, score AI visibility with a Google search on the business name and a check of the ai_overview citations. The same key handles all three steps at $0.0043/query.
The cost gap at full enrichment
Outscraper full-profile records cost $14/1K = $0.014/record. Scavio at 3 queries per fully-enriched lead (find + verify + score) = 3 × $0.0043 = $0.013/record. The per-record cost is roughly equivalent at the full-enrichment tier. Per-record cost stops being the deciding factor.
What decides the question instead
Agent control. Outscraper records arrive as a flat CSV. Scavio results arrive as typed JSON the agent can reason about, fan out from, and personalize. For workflows that end at "CSV import to CRM", Outscraper is enough. For workflows that end at "personalized opener with reference to the prospect's actual website", Scavio fits.
import os, requests
from urllib.parse import urlparse
API = 'https://api.scavio.dev'
H = {'Authorization': f"Bearer {os.environ['SCAVIO_API_KEY']}"}
def fully_enriched_lead(city, niche, ll):
# 1. Find: Google Maps search, up to 20 places per call (ll = '@lat,lng,zoomz')
leads = requests.post(f'{API}/api/v2/google/maps/search', headers=H,
json={'query': f'{niche} {city}', 'll': ll}, timeout=90).json().get('local_results', [])
out = []
for lead in leads:
if lead.get('website'):
# 2. Verify: the lead's own website as markdown
md = requests.post(f'{API}/api/v1/extract', headers=H,
json={'url': lead['website'], 'format': 'markdown'}, timeout=90).json()
domain = urlparse(lead['website']).netloc.removeprefix('www.')
# 3. Score: is the business's site cited in the AI Overview for its name?
serp = requests.post(f'{API}/api/v2/google', headers=H,
json={'query': lead['title']}, timeout=90).json()
refs = (serp.get('ai_overview') or {}).get('references', [])
cited = any(domain in (r.get('link') or '') for r in refs)
out.append({
**lead,
'site_excerpt': md.get('data', {}).get('content', '')[:500],
'ai_visibility_cited': cited
})
return out
leads = fully_enriched_lead('Austin', 'plumber', '@30.2672,-97.7431,12z')The hybrid pattern most agencies actually run
Outscraper for the seed pull (bulk records). Scavio for everything per-lead after (verify, score, draft personalized opener). Combined cost is roughly $110/mo for a solo agency processing 1,000 leads/week: about $12 of Outscraper seed records plus Scavio's $100/mo Bootstrap plan for the two per-lead calls. Each tool does what it's best at.
The Reddit signal layer
Outscraper does not surface Reddit threads about local businesses. Scavio's reddit/search endpoint catches community discussions of named businesses (r/Austin, r/personalfinance, r/services subs). For B2B sellers, Reddit complaints about a business are direct buying signal — that business is ripe for a switch pitch.
Cost math at agency scale
Solo agency processing 4,000 leads/month with full enrichment: Outscraper full-profile: 4,000 × $0.014 = $56/mo. Scavio: 4,000 × 3 queries × $0.0043 = $52/mo plus need to upgrade past Project tier (7,000 credits) to Bootstrap ($100/mo for 28K credits). Both options sit in the $50-100/mo band. Decision is on agent control and per-lead intelligence, not raw price.
The migration story
Most agencies don't migrate fully. They keep Outscraper for what it's good at (bulk seed pulls) and add Scavio for what Outscraper doesn't do (per-lead verification, AI visibility scoring, personalized opener context). Total stack adds $30-100/mo to existing Outscraper usage and unlocks 3-5x the per-client retainer ceiling.
What this isn't
Not an attack on Outscraper. The tool is genuinely good for what it's built for. The point is that "what it's built for" isn't the same as "what most agencies actually need". The hybrid pattern is the honest answer.