81trust / 100
Web Seo Audit
by FiatDock in Security & trust
x402 APIPassing, checked 5 h ago
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. An empty body is answered for the published example page (https://example.com/); send {"url":"https://…"} for any other page.
POST https://fiatdock.com/v1/web/seo-audit
Last 30 days
All checks passedSome failedAll failedNot checked
- Uptime
- 100%
- Response time
- 54 ms typical, 54 ms slowest 5%
- Last check
- 5 h ago
- Next check
- any minute now
How to call it
# See the payment challenge (nothing is charged)
curl -i -X POST "https://fiatdock.com/v1/web/seo-audit" \
-H "content-type: application/json" \
-d '{"url":"https://example.com/"}'import { wrapFetchWithPayment } from "@x402/fetch";
import { x402Client } from "@x402/core/client";
import { ExactEvmScheme } from "@x402/evm/exact/client";
import { privateKeyToAccount } from "viem/accounts";
const client = new x402Client().register(
"eip155:8453",
new ExactEvmScheme(privateKeyToAccount(process.env.AGENT_KEY)),
);
const pay = wrapFetchWithPayment(fetch, client);
// Not sure it's safe to pay? Preflight it first for $0.005:
// GET https://toolvet.app/api/v1/check?url=https%3A%2F%2Ffiatdock.com%2Fv1%2Fweb%2Fseo-audit
const res = 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(await res.json());Example input
{
"url": "https://example.com/"
}Example output
{
"checkedAt": "2026-10-05T00:00:00.000Z",
"checks": {
"canonical": {
"href": null,
"sameHost": null
},
"favicon": false,
"headings": {
"h1": null,
"h1Count": 0,
"h2Count": 0
},
"hreflangCount": 0,
"images": {
"count": 0,
"missingAlt": 0
},
"indexable": true,
"lang": null,
"links": {
"external": 1,
"internal": 0,
"nofollow": 0
},
"metaDescription": {
"length": 0,
"text": null
},
"mixedContentCount": 0,
"openGraph": {
"description": false,
"image": false,
"title": false
},
"robotsMeta": null,
"structuredData": {
"blocks": 0,
"invalid": 0,
"types": []
},
"title": {
"length": 14,
"text": "Example Domain"
},
"twitterCard": null,
"viewport": true,
"wordCount": 25,
"xRobotsTag": null
},
"finalUrl": "https://example.com/",
"grade": "D",
"htmlBytes": 1256,
"https": true,
"issues": [
{
"id": "h1_missing",
"message": "No <h1> heading.",
"severity": "medium"
},
{
"id": "canonical_missing",
"message": "No rel=canonical link.",
"severity": "low"
}
],
"note": "Read the way a crawler first reads it: JavaScript NOT run.",
"redirects": [],
"responseMs": 58,
"robotsTxt": {
"blocksAll": false,
"disallowRules": 0,
"sitemaps": [],
"status": 404
},
"score": 66,
"sitemap": {
"status": 404,
"url": "https://example.com/sitemap.xml",
"urlCount": null
},
"status": 200,
"url": "https://example.com/"
}Security scan
- No findings. We scan names, descriptions and tool definitions for hidden instructions and other prompt-injection patterns.
Recent checks
| When | Result | HTTP | Time | Price |
|---|---|---|---|---|
| 5 h ago | Passed | 402 | 54 ms | $0.009 |