Essential Technical Report
Preliminary Audit
Generate an essential technical SEO and GEO health report for any URL in a single call.
POSThttps://ai.seovendor.co/api/preliminaryaudit/
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 Run a preliminary SEO audit. |
| URL | string | required | Target URL to audit. |
| 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": "preliminaryaudit",
"action": "analyze",
"data": {
"overallscore": 0,
"maxscore": 0,
"providedurl": {
"URL": "https://seovendor.co",
"score": 0.92,
"maxscore": 0,
"message": "The kw field is required.",
"label": "string",
"help": "string"
},
"effectiveurl": {
"URL": "https://seovendor.co",
"retcode": 0,
"score": 0.92,
"maxscore": 0,
"message": "The kw field is required.",
"label": "string",
"help": "string"
},
"apiscore": {
"percent": 0,
"score": 0.92,
"maxscore": 0,
"message": "The kw field is required.",
"label": "string",
"help": "string"
},
"blockingmetatags": {
"score": 0.92,
"maxscore": 0,
"message": "The kw field is required.",
"label": "string",
"help": "string"
},
"canonical": {
"score": 0.92,
"maxscore": 0,
"message": "The kw field is required.",
"label": "string",
"help": "string"
},
"LoadSpeed": {
"time": 0.0,
"score": 0.92,
"maxscore": 0,
"message": "The kw field is required.",
"label": "string",
"help": "string"
},
"NoSSL": {
"checkedurl": "string",
"redirectedurl": "string",
"score": 0.92,
"maxscore": 0,
"message": "The kw field is required.",
"label": "string",
"help": "string"
},
"NoSSLwww": {
"checkedurl": "string",
"redirectedurl": "string",
"score": 0.92,
"maxscore": 0,
"message": "The kw field is required.",
"label": "string",
"help": "string"
},
"SSL": {
"checkedurl": "string",
"redirectedurl": "string",
"score": 0.92,
"maxscore": 0,
"message": "The kw field is required.",
"label": "string",
"help": "string"
},
"SSLwww": {
"checkedurl": "string",
"redirectedurl": "string",
"score": 0.92,
"maxscore": 0,
"message": "The kw field is required.",
"label": "string",
"help": "string"
},
"matchurl": {
"score": 0.92,
"maxscore": 0,
"message": "The kw field is required.",
"label": "string",
"help": "string"
},
"consistenturl": {
"score": 0.92,
"maxscore": 0,
"message": "The kw field is required.",
"label": "string",
"help": "string"
},
"homeurl": {
"URL": "https://seovendor.co",
"score": 0.92,
"maxscore": 0,
"message": "The kw field is required.",
"label": "string",
"help": "string"
},
"robots": {
"URL": "https://seovendor.co",
"retcode": 0,
"score": 0.92,
"maxscore": 0,
"message": "The kw field is required.",
"label": "string",
"help": "string"
},
"crawl": {
"score": 0.92,
"maxscore": 0,
"message": "The kw field is required.",
"label": "string",
"help": "string"
},
"sitemap": {
"URL": "https://seovendor.co",
"retcode": 0,
"score": 0.92,
"maxscore": 0,
"message": "The kw field is required.",
"label": "string",
"help": "string"
}
},
"meta": {
"request_id": "req_3f9a7c2e8b41",
"duration_ms": 1284,
"upstream_http_code": 200
},
"error": null
}Response schema
success
application
action
dataPreliminary SEO audit results.
└─overallscoreTotal score earned across all audit checks.
└─maxscoreMaximum achievable score across all checks.
└─providedurl
└─URLThe normalized URL that was validated.
└─scorePoints earned for this check.
└─maxscoreMaximum points available for this check.
└─messageHuman-readable result message for this check.
└─labelURL Validation
└─helpValidates that the submitted URL is properly formatted and reachable.
└─effectiveurl
└─URLFinal destination URL after following redirects.
└─retcodeHTTP response code from the effective URL.
└─scorePoints earned.
└─maxscoreMaximum points available.
└─messageResult message.
└─labelEffective URL
└─helpStores the final destination URL after following redirects so you can verify where the request actually landed.
└─apiscore
└─percentCrawl difficulty percentage score.
└─scorePoints earned.
└─maxscoreMaximum points available.
└─messageResult message.
└─labelCrawl/Index Difficulty
└─helpAssesses how easily search engines can crawl or index the site.
└─blockingmetatags
└─scorePoints earned for this check.
└─maxscoreMaximum points available for this check.
└─messageHuman-readable result message for this check.
└─labelBlocking Meta Tags
└─helpChecks for meta tags like noindex or nofollow that prevent indexing.
└─canonical
└─scorePoints earned for this check.
└─maxscoreMaximum points available for this check.
└─messageHuman-readable result message for this check.
└─labelCanonical Tags
└─helpChecks for canonical tags, duplicates, and alignment with the effective URL.
└─LoadSpeed
└─timePage load time in seconds.
└─scorePoints earned.
└─maxscoreMaximum points available.
└─messageResult message.
└─labelRaw Load Speed
└─helpMeasures page load time without images or JS.
└─NoSSL
└─checkedurlURL that was checked.
└─redirectedurlFinal URL after redirect.
└─scorePoints earned for this check.
└─maxscoreMaximum points available for this check.
└─messageHuman-readable result message for this check.
└─labelHTTP/non-SSL
└─helpTests accessibility over HTTP without SSL.
└─NoSSLwww
└─checkedurlURL that was checked.
└─redirectedurlFinal URL after redirect.
└─scorePoints earned for this check.
└─maxscoreMaximum points available for this check.
└─messageHuman-readable result message for this check.
└─labelHTTP/non-SSL WWW
└─helpSame HTTP non-SSL test on the www subdomain.
└─SSL
└─checkedurlURL that was checked.
└─redirectedurlFinal URL after redirect.
└─scorePoints earned for this check.
└─maxscoreMaximum points available for this check.
└─messageHuman-readable result message for this check.
└─labelHTTPS/SSL
└─helpChecks HTTPS accessibility and SSL configuration.
└─SSLwww
└─checkedurlURL that was checked.
└─redirectedurlFinal URL after redirect.
└─scorePoints earned for this check.
└─maxscoreMaximum points available for this check.
└─messageHuman-readable result message for this check.
└─labelHTTPS/SSL WWW
└─helpValidates HTTPS on the www subdomain.
└─matchurl
└─scorePoints earned for this check.
└─maxscoreMaximum points available for this check.
└─messageHuman-readable result message for this check.
└─labelURL Match
└─helpCompares the input URL to the effective destination URL.
└─consistenturl
└─scorePoints earned for this check.
└─maxscoreMaximum points available for this check.
└─messageHuman-readable result message for this check.
└─labelHTTP Redirect Consistency
└─helpEnsures all URL variants consistently redirect.
└─homeurl
└─URLThe discovered homepage URL.
└─scorePoints earned for this check.
└─maxscoreMaximum points available for this check.
└─messageHuman-readable result message for this check.
└─labelHomepage URL Validation
└─helpVerifies the homepage URL is reachable.
└─robots
└─URLRobots.txt URL found.
└─retcodeHTTP response code for robots.txt.
└─scorePoints earned.
└─maxscoreMaximum points available.
└─messageResult message.
└─labelRobots.txt
└─helpLocates and reads robots.txt to check crawl directives.
└─crawl
└─scorePoints earned for this check.
└─maxscoreMaximum points available for this check.
└─messageHuman-readable result message for this check.
└─labelCrawlability
└─helpChecks robots.txt for blocked search engines, directories or files.
└─sitemap
└─URLSitemap URL found.
└─retcodeHTTP response code for the sitemap.
└─scorePoints earned.
└─maxscoreMaximum points available.
└─messageResult message.
└─labelSitemap
└─helpFinds the sitemap file to list all pages for efficient crawling and indexing.
meta
└─request_id
└─duration_ms
└─upstream_http_code
error
errorHTTP 400, 401, 502, 503, or 504
error response example
{
"success": false,
"application": "preliminaryaudit",
"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/preliminaryaudit/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/preliminaryaudit/
curl -X POST "https://ai.seovendor.co/api/preliminaryaudit/" \
-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/preliminaryaudit/");
$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/preliminaryaudit/", {
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/preliminaryaudit/"
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.