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
| Field | Type | Required | Description |
|---|---|---|---|
| action | string | optional | analyze Analyze URL or keyword with Core AI. |
| url | string | optional | Fallback website URL used when web is not sent, max 300 characters. |
| kw | string | optional | Keyword text, max 100 characters. |
| k | string | required | API 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
success
application
action
dataSEO Core AI analysis result.
└─SiteResponseHTTP response code from the site.
└─LoadSpeedPage load time in milliseconds.
└─URLURL analysis data.
└─URLTextThe analyzed URL.
└─URLCountCharacter count of the URL.
└─URLBASECountBase terms and their counts in the URL.
└─BaseThe base term.
└─BaseCountCount of this base term in the URL.
└─URLTotalBASECountTotal base term count in the URL.
└─NoSSLHTTP (non-SSL) accessibility status.
└─NoSSLwwwHTTP www accessibility status.
└─SSLHTTPS accessibility status.
└─SSLwwwHTTPS www accessibility status.
└─SiteAuthoritySite authority score 0 to 10.
└─PageAuthorityPage authority score 0 to 100.
└─keywordKeyword analysis data.
└─KWThe keyword.
└─ScoreKeyword uniqueness score. Higher is more unique.
└─TitleTitle tag analysis data.
└─TitleTextThe page title text.
└─TitleCountCharacter count of the title.
└─TitleEMTCountEmphasized term count in the title.
└─TitleWordCountWord count of the title.
└─P_TitleEMTCountPercentage of emphasized terms in the title.
└─TitleBASECount
└─BaseThe base term.
└─BaseCountCount of this base term.
└─P_BaseCountPercentage of this base term.
└─TitleTotalBASECountTotal base term count in the title.
└─MetaMeta description analysis data.
└─MetaTextThe meta description text.
└─MetaCountCharacter count of the meta description.
└─MetaEMTCountEmphasized term count in the meta description.
└─MetaWordCountWord count of the meta description.
└─P_MetaEMTCountPercentage of emphasized terms in the meta description.
└─MetaBASECount
└─BaseThe base term.
└─BaseCountCount of this base term.
└─P_BaseCountPercentage of this base term.
└─MetaTotalBASECountTotal base term count in the meta description.
└─RobotsRobots meta tag value, e.g. noindex, follow.
└─H1H1 heading analysis data.
└─H1TextH1 heading text.
└─H1CountCharacter count of the H1.
└─H1EMTCountEmphasized term count in the H1.
└─H1WordCountWord count of the H1.
└─P_H1EMTCountPercentage of emphasized terms in the H1.
└─H1BASECount
└─BaseThe base term.
└─BaseCountCount of this base term.
└─P_BaseCountPercentage of this base term.
└─H1TotalBASECountTotal base term count in the H1.
└─H2H2 heading analysis data.
└─H2TextH2 heading text.
└─H2CountCharacter count of the H2.
└─H2EMTCountEmphasized term count in the H2.
└─H2WordCountWord count of the H2.
└─P_H2EMTCountPercentage of emphasized terms in the H2.
└─H2BASECount
└─BaseThe base term.
└─BaseCountCount of this base term.
└─P_BaseCountPercentage of this base term.
└─H2TotalBASECountTotal base term count in the H2.
└─H3H3 heading analysis data.
└─H3TextH3 heading text.
└─H3CountCharacter count of the H3.
└─H3EMTCountEmphasized term count in the H3.
└─H3WordCountWord count of the H3.
└─P_H3EMTCountPercentage of emphasized terms in the H3.
└─H3BASECount
└─BaseThe base term.
└─BaseCountCount of this base term.
└─P_BaseCountPercentage of this base term.
└─H3TotalBASECountTotal base term count in the H3.
└─BodyBody content analysis data.
└─BodyTextBody content text excerpt.
└─BodyCountCharacter count of the body.
└─BodyWordCountWord count of the body.
└─BodyEMTCountEmphasized term count in the body.
└─P_BodyEMTCountPercentage of emphasized terms in the body.
└─BodyBASECount
└─BaseThe base term.
└─BaseCountCount of this base term.
└─P_BaseCountPercentage of this base term.
└─BodyTotalBASECountTotal base term count in the body.
└─NotesAdditional analysis notes.
└─IndexedInGoogleGoogle index check result.
└─indexedTrue if the URL appears to be indexed in Google.
└─timeIndex check duration in milliseconds.
└─SitemapSitemap URL if found.
└─Robots_txtRobots.txt URL if found.
└─TopRankedSitesTop-ranked competing sites for the analyzed keyword.
└─sitesArray of top-ranked competing site entries.
meta
└─request_id
└─duration_ms
└─upstream_http_code
error
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
success
application
action
data
meta
└─request_id
error
└─codeError code returned by the API.
└─messageHuman-readable error message.
└─fieldInput field associated with the error.
└─detailsAdditional error details.
└─apidefinitionsPublic 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.