Appearance
AI Keyword Data 2 Endpoints
AI Keyword Data provides search volume estimates and intent insights for keywords based on how users search within AI tools like ChatGPT, Gemini, and Perplexity. This is distinct from traditional Google Ads search volume — it reflects conversational AI search behavior.
Endpoints
| Call Name | Method | Endpoint |
|---|---|---|
| AI Keyword Data — Live | POST | /v3/ai_optimization/ai_keyword_data/live |
| AI Keyword Data Locations | GET | /v3/ai_optimization/ai_keyword_data/locations |
What It Returns
For each keyword:
- AI search volume — estimated monthly query count across AI platforms
- Intent type — informational, navigational, commercial, or transactional
- Intent probability — confidence score for the intent classification
- Trend data — how AI search volume has changed over time
When to Use It
Use AI Keyword Data when:
- Building a content strategy targeting AI-native audiences
- Determining whether a keyword gets more traction in AI search vs. traditional search
- Prioritizing keywords that have high conversational intent (better LLM citation potential)
- Comparing AI search volume to Google Ads volume to identify "AI-first" topics
Request Example
python
import os
import requests
from requests.auth import HTTPBasicAuth
auth = HTTPBasicAuth(os.environ["DATAFORSEO_LOGIN"], os.environ["DATAFORSEO_PASSWORD"])
BASE = "https://api.dataforseo.com"
keywords = [
"best roofing contractor near me",
"how much does a roof replacement cost",
"metal roof vs asphalt shingles",
"emergency roof repair same day"
]
r = requests.post(
f"{BASE}/v3/ai_optimization/ai_keyword_data/live",
auth=auth,
headers={"Content-Type": "application/json"},
json=[{
"keywords": keywords,
"location_code": 2840,
"language_code": "en"
}]
)
results = r.json()["tasks"][0]["result"]
for item in results:
print(f"{item['keyword']}: volume={item.get('search_volume', 0)}, intent={item.get('search_intent', 'unknown')}")Response Fields
| Field | Type | Description |
|---|---|---|
keyword | string | The queried keyword |
search_volume | integer | Estimated monthly AI search volume |
search_intent | string | informational, navigational, commercial, or transactional |
intent_probability | float | Confidence score 0–1 for intent classification |
monthly_searches | array | Month-by-month volume breakdown |
Integration in Full Audit
In the Full Merlino Audit, AI Keyword Data runs as part of Group 8 (AI Optimization). Always compare results against Google Ads volume for the same keywords:
python
def compare_ai_vs_google_volume(keywords):
# AI volume
ai_r = requests.post(
f"{BASE}/v3/ai_optimization/ai_keyword_data/live",
auth=auth,
headers={"Content-Type": "application/json"},
json=[{"keywords": keywords, "location_code": 2840, "language_code": "en"}]
)
ai_data = {item["keyword"]: item.get("search_volume", 0) for item in ai_r.json()["tasks"][0]["result"]}
# Google Ads volume
ga_r = requests.post(
f"{BASE}/v3/keywords_data/google_ads/search_volume/live",
auth=auth,
headers={"Content-Type": "application/json"},
json=[{"keywords": keywords, "location_code": 2840, "language_code": "en"}]
)
ga_data = {item["keyword"]: item.get("search_volume", 0) for item in ga_r.json()["tasks"][0]["result"]}
for kw in keywords:
ai_vol = ai_data.get(kw, 0)
ga_vol = ga_data.get(kw, 0)
ratio = (ai_vol / ga_vol) if ga_vol > 0 else 0
print(f"{kw}: AI={ai_vol}, Google={ga_vol}, AI/Google ratio={ratio:.2f}")Pricing
~$0.005 per request (supports batch of up to 1,000 keywords). Live method — instant results.
Notes
- AI search volume is lower than Google search volume by default — AI tools have smaller user bases
- High AI-to-Google volume ratio keywords are strong targets for LLM optimization content
- The
intent_probabilityfield helps prioritize which keywords to optimize for conversational AI answers - Available locations: use
GET /v3/ai_optimization/ai_keyword_data/locationsto retrieve supported location codes