---
title: "Ocr"
method: POST
path: "/v1/ocr"
---

# Ocr

`POST /v1/ocr`

## Request

- Base URL: `https://api.pennyocr.com` (the document declares no server; this is the origin it was published from)
- URL: `https://api.pennyocr.com/v1/ocr`
- Auth: HTTP bearer

OCR a document (PDF, PNG, JPEG, WebP, TIFF). Billed per page.

format=markdown (default): structured markdown with tables.
format=text: plain text only — significantly faster.

## Query parameters

- `format` string

## Response `200`

Successful Response

- OCRResponse
  - `id` string, required: Request id, e.g. ocr_ab12cd34
  - `pages` integer, required
  - `text` string, required: Full extracted text, pages joined by form feeds
  - `page_results` PageResult[], required
    - `page` integer, required: 1-indexed page number
    - `text` string, required
  - `cost_usd` number, required
  - `model` string, required

## Other responses

- `422`: Validation Error

---

[API](https://skmtc.dev/pennyocr/apis/pennyocr-api.md) · [All operations](https://skmtc.dev/pennyocr/apis/pennyocr-api/llms.txt) · [OpenAPI document](https://skmtc.dev/pennyocr/apis/pennyocr-api/revisions/0f7ed2e08b83?raw)
