Extract text from images using Tesseract OCR
Extract text from images using Tesseract OCR. Send image as image_base64 (PNG/JPEG/WebP/TIFF/BMP, max 10 MB decoded). Returns text and confidence (0-100, where 80+ is reliable). Set language to Tesseract code: 'eng' (default), 'deu' (German), 'fra' (French), 'chi_sim' (Chinese Simplified), 'jpn' (Japanese), 'ara' (Arabic). Use for invoices, receipts, scanned documents, or screenshots with text.
Paid test badge: not yet. The checks above are free: we call the tool without paying and read the payment request it sends back. The Verified badge needs paid calls whose answers match the promised output, and nobody can buy a badge.
Endpoint
POST https://agentsvc.io/api/v1/proxy/ocr
| Category | Image and media |
|---|---|
| Provider host | agentsvc.io |
| Networks | eip155:137, eip155:42161, eip155:8453, solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp |
| Payment schemes | exact |
| Self-reported calls, 30 days | 8 from 1 payers (the provider's figure, not ours) |
Our checks, last 30 days
We never call tools that send, buy, move money or file anything, not even without paying.
Example input (from the provider)
{
"body": {
"image_base64": "<base64 of a PNG/JPG>",
"language": "eng"
},
"bodyType": "json",
"method": "POST",
"type": "http"
}
Promised output schema (from the provider)
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"input": {
"additionalProperties": false,
"properties": {
"body": {
"properties": {
"image_base64": {
"description": "Base64-encoded image. Supported formats: PNG, JPEG, WebP, TIFF, BMP. Max 10 MB decoded. For best results use high-contrast images with clear text.",
"type": "string"
},
"language": {
"default": "eng",
"description": "Tesseract language code. Default: 'eng' (English). Other supported: 'deu' (German), 'fra' (French), 'spa' (Spanish), 'ita' (Italian), 'por' (Portuguese), 'rus' (Russian), 'chi_sim' (Chinese Simplified), 'jpn' (Japanese), 'ara' (Arabic), 'kor' (Korean), 'nld' (Dutch), 'pol' (Polish). Use '+' to combine: 'eng+deu'.",
"type": "string"
},
"psm": {
"default": 3,
"description": "Page Segmentation Mode. 3 = fully automatic (default, best for most images). 6 = single uniform block of text. 7 = single text line. 11 = sparse text (find text anywhere). 13 = raw line (no line ordering). Use 6 or 7 for forms/labels.",
"type": "integer"
}
},
"required": [
"image_base64"
]
},
"bodyType": {
"enum": [
"json",
"form-data",
"text"
],
"type": "string"
},
"method": {
"enum": [
"POST",
"PUT",
"PATCH"
],
"type": "string"
},
"type": {
"const": "http",
"type": "string"
}
},
"required": [
"type",
"method",
"bodyType",
"body"
],
"type": "object"
},
"output": {
"properties": {
"example": {
"properties": {
"data": {
"properties": {
"char_count": {
"description": "Number of characters extracted (excluding whitespace)",
"type": "integer"
},
"confidence": {
"description": "Overall OCR confidence score (0-100). Above 70 is considered reliable.",
"type": "number"
},
"language": {
"description": "Language code used for recognition",
"type": "string"
},
"processed_at": {
"description": "ISO 8601 timestamp",
"format": "date-time",
"type": "string"
},
"processing_ms": {
"description": "Time taken for OCR processing in milliseconds",
"type": "integer"
},
"text": {
"description": "Full extracted text from the image, with line breaks preserved",
"type": "string"
},
"word_count": {
"description": "Number of words extracted",
"type": "integer"
}
},
"required": [
"text",
"confidence",
"language",
"processed_at"
],
"type": "object"
},
"success": {
"type": "boolean"
}
},
"required": [
"success",
"data"
],
"type": "object"
},
"type": {
"type": "string"
}
},
"required": [
"type"
],
"type": "object"
}
},
"required": [
"input"
],
"type": "object"
}