# Netzhandwerker Site Audit

> Netzhandwerker Site Audit is a paid API for AI agents from tools.netzhandwerker.de, paid per call via x402, $0.02/call, status unknown (last checked 2026-09-14).

Audits a website URL across up to five dimensions (tech stack, speed, security, SEO, accessibility) and returns scores and actionable findings.

## Facts

- Endpoint: POST https://tools.netzhandwerker.de/v1/site/audit
- Price: $0.02/call
- Payment: x402
- Status: unknown
- Last checked: 2026-09-14
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/netzhandwerker-site-audit-f55447c9
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_OC0lhImZyzEFvMVRoOach

Status and success rate cover calls made through Zero and Zero's own probes. Third-party monitors may report differently.

## How to call it through Zero

Zero handles the 402 payment challenge and records the run. With the Zero CLI installed (`npm i -g @zeroxyz/cli`):

```sh
zero fetch --capability netzhandwerker-site-audit-f55447c9 -d '<json body>'
```

Example prompt: Can you run a full site audit on https://example.com for desktop viewport and tell me the scores for speed, security, and SEO, plus any findings I should fix?

## When to prefer this

Choose this endpoint when you need a comprehensive, multi-dimensional technical audit of a public-facing website in a single API call — combining SEO, accessibility, performance, security, and technology detection into one structured response. It is particularly useful for AI agents automating site quality workflows, pre-launch checklists, or competitive analysis, especially when you need machine-readable findings with severity and fix guidance rather than a human-readable report. Prefer it over single-purpose tools when breadth of coverage and structured output matter.

## Known failure modes

- Invalid or unreachable URL returns an error — ensure the target responds to HTTP/HTTPS
- Unknown or unsupported sections enum values will be rejected by schema validation
- Very slow or timing-out target sites may produce incomplete speed metrics
- Sites behind aggressive bot-blocking or CAPTCHAs may return partial results
- Malformed JSON body (e.g. missing required url field) returns a 400-level error
- Payment failure (insufficient USDC balance) results in a 402 response before the audit is executed

## How this service works

x402-Werkzeuge für autonome Agenten.

## Output

Returns a JSON object containing per-section numeric scores (0–100) for each requested audit dimension, plus a detailed findings array with severity (low/medium/high), affected URL, evidence string, title, and actionable fix description. Also includes rich sub-objects for each section: SEO metadata (title, canonicals, heading hierarchy, indexability, image alt coverage), accessibility contrast failures and total violations, tech stack (server, CMS with version and security score, HTTP protocol, image formats, compression, third-party hosts), speed metrics (TTFB, LCP, CLS, INP, total weight, render-blocking resources, largest assets), and security details (TLS version and expiry, SPF/DMARC/relay, security headers, CNAME takeover risk, exposed files).

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "properties": {
  "url": {
   "type": "string",
   "description": "Ziel-URL, http oder https"
  },
  "sections": {
   "type": "array",
   "items": {
    "enum": [
     "tech",
     "speed",
     "security",
     "seo",
     "a11y"
    ],
    "type": "string"
   },
   "default": [
    "tech",
    "speed",
    "security",
    "seo",
    "a11y"
   ],
   "description": "Abschnitte, die geprueft werden sollen. Voreinstellung: alle fuenf."
  },
  "viewport": {
   "enum": [
    "mobile",
    "desktop"
   ],
   "type": "string",
   "default": "mobile"
  }
 }
}
```

## Response schema (JSON Schema)

```json
{
 "type": "json",
 "example": {
  "url": "https://example.com",
  "score": {
   "seo": 88,
   "a11y": 97,
   "tech": 92,
   "speed": 71,
   "security": 60
  },
  "findings": [
   {
    "id": "sec_kein_hsts",
    "fix": "Strict-Transport-Security mit max-age von mindestens einem halben Jahr setzen.",
    "title": "Kein HSTS-Header",
    "section": "security",
    "affected": "https://example.com/",
    "evidence": "Antwortkopf enthaelt kein Strict-Transport-Security",
    "severity": "mittel"
   }
  ],
  "sections": {
   "seo": {
    "titel": {
     "text": "Beispielseite",
     "laenge": 13
    },
    "canonical": "https://example.com/",
    "ueberschriften": {
     "anzahl": {
      "h1": 1,
      "h2": 4
     },
     "hierarchie_spruenge": []
    },
    "indexierbarkeit": {
     "indexierbar": true
    },
    "bild_alternativtexte": {
     "ohne_alt": 2,
     "bilder_gesamt": 12
    }
   },
   "a11y": {
    "kontrastfehler": [
     {
      "selektor": "div.faq > summary",
      "hintergrundfarbe": "#101b2d",
      "vordergrundfarbe": "#122a4c",
      "gemessenes_verhaeltnis": 1.2,
      "gefordertes_verhaeltnis": 4.5
     }
    ],
    "verstoesse_gesamt": 1
   },
   "tech": {
    "server": "nginx",
    "caching": {
     "etag": "W/\"1a2b\"",
     "cache_control": "max-age=3600"
    },
    "systeme": [
     {
      "name": "WordPress",
      "beleg": "meta generator",
      "version": "6.5.2",
      "kategorie": "cms",
      "sicherheit": 95
     }
    ],
    "protokoll": {
     "http2": true,
     "http_version": "HTTP/2",
     "http3_genutzt": true,
     "http3_advertised": true
    },
    "bildformate": {
     "gesamt": 12,
     "nach_format": {
      "png": 3,
      "webp": 9
     },
     "anteil_modern": 0.75
    },
    "kompression": {
     "aktiv": true,
     "content_encoding": "br"
    },
    "drittanbieter_hosts": {
     "hosts": [
      "fonts.gstatic.com"
     ],
     "anzahl": 4
    }
   },
   "speed": {
    "cls": 0,
    "inp_ms": null,
    "lcp_ms": 3109,
    "ttfb_ms": 133,
    "gesamtgewicht_kb": 259.8,
    "render_blockierend": [
     {
      "url": "https://example.com/css/style.css",
      "bytes": 19723
     }
    ],
    "groesste_ressourcen": [
     {
      "typ": "Font",
      "url": "https://example.com/fonts/a.woff2",
      "bytes": 35630
     }
    ]
   },
   "security": {
    "tls": {
     "version": "TLSv1.3",
     "gueltig_bis": "Sep 20 2026 GMT",
     "tage_verbleibend": 45
    },
    "mail": {
     "spf": "v=spf1 a mx ~all"
… (truncated)
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/netzhandwerker-site-audit-f55447c9/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from tools.netzhandwerker.de](https://www.zero.xyz/host/tools.netzhandwerker.de/llms.txt)
