SEO Keyword API for Agencies Without Ahrefs
Small agencies can't afford Ahrefs or Semrush. Build keyword research with SERP APIs: PAA extraction, SERP analysis, competitor gaps.
Ahrefs starts at $99/mo. Semrush starts at $129/mo. For a three-person agency doing SEO for five clients, those costs add up fast, especially when most of the work is keyword research and SERP analysis rather than full-blown backlink audits. You can build a surprisingly capable keyword research workflow using SERP APIs at a fraction of the cost.
What SERP APIs can replace
- People Also Ask extraction -- Google returns PAA boxes in SERP results. These are free keyword ideas from Google itself.
- SERP feature analysis -- Track which keywords trigger featured snippets, AI overviews, video carousels, or local packs.
- Competitor SERP overlap -- Search your target keywords and see which domains consistently rank. Build a competitor map from SERP data.
- Ranking position tracking -- Daily SERP checks for your target keywords. Compare positions over time.
What SERP APIs cannot replace
Be honest about the gaps. SERP APIs do not give you backlink data. They do not give you domain authority scores. They do not give you keyword difficulty metrics based on link profiles. They do not show you historical ranking trends from before you started tracking. If your agency work depends heavily on backlink analysis or competitive link gap reports, you still need Ahrefs or Semrush. There is no shortcut around that.
People Also Ask extraction
PAA boxes are the most underused keyword research source. Each PAA question is a real query that Google associates with your seed keyword. Extract them programmatically and you have a content calendar in minutes.
import requests, os
H = {'x-api-key': os.environ['SCAVIO_API_KEY']}
URL = 'https://api.scavio.dev/api/v1/search'
def extract_paa(seed_keywords: list[str]) -> list[dict]:
"""Extract People Also Ask questions for a list of seed keywords."""
all_paa = []
for kw in seed_keywords:
resp = requests.post(URL, headers=H,
json={'platform': 'google', 'query': kw}, timeout=15)
data = resp.json()
paa = data.get('people_also_ask', [])
for item in paa:
all_paa.append({
'seed': kw,
'question': item.get('question'),
'snippet': item.get('snippet'),
'source': item.get('link')
})
return all_paa
seeds = ['email marketing software', 'crm for startups', 'project management tool']
questions = extract_paa(seeds)
for q in questions:
print(f"[{q['seed']}] {q['question']}")SERP feature tracking
Not all keywords are created equal. A keyword that triggers an AI Overview pushes organic results below the fold. A keyword with a featured snippet gives you a chance to grab position zero. Track which SERP features appear for each target keyword.
import requests, os
H = {'x-api-key': os.environ['SCAVIO_API_KEY']}
URL = 'https://api.scavio.dev/api/v1/search'
def analyze_serp_features(keyword: str) -> dict:
resp = requests.post(URL, headers=H,
json={'platform': 'google', 'query': keyword}, timeout=15)
data = resp.json()
return {
'keyword': keyword,
'has_ai_overview': bool(data.get('ai_overview')),
'has_featured_snippet': bool(data.get('answer_box')),
'has_paa': bool(data.get('people_also_ask')),
'has_video_carousel': bool(data.get('inline_videos')),
'has_local_pack': bool(data.get('local_results')),
'organic_count': len(data.get('organic_results', []))
}
keywords = ['best crm 2026', 'how to set up email marketing', 'project management vs task management']
for kw in keywords:
features = analyze_serp_features(kw)
print(f"{kw}: AI Overview={'yes' if features['has_ai_overview'] else 'no'}, "
f"Snippet={'yes' if features['has_featured_snippet'] else 'no'}")Cost math for a small agency
A typical small agency tracks 200 keywords daily and runs 50 research queries per week. That is roughly 6,200 API calls per month. With Scavio at $0.005 per credit, that costs $31/mo. Compare to Ahrefs at $99/mo or Semrush at $129/mo. You save $68-98/mo but lose backlink data and keyword difficulty scores. For agencies focused on content-driven SEO rather than link building, the tradeoff makes sense.
The hybrid approach
The most practical setup for budget-conscious agencies: use a SERP API for daily keyword tracking, PAA extraction, and SERP feature monitoring. Keep one Ahrefs Lite seat for monthly backlink audits and competitive link analysis. This cuts your tooling cost from $200+/mo to roughly $130/mo while covering all the bases.
- SERP API for daily keyword tracking and PAA extraction ($30/mo)
- Ahrefs Lite for monthly backlink audits ($99/mo)
- Total: $129/mo vs $228/mo for both full-tier subscriptions