SEO Audit API Documentation
A free public API that returns comprehensive SEO analysis for any URL. Get meta tags, Core Web Vitals, schema validation, content scoring, and link data in a single JSON response.
Try the APIQuick Start
Make your first API call in seconds. Send a GET request with the target URL:
curl "https://www.auditme.dev/api/v1/audit?url=https://example.com"No authentication needed. You will receive a JSON response with a full SEO audit of the specified page.
API Endpoint
/api/v1/auditThe audit endpoint accepts a target URL as a query parameter and returns a JSON object containing the complete SEO analysis. The response typically completes within 5—15 seconds depending on the target page size.
All requests are served over HTTPS. No API key is required for basic usage. Rate limits are applied per IP address.
Parameters
All parameters are passed as query string parameters on the GET request.
| Parameter | Type | Required | Description |
|---|---|---|---|
| url | string | Yes | The URL of the page to audit. Must be a valid, publicly accessible URL. |
| format | string | No | Response format. Use "json" (default) for the full audit or "compact" for a trimmed summary. |
Response Format
The API returns a JSON object with the following top-level structure:
{
"ok": true,
"api_version": "v1",
"scanned_at": "2026-08-29T10:00:00.000Z",
"page": {
"url": "https://example.com",
"title": "Example Domain",
"meta_description": "This domain is for use in illustrative examples",
"h1": "Example Domain",
"word_count": 68,
"images": { "total": 5, "missing_alt": 1 },
"links": { "internal": 3, "external": 1 },
"og": {
"title": "Example Domain",
"description": "This domain is for use in illustrative examples",
"image": "https://example.com/og.png"
},
"canonical": "https://example.com",
"robots": "index, follow",
"schema_markup": true,
"load_time_ms": 312,
"status_code": 200
},
"score": {
"current": 85,
"max": 100,
"percentage": 85
},
"recommendations": [
{
"type": "warning",
"category": "Images",
"title": "One image is missing alt text",
"description": "Add descriptive alt text so the image is accessible and indexed.",
"impact": "medium",
"effort": "medium",
"confidence": 90,
"current_value": "Image without alt attribute",
"suggested_value": "<img src=\"hero.jpg\" alt=\"Descriptive alt text\" />"
}
],
"ai_insights": "Add alt text to images and keep the meta description within 150 characters."
}Rate Limits
The API enforces a rate limit of 10 requests per minute per IP address. This is generous enough for most monitoring, reporting, and development use cases.
Free Tier
10 req / min per IP
Response Format
JSON (default) or compact
Authentication
None required
Uptime SLA
99.9%
Rate limiting is fixed at 10 requests per minute per IP address for all users, regardless of plan. There is currently no paid tier that raises this limit.
Use Cases
SEO Monitoring
Track SEO health scores over time for your own sites with scheduled API calls.
Competitive Analysis
Compare technical SEO metrics across competitor pages to find optimization gaps.
Client Reporting
Automate SEO audit reports for agency clients without manual tool checks.
CI/CD Integration
Run SEO checks as part of your deployment pipeline to catch regressions before they ship.
Lead Generation
Offer free automated SEO scans to capture leads and qualify prospects.
Code Examples
Use the API from any language that supports HTTP requests. Here are examples in JavaScript and Python:
JavaScript (fetch)
async function auditUrl(url) {
const response = await fetch(
`https://www.auditme.dev/api/v1/audit?url=${encodeURIComponent(url)}`
);
if (!response.ok) {
throw new Error(`Audit failed: ${response.status}`);
}
const data = await response.json();
console.log("Overall Score:", data.score.percentage);
console.log("Page Title:", data.page.title);
console.log("Load Time:", data.page.load_time_ms + "ms");
return data;
}
auditUrl("https://example.com");Python (requests)
import requests
from urllib.parse import urlencode
def audit_url(url):
params = {"url": url}
response = requests.get(
"https://www.auditme.dev/api/v1/audit",
params=params
)
response.raise_for_status()
data = response.json()
print(f"Overall Score: {data['score']['percentage']}")
print(f"Page Title: {data['page']['title']}")
print(f"Load Time: {data['page']['load_time_ms']}ms")
return data
audit_url("https://example.com")cURL
# Basic GET request
curl "https://www.auditme.dev/api/v1/audit?url=https://example.com"
# Compact format (trimmed summary)
curl "https://www.auditme.dev/api/v1/audit?url=https://example.com&format=compact"
# Pretty-print JSON output
curl -s "https://www.auditme.dev/api/v1/audit?url=https://example.com" | jq .SEO Score Widget
Embed a live SEO score badge on any website. The badge displays the current score and links directly to the audit report.
/api/widget| Parameter | Required | Description |
|---|---|---|
| domain | Yes | The domain to display the score for. |
| color | No | Brand color as a 6-digit hex code (without #). Default: 10b981. |
| size | No | Badge size: small (140x40), medium (200x56), or large (300x80). Default: medium. |
| format | No | Output format: svg (default) returns an image, iframe returns an HTML page for embedding. |
Embed Examples
Image
<!-- Simple badge -->
<img src="https://www.auditme.dev/api/widget?domain=example.com" alt="SEO Score" style="border:0" />
<!-- Custom color and size -->
<img src="https://www.auditme.dev/api/widget?domain=example.com&color=3b82f6&size=large" alt="SEO Score" style="border:0" />Iframe
<!-- Clickable badge (opens audit report) -->
<iframe
src="https://www.auditme.dev/api/widget?domain=example.com&format=iframe"
width="200" height="56" style="border:0"
loading="lazy" title="SEO Score"
></iframe>JavaScript
<!-- Live badge, auto-positioned bottom-right. Domain is auto-detected. -->
<script async src="https://www.auditme.dev/widget.js" data-color="10b981"></script>
<!-- Explicit domain + inline placement -->
<div id="auditme-widget"></div>
<script async src="https://www.auditme.dev/widget.js"
data-domain="example.com" data-color="3b82f6"
data-position="inline"></script>
<!-- White-label for agencies -->
<script async src="https://www.auditme.dev/widget.js"
data-domain="example.com" data-brand="Your Agency"
data-link="https://youragency.com/audit-offer"></script>MCP Server (Model Context Protocol)
Our MCP endpoint lets ChatGPT, Claude, Cursor, and any MCP-compatible agent run SEO audits directly. Just point your MCP client to this endpoint — the agent can then call our SEO tool from a conversation.
/api/mcpQuick start
1. Discover available tools:
curl -X POST https://www.auditme.dev/api/mcp \
-H "Content-Type: application/json" \
-d '{ "method": "tools/list" }'2. Run an audit:
curl -X POST https://www.auditme.dev/api/mcp \
-H "Content-Type: application/json" \
-d '{
"method": "tools/call",
"params": {
"name": "seo_audit",
"arguments": { "url": "https://example.com" }
}
}'MCP Client config
// Claude Desktop / Cursor config
{
"mcpServers": {
"auditme": {
"url": "https://www.auditme.dev/api/mcp"
}
}
}seo_audit with a url parameter. The agent calls it, gets back a full JSON audit, and can summarize results in conversation.GEO Visibility API
Checks how visible your brand is in AI-generated search results (ChatGPT, Gemini, Perplexity). Sends 12 real queries to Gemini and measures how often your domain appears in the answers.
/api/geo-checkcurl -X POST https://www.auditme.dev/api/geo-check \
-H "Content-Type: application/json" \
-d '{ "url": "https://example.com" }'Response
{
"domain": "example.com",
"visibilityScore": 67,
"queries": [
{ "query": "best SEO tools 2026", "found": true, "mentions": 2 },
{ "query": "how to improve site speed", "found": false, "mentions": 0 }
]
}AI Readiness API
Checks whether your site is ready for AI crawlers. Inspects llms.txt, robots.txt AI bot rules, and semantic HTML structure.
/api/ai-readinesscurl -X POST https://www.auditme.dev/api/ai-readiness \
-H "Content-Type: application/json" \
-d '{ "url": "https://example.com" }'What it checks
- llms.txt — Does your site have this file? It tells AI models how to cite you.
- AI Bot Access — Which AI crawlers (GPTBot, ClaudeBot, PerplexityBot) are blocked in robots.txt.
- Semantic HTML — Does the page use <main>, <nav>, <article>, <header>, proper heading hierarchy?
Content Gap Analysis API
AI analyzes your page content vs what top-ranking competitors typically cover, then lists missing sections you should add.
/api/content-gapcurl -X POST https://www.auditme.dev/api/content-gap \
-H "Content-Type: application/json" \
-d '{
"url": "https://example.com",
"title": "Best SEO Tools",
"wordCount": 1200,
"headings": ["Introduction", "Features", "Pricing"]
}'Response
{
"gaps": [
{
"heading": "Case Studies & Results",
"priority": "high",
"estimatedWords": 400,
"reason": "Top-ranking pages include concrete case studies..."
}
]
}Auto-Fix Batch API
Send multiple audit issues at once and get AI-generated ready-to-use code fixes for each. Useful for batch workflows — audit → fix → deploy.
/api/auto-fix-batchcurl -X POST https://www.auditme.dev/api/auto-fix-batch \
-H "Content-Type: application/json" \
-d '{
"issues": [
{
"title": "Missing alt text on images",
"description": "5 images have no alt attribute",
"recommendation": "Add descriptive alt text",
"category": "Accessibility"
}
]
}'Response
{
"fixes": [
{
"issueTitle": "Missing alt text on images",
"fix": "<img src=\"hero.jpg\" alt=\"Description of image\" />",
"type": "html",
"difficulty": "easy"
}
]
}Frequently Asked Questions
Is the SEO audit API free?
Yes. The basic API is completely free with no API key required. You get 10 requests per minute per IP address, which is enough for most use cases.
What data does the API return?
The API returns a comprehensive JSON payload including meta tags analysis, Core Web Vitals scores, schema markup validation, content score, internal and external links, image alt text audit, and overall SEO health rating.
Do I need an API key?
No API key is required for basic usage. Simply send a GET request with the target URL as a query parameter. Rate limits are applied per IP address.
What is the rate limit?
The API allows 10 requests per minute per IP address for all users and all plans. This limit applies equally to free and Pro accounts, and there is currently no higher paid tier.
Can I use the API for commercial projects?
Yes. You can use the API results in client reports, SaaS dashboards, and internal tools. We only ask that you do not resell raw API access as a competing service.
Ready to Get Started?
No signup required. Make your first API call right now and get a complete SEO audit of any page in seconds.
Try the API Now