SEO Quick Validator API
Overview
To use SEO Quick Validator, you need an API key. You can get one by creating a free account and visiting your dashboard.
POST Endpoint
https://api.apiverve.com/v1/seovalidatorExample
How to call the SEO Quick Validator API in different programming languages.
curl -X POST \
"https://api.apiverve.com/v1/seovalidator" \
-H "X-API-Key: your_api_key_here" \
-H "Content-Type: application/json" \
-d '{
"url": "https://apiverve.com"
}'const response = await fetch('https://api.apiverve.com/v1/seovalidator', {
method: 'POST',
headers: {
'X-API-Key': 'your_api_key_here',
'Content-Type': 'application/json'
},
body: JSON.stringify({
"url": "https://apiverve.com"
})
});
const data = await response.json();
console.log(data);import requests
headers = {
'X-API-Key': 'your_api_key_here',
'Content-Type': 'application/json'
}
payload = {
"url": "https://apiverve.com"
}
response = requests.post('https://api.apiverve.com/v1/seovalidator', headers=headers, json=payload)
data = response.json()
print(data)package main
import (
"fmt"
"io"
"net/http"
"bytes"
"encoding/json"
)
func main() {
payload := map[string]interface{}{
"url": "https://apiverve.com"
}
jsonPayload, _ := json.Marshal(payload)
req, _ := http.NewRequest("POST", "https://api.apiverve.com/v1/seovalidator", bytes.NewBuffer(jsonPayload))
req.Header.Set("X-API-Key", "your_api_key_here")
req.Header.Set("Content-Type", "application/json")
client := &http.Client{}
resp, err := client.Do(req)
if err != nil {
panic(err)
}
defer resp.Body.Close()
body, _ := io.ReadAll(resp.Body)
fmt.Println(string(body))
}{
"status": "ok",
"error": null,
"data": {
"url": "https://apiverve.com",
"passed": false,
"issueCount": 6,
"issues": [
"Image missing 'alt' attribute: '/assets/img/hero-diagram.png'",
"Image missing 'alt' attribute: '/assets/img/logo-mark.svg'",
"External link missing 'rel' attribute: 'https://twitter.com/apiverve'",
"External link missing 'rel' attribute: 'https://github.com/apiverve'",
"External link missing 'rel' attribute: 'https://status.apiverve.com'",
"Missing meta 'keywords' tag in head"
],
"checks": {
"hasTitle": true,
"titleLength": 54,
"hasMetaDescription": true,
"metaDescriptionLength": 158,
"hasMetaKeywords": false,
"h1Count": 1,
"hasCanonical": true,
"hasViewport": true,
"imagesTotal": 8,
"imagesMissingAlt": 2,
"externalLinksTotal": 10,
"externalLinksMissingRel": 3
},
"seoScore": 93,
"grade": "A"
}
}Authentication
The SEO Quick Validator API requires authentication via API key. Include your API key in the request header:
X-API-Key: your_api_key_hereInteractive API Playground
Test the SEO Quick Validator API directly in your browser with live requests and responses.
Parameters
The following parameters are available for the SEO Quick Validator API:
Validate SEO Metrics
| Parameter | Type | Required | Description | Default | Example |
|---|---|---|---|---|---|
url | string | required | The URL of the web page to validate the SEO metrics of Format: url (e.g., https://www.example.com) | - |
Response
The SEO Quick Validator API returns responses in JSON, XML, YAML, and CSV formats. The JSON response is shown in the Example section above; alternative formats below.
Other Response Formats
<?xml version="1.0" encoding="UTF-8"?>
<response>
<status>ok</status>
<error xsi:nil="true" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/>
<data>
<url>https://apiverve.com</url>
<passed>false</passed>
<issueCount>6</issueCount>
<issues>
<issue>Image missing 'alt' attribute: '/assets/img/hero-diagram.png'</issue>
<issue>Image missing 'alt' attribute: '/assets/img/logo-mark.svg'</issue>
<issue>External link missing 'rel' attribute: 'https://twitter.com/apiverve'</issue>
<issue>External link missing 'rel' attribute: 'https://github.com/apiverve'</issue>
<issue>External link missing 'rel' attribute: 'https://status.apiverve.com'</issue>
<issue>Missing meta 'keywords' tag in head</issue>
</issues>
<checks>
<hasTitle>true</hasTitle>
<titleLength>54</titleLength>
<hasMetaDescription>true</hasMetaDescription>
<metaDescriptionLength>158</metaDescriptionLength>
<hasMetaKeywords>false</hasMetaKeywords>
<h1Count>1</h1Count>
<hasCanonical>true</hasCanonical>
<hasViewport>true</hasViewport>
<imagesTotal>8</imagesTotal>
<imagesMissingAlt>2</imagesMissingAlt>
<externalLinksTotal>10</externalLinksTotal>
<externalLinksMissingRel>3</externalLinksMissingRel>
</checks>
<seoScore>93</seoScore>
<grade>A</grade>
</data>
</response>
status: ok
error: null
data:
url: https://apiverve.com
passed: false
issueCount: 6
issues:
- 'Image missing ''alt'' attribute: ''/assets/img/hero-diagram.png'''
- 'Image missing ''alt'' attribute: ''/assets/img/logo-mark.svg'''
- 'External link missing ''rel'' attribute: ''https://twitter.com/apiverve'''
- 'External link missing ''rel'' attribute: ''https://github.com/apiverve'''
- 'External link missing ''rel'' attribute: ''https://status.apiverve.com'''
- Missing meta 'keywords' tag in head
checks:
hasTitle: true
titleLength: 54
hasMetaDescription: true
metaDescriptionLength: 158
hasMetaKeywords: false
h1Count: 1
hasCanonical: true
hasViewport: true
imagesTotal: 8
imagesMissingAlt: 2
externalLinksTotal: 10
externalLinksMissingRel: 3
seoScore: 93
grade: A
| key | value |
|---|---|
| url | https://apiverve.com |
| passed | false |
| issueCount | 6 |
| issues | [Image missing 'alt' attribute: '/assets/img/hero-diagram.png',Image missing 'alt' attribute: '/assets/img/logo-mark.svg',External link missing 'rel' attribute: 'https://twitter.com/apiverve',External link missing 'rel' attribute: 'https://github.com/apiverve',External link missing 'rel' attribute: 'https://status.apiverve.com',Missing meta 'keywords' tag in head] |
| checks | {hasTitle:true,titleLength:54,hasMetaDescription:true,metaDescriptionLength:158,hasMetaKeywords:false,h1Count:1,hasCanonical:true,hasViewport:true,imagesTotal:8,imagesMissingAlt:2,externalLinksTotal:10,externalLinksMissingRel:3} |
| seoScore | 93 |
| grade | A |
Response Structure
All API responses follow a consistent structure with the following fields:
| Field | Type | Description | Example |
|---|---|---|---|
status | string | Indicates whether the request was successful ("ok") or failed ("error") | ok |
error | string | null | Contains error message if status is "error", otherwise null | null |
data | object | null | Contains the API response data if successful, otherwise null | {...} |
Learn more about response formats →
Response Data Fields
When the request is successful, the data object contains the following fields:
| Field | Type | Sample Value | Description |
|---|---|---|---|
url | string | - | |
passed | boolean | - | |
issueCount | number | - | |
issues | array | - | |
checks | object | Structured per-rule breakdown of the on-page SEO signals behind the issue list, exposed as booleans, counts and lengths | |
└ hasTitle | boolean | Whether the page has a non-empty <title> tag in the head | |
└ titleLength | number | Character length of the title (null when absent); ~50-60 characters is the common recommendation | |
└ hasMetaDescription | boolean | Whether the page has a meta description tag | |
└ metaDescriptionLength | number | Character length of the meta description (null when absent); ~150-160 characters is the common recommendation | |
└ hasMetaKeywords | boolean | Whether a meta keywords tag is present (largely deprecated for ranking) | |
└ h1Count | number | Number of H1 tags on the page; exactly one is recommended | |
└ hasCanonical | boolean | Whether the page declares a canonical link tag | |
└ hasViewport | boolean | Whether the page declares a mobile viewport meta tag | |
└ imagesTotal | number | Total number of <img> elements on the page | |
└ imagesMissingAlt | number | Number of images missing an alt attribute | |
└ externalLinksTotal | number | Total number of external (http/https) links on the page | |
└ externalLinksMissingRel | number | Number of external links missing a rel attribute | |
seoScorePremium | number | Composite 0-100 on-page SEO health score, weighted by real ranking impact (title, meta description and H1 weigh most; image-alt and link-rel penalties scale with the proportion of elements affected). Higher is better | |
gradePremium | string | Letter grade derived from the score: A (90+), B (80+), C (70+), D (60+) or F |
Headers
Only X-API-Key is required. Optional headers include Accept for response format negotiation (JSON, XML, or YAML), User-Agent, and X-Request-ID for request tracing. See all request headers →
GraphQL AccessALPHA
Access SEO Quick Validator through GraphQL to combine it with other API calls in a single request. Query only the seo quick validator data you need with precise field selection, and orchestrate complex data fetching workflows.
Credit Cost: Each API called in your GraphQL query consumes its standard credit cost.
POST https://api.apiverve.com/v1/graphqlquery {
seovalidator(
input: {
url: "https://apiverve.com"
}
) {
url
passed
issueCount
issues
checks {
hasTitle
titleLength
hasMetaDescription
metaDescriptionLength
hasMetaKeywords
h1Count
hasCanonical
hasViewport
imagesTotal
imagesMissingAlt
externalLinksTotal
externalLinksMissingRel
}
seoScore
grade
}
}Note: Authentication is handled via the x-api-key header in your GraphQL request, not as a query parameter.
CORS Support
The SEO Quick Validator API accepts cross-origin requests from any origin, so it can be called directly from browser-based applications without a proxy. See CORS support →
Rate Limiting
SEO Quick Validator requests are throttled per minute on the Free plan and unthrottled on paid plans. Exceeding the limit returns 429 Too Many Requests; rate-limit usage is reported in the X-RateLimit-Limit, X-RateLimit-Remaining, and X-RateLimit-Reset response headers. See per-plan limits and best practices →
Error Codes
The SEO Quick Validator API uses standard HTTP status codes — 200 on success, 400 for invalid parameters, 401 for missing or invalid keys, 403 for insufficient credits, 429 for rate-limit exhaustion, and 500/503 for server-side issues. Each error response includes an X-Request-ID header you can quote when contacting support. See full error handling guide →
SDKs for SEO Quick Validator
Official SEO Quick Validator packages on npm, PyPI, NuGet, and JitPack — plus a Postman collection and an OpenAPI spec. See the SDK guide →
No-Code Integrations
SEO Quick Validator works with Zapier, Make, Pipedream, n8n, and Power Automate using the same API key. See setup guides →
Frequently Asked Questions
How do I get an API key for SEO Quick Validator?
How many credits does SEO Quick Validator cost?
Each successful SEO Quick Validator API call consumes credits based on plan tier. Check the pricing section above for the exact credit cost. Failed requests and errors don't consume credits, so you only pay for successful seo quick validator lookups.
Can I use SEO Quick Validator in production?
The free plan is for testing and development only. For production use of SEO Quick Validator, upgrade to a paid plan (Starter, Pro, or Mega) which includes commercial use rights, no attribution requirements, and guaranteed uptime SLAs. All paid plans are production-ready.
Can I use SEO Quick Validator from a browser?
What happens if I exceed my SEO Quick Validator credit limit?
When you reach your monthly credit limit, SEO Quick Validator API requests will return an error until you upgrade your plan or wait for the next billing cycle. You'll receive notifications at 80% and 95% usage to give you time to upgrade if needed.








