TextActive

OCR — Image to Text

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.

Endpointx402 Payment Required

POST

https://agentsvc.io/api/v1/proxy/ocr

Price

$0.008 USDC

Latency P99

~4.0s

Provider

agentsvc.io

Input Schema

{ "type": "object", "required": [ "image_base64" ], "properties": { "image_base64": { "type": "string", "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." }, "language": { "type": "string", "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'." }, "psm": { "type": "integer", "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." } } }

Output Schema

{ "type": "object", "required": [ "text", "confidence", "language", "processed_at" ], "properties": { "text": { "type": "string", "description": "Full extracted text from the image, with line breaks preserved" }, "confidence": { "type": "number", "description": "Overall OCR confidence score (0-100). Above 70 is considered reliable." }, "language": { "type": "string", "description": "Language code used for recognition" }, "word_count": { "type": "integer", "description": "Number of words extracted" }, "char_count": { "type": "integer", "description": "Number of characters extracted (excluding whitespace)" }, "processing_ms": { "type": "integer", "description": "Time taken for OCR processing in milliseconds" }, "processed_at": { "type": "string", "format": "date-time", "description": "ISO 8601 timestamp" } }, "example": { "text": "Invoice #12345\nDate: April 10, 2026\n\nBill To:\nJohn Smith\n123 Main Street\n\nTotal Due: $1,250.00", "confidence": 94, "language": "eng", "word_count": 18, "char_count": 72, "processing_ms": 1840, "processed_at": "2026-04-10T14:00:00.000Z" } }

Code Examples

# Step 1: Call without payment → receive 402 with requirements
curl -X POST "https://agentsvc.io/api/v1/proxy/ocr" \
  -H "Content-Type: application/json" \
  -d '{
  "image_base64": "your_image_base64",
  "language": "eng",
  "psm": 3
}'

# Step 2: Sign payment using x402 SDK, then retry
curl -X POST "https://agentsvc.io/api/v1/proxy/ocr" \
  -H "Content-Type: application/json" \
  -H "X-Payment: x402 usdc base <your-signed-payment>" \
  -d '{
  "image_base64": "your_image_base64",
  "language": "eng",
  "psm": 3
}'

Tags

#ocr#image#text#extract#tesseract#scan#document#invoice#receipt

Service Info

Service IDsvc_ocr_20
Categorytext
StatusActive
ChainBase (USDC)
Protocolx402
Read API Documentation →