Skip to content

Ocr Extract

POST
/ocr/extract
curl --request POST \
--url https://example.com/ocr/extract \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{ "image": "example", "model": "example", "variant": "example", "output_format": "text", "task": "ocr", "source_lang": "example" }'

Submit an OCR job and return immediately with a task_id.

The Celery worker handles model warmup (dispatcher pattern) and calls the ACA /ocr endpoint. Poll GET /ocr/{task_id} for the result.

Supported models: deepseek-ocr2 — A100, general-purpose high-quality OCR paddleocr-vl — T4, fast 0.9B, supports table/formula/chart tasks numarkdown-8b — T4, markdown-optimised document extraction managed-model — T4 FP8, 32-language multilingual OCR with reasoning translategemma — A100 (existing deployment), image text extraction

Media typeapplication/json
OCRRequest
object
image
required
Image

Base64-encoded image (JPEG, PNG, or PDF page)

string
model
required
Model

Registered model name: deepseek-ocr2 | paddleocr-vl | numarkdown | managed-model | translategemma

string
variant
Any of:
string
<= 64 characters
output_format
Output Format

Output format: ‘text’ or ‘markdown’

string
default: text /^(text|markdown)$/
task
Task

Task type — ‘table’/‘formula’/‘chart’ only supported by paddleocr-vl

string
default: ocr /^(ocr|table|formula|chart)$/
source_lang
Any of:
string

Successful Response

Media typeapplication/json
OCRSubmission
object
task_id
required
Task Id

Celery task ID for tracking the OCR job

string
status
Status

Initial status of the task

string
default: queued
Example
{
"status": "queued"
}

Validation Error

Media typeapplication/json
HTTPValidationError
object
detail
Detail
Array<object>
ValidationError
object
loc
required
Location
Array
msg
required
Message
string
type
required
Error Type
string
input
Input
ctx
Context
object
Examplegenerated
{
"detail": [
{
"loc": [
"example"
],
"msg": "example",
"type": "example",
"input": "example",
"ctx": {}
}
]
}