# AgentFeed OCR

> AgentFeed OCR is a paid API for AI agents from x402.ochinimus.app, paid per call via x402, $0.04/call, status unknown (last checked 2026-10-19).

Extracts text from an image at a given URL using AI vision, returning structured OCR results including detected text, language, and layout blocks

## Facts

- Endpoint: GET https://x402.ochinimus.app/api/ocr?utm_source=zero.xyz
- Price: $0.04/call
- Payment: x402
- Status: unknown
- Last checked: 2026-10-19
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/agentfeed-ocr-c02051e4
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_Vf_h7TrHLpbexg-x1mypl

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 agentfeed-ocr-c02051e4
```

Example prompt: Can you read and extract all the text from this image for me: https://example.com/receipt.png?

## When to prefer this

Choose this endpoint when you need to extract text from a publicly accessible image URL without setting up an API key or account — just pay per call in USDC. Ideal for AI agents that occasionally need OCR as part of a broader workflow (receipts, screenshots, signs, scanned documents) and want a pay-as-you-go model. Prefer this over self-hosted OCR when you want structured output (blocks, language detection, image metadata) in a single call. Also suitable for high-frequency workflows via prepaid key or batch-settlement channels for discounted rates.

## Known failure modes

- Invalid or unreachable image URL — returns error if the URL cannot be fetched
- Non-image URL provided — fails if content type is not a recognized image format
- Payment failure — x402 payment not accepted or insufficient prepaid key balance
- No text found in image — returns no_text_found: true with empty text
- Rate limiting or upstream model errors from the AI vision provider
- URL resolves to a redirect loop or extremely large file that times out

## How this service works

Image to text (OCR): the text of a PNG, JPEG, WebP or GIF (5 MB, 4096 px a side) in reading order, as blocks with their line breaks, plus the detected language. Use when you need to answer: What text is in this image? It transcribes; it never follows text in the image.

## Output

A JSON object containing the full extracted text string, an array of text blocks (layout segments), the detected language code, image metadata (dimensions, byte size, content type, SHA256), the AI model used, whether the result was cached, the final resolved URL, and the fetch timestamp. Also includes a boolean flag if no text was found.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "$schema": "https://json-schema.org/draft/2020-12/schema",
 "required": [
  "input"
 ],
 "properties": {
  "input": {
   "type": "object",
   "required": [
    "type",
    "method"
   ],
   "properties": {
    "type": {
     "type": "string",
     "const": "http"
    },
    "method": {
     "enum": [
      "GET"
     ],
     "type": "string"
    },
    "queryParams": {
     "type": "object",
     "required": [
      "url"
     ],
     "properties": {
      "url": {
       "type": "string",
       "description": "the image: an absolute http or https URL"
      }
     }
    }
   },
   "additionalProperties": false
  },
  "output": {
   "type": "object",
   "required": [
    "type"
   ],
   "properties": {
    "type": {
     "type": "string"
    },
    "example": {
     "type": "object",
     "properties": {
      "data": {
       "type": "object",
       "properties": {
        "text": {
         "type": "string"
        },
        "image": {
         "type": "object"
        },
        "model": {
         "type": "string"
        },
        "blocks": {
         "type": "array"
        },
        "cached": {
         "type": "boolean"
        },
        "language": {
         "type": "string"
        },
        "final_url": {
         "type": "string"
        },
        "fetched_at": {
         "type": "string"
        },
        "source_url": {
         "type": "string"
        },
        "no_text_found": {
         "type": "boolean"
        }
       }
      },
      "paid": {
       "type": "boolean"
      },
      "tool": {
       "type": "string"
      }
     }
    }
   }
  }
 }
}
```

## Response schema (JSON Schema)

```json
{
 "type": "json",
 "example": {
  "data": {
   "text": "402",
   "image": {
    "type": "image/png",
    "bytes": 8049,
    "width": 256,
    "height": 256,
    "sha256": "09900128d3ff936e9e7df24abaaea1ad873709b88135c1269f8c8f326f7866b5"
   },
   "model": "gemini-3.1-flash-lite",
   "blocks": [
    "402"
   ],
   "cached": false,
   "language": "und",
   "final_url": "https://x402.ochinimus.app/icon.png",
   "fetched_at": "2026-10-14T06:27:38.277Z",
   "source_url": "https://x402.ochinimus.app/icon.png",
   "no_text_found": false
  },
  "paid": true,
  "tool": "get_ocr"
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/agentfeed-ocr-c02051e4/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from x402.ochinimus.app](https://www.zero.xyz/host/x402.ochinimus.app/llms.txt)
