# AWS Textract (/integrations/textract)





{/* MANUAL-CONTENT-START:intro */}

Use [AWS Textract](https://aws.amazon.com/textract/) to extract text, handwriting, tables, forms, key-value pairs, and supported document-analysis features. Expense and identity-document actions return their corresponding structured results.

Single-page parsing supports JPEG, PNG, and single-page PDF supplied as a file or URL. Multi-page parsing supports PDF and TIFF stored in S3; provide the document's `s3://bucket/key` URI. Choose the document mode supported by the selected action.

{/* MANUAL-CONTENT-END */}

## Use the block [#usage-instructions]

Integrate AWS Textract into your workflow to extract text, tables, forms, and key-value pairs from documents. Single-page mode supports JPEG, PNG, and single-page PDF. Multi-page mode supports multi-page PDF and TIFF.

## Actions [#actions]

### AWS Textract Parser [#aws-textract-parser]

Parse documents using AWS Textract OCR and document analysis

<ReferenceDetails>
  #### Input [#input]

  | Parameter | Type | Required | Description |
  | - | - | - | - |
  | `accessKeyId` | string | Yes | AWS Access Key ID |
  | `secretAccessKey` | string | Yes | AWS Secret Access Key |
  | `region` | string | Yes | AWS region for Textract service (e.g., us-east-1) |
  | `processingMode` | string | No | Document type: single-page or multi-page. Defaults to single-page. |
  | `file` | file | No | Document to be processed (JPEG, PNG, or single-page PDF). |
  | `s3Uri` | string | No | S3 URI for multi-page processing (s3://bucket/key). |
  | `featureTypes` | array | No | Feature types to detect: TABLES, FORMS, QUERIES, SIGNATURES, LAYOUT. If not specified, only text detection is performed. |
  | `queries` | array | No | Custom queries to extract specific information. Only used when featureTypes includes QUERIES. |

  #### Output [#output]

  | Parameter | Type | Description |
  | - | - | - |
  | `blocks` | array | Array of Block objects containing detected text, tables, forms, and other elements |
  | ↳ `BlockType` | string | Type of block (PAGE, LINE, WORD, TABLE, CELL, KEY\_VALUE\_SET, etc.) |
  | ↳ `Id` | string | Unique identifier for the block |
  | ↳ `Text` | string | The text content (for LINE and WORD blocks) |
  | ↳ `TextType` | string | Type of text (PRINTED or HANDWRITING) |
  | ↳ `Confidence` | number | Confidence score (0-100) |
  | ↳ `Page` | number | Page number |
  | ↳ `Geometry` | object | Location and bounding box information |
  | ↳ `BoundingBox` | object | |
  | ↳ `Height` | number | Height as ratio of document height |
  | ↳ `Left` | number | Left position as ratio of document width |
  | ↳ `Top` | number | Top position as ratio of document height |
  | ↳ `Width` | number | Width as ratio of document width |
  | ↳ `Polygon` | array | Polygon coordinates |
  | ↳ `X` | number | X coordinate |
  | ↳ `Y` | number | Y coordinate |
  | ↳ `Relationships` | array | Relationships to other blocks |
  | ↳ `Type` | string | Relationship type (CHILD, VALUE, ANSWER, etc.) |
  | ↳ `Ids` | array | IDs of related blocks |
  | ↳ `EntityTypes` | array | Entity types for KEY\_VALUE\_SET (KEY or VALUE) |
  | ↳ `SelectionStatus` | string | For checkboxes: SELECTED or NOT\_SELECTED |
  | ↳ `RowIndex` | number | Row index for table cells |
  | ↳ `ColumnIndex` | number | Column index for table cells |
  | ↳ `RowSpan` | number | Row span for merged cells |
  | ↳ `ColumnSpan` | number | Column span for merged cells |
  | ↳ `Query` | object | Query information for QUERY blocks |
  | ↳ `Text` | string | Query text |
  | ↳ `Alias` | string | Query alias |
  | ↳ `Pages` | array | Pages to search |
  | `documentMetadata` | object | Metadata about the analyzed document |
  | ↳ `pages` | number | Number of pages in the document |
  | `modelVersion` | string | Version of the Textract model used for processing |
</ReferenceDetails>

### AWS Textract Analyze Expense [#aws-textract-analyze-expense]

Extract structured invoice and receipt fields using AWS Textract AnalyzeExpense

#### Input [#input-1]

| Parameter | Type | Required | Description |
| - | - | - | - |
| `accessKeyId` | string | Yes | AWS Access Key ID |
| `secretAccessKey` | string | Yes | AWS Secret Access Key |
| `region` | string | Yes | AWS region for Textract service (e.g., us-east-1) |
| `processingMode` | string | No | Document type: single-page or multi-page. Defaults to single-page. |
| `file` | file | No | Invoice or receipt to be processed (JPEG, PNG, or single-page PDF). |
| `filePath` | string | No | URL to an invoice or receipt to be processed, if not uploaded directly. |
| `s3Uri` | string | No | S3 URI for multi-page processing (s3://bucket/key). |

#### Output [#output-1]

| Parameter | Type | Description |
| - | - | - |
| `expenseDocuments` | array | Detected expense documents with summary fields and line items |
| ↳ `expenseIndex` | number | Index of the expense document |
| ↳ `summaryFields` | array | Header fields such as vendor name, invoice date, and totals |
| ↳ `lineItemGroups` | array | Groups of line items (e.g., purchased items and their prices) |
| ↳ `lineItemGroupIndex` | number | Index of the line item group |
| ↳ `lineItems` | array | Individual line items within the group |
| ↳ `lineItemExpenseFields` | array | Fields for a single line item (description, quantity, price) |
| `documentMetadata` | object | Metadata about the analyzed document |
| ↳ `pages` | number | Number of pages in the document |
| `modelVersion` | string | Version of the AnalyzeExpense model used (multi-page/async only) |

### AWS Textract Analyze ID [#aws-textract-analyze-id]

Extract identity document fields using AWS Textract AnalyzeID

#### Input [#input-2]

| Parameter | Type | Required | Description |
| - | - | - | - |
| `accessKeyId` | string | Yes | AWS Access Key ID |
| `secretAccessKey` | string | Yes | AWS Secret Access Key |
| `region` | string | Yes | AWS region for Textract service (e.g., us-east-1) |
| `file` | file | No | Front of the identity document (JPEG, PNG, or PDF). |
| `filePath` | string | No | URL to the front of the identity document, if not uploaded directly. |
| `fileBack` | file | No | Back of the identity document, if applicable (JPEG, PNG, or PDF). |
| `filePathBack` | string | No | URL to the back of the identity document, if not uploaded directly. |

#### Output [#output-2]

| Parameter | Type | Description |
| - | - | - |
| `identityDocuments` | array | Detected identity documents with normalized fields |
| ↳ `documentIndex` | number | Index of the document page set |
| ↳ `identityDocumentFields` | array | Normalized fields such as FIRST\_NAME, LAST\_NAME, DATE\_OF\_BIRTH, DOCUMENT\_NUMBER, EXPIRATION\_DATE |
| ↳ `type` | object | Normalized field label |
| ↳ `text` | string | Field label text |
| ↳ `confidence` | number | Confidence score (0-100) |
| ↳ `valueDetection` | object | Detected value for the field, with a normalized value for dates |
| ↳ `text` | string | Field value text |
| ↳ `confidence` | number | Confidence score (0-100) |
| `documentMetadata` | object | Metadata about the analyzed document |
| ↳ `pages` | number | Number of pages analyzed |
| `modelVersion` | string | Version of the AnalyzeID model used for processing |
