SEO Vendor APIDeveloper Referencev1
All systems operational
Analyze SEO & Competitors

CORE Analysis

Run a CORE analysis of a page and its competitive landscape to surface SEO opportunities and structural gaps.

POSThttps://ai.seovendor.co/api/core-analysis/
Authenticate every request by passing your secret key as k in the JSON body. Requests are POST with Content-Type: application/json.

01Request parameters

FieldTypeRequiredDescription
actionstringoptional
analyze Analyze URL or keyword with Core AI.
urlstringoptionalFallback website URL used when web is not sent, max 300 characters.
kwstringoptionalKeyword text, max 100 characters.
kstringrequiredAPI key sent as k in query string, POST body, JSON body; api_key is also accepted, 11 to 120 characters.

02Response

Every response uses the standard envelope (success, application, action, data, meta, error). The data field for this endpoint is documented below.

successaction: analyze · HTTP 200

200 response example
{
  "success": true,
  "application": "core-analysis",
  "action": "analyze",
  "data": {
    "SiteResponse": 0,
    "LoadSpeed": 0,
    "URL": {
      "URLText": "string",
      "URLCount": 0,
      "URLBASECount": [
        {
          "Base": "string",
          "BaseCount": 0
        }
      ],
      "URLTotalBASECount": 0,
      "NoSSL": "string",
      "NoSSLwww": "string",
      "SSL": "string",
      "SSLwww": "string",
      "SiteAuthority": 0,
      "PageAuthority": 0
    },
    "keyword": [
      {
        "KW": "string",
        "Score": 0.92
      }
    ],
    "Title": {
      "TitleText": "string",
      "TitleCount": 0,
      "TitleEMTCount": 0,
      "TitleWordCount": 0,
      "P_TitleEMTCount": 0.0,
      "TitleBASECount": [
        {
          "Base": "string",
          "BaseCount": 0,
          "P_BaseCount": 0.0
        }
      ],
      "TitleTotalBASECount": 0
    },
    "Meta": {
      "MetaText": "string",
      "MetaCount": 0,
      "MetaEMTCount": 0,
      "MetaWordCount": 0,
      "P_MetaEMTCount": 0.0,
      "MetaBASECount": [
        {
          "Base": "string",
          "BaseCount": 0,
          "P_BaseCount": 0.0
        }
      ],
      "MetaTotalBASECount": 0,
      "Robots": "string"
    },
    "H1": [
      {
        "H1Text": "string",
        "H1Count": 0,
        "H1EMTCount": 0,
        "H1WordCount": 0,
        "P_H1EMTCount": 0.0,
        "H1BASECount": [
          {
            "Base": "string",
            "BaseCount": 0,
            "P_BaseCount": 0.0
          }
        ],
        "H1TotalBASECount": 0
      }
    ],
    "H2": [
      {
        "H2Text": "string",
        "H2Count": 0,
        "H2EMTCount": 0,
        "H2WordCount": 0,
        "P_H2EMTCount": 0.0,
        "H2BASECount": [
          {
            "Base": "string",
            "BaseCount": 0,
            "P_BaseCount": 0.0
          }
        ],
        "H2TotalBASECount": 0
      }
    ],
    "H3": [
      {
        "H3Text": "string",
        "H3Count": 0,
        "H3EMTCount": 0,
        "H3WordCount": 0,
        "P_H3EMTCount": 0.0,
        "H3BASECount": [
          {
            "Base": "string",
            "BaseCount": 0,
            "P_BaseCount": 0.0
          }
        ],
        "H3TotalBASECount": 0
      }
    ],
    "Body": {
      "BodyText": "string",
      "BodyCount": 0,
      "BodyWordCount": 0,
      "BodyEMTCount": 0,
      "P_BodyEMTCount": 0.0,
      "BodyBASECount": [
        {
          "Base": "string",
          "BaseCount": 0,
          "P_BaseCount": 0.0
        }
      ],
      "BodyTotalBASECount": 0
    },
    "Notes": "string",
    "IndexedInGoogle": {
      "indexed": true,
      "time": 0.0
    },
    "Sitemap": "string",
    "Robots_txt": "string",
    "TopRankedSites": {
      "sites": []
    }
  },
  "meta": {
    "request_id": "req_3f9a7c2e8b41",
    "duration_ms": 1284,
    "upstream_http_code": 200
  },
  "error": null
}
Response schema
successboolean= true
applicationstring= "core-analysis"
actionstring= "analyze"
dataobjectSEO Core AI analysis result.
└─SiteResponseintegerHTTP response code from the site.
└─LoadSpeedintegerPage load time in milliseconds.
└─URLobjectURL analysis data.
└─URLTextstringThe analyzed URL.
└─URLCountintegerCharacter count of the URL.
└─URLBASECountarrayBase terms and their counts in the URL.
└─BasestringThe base term.
└─BaseCountintegerCount of this base term in the URL.
└─URLTotalBASECountintegerTotal base term count in the URL.
└─NoSSLstringHTTP (non-SSL) accessibility status.
└─NoSSLwwwstringHTTP www accessibility status.
└─SSLstringHTTPS accessibility status.
└─SSLwwwstringHTTPS www accessibility status.
└─SiteAuthorityintegerSite authority score 0 to 10.
└─PageAuthorityintegerPage authority score 0 to 100.
└─keywordarrayKeyword analysis data.
└─KWstringThe keyword.
└─ScoreintegerKeyword uniqueness score. Higher is more unique.
└─TitleobjectTitle tag analysis data.
└─TitleTextstringThe page title text.
└─TitleCountintegerCharacter count of the title.
└─TitleEMTCountintegerEmphasized term count in the title.
└─TitleWordCountintegerWord count of the title.
└─P_TitleEMTCountnumberPercentage of emphasized terms in the title.
└─TitleBASECountarray
└─BasestringThe base term.
└─BaseCountintegerCount of this base term.
└─P_BaseCountnumberPercentage of this base term.
└─TitleTotalBASECountintegerTotal base term count in the title.
└─MetaobjectMeta description analysis data.
└─MetaTextstringThe meta description text.
└─MetaCountintegerCharacter count of the meta description.
└─MetaEMTCountintegerEmphasized term count in the meta description.
└─MetaWordCountintegerWord count of the meta description.
└─P_MetaEMTCountnumberPercentage of emphasized terms in the meta description.
└─MetaBASECountarray
└─BasestringThe base term.
└─BaseCountintegerCount of this base term.
└─P_BaseCountnumberPercentage of this base term.
└─MetaTotalBASECountintegerTotal base term count in the meta description.
└─RobotsstringRobots meta tag value, e.g. noindex, follow.
└─H1arrayH1 heading analysis data.
└─H1TextstringH1 heading text.
└─H1CountintegerCharacter count of the H1.
└─H1EMTCountintegerEmphasized term count in the H1.
└─H1WordCountintegerWord count of the H1.
└─P_H1EMTCountnumberPercentage of emphasized terms in the H1.
└─H1BASECountarray
└─BasestringThe base term.
└─BaseCountintegerCount of this base term.
└─P_BaseCountnumberPercentage of this base term.
└─H1TotalBASECountintegerTotal base term count in the H1.
└─H2arrayH2 heading analysis data.
└─H2TextstringH2 heading text.
└─H2CountintegerCharacter count of the H2.
└─H2EMTCountintegerEmphasized term count in the H2.
└─H2WordCountintegerWord count of the H2.
└─P_H2EMTCountnumberPercentage of emphasized terms in the H2.
└─H2BASECountarray
└─BasestringThe base term.
└─BaseCountintegerCount of this base term.
└─P_BaseCountnumberPercentage of this base term.
└─H2TotalBASECountintegerTotal base term count in the H2.
└─H3arrayH3 heading analysis data.
└─H3TextstringH3 heading text.
└─H3CountintegerCharacter count of the H3.
└─H3EMTCountintegerEmphasized term count in the H3.
└─H3WordCountintegerWord count of the H3.
└─P_H3EMTCountnumberPercentage of emphasized terms in the H3.
└─H3BASECountarray
└─BasestringThe base term.
└─BaseCountintegerCount of this base term.
└─P_BaseCountnumberPercentage of this base term.
└─H3TotalBASECountintegerTotal base term count in the H3.
└─BodyobjectBody content analysis data.
└─BodyTextstringBody content text excerpt.
└─BodyCountintegerCharacter count of the body.
└─BodyWordCountintegerWord count of the body.
└─BodyEMTCountintegerEmphasized term count in the body.
└─P_BodyEMTCountnumberPercentage of emphasized terms in the body.
└─BodyBASECountarray
└─BasestringThe base term.
└─BaseCountintegerCount of this base term.
└─P_BaseCountnumberPercentage of this base term.
└─BodyTotalBASECountintegerTotal base term count in the body.
└─NotesstringAdditional analysis notes.
└─IndexedInGoogleobjectGoogle index check result.
└─indexedbooleanTrue if the URL appears to be indexed in Google.
└─timenumberIndex check duration in milliseconds.
└─SitemapstringSitemap URL if found.
└─Robots_txtstringRobots.txt URL if found.
└─TopRankedSitesobjectTop-ranked competing sites for the analyzed keyword.
└─sitesarrayArray of top-ranked competing site entries.
metaobject
└─request_idstring
└─duration_msinteger
└─upstream_http_codeinteger
errornull

errorHTTP 400, 401, 502, 503, or 504

error response example
{
  "success": false,
  "application": "core-analysis",
  "action": "string",
  "data": null,
  "meta": {
    "request_id": "req_3f9a7c2e8b41"
  },
  "error": {
    "code": "invalid_request",
    "message": "The kw field is required.",
    "field": "kw",
    "details": [],
    "apidefinitions": "https://ai.seovendor.co/api/core-analysis/definitions"
  }
}
Response schema
successboolean= false
applicationstring= "core-analysis"
actionstring
datanull
metaobject
└─request_idstring
errorobject
└─codestringError code returned by the API.
└─messagestringHuman-readable error message.
└─fieldstringInput field associated with the error.
└─detailsarrayAdditional error details.
└─apidefinitionsstringPublic API definitions URL.
POST /api/core-analysis/
curl -X POST "https://ai.seovendor.co/api/core-analysis/" \
  -H "Content-Type: application/json" \
  -H "Accept: application/json" \
  -d '{
  "k": "[API KEY]",
  "action": "analyze",
  "url": "https://seovendor.co"
}'
<?php
$ch = curl_init("https://ai.seovendor.co/api/core-analysis/");

$payload = [
    "k" => "[API KEY]",
    "action" => "analyze",
    "url" => "https://seovendor.co",
];

curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_POST => true,
    CURLOPT_HTTPHEADER => [
        "Content-Type: application/json",
        "Accept: application/json",
    ],
    CURLOPT_POSTFIELDS => json_encode($payload),
]);

$response = curl_exec($ch);
curl_close($ch);

$data = json_decode($response, true);
print_r($data);
const response = await fetch("https://ai.seovendor.co/api/core-analysis/", {
  method: "POST",
  headers: {
    "Content-Type": "application/json",
    "Accept": "application/json"
  },
  body: JSON.stringify({
    k: "[API KEY]",
    action: "analyze",
    url: "https://seovendor.co",
  })
});

const data = await response.json();
console.log(data);
import requests

url = "https://ai.seovendor.co/api/core-analysis/"

payload = {
    "k": "[API KEY]",
    "action": "analyze",
    "url": "https://seovendor.co",
}

headers = {
    "Content-Type": "application/json",
    "Accept": "application/json"
}

response = requests.post(url, json=payload, headers=headers)
data = response.json()
print(data)
SEO Vendor API
Base URL https://ai.seovendor.co/api  ·  All requests are POST · JSON in, JSON out · © 2026 SEO Vendor. Built for agencies since 2004.