> For the complete documentation index, see [llms.txt](https://docs.uptiq.ai/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.uptiq.ai/document-ai/document-ai-1/document-classification.md).

# Document Classification

Document Classification detects a document's type and category from its content, using an LLM classifier. It runs standalone (to sort an unlabeled inbox) or ahead of extraction (to route each document to the right extraction reviewer). It supports single-document, batch, and synchronous classification, plus special handling for multi-document PDFs, ZIP archives, and multi-sheet Excel workbooks.

In the UI, Document Classification lives under **Capabilities > Classification**.

<figure><img src="/files/RdDFUQovmCcbGAfBTmTs" alt=""><figcaption></figcaption></figure>

| Capability                    | Description                                                                            | Limit                                                                                     |
| ----------------------------- | -------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------- |
| Single classification         | Classify one document, async                                                           | —                                                                                         |
| Bulk classification           | Classify multiple documents in one batch, async                                        | 500 MB max per ZIP, 100 MB max per file within a ZIP                                      |
| Synchronous classification    | Classify one document and get the result immediately                                   | —                                                                                         |
| Custom type restriction       | Restrict classification to a caller-supplied list of types                             | Via `custom_document_types` or a URL to a JSON type list                                  |
| Multi-document PDF handling   | Detects and segments multiple documents within a single PDF                            | ≤20 pages uses direct LLM classification; over 20 pages uses a homogeneity-check pipeline |
| Excel workbook classification | Classifies per-sheet, with optional entity mapping                                     | —                                                                                         |
| Confidence scoring            | Every result includes a 0.0–1.0 confidence score from the LLM                          | —                                                                                         |
| Search & filter               | Search the classification list by ID, type, status, or file type, and filter by status | —                                                                                         |

{% hint style="info" %}
Confidence scores don't have a fixed pass/fail threshold in the classifier itself — the score is also used internally to decide whether a multi-page PDF needs the homogeneity-check pipeline.
{% endhint %}

### Workflow

1. **Upload** — choose an AI model (GPT-4.1, GPT-5.1, or Gemini 3) to apply to the file(s), then submit a single document, a batch, or use the synchronous endpoint for an immediate result. In the UI, individual files are capped at 50 MB, separate from the bulk API's ZIP-level limits above. Optionally restrict classification to a caller-supplied list of custom document types, combined with the built-in categories (see Upload Modal Category List below).
2. **Segmentation** (PDFs only) — PDFs of 20 pages or fewer are classified directly. Longer PDFs go through a homogeneity check to detect document boundaries before classification.
3. **Classify** — the LLM returns a document type, category, confidence score, and a short summary explaining the classification.
4. **Multi-document linking** — for a PDF containing several instances of the same document type across page ranges, later segments are linked back to the first via `continuationOf`.
5. **Review** — open the classification list or a single result to see the assigned type, category, and confidence.
6. **Route to extraction** — a confirmed classification determines which extraction reviewer handles the document next in [Document Extraction](/document-ai/document-ai-1/document-extraction.md).

Confirmed for all four roles (Owner, Admin, Member, Viewer): full access to the classification list and upload flow, including model selection and custom type tagging. Member and Viewer were each independently confirmed to upload and classify a real file successfully, not just Owner and Admin.

### Supported Classification Types

Document Classification draws from the platform's single 115-type registry — the same registry used by [Document Extraction](/document-ai/document-ai-1/document-extraction.md). For the complete, authoritative, categorized list, see [Document Types](/document-ai/document-ai-1/document-types.md).

{% hint style="info" %}
Additional types can be registered dynamically without a code change — new types are merged in at runtime and recognized automatically, by adding a YAML config file. See [Document Types](/document-ai/document-ai-1/document-types.md) for how the registry works.
{% endhint %}

### Related pages

* [Document Types](/document-ai/document-ai-1/document-types.md) defines the shared registry, categories, and schemas.
* [Document Extraction](/document-ai/document-ai-1/document-extraction.md) uses the confirmed type to send documents into the right reviewer.
* [Webhooks & Integrations](/document-ai/document-ai-1/webhooks-and-integrations.md) delivers completion events after classification finishes.

#### Built-In Category List

The upload flow's built-in category list, offered as the default set to combine with any custom document types:

<details>

<summary>View built-in categories</summary>

* Account Transfer Document
* Audited Document
* BalanceSheet
* Business
* BusinessTaxForms
* CashFlowStatement
* Credit
* CreditReport
* Disclosure Document
* Financial
* Financial Advisory Document
* Financial Document
* Financial Documents
* Financial Statements
* Fund Disclosure Statements
* Fund Document
* Human Resources
* Identity
* Identity Document
* Income Document
* IndividualTaxForms
* Institutional Investment / Marketing Document
* Institutional Investment / Performance Document
* Insurance
* Inventory
* Investment Advisory / Strategy Document
* Investment Document
* Legal
* Legal & Compliance
* Legal Document
* Liability Document
* Loan Document
* PersonalFinancialStatement
* Policy Document
* ProfitAndLossStatement
* Proof of Address Document
* Real Estate Document
* Rental Document
* Tax
* Tax Document
* Transportation
* Vehicle
* Wealth / Investment Document
* Wealth / Portfolio Statement
* Wealth Management Document

</details>

{% hint style="warning" %} <mark style="color:$warning;">The Upload Documents modal's category picker still displays this 45-item list labeled "System-Supported Categories," described in the UI as a separate taxonomy from the 115-type registry — but Document Types states classification and extraction share one unified 115-type registry, and calls the 45/115 split a mistake in earlier drafts of this page.</mark>
{% endhint %}


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.uptiq.ai/document-ai/document-ai-1/document-classification.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
