Keywords
Search Intent
Classify search intent for up to 1,000 keywords, with a confidence probability and secondary intents.
POST
$0.02/call/v1/seo/keywords/intentUsage
const res = await fetch('https://api.yepapi.com/v1/seo/keywords/intent', {
method: 'POST',
headers: {
'x-api-key': 'YOUR_API_KEY',
'Content-Type': 'application/json',
},
body: JSON.stringify({ keywords: ['seo api', 'buy running shoes'] }),
});
const { data } = await res.json();
console.log(data);curl -X POST https://api.yepapi.com/v1/seo/keywords/intent \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"keywords": ["seo api", "buy running shoes"]}'Request Body
| Parameter | Type | Required | Description | Default |
|---|---|---|---|---|
keywords | string[] | Yes | Array of keywords to classify (max 1,000) | — |
language | string | No | ISO language code (e.g., en, es) | "en" |
Response
{
"ok": true,
"data": {
"keywords": [
{
"intent": "informational",
"keyword": "seo api",
"probability": 0.972,
"secondaryIntents": []
},
{
"intent": "transactional",
"keyword": "buy running shoes",
"probability": 1,
"secondaryIntents": []
}
]
}
}Response Fields
| Field | Type | Description |
|---|---|---|
ok | boolean | Whether the request succeeded |
data.keywords | object[] | Array of intent classification results |
data.keywords[].keyword | string | The analyzed keyword |
data.keywords[].intent | string | Primary search intent (informational, commercial, navigational, or transactional) |
data.keywords[].probability | number | Confidence in the primary intent (0-1) |
data.keywords[].secondaryIntents | string[] | Additional intents that also apply, in order of relevance (empty when the primary intent is unambiguous) |
Under the Hood
Intent classification helps you group keywords by user goal so you can map them to the right page type — informational content, commercial comparisons, or transactional landing pages.