> 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/developer-documentation/api-reference.md).

# Overview

Everything the Document AI product does to a document — read it, identify it, produce it — is reachable over HTTP. The API is how you put those capabilities inside your own intake pipeline, loan origination system, or back-office workflow, instead of asking someone to upload files through the portal.

New to the API? Start with [Getting started](/document-ai/developer-documentation/getting-started.md) to authenticate, submit an extraction, and receive results.

The surface is deliberately small. Fourteen operations across four groups, one authentication header, and a single decision that shapes most integrations: whether you wait for the answer or collect it later.

### The four groups

| Group                                                                                       | What it does                           | Start here                                                                                          |
| ------------------------------------------------------------------------------------------- | -------------------------------------- | --------------------------------------------------------------------------------------------------- |
| [Extraction](/document-ai/developer-documentation/integration-guides/extraction.md)         | Turn a document into structured fields | [Quickstart](/document-ai/developer-documentation/getting-started/quickstart-extract-a-document.md) |
| [Classification](/document-ai/developer-documentation/integration-guides/classification.md) | Identify what a document is            | [Classify, then extract](/document-ai/cookbooks/classify-then-extract.md)                           |
| [Generation](/document-ai/developer-documentation/integration-guides/generation.md)         | Produce a finished document from data  | [Generate a document](/document-ai/cookbooks/generate-a-document.md)                                |
| [Utility](/document-ai/developer-documentation/integration-guides/utility.md)               | Look up supported types and formats    | [Discovering document types](/document-ai/cookbooks/discovering-document-types.md)                  |

### Base URL

```
https://api-docai-uat.uptiq.ai
```

{% hint style="warning" %}
This is the **UAT** environment, and it is the only environment these pages document. Every example on every page targets it. Confirm the production host with your Uptiq contact before you promote an integration.
{% endhint %}

Note that the API host is a different hostname from the portal you sign in to (`docai-uat.uptiq.ai`). Requests go to `api-docai-uat`, not to the portal.

### Your first call

One operation needs no credentials at all, which makes it a good way to prove connectivity before you introduce authentication as a variable:

```bash
curl "https://api-docai-uat.uptiq.ai/listSupportedDocuments"
```

A `200` with a JSON body of document types means you can reach the platform. Everything after that needs an API key — see [Authentication](/document-ai/developer-documentation/getting-started/authentication.md).

### Choosing sync or async

Extraction, classification and generation each come in both forms, and the choice is about how long you are willing to hold a connection open.

|                   | Synchronous                                   | Asynchronous                                  |
| ----------------- | --------------------------------------------- | --------------------------------------------- |
| Endpoint          | `/extract/sync`                               | `/extract`                                    |
| Returns           | The finished result                           | An ID, immediately                            |
| Observed latency  | \~90s for a one-page PDF                      | \~0.6s to accept                              |
| Get the result by | The response body                             | Polling, or a webhook                         |
| Suits             | Interactive flows, small volumes, prototyping | Batches, long documents, production pipelines |

Extraction is genuinely slow — the synchronous call in our testing took **92 seconds** for a single page, because the work is real OCR plus model inference rather than a lookup. Classification is much quicker at around **13 seconds**. Size your timeouts accordingly, and prefer the asynchronous path for anything user-facing.

{% hint style="info" %}
Moving between the two is usually just a change of URL. The request body is the same, so you can prototype against `/extract/sync` and switch to `/extract` for production without rewriting the payload.
{% endhint %}

### What is not in the API yet

The API covers document *processing*. It does not currently expose account administration, and a few things you can do in the portal have no documented endpoint:

| Not available over the API                  | Do it here instead                                                                                                                                        |
| ------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Creating and revoking API keys              | Settings → API Keys — see [User Management](/document-ai/guides-1/user-management.md)                                                                     |
| Configuring webhook endpoints               | Settings → Edit Account Information — see [Webhook payloads](/document-ai/developer-documentation/getting-started/webhook-payloads.md)                    |
| Listing your extractions or classifications | The Extractions and Classifications screens — see [Document Extraction](/document-ai/guides-1/document-extraction.md)                                     |
| Correcting an extracted field               | The extraction detail view — see [Document Extraction](/document-ai/guides-1/document-extraction.md)                                                      |
| Managing users and roles                    | Settings → Users — see [User Management](/document-ai/guides-1/user-management.md)                                                                        |
| Configuring fraud rules                     | Document Types → Fraud Detection — see [Fraud Detection](/document-ai/guides-1/fraud-detection.md). Fraud *results* can be read from an extraction record |

This list reflects what is documented and supported today, not a judgement about what exists internally. If you need one of these programmatically, raise it with your Uptiq contact rather than working from an undocumented route.

### Related pages

* [Authentication](/document-ai/developer-documentation/getting-started/authentication.md) — the `X-Api-Key` header and how to get one.
* [Conventions](/document-ai/developer-documentation/getting-started/conventions.md) — envelopes, the status lifecycle, and the rules the schema does not enforce.
* [Errors](/document-ai/developer-documentation/getting-started/errors.md) — what each status code means, including the ones that are not what they look like.
* [Webhook payloads](/document-ai/developer-documentation/getting-started/webhook-payloads.md) — the completion callbacks and how to verify them.
* [Cookbooks](/document-ai/cookbooks/discovering-document-types.md) — task-shaped recipes built on these endpoints.


---

# 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/developer-documentation/api-reference.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.
