# Pa1m SEO — Website Audit Agent for AI Pa1m SEO audits any website across 200 rules and 20 categories, returning structured JSON data and AI-generated action plans. No accounts, no API keys — pay per request in USDC on Base via x402. ## Endpoints ### Scans (async — returns job_id, poll /status) POST /scan/quick — $0.50 USDC Crawls up to 50 pages. Scores all 20 SEO categories (200 rules). Body: {"url": "https://example.com"} Returns: {"job_id": "...", "status": "pending", "estimated_seconds": 30} POST /scan/full — $5.00 USDC 500-page crawl as a single async call — what would take an agent 500+ tool calls and overflow any context window, returns as structured JSON in minutes. Includes Lighthouse-based Core Web Vitals and cross-page duplicate detection that agents cannot run inline. Body: {"url": "https://example.com"} Returns: {"job_id": "...", "status": "pending", "estimated_seconds": 180} GET /status/{job_id} — FREE Poll until status == "done". Returns full result JSON when complete. Result includes per-category scores, issue lists, and recommendations. ### AI analysis (requires completed scan or cached data) POST /brief — $0.50 USDC Generates a prioritized Markdown action plan from a completed scan. Body: {"job_id": "...", "url": "https://example.com", "language": "en"} Returns: {"brief": "# SEO Action Plan ## Critical Issues 1. ..."} POST /analyze — $0.75 USDC Free-form AI analysis. Ask any question about a site's SEO. Body: {"url": "https://example.com", "task": "Why is my Core Web Vitals score low?", "language": "en"} Returns: {"analysis": "Your LCP is 4.2s because..."} ### Single-category spot-checks (fast, served from cache if available) GET /check/{category}?url=https://example.com — $0.15 USDC, any category Categories (all priced the same): core-seo — Title tag, meta description, headings, canonical URL performance — Page speed, Core Web Vitals (LCP, CLS, FID) links — Internal/external links, broken links, anchor text images — Alt text, image formats (WebP), sizing, lazy loading security — HTTPS, security headers (CSP, HSTS), vulnerabilities technical — robots.txt, XML sitemap, structured tags, hreflang crawlability — Indexability, noindex tags, crawl budget directives structured-data — Schema.org markup, JSON-LD, rich snippet eligibility js-rendering — JavaScript-dependent content, render-blocking resources accessibility — WCAG compliance, ARIA labels, color contrast content — Readability score, thin content, duplicate content social — Open Graph tags, Twitter cards, social preview quality eeat — Expertise/authority/trust signals for Google E-E-A-T url-structure — URL cleanliness, depth, parameters, slug quality redirects — Redirect chains, redirect loops, 301 vs 302 usage mobile — Mobile-friendliness, viewport config, touch targets i18n — Hreflang tags, language/locale declarations html — HTML validity, deprecated tags, document structure ai-geo — AI search optimization signals, featured snippet potential legal — Privacy policy, cookie consent banner, terms of service ### Google crawling & index verification Things an agent cannot do for itself: make Google crawl a page on demand, and get a definitive answer on whether a URL is in Google's index. POST /google/index — $0.25 USDC (1 URL) POST /google/index/bulk — $2.00 USDC (up to 10 URLs, $0.20/URL) Drives a real mobile Googlebot crawl to each submitted URL. No Search Console access required, so it works on domains you do not own — backlinks, guest posts, profile links, PDFs, third-party pages. No link pyramids, PBN or spam networks involved. Safe for fresh domains. Guaranteed: a genuine Googlebot visit to every URL you submit. Not guaranteed: entry into the index — Google decides that on page quality. Typically 70%+ of submitted URLs end up indexed. Priced per submitted URL, not per indexed URL. First movement in 48-72h; final per-URL report on day 7. Body: {"urls": ["https://example.com/page"]} Returns: {"task_id": "...", "submitted": 1, "poll": "/google/index/status/{task_id}"} POST /google/check — $0.02 USDC (1 URL) POST /google/check/bulk — $12.00 USDC (up to 1000 URLs, $0.012/URL) In-index / not-in-index verdict per URL, plus the title Google holds for the page. An unindexed page earns no traffic; an unindexed backlink passes no weight. Body: {"urls": ["https://example.com/page"]} POST /backlinks/check — $0.02 USDC (1 donor) POST /backlinks/check/bulk — $6.00 USDC (up to 500 donors, $0.012/donor) Confirms donor pages really link to your domain. Full JavaScript rendering, so client-side links are found. Per donor: target links present, domain authority, spam score, and whether the donor page itself is indexed. Body: {"donor_urls": ["https://donor.com/post"], "target_domains": ["yoursite.com"]} Free polling (30 req/min per IP): GET /google/index/status/{task_id} — crawl progress and indexed counts GET /google/index/report/{task_id} — final per-URL report; error -1 means a noindex meta tag was found, 404/502 are the page's own status GET /google/check/status/{task_id} — check progress GET /google/check/report/{task_id} — per-URL indexed/not-indexed listing GET /backlinks/status/{task_id} — per-donor backlink report ## Usage pattern 1. POST /scan/quick {"url": "https://example.com"} → {"job_id": "abc-123", "status": "pending", "estimated_seconds": 30} 2. GET /status/abc-123 (poll every 5s) → {"status": "done", "result": {"score": 72, "categories": {...}}} 3. POST /brief {"job_id": "abc-123", "url": "https://example.com"} → {"brief": "# SEO Action Plan\n\n## Critical (fix this week)\n1. Missing meta descriptions on 12 pages..."} ## Discovery agent.json: https://seo.hypa1m.xyz/.well-known/agent.json openapi: https://seo.hypa1m.xyz/openapi.json x402 payTo: 0xE43b08f2031e3332ce97C0E0EA6E8bB00bd04fB4 on Base (eip155:8453) MCP endpoint: https://seo.hypa1m.xyz/mcp System prompt: https://seo.hypa1m.xyz/prompt.txt ERC-8004 identity: https://8004scan.io/agents/base/59958 agentscan.info: https://agentscan.info/agents/99e2412b-b1b1-4d8b-9f92-7cff5fa05157 8004agents.ai: https://8004agents.ai/base/agent/59958