> This page is for version v1 API.
> For other versions, use one of these documentation indexes:
> - v2 API (default): https://docs.cohere.com/v2/llms.txt
> - v1 API: https://docs.cohere.com/v1/llms.txt

> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://docs.cohere.com/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.cohere.com/_mcp/server.

# Document Parsing - best practices

> Best practices for image format, resolution, and throughput when using the Cohere Parse API.

## Quick Recommendations

| Use Case                               | Format         | Resize                | Notes                                 |
| -------------------------------------- | -------------- | --------------------- | ------------------------------------- |
| General Parsing (recommended)          | WebP 90        | 2048/1536px long side | Good balance for most workloads       |
| Tables, financial, high precision docs | PNG or JPEG 95 | 2048px long side      | Preserves fine lines and cell borders |

**For throughput**: resize to 1536px on the long side before sending. Minimal loss in parsing quality while significantly improving throughput.

## Resize and Convert

The key operation is `thumbnail` which resizes in-place while preserving aspect ratio:

**`PYTHON`**

```python PYTHON
from PIL import Image

IMG_MAX_SIZE = 2048

with Image.open("page.png") as img:
    img.thumbnail(
        (IMG_MAX_SIZE, IMG_MAX_SIZE), Image.Resampling.LANCZOS
    )
    if img.mode != "RGB":
        img = img.convert("RGB")
    img.save("page.webp", format="WEBP", quality=90)
```

## Send a Parse Request

**`PYTHON`**

```python PYTHON
import os
import base64
import cohere

co = cohere.ClientV2(
    "COHERE_API_KEY"
)  # Get your free API key here: https://dashboard.cohere.com/api-keys

with open("page.webp", "rb") as f:
    b64 = base64.b64encode(f.read()).decode()

data_uri = f"data:image/webp;base64,{b64}"

response = co.parse(
    model="parse-v5.0",
    document={"type": "image_url", "image_url": data_uri},
)

for page in response.pages:
    print(page.markdown.content)
```