---
title: "Extract text from image (Fast = Brainiall Form Parser, Pro = Brainiall Form Parser engine)"
method: POST
path: "/v1/ocr/extract/base64"
tags: ["S8 Document AI / OCR"]
---

# Extract text from image (Fast = Brainiall Form Parser, Pro = Brainiall Form Parser engine)

`POST /v1/ocr/extract/base64`

## Request

- Base URL: `https://api.brainiall.com`
- URL: `https://api.brainiall.com/v1/ocr/extract/base64`
- Auth: HTTP bearer

Two tiers: Fast (Brainiall Form Parser (Fast tier, quantized) + confidence threshold + content sanity filter, mono-line, 327 ms) or Pro (Brainiall Form Parser (Pro tier, quantized), multi-line + structured receipt extraction, 2.4 s). 5-10× cheaper than AWS Textract for receipts. permissively licensed.

## Request body

- OcrExtractRequest
  - `image` string, required: Base64-encoded image
  - `tier` 'fast' | 'pro': fast = Brainiall Form Parser mono-line printed text · pro = Brainiall Form Parser engine multi-line + structured receipt extraction

## Response `200`

Text extracted

- OcrExtractResponse
  - `request_id` string
  - `processing_ms` integer
  - `tier` 'fast' | 'pro'
  - `text` string, nullable: Extracted text (null if low_confidence on Fast tier)
  - `raw_text` string, nullable: Raw decoder output (only present when low_confidence=true; for diagnostics)
  - `confidence` number, float, nullable
  - `low_confidence` boolean, nullable: True if Fast tier rejected output (no-text image, gibberish, or out-of-scope multi-line)
  - `low_confidence_reason` string, nullable
  - `structured` object, nullable: Brainiall Form Parser engine Pro tier structured output (raw + parsed)

## Other responses

- `400`: Invalid input
- `401`: Unauthorized
- `429`: Rate limit exceeded

---

[API](https://skmtc.dev/brainiall/apis/brainiall-specialist-ai-apis.md) · [All operations](https://skmtc.dev/brainiall/apis/brainiall-specialist-ai-apis/llms.txt) · [OpenAPI document](https://skmtc.dev/brainiall/apis/brainiall-specialist-ai-apis/revisions/e44fed29a7b5?raw)
