# Netzhandwerker Site Inventory

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

Crawls a website or reads its sitemap to return a structured inventory of pages with SEO and indexability metadata.

## Facts

- Endpoint: POST https://tools.netzhandwerker.de/v1/site/inventory
- Price: $0.01/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-inventory-1b909e05
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_Un6PQsy9vxcOzURuU4S4p

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-inventory-1b909e05 -d '<json body>'
```

Example prompt: Can you crawl https://example.com — up to 50 pages, using auto source detection — and give me a full inventory of all pages with their indexability status, redirect chains, and duplicate titles?

## When to prefer this

Use this endpoint when you need a structured, SEO-oriented inventory of all discoverable pages on a domain — especially when you want sitemap parsing, indexability analysis, hreflang auditing, redirect chain detection, and duplicate title discovery in a single call. Prefer it over generic crawlers when the output needs to be machine-readable and semantically rich (canonical URLs, language codes, robots meta). The auto source mode intelligently falls back from sitemap to crawl, making it resilient for sites with or without sitemaps.

## Known failure modes

- Target domain is unreachable — HTTP error or DNS failure
- max_pages exceeds 200 — request rejected
- respect_robots set to false — request rejected
- Sitemap not found and crawl yields no pages — empty pages array
- result_token invalid or expired — error retrieving cached result
- Rate limiting or robots.txt disallows crawling — pages skipped or empty result

## How this service works

x402-Werkzeuge für autonome Agenten.

## Output

A JSON object containing an array of page records (each with URL, title, H1, HTTP status, canonical, final URL, load time, indexability verdict with reason, internal/external link counts, redirect chain, hreflang tags, language detection, and JSON-LD dates), plus a summary with counts of indexable vs. non-indexable pages, duplicate titles, orphaned sitemap entries, mixed-language pages without hreflang, redirect chains longer than one hop, crawl stats, and a truncation flag.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "properties": {
  "source": {
   "enum": [
    "sitemap",
    "crawl",
    "auto"
   ],
   "type": "string",
   "default": "auto",
   "description": "auto fragt erst robots.txt nach einer Sitemap, dann /sitemap.xml und /sitemap_index.xml, dann Feeds, und crawlt nur, wenn nichts davon vorhanden ist."
  },
  "target": {
   "type": "string",
   "description": "Domain oder Sitemap-URL, z. B. https://example.com oder https://example.com/sitemap.xml"
  },
  "max_pages": {
   "type": "integer",
   "default": 25,
   "maximum": 200,
   "minimum": 1,
   "description": "Obergrenze der Seiten. Bestimmt den Preis im 402-Angebot."
  },
  "result_token": {
   "type": "string",
   "description": "Nur fuer die zweite Runde nach einer Nachquotierung: holt das bereits fertige Ergebnis ab, ohne erneut zu crawlen."
  },
  "respect_robots": {
   "type": "boolean",
   "default": true,
   "description": "Fest auf true. Ein Aufruf mit false wird abgewiesen."
  },
  "include_subdomains": {
   "type": "boolean",
   "default": false,
   "description": "Subdomains derselben registrierbaren Domain mit aufnehmen"
  }
 }
}
```

## Response schema (JSON Schema)

```json
{
 "type": "json",
 "example": {
  "pages": [
   {
    "h1": "Unsere Leistungen",
    "url": "https://example.com/leistungen",
    "bytes": 18422,
    "titel": "Leistungen",
    "status": 200,
    "sprache": {
     "code": "de",
     "quelle": "html_lang",
     "sicherheit": 1
    },
    "hreflang": [
     {
      "url": "https://example.com/leistungen",
      "hreflang": "de"
     }
    ],
    "ist_html": true,
    "canonical": "https://example.com/leistungen",
    "final_url": "https://example.com/leistungen",
    "aus_sitemap": true,
    "ladezeit_ms": 214,
    "robots_meta": null,
    "content_type": "text/html; charset=utf-8",
    "x_robots_tag": null,
    "json_ld_datum": {
     "datePublished": "2026-02-11T09:00:00Z"
    },
    "indexierbarkeit": {
     "grund": "indexierbar",
     "begruendung": "Abrufbar mit 200, keine Sperre durch robots.txt, Meta-Angabe, Header oder Canonical.",
     "indexierbar": true
    },
    "verweise_extern": 3,
    "verweise_intern": 24,
    "meta_description": "Was wir anbieten.",
    "weiterleitungskette": [],
    "weiterleitungsschritte": 0
   }
  ],
  "target": "https://example.com/",
  "charged": true,
  "summary": {
   "gruende": {
    "statuscode": 1,
    "indexierbar": 21,
    "noindex_meta": 2,
    "weiterleitung": 1
   },
   "indexierbar": 21,
   "sitemap_404": [
    {
     "url": "https://example.com/weg",
     "status": 404
    }
   ],
   "dubletten_titel": [
    {
     "urls": [
      "https://example.com/",
      "https://example.com/home"
     ],
     "titel": "Startseite",
     "anzahl": 2
    }
   ],
   "nicht_indexierbar": 4,
   "fehlende_canonicals": [
    "https://example.com/kontakt"
   ],
   "verwaiste_sitemap_eintraege": [
    "https://example.com/archiv/2019"
   ],
   "gemischte_sprachen_ohne_hreflang": {
    "sprachen": [
     {
      "seiten": 20,
      "sprache": "de"
     },
     {
      "seiten": 3,
      "sprache": "en"
     }
    ],
    "beispiele": [
     {
      "url": "https://example.com/en/about",
      "sprache": "en"
     }
    ],
    "seiten_ohne_hreflang": 3
   },
   "weiterleitungsketten_laenger_als_eins": [
    {
     "url": "https://example.com/alt",
     "kette": [
      {
       "von": "https://example.com/alt",
       "nach": "https://example.com/neu",
       "status": 301
      }
     ],
     "schritte": 2
    }
   ]
  },
  "truncated": false,
  "crawl_stats": {
   "robots": [
    {
     "origin": "https://example.com",
     "status": 200,
     "geladen": true,
     "sitemap
… (truncated)
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/netzhandwerker-site-inventory-1b909e05/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)
