Home / API docs / Full On-Page SEO Audit API
SEO & Publishing

Full On-Page SEO Audit API

GET /api/seo/full-audit $0.05 per call USDC on Base · x402

FULL on-page audit bundle — seven analyses in one call against a single URL: head/meta SEO audit, alt-text check, social-card check with og:image verification, internal-link analysis, WCAG accessibility check (choose level), schema.org structured-data audit, and a robots/llms.txt crawler summary. Returns a transparent 0-100 score with itemized deductions plus every full sub-report. Buying these individually costs ~$0.09; the bundle is $0.05.

Parameters

NameInDescription
urlqueryrequiredPublic URL of the page to audit
levelqueryWCAG level for the accessibility section: A, AA (default), or AAA

Example request

curl "https://api.webbersites.com/api/seo/full-audit?url=https%3A%2F%2Fexample.com&level=AA"
# first call returns 402 + payment requirements; an x402 client pays and retries automatically

Example response

{
    "url": "https://example.com",
    "score": 84,
    "grade": "B",
    "deductions": [
        {
            "points": 6,
            "reason": "3 head/meta warnings"
        }
    ],
    "sections": {
        "head": {
            "verdict": "improvable"
        },
        "social": {
            "verdict": "good"
        },
        "alt_text": {
            "missing_alt": 2
        },
        "accessibility": {
            "totals": {
                "criteria_failed": 2
            }
        },
        "structured_data": {
            "jsonld_blocks": 1
        },
        "robots": {
            "ai_bots_root_blocked": [
                "GPTBot"
            ]
        }
    }
}
MCP tool: get_seo_full_audit — via npx -y webbersites-x402-mcp (local, key stays on your machine) or the remote endpoint https://api.webbersites.com/mcp.

How payment works

There is no signup and no API key. Call the endpoint; it replies 402 Payment Required with machine-readable payment requirements. Your client signs a USDC transfer authorization (EIP-3009, gasless) and retries with the X-PAYMENT header — @x402/fetch does this automatically. See the overview for a working snippet.