GoodMemGoodMem

OCR

Document text extraction.

Methods on this page are called through client.ocr.

client.ocr.document

client.ocr.document(request: OcrDocumentRequest, requestOptions?: RequestOptions): Promise<OcrDocumentResponseShape>

Runs layout-aware OCR on the provided document bytes and returns per-page results. When a page range is provided, only the inclusive subset is processed. Requires OCR_DOCUMENT permission.

HTTP: POST /v1/ocr:document

Parameters

ParameterTypeDescription
requestOcrDocumentRequestRequest body.
requestOptionsRequestOptions optionalPer-call signal, timeout, or headers.

Returns: Promise&lt;OcrDocumentResponseShape&gt;

Example

const ocr = await client.ocr.document({
  content: "JVBERi0xLjQKJc...",
  includeMarkdown: true,
});
console.log(ocr.pages[0]?.page?.markdown);

Data Models

Enum Values

OcrCategory

UNSPECIFIED, CAPTION, FOOTNOTE, FORMULA, LIST_ITEM, PAGE_FOOTER, PAGE_HEADER, PICTURE, SECTION_HEADER, TABLE, TEXT, TITLE, OTHER, UNKNOWN

OcrInputFormat

AUTO, PDF, TIFF, PNG, JPEG, BMP

Interfaces

BoundingBox

Bounding box coordinates in page space.

FieldTypeRequiredDescription
x1numberyesLeft coordinate
y1numberyesTop coordinate
x2numberyesRight coordinate
y2numberyesBottom coordinate

DocumentTimings

Aggregate timing statistics for an OCR request.

FieldTypeRequiredDescription
wallTimeMsnumberyesEnd-to-end request time (ms)
sumQueueWaitMsnumberyesSum of per-page queue wait times (ms)
sumRenderMsnumberyesSum of per-page render times (ms)
sumOcrMsnumberyesSum of per-page OCR times (ms)
sumPageTotalMsnumberyesSum of per-page total times (ms)

ImageInfo

Rendered image metadata for an OCR page.

FieldTypeRequiredDescription
widthPxnumberyesRendered image width in pixels
heightPxnumberyesRendered image height in pixels
dpinumberyesRendering DPI

OcrCell

Single OCR layout element.

FieldTypeRequiredDescription
bboxBoundingBox | nullnoBounding box in page coordinates
categoryLabelstringyesRaw category label emitted by OCR
categoryOcrCategoryyesNormalized OCR category
textstringyesOCR text content

OcrDocumentRequest

Request body for OCR document processing.

FieldTypeRequiredDescription
contentstring | nullyesBase64-encoded document bytes
formatOcrInputFormat | nullnoInput format hint (AUTO, PDF, TIFF, PNG, JPEG, BMP)
includeRawJsonboolean | nullnoInclude raw OCR JSON payload in the response
includeMarkdownboolean | nullnoInclude markdown rendering in the response
startPagenumber | nullno0-based inclusive start page
endPagenumber | nullno0-based inclusive end page

OcrDocumentResponse

Response containing page-ordered OCR results.

FieldTypeRequiredDescription
detectedFormatOcrInputFormatyesDetected input format
pageCountnumberyesNumber of pages processed after applying the range
pagesArray&lt;OcrPageResult&gt;yesOrdered per-page OCR results
timingsDocumentTimingsyesAggregate timing statistics

OcrLayout

Parsed OCR layout output for a page.

FieldTypeRequiredDescription
cellsArray&lt;OcrCell&gt;yesLayout cells in reading order

OcrPage

OCR output for a single page.

FieldTypeRequiredDescription
rawJsonstring | nullnoRaw OCR JSON payload when requested
markdownstring | nullnoMarkdown rendering when requested
layoutOcrLayoutyesParsed layout output
timingsPageTimingsyesTiming breakdown for the page
imageImageInfoyesRendered image metadata

OcrPageResult

Per-page OCR result containing output or error status.

FieldTypeRequiredDescription
pageIndexnumberyes0-based page index
pageOcrPage | nullnoOCR output for the page
statusRpcStatus | nullnoError status for the page

PageTimings

Per-page timing breakdown for OCR processing.

FieldTypeRequiredDescription
queueWaitMsnumberyesTime spent waiting in the render queue (ms)
renderMsnumberyesTime spent rendering the page image (ms)
ocrMsnumberyesTime spent running OCR (ms)
totalMsnumberyesTotal page processing time (ms)

RpcStatus

Status payload for per-page OCR errors.

FieldTypeRequiredDescription
codenumberyesgRPC status code as defined by google.rpc.Code
messagestring | nullnoHuman-readable error message

Response Shapes

Response shape types model values returned by the SDK after forward-compatible unknown enum strings are coerced to null.

BoundingBoxResponseShape

FieldTypeRequiredDescription
x1numberyesLeft coordinate
y1numberyesTop coordinate
x2numberyesRight coordinate
y2numberyesBottom coordinate

DocumentTimingsResponseShape

FieldTypeRequiredDescription
wallTimeMsnumberyesEnd-to-end request time (ms)
sumQueueWaitMsnumberyesSum of per-page queue wait times (ms)
sumRenderMsnumberyesSum of per-page render times (ms)
sumOcrMsnumberyesSum of per-page OCR times (ms)
sumPageTotalMsnumberyesSum of per-page total times (ms)

ImageInfoResponseShape

FieldTypeRequiredDescription
widthPxnumberyesRendered image width in pixels
heightPxnumberyesRendered image height in pixels
dpinumberyesRendering DPI

OcrCellResponseShape

FieldTypeRequiredDescription
bboxBoundingBoxResponseShape | nullnoBounding box in page coordinates
categoryLabelstringyesRaw category label emitted by OCR
categoryOcrCategory | nullyesNormalized OCR category
textstringyesOCR text content

OcrDocumentResponseShape

FieldTypeRequiredDescription
detectedFormatOcrInputFormat | nullyesDetected input format
pageCountnumberyesNumber of pages processed after applying the range
pagesArray&lt;OcrPageResultResponseShape&gt;yesOrdered per-page OCR results
timingsDocumentTimingsResponseShapeyesAggregate timing statistics

OcrLayoutResponseShape

FieldTypeRequiredDescription
cellsArray&lt;OcrCellResponseShape&gt;yesLayout cells in reading order

OcrPageResponseShape

FieldTypeRequiredDescription
rawJsonstring | nullnoRaw OCR JSON payload when requested
markdownstring | nullnoMarkdown rendering when requested
layoutOcrLayoutResponseShapeyesParsed layout output
timingsPageTimingsResponseShapeyesTiming breakdown for the page
imageImageInfoResponseShapeyesRendered image metadata

OcrPageResultResponseShape

Type constraint: OcrPageResultResponseShape = RequireExactlyOne&lt;OcrPageResultResponseShapeBase, "page" \| "status"&gt;

FieldTypeRequiredDescription
pageIndexnumberyes0-based page index
pageOcrPageResponseShape | nullnoOCR output for the page
statusRpcStatusResponseShape | nullnoError status for the page

PageTimingsResponseShape

FieldTypeRequiredDescription
queueWaitMsnumberyesTime spent waiting in the render queue (ms)
renderMsnumberyesTime spent rendering the page image (ms)
ocrMsnumberyesTime spent running OCR (ms)
totalMsnumberyesTotal page processing time (ms)

RpcStatusResponseShape

FieldTypeRequiredDescription
codenumberyesgRPC status code as defined by google.rpc.Code
messagestring | nullnoHuman-readable error message