# JigsawStack Vision OCR + Prompt-Driven Extraction

> JigsawStack Vision OCR + Prompt-Driven Extraction is a paid API for AI agents from jigsawstack.withzero.ai, paid per call via MPP, $0.005000/call, status unknown (last checked 2026-09-15, last successful call 2026-04-28).

Performs OCR on a hosted image URL and optionally extracts structured data from it using a natural language prompt

## Facts

- Endpoint: POST https://jigsawstack.withzero.ai/v1/vocr
- Price: $0.005000/call
- Payment: MPP
- Status: unknown
- Last checked: 2026-09-15
- Last successful call: 2026-04-28
- Success rate: 25% of calls made through Zero
- Activations on Zero: 4
- Provider: jigsawstack.withzero.ai
- Website: https://jigsawstack.withzero.ai
- Canonical page: https://www.zero.xyz/c/jigsawstack-withzero-ai-vocr-3a72ff46
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_nNmLVFQuEUoroojleSFeA

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 jigsawstack-withzero-ai-vocr-3a72ff46 -d '<json body>'
```

Example prompt: Read all the text from this invoice image and extract the vendor name, total amount, and due date: https://storage.example.com/invoices/inv-2024-0523.jpg

## When to prefer this

Choose this endpoint when you need to extract text or structured data from an image hosted at a URL, especially when you want to combine raw OCR with prompt-driven field extraction in a single call. Ideal for processing invoices, receipts, scanned documents, screenshots, or any image containing text. Prefer this over generic OCR when you need both raw text and targeted field extraction in one step, settled via micro-USDC pay-per-call.

## Known failure modes

- Image URL is inaccessible or returns a non-200 response — extraction fails with an error
- Image format is unsupported or corrupt — returns an error or empty result
- Image has no readable text — returns empty OCR output
- Prompt is too vague or mismatched to image content — structured extraction may be incomplete or inaccurate
- Image file exceeds size limits — request rejected
- Network timeout fetching the remote image URL

## How this service works

Vision OCR + optional prompt-driven extraction from a hosted image URL.

## Output

Returns a JSON object containing the raw OCR text found in the image and, if a prompt was provided, structured extracted fields corresponding to the prompt instructions (e.g. named values, tables, or key-value pairs parsed from the image content).

## Example request

```json
{
 "url": "https://www.google.com/images/branding/googlelogo/2x/googlelogo_color_272x92dp.png"
}
```

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "oneOf": [
  {
   "required": [
    "url"
   ]
  },
  {
   "required": [
    "file_store_key"
   ]
  }
 ],
 "properties": {
  "url": {
   "type": "string",
   "description": "Publicly hosted image URL to perform OCR on. Mutually exclusive with file_store_key."
  },
  "prompt": {
   "type": "string",
   "description": "Optional natural language prompt for structured/targeted data extraction from the image."
  },
  "file_store_key": {
   "type": "string",
   "description": "A file store key referencing a previously uploaded image. Mutually exclusive with url."
  }
 },
 "additionalProperties": false
}
```

## Response schema (JSON Schema)

```json
{
 "type": "object",
 "required": [
  "success",
  "width",
  "height",
  "tags",
  "has_text",
  "sections",
  "_usage",
  "log_id"
 ],
 "properties": {
  "tags": {
   "type": "array",
   "items": {
    "type": "string"
   }
  },
  "width": {
   "type": "number"
  },
  "_usage": {
   "type": "object",
   "required": [
    "input_tokens",
    "output_tokens",
    "inference_time_tokens",
    "total_tokens"
   ],
   "properties": {
    "input_tokens": {
     "type": "number"
    },
    "total_tokens": {
     "type": "number"
    },
    "output_tokens": {
     "type": "number"
    },
    "inference_time_tokens": {
     "type": "number"
    }
   }
  },
  "height": {
   "type": "number"
  },
  "log_id": {
   "type": "string"
  },
  "success": {
   "type": "boolean"
  },
  "has_text": {
   "type": "boolean"
  },
  "sections": {
   "type": "array",
   "items": {
    "type": "object",
    "required": [
     "text",
     "lines"
    ],
    "properties": {
     "text": {
      "type": "string"
     },
     "lines": {
      "type": "array",
      "items": {
       "type": "object",
       "required": [
        "text",
        "bounds",
        "average_confidence",
        "words"
       ],
       "properties": {
        "text": {
         "type": "string"
        },
        "words": {
         "type": "array",
         "items": {
          "type": "object",
          "required": [
           "text",
           "bounds",
           "confidence"
          ],
          "properties": {
           "text": {
            "type": "string"
           },
           "bounds": {
            "type": "object"
           },
           "confidence": {
            "type": "number"
           }
          }
         }
        },
        "bounds": {
         "type": "object",
         "required": [
          "top_left",
          "top_right",
          "bottom_right",
          "bottom_left",
          "width",
          "height"
         ],
         "properties": {
          "width": {
           "type": "number"
          },
          "height": {
           "type": "number"
          },
          "top_left": {
           "type": "object",
           "required": [
            "x",
            "y"
           ],
           "properties": {
            "x": {
             "type": "number"
            },
            "y": {
             "type": "number"
            }
           }
          },
          "top_right": {
           "type": "object",
           "required": [
            "x",
  
… (truncated)
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/jigsawstack-withzero-ai-vocr-3a72ff46/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from jigsawstack.withzero.ai](https://www.zero.xyz/host/jigsawstack.withzero.ai/llms.txt)
