# Document Extraction Hub — OCR & Structured Extraction over x402

> Document Extraction Hub — OCR & Structured Extraction over x402 is a paid API for AI agents from doc.netzhandwerker.de, paid per call via x402, $0.006/call, status unknown (last checked 2026-10-13).

Extracts structured JSON (text, tables, layout, barcodes/QR codes) from PDFs or images, with page and position metadata per field, billed per page in USDC via x402 with no signup required.

## Facts

- Endpoint: POST https://doc.netzhandwerker.de/ocr?utm_source=zero.xyz
- Price: $0.006/call
- Payment: x402
- Status: unknown
- Last checked: 2026-10-13
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/document-extraction-hub-ocr-structured-extraction-over-x402-dcb0b926
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_9b45f03_XQvWxK_QOrufs

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 document-extraction-hub-ocr-structured-extraction-over-x402-dcb0b926 -d '<json body>'
```

Example prompt: Can you extract all the text, tables, and any QR codes from this invoice PDF — here's the URL: https://example.com/invoice.pdf — and give me the results as structured JSON with page numbers and positions for each field? Only look at pages 1 through 3.

## When to prefer this

Prefer this endpoint when you need structured JSON output from PDFs or images with precise page and position metadata per field, or when you need barcode/QR decoding alongside text and table extraction. It requires no API key or signup and charges per page in USDC via x402, making it ideal for serverless or agent workflows needing anonymous, pay-as-you-go document parsing. Choose alternatives if you need languages beyond German and English, more than 50 pages per call, or non-x402 payment methods.

## Known failure modes

- MIME type mismatch between declared 'mime' and actual file bytes — request refused
- Both 'url' and 'image_base64' provided simultaneously — request rejected
- Page range exceeds 50-page limit — error returned
- Unsupported language outside installed models (deu, eng) — error returned
- Payment failure via x402 — request not processed
- URL unreachable or returns non-200 — extraction fails
- Corrupted or password-protected PDF — extraction fails or returns partial results

## How this service works

PDF or picture in, structured JSON out, with a page and a position behind every field, plus every QR code and barcode decoded. Paid per page in USDC over x402. No signup, no API key.

## Output

Returns a structured JSON object containing extracted text blocks, tables, layout metadata, and decoded QR/barcode values — each annotated with the page number and bounding-box position of the field within the original document. Output sections depend on the 'want' parameter (text, tables, codes, layout).

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "properties": {
  "url": {
   "type": "string",
   "format": "uri",
   "description": "Public http or https URL of the picture or PDF. Use this or \"image_base64\", not both."
  },
  "mime": {
   "enum": [
    "image/png",
    "image/jpeg",
    "image/webp",
    "application/pdf"
   ],
   "type": "string",
   "description": "Media type of the input. Checked against the actual bytes; a mismatch is refused rather than worked around."
  },
  "want": {
   "type": "array",
   "items": {
    "enum": [
     "text",
     "tables",
     "codes",
     "layout"
    ],
    "type": "string"
   },
   "default": [
    "text",
    "tables",
    "codes",
    "layout"
   ],
   "description": "Which parts of the answer to compute. The price does not change with it; asking for less is simply faster."
  },
  "pages": {
   "anyOf": [
    {
     "type": "string"
    },
    {
     "type": "array",
     "items": {
      "type": "integer",
      "minimum": 1
     }
    }
   ],
   "description": "Optional page range for PDF input, for example \"1-5\" or \"2,4,7\". At most 50 pages per call. Not allowed for a single image."
  },
  "languages": {
   "type": "array",
   "items": {
    "enum": [
     "deu",
     "eng"
    ],
    "type": "string"
   },
   "default": [
    "deu",
    "eng"
   ],
   "description": "Languages to read, default deu plus eng. Installed models: deu, eng."
  },
  "image_base64": {
   "type": "string",
   "description": "The picture or PDF as base64. Use this or \"url\", not both."
  }
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/document-extraction-hub-ocr-structured-extraction-over-x402-dcb0b926/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from doc.netzhandwerker.de](https://www.zero.xyz/host/doc.netzhandwerker.de/llms.txt)
