YepAPI
Keywords

Keyword Research

Get search volume, CPC, competition, and difficulty for up to 100 keywords per request.

POST/v1/seo/keywords
$0.11/call

Usage

const res = await fetch('https://api.yepapi.com/v1/seo/keywords', {
  method: 'POST',
  headers: {
    'x-api-key': 'YOUR_API_KEY',
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({ keywords: ['nextjs seo', 'vibe coding'], location_code: 2840 }),
});
const { data } = await res.json();
console.log(data);
curl -X POST https://api.yepapi.com/v1/seo/keywords \
  -H "x-api-key: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"keywords": ["nextjs seo", "vibe coding"], "location_code": 2840}'

Request Body

ParameterTypeRequiredDescriptionDefault
keywordsstring[]YesArray of keywords to analyze (max 100)
location_codenumberNoTarget country code (e.g., 2840 for US). See Location Codes.2840
languagestringNoISO language code (e.g., en, es)"en"
Info

We support 90+ countries via location_code. See the full list at Location Codes Reference. You can also pass a location string (e.g. "us") as a fallback.

Response

{
  "ok": true,
  "data": {
    "keywords": [
      {
        "keyword": "nextjs seo",
        "volume": 390,
        "cpc": 0.0,
        "difficulty": 0,
        "competition": 0.01,
        "competitionLevel": "LOW",
        "intent": "unknown",
        "avgBacklinks": 0.0,
        "avgReferringDomains": 0.0,
        "serpFeatures": [],
        "totalResults": 0,
        "trend": [
          { "month": "2026-03", "volume": 390 },
          { "month": "2026-02", "volume": 140 },
          { "month": "2026-01", "volume": 170 }
        ]
      },
      {
        "keyword": "vibe coding",
        "volume": 0,
        "cpc": 0.0,
        "difficulty": 0,
        "competition": 0.0,
        "competitionLevel": "unknown",
        "intent": "unknown",
        "avgBacklinks": 0.0,
        "avgReferringDomains": 0.0,
        "serpFeatures": [],
        "totalResults": 0,
        "trend": []
      }
    ]
  }
}

Response Fields

FieldTypeDescription
okbooleanWhether the request succeeded
data.keywordsobject[]Array of keyword analysis results
data.keywords[].keywordstringThe analyzed keyword
data.keywords[].volumenumberAverage monthly search volume
data.keywords[].cpcnumberCost per click in USD
data.keywords[].difficultynumberSEO difficulty score (0-100)
data.keywords[].competitionnumberPPC competition index (0-1)
data.keywords[].competitionLevelstringCompetition category (LOW, MEDIUM, HIGH, or unknown)
data.keywords[].intentstringSearch intent (informational, commercial, navigational, transactional, or unknown)
data.keywords[].avgBacklinksnumberAverage number of backlinks for top-ranking pages
data.keywords[].avgReferringDomainsnumberAverage number of referring domains for top-ranking pages
data.keywords[].serpFeaturesstring[]SERP features present for this keyword (e.g., images, video, peopleAlsoAsk)
data.keywords[].totalResultsnumberTotal number of search results
data.keywords[].trendobject[]Monthly search volume trend data
data.keywords[].trend[].monthstringMonth in YYYY-MM format
data.keywords[].trend[].volumenumberSearch volume for that month
Under the Hood

Under the hood, this queries our SEO data engine for keyword metrics. We normalize the response, map location/language codes automatically, and flatten nested result arrays.

On this page