Tools · web
Technical SEO audit of a web page
Technical SEO audit of a public page as a crawler first sees it: indexability, robots.txt, title and description length, canonical, viewport, headings, alt text, links, Open Graph, JSON-LD, mixed content, redirects, speed and the sitemap - each finding with a severity, plus a 0-100 score. JavaScript is not run. Pay-per-call via x402.
$0.009 per call, paid in USDC on Base or Solana with x402 — no account, no API key. POST https://fiatdock.com/v1/web/seo-audit (or GET with the same fields as query parameters) · MCP tool seo_audit. An answer the tool cannot produce is refused with 4xx/5xx and is not charged.
Inputs
| Field | Type | Description | Example |
|---|---|---|---|
url | string | The page to audit (https://… or a bare domain) | "https://example.com/" |
Example
Request body
{"url":"https://example.com/"}
Answer (the published example)
{"url":"https://example.com/","finalUrl":"https://example.com/","status":200,"https":true,"responseMs":58,"htmlBytes":1256,"redirects":[],"score":66,"grade":"D","issues":[{"id":"h1_missing","severity":"medium","message":"No <h1> heading."},{"id":"canonical_missing","severity":"low","message":"No rel=canonical link."}],"checks":{"title":{"text":"Example Domain","length":14},"metaDescription":{"text":null,"length":0},"canonical":{"href":null,"sameHost":null},"robotsMeta":null,"xRobotsTag":null,"indexable":true,"viewport":true,"lang":null,"headings":{"h1Count":0,"h1":null,"h2Count":0},"images":{"count":0,"missingAlt":0},"links":{"internal":0,"external":1,"nofollow":0},"wordCount":25,"openGraph":{"title":false,"description":false,"image":false},"twitterCard":null,"structuredData":{"blocks":0,"invalid":0,"types":[]},"hreflangCount":0,"favicon":false,"mixedContentCount":0},"robotsTxt":{"status":404,"blocksAll":false,"disallowRules":0,"sitemaps":[]},"sitemap":{"url":"https://example.com/sitemap.xml","status":404,"urlCount":null},"checkedAt":"2026-10-05T00:00:00.000Z","note":"Read the way a crawler first reads it: JavaScript NOT run."}
Call it
curl
# 1) ask: an unpaid call answers 402 with the exact price (free)
curl -i -X POST https://fiatdock.com/v1/web/seo-audit -H 'content-type: application/json' -d '{"url":"https://example.com/"}'
# 2) pay: any x402 client signs that 402 and resends — see Node or Python below
Node
// npm i @x402/fetch @x402/evm viem
import { wrapFetchWithPaymentFromConfig } from "@x402/fetch";
import { ExactEvmScheme } from "@x402/evm";
import { privateKeyToAccount } from "viem/accounts";
const pay = wrapFetchWithPaymentFromConfig(fetch, {
schemes: [{ network: "eip155:*", client: new ExactEvmScheme(privateKeyToAccount(process.env.AGENT_PRIVATE_KEY)) }],
});
const r = await pay("https://fiatdock.com/v1/web/seo-audit", {
method: "POST",
headers: { "content-type": "application/json" },
body: JSON.stringify({"url":"https://example.com/"}),
});
console.log(r.status, await r.json());
Python
# pip install "x402[httpx,evm]"
import asyncio, json, os
from eth_account import Account
from x402 import x402Client
from x402.http.clients import x402HttpxClient
from x402.mechanisms.evm.exact import register_exact_evm_client
async def main():
client = register_exact_evm_client(x402Client(), Account.from_key(os.environ["AGENT_PRIVATE_KEY"]))
async with x402HttpxClient(client) as http:
r = await http.post("https://fiatdock.com/v1/web/seo-audit", json=json.loads("{\"url\":\"https://example.com/\"}"))
print(r.status_code, r.json())
asyncio.run(main())
MCP (Claude, Cursor, any MCP client)
{"mcpServers":{"fiatdock":{"command":"npx","args":["-y","fiatdock-mcp"],"env":{"AGENT_PRIVATE_KEY":"0x<your agent wallet key>"}}}}
// then call the tool "seo_audit" — the package pays each call from that wallet
The wallet needs USDC on Base. Prefer no install? The remote server https://fiatdock.com/mcp answers the 402 as tool output for an agent that signs its own payments.
Related tools
- Web page reader — $0.0018
- Domain intel: registration, DNS, email auth, TLS — $0.0045
- Website contacts: socials, role emails, phones — $0.0027
- RSS / Atom feed reader — $0.0022
Machine-readable: OpenAPI · tools.json · llms.txt · /.well-known/x402