> For the complete documentation index, see [/llms.txt](/llms.txt).

> Source: /docs/capabilities/parse/document-ocr

# Document OCR

## What is Optical Character Recognition (OCR)?

Upstage Document OCR is designed to efficiently detect and recognize text from a wide range of document images, ensuring high accuracy and versatility across various languages and image qualities.

## What models does Upstage provide?

The table below lists models currently available as an API. Upstage provides stable _aliases_ that point to specific model versions, allowing you to integrate once and automatically benefit from future updates. We recommend using aliases instead of hardcoding model names, as models can be frequently updated.

<table><thead><tr><th align="left" width="150px">Alias</th><th>Currently points to</th><th>RPS <a href="/docs/guides/rate-limits#ocr">(Learn more)</a></th></tr></thead><tbody><tr><td>ocr</td><td>[ocr-260930](/docs/models/history#ocr-260930)</td><td>3</td></tr></tbody></table>

[Test High-Accuracy OCR in the Playground!](/playground/ocr) — Detect and recognize text from document images with precision — across multiple languages and image qualities.

## Understanding model output

### Robustness on real-world documents

Our OCR model is designed to provide robust performance in various document processing scenarios, including rotated images, watermarks, noise, and checkboxes. It accurately detects and recognizes text by training on a high-quality dataset that covers a wide range of scenarios. The model's ability to accurately detect the upper-left corner of word boxes in rotated documents, as well as its ability to ignore watermarks and checkboxes during training, ensures that only meaningful text from the document is extracted. This makes it an ideal solution for businesses and individuals seeking accurate and efficient document processing capabilities.

<figure>

![namecard-ocr.png](/assets/images/docs/namecard-ocr.png)

<figcaption>Figure 1: detecting words in the rotated images</figcaption>

</figure>

### Utilizing confidence score

Upstage OCR generates a confidence score that measures the likelihood of the recognized text being correct during the character recognition process. This score helps to indicate the accuracy of the OCR system's output. The score is initially created at the character level but is calibrated at the word level to make it more useful for applications. The confidence score can be used to visualize or verify the recognized content, with lower scores highlighting areas that require closer inspection or filtering. This process helps assess the reliability of extracted text and determines if additional verification is needed, ultimately enhancing overall accuracy and user trust.

<figure>

![ocr-highlight.png](/assets/images/docs/ocr-highlight.png)

<figcaption>Figure 2. An example of an application that highlights the low-confident entities from the OCR result.</figcaption>

</figure>

<figure>

![hello.png](/assets/images/docs/ocr-confidence-score.png)

<figcaption>Figure 3. Example of Document OCR API response in JSON format with the confidence score.&#x20;</figcaption>

</figure>

### Requirements

- **Supported file formats:** JPEG, PNG, BMP, TIFF, HEIC, WEBP, PDF, DOC, DOCX, PPT, PPTX, XLS, XLSX, CSV, TSV, HWP, HWPX
- **Maximum file size:** 100MB
- **Maximum number of pages per file:** 100 pages (Files exceeding 100 pages are rejected with a 413 error)
- **Maximum pixels per page:** 200,000,000 pixels. For non-image files, the pixel count is determined after converting to images at a standard of 150 DPI.
- **Supported character sets:** Alphanumeric, Hangul, and Hanja are supported. Hanzi and Kanji are in beta versions, indicating that they are available but not fully supported.
- **Text size:** Optimized for text size that is approximately under 30% of the page size. Examples that don't meet these standards are considered bad examples, and could result in a response error.

> Hanja, Hanzi, and Kanji are writing systems based on Chinese characters used in Korean, Chinese, and Japanese writing systems.
> Despite sharing similarities, they possess distinct visual representations, pronunciations, meanings, and usage conventions within their
> respective linguistic contexts. For more information, see [this article](https://en.wikipedia.org/wiki/Chinese_characters).

## Example

### Request

<figure>

![hello.png](/assets/images/docs/hello.png)

<figcaption>hello.png</figcaption>

</figure>

_Request/response examples: document-ocr / request_

### Response

_Example: document-ocr / response-200 / default_

[Test High-Accuracy OCR in the Playground!](/playground/ocr) — Detect and recognize text from document images with precision — across multiple languages and image qualities.

## Frequently Asked Questions

Check out frequently asked questions below. For more FAQs, visit the [FAQ page](/docs/resources/faq).

### Q. What is the difference between OCR and Document Parse?

Document Parse understands the structure and layout of documents to extract text, tables, and images, while OCR mainly focuses on text recognition.

### Q. Why am I getting 429 Too Many Requests error during an API request (rate limit)?

Rate limits are restrictions set by our API on how frequently a user can make requests within a given time frame. Rate limits vary by your commitment tier. For detailed information, please refer to the [rate limits page](/docs/guides/rate-limits). If you encounter 429 errors, reduce the frequency of your requests and try again after a few seconds or a minute. To raise the limit itself, see [How can I increase the rate limit, and are there any conditions required?](/docs/resources/faq#how-can-i-increase-the-rate-limit-and-are-there-any-conditions-required).

### Q. How can I increase the rate limit, and are there any conditions required?

Rate limits are automatically determined by your commitment tier. To increase your rate limit, purchase credits to upgrade your commitment tier. You can choose a one-time purchase, or monthly or yearly auto-recharge, at the [credit purchase page](https://console.upstage.ai/billing/credit). For details on each tier and its rate limits, visit [upstage.ai/pricing/api](https://www.upstage.ai/pricing/api). If no commitment tier covers the limits you need, [contact us](https://www.upstage.ai/contact-us?utm_medium=console&utm_source=docs&utm_content=faq) with your requirements.

### Q. Why is the response time slow or delayed?

Temporary surges in usage can cause delays.

- Monthly availability is maintained at over 95% under our [Service Level Agreement](/docs/terms/sla)
- Check [status.upstage.ai](https://status.upstage.ai/) for real-time updates

### Q. Can I request multiple documents at once?

We currently do not provide an interface for requesting multiple documents at once. We recommend sending images one at a time in series instead of sending multiple simultaneous requests. Sending many requests at once may result in a "429 Too Many Requests" error.

### Q. What file formats are supported for OCR?

OCR API supports commonly used image and document formats.

- **Supported file formats:** JPEG, PNG, BMP, PDF, TIFF, HEIC, DOCX, PPTX, XLSX, HWP, HWPX
- **Maximum file size:** 50MB

### Q. Does the OCR API provide line-level output?

The OCR API does not return a dedicated `line` field. Line-level output shown in Playground is a post-processing result. You can reconstruct it using bounding box coordinates in the `words` array and line breaks in `pages.text`.

### Q. How can I fix line breaks and spacing errors in OCR results?

The OCR API does not currently offer options to adjust text correction. Recognition errors in dense or complex layouts are known limitations and will be gradually improved with future model updates.

### Q. How can I improve OCR text recognition quality?

1. Change OCR options (`ocr=force` vs. `ocr=auto`).
2. Test the latest model version.
3. For complex layouts, apply structured prompts or post-processing.