YepAPI
Competitors

Page Intersection

Find keywords where specific pages rank in the same search results.

POST/v1/seo/competitors/pages
from $0.02/call

Usage

const res = await fetch('https://api.yepapi.com/v1/seo/competitors/pages', {
  method: 'POST',
  headers: {
    'x-api-key': 'YOUR_API_KEY',
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    pages: {
      '1': 'stripe.com/payments',
      '2': 'square.com/payments',
    },
    location_code: 2840,
    language: 'en',
    limit: 100,
  }),
});
const { data } = await res.json();
console.log(data.keywords);
curl -X POST https://api.yepapi.com/v1/seo/competitors/pages \
  -H "x-api-key: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"pages": {"1": "stripe.com/payments", "2": "square.com/payments"}, "location_code": 2840, "limit": 100}'

Request Body

ParameterTypeRequiredDescriptionDefault
pagesobjectYesNumbered keys ("1", "2", etc.) mapping to page URLs. Up to 20.
location_codenumberNoTarget country code. See Location Codes.2840
languagestringNoISO language code"en"
limitnumberNoMax keywords to return100
Info

Pages support wildcard patterns like stripe.com/blog/* to match all URLs under a path.

Response

{
  "ok": true,
  "data": {
    "keywords": [
      {
        "keyword": "payment processing api",
        "volume": 2400,
        "cpc": 18.5,
        "competition": 0.82,
        "difficulty": 68,
        "intent": "commercial",
        "pages": [
          {
            "url": "https://stripe.com/payments",
            "position": 2,
            "type": "organic",
            "etv": 650.0
          },
          {
            "url": "https://square.com/payments",
            "position": 5,
            "type": "organic",
            "etv": 180.0
          }
        ]
      }
    ]
  }
}

Response Fields

FieldTypeDescription
okbooleanWhether the request succeeded
data.keywordsarrayList of keywords where the specified pages intersect in search results
data.keywords[].keywordstringThe keyword
data.keywords[].volumenumberMonthly search volume
data.keywords[].cpcnumberAverage cost per click (USD)
data.keywords[].competitionnumberCompetition level (0-1)
data.keywords[].difficultynumberKeyword difficulty score (0-100)
data.keywords[].intentstringSearch intent (informational, navigational, commercial, transactional)
data.keywords[].pagesarrayRanking data for each page that ranks for this keyword
data.keywords[].pages[].urlstringThe ranking page URL
data.keywords[].pages[].positionnumberSERP position for this page
data.keywords[].pages[].typestringResult type (e.g. organic)
data.keywords[].pages[].etvnumberEstimated traffic value for this page (USD)

On this page