> ## Documentation Index
> Fetch the complete documentation index at: https://docs.reducto.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Credit Usage

> Understanding how credits are calculated across Reducto endpoints

Credits are the billing unit for Reducto API usage. This page explains how credits are calculated for each endpoint and document type.

## Parse Endpoint

### Documents and Images

Supported formats: PDF, DOCX, DOC, PPTX, PPT, PNG, JPEG, GIF, TIFF, HEIC, and more.

| Processing Type          | Credits/Page | When Applied                                                                       |
| ------------------------ | ------------ | ---------------------------------------------------------------------------------- |
| **Standard**             | 1            | Text, layout, simple tables, OCR                                                   |
| **Complex**              | 2            | VLM-enhanced pages (complex tables, key-value regions, figures with summarization) |
| **Agentic - Standard**   | 2            | Agentic mode enabled on simple pages                                               |
| **Agentic - Complex**    | 4            | Agentic mode enabled on complex pages                                              |
| **Advanced chart agent** | +4           | Per chart when `advanced_chart_agent: true`                                        |

<Note>
  Reducto automatically classifies page complexity. You don't choose "standard" vs "complex". Complexity is determined by the content.
</Note>

**What makes a page complex?**

* Tables with merged cells or nested headers
* Key-value form regions
* Figures when `summarize_figures: true` (default)

### Spreadsheets

Supported formats: XLSX, XLS, CSV, XLSM

| Clustering Mode        | Credits           | Description                 |
| ---------------------- | ----------------- | --------------------------- |
| **Accurate** (default) | 1 per 1,000 cells | Intelligent table detection |
| **Fast**               | 1 per 5,000 cells | Basic clustering            |
| **Disabled**           | 1 per 5,000 cells | Single table output         |

### Text Files

Supported formats: HTML, TXT, RTF

| Format       | Credits/Page |
| ------------ | ------------ |
| Text formats | 0.5          |

***

## Extract Endpoint

| Mode                    | Credits                                                                         | Notes                                  |
| ----------------------- | ------------------------------------------------------------------------------- | -------------------------------------- |
| **Standard**            | 2 per page                                                                      | Schema-based extraction                |
| **Deep Extract** (Beta) | 4 per page + 0.1 per field extracted,<br />minimum of 30 credits per document\* | Agentic loop for near-perfect accuracy |

<p style={{fontSize: '0.8rem', color: '#6b7280', marginTop: '-0.75rem'}}>\*Beta pricing, subject to change.</p>

<Warning>
  If you pass a URL or file directly to Extract (instead of a `jobid://`), Parse credits are also charged. To avoid double-charging, parse first, then extract using the job ID.
</Warning>

```python theme={null}
# ❌ Charges for both Parse AND Extract
result = client.extract.run(
    input=upload.file_id,
    instructions={"schema": schema}
)

# ✅ Only charges for Extract (reuses parsed content)
parse_result = client.parse.run(input=upload.file_id)
result = client.extract.run(
    input=f"jobid://{parse_result.job_id}",
    instructions={"schema": schema}
)
```

***

## Split Endpoint

| Mode         | Credits/Page |
| ------------ | ------------ |
| **Standard** | 2            |

Same as Extract: passing a URL charges Parse + Split. Use `jobid://` to avoid double-charging.

***

## Classify Endpoint

| Mode         | Credits/Page | Notes                    |
| ------------ | ------------ | ------------------------ |
| **Standard** | 0.5          | Per page of context used |

Classify reads the first 5 pages of a document by default, costing 2.5 credits per classification. You can configure context up to 10 pages (5.0 credits).

***

## Edit Endpoint

| Mode     | Credits/Page | Notes             |
| -------- | ------------ | ----------------- |
| **Beta** | 4            | Subject to change |

***

## Pipeline Endpoint

Pipelines combine multiple operations. Credits are the sum of all operations in the pipeline:

```
Pipeline credits = Parse + Extract (if configured) + Split (if configured)
```

***

## Credit Optimization Tips

### 1. Reuse Parse Results

Parse once, then run multiple Extract or Split calls using the job ID:

```python theme={null}
# Parse once
parse = client.parse.run(input=upload.file_id)

# Extract multiple schemas without re-parsing
invoice_data = client.extract.run(
    input=f"jobid://{parse.job_id}",
    instructions={"schema": invoice_schema}
)

vendor_data = client.extract.run(
    input=f"jobid://{parse.job_id}",
    instructions={"schema": vendor_schema}
)
```

### 2. Disable Agentic Mode When Not Needed

Agentic mode doubles credit usage. Only enable it for:

* Handwritten content
* Low-quality scans
* Complex tables that parse incorrectly

```python theme={null}
# Standard parsing (1-2 credits/page)
result = client.parse.run(input=upload.file_id)

# Only enable agentic when needed (2-4 credits/page)
result = client.parse.run(
    input=upload.file_id,
    enhance={"agentic": [{"scope": "text"}]}
)
```

### 3. Use Page Ranges

Process only the pages you need:

```python theme={null}
# Only process pages 1-10
result = client.parse.run(
    input=upload.file_id,
    settings={"page_range": {"start": 1, "end": 10}}
)
```

### 4. Choose Appropriate Spreadsheet Clustering

For large spreadsheets where you don't need intelligent table detection:

```python theme={null}
result = client.parse.run(
    input=upload.file_id,  # spreadsheet file
    spreadsheet={"clustering": "fast"}  # 5x cheaper than "accurate"
)
```

***

## Monitoring Usage

Track your credit usage in [Reducto Studio](https://studio.reducto.ai/):

* **Usage dashboard**: View credits consumed over time
* **Job logs**: See credits charged per job
* **Usage alerts**: Set threshold notifications

Each API response also includes credit information:

```json theme={null}
{
  "job_id": "abc123",
  "usage": {
    "num_pages": 10,
    "credits": 15.0
  }
}
```

***

## Related

<CardGroup cols={2}>
  <Card title="Rate Limits" icon="gauge" href="/reference/rate-limits">
    Request limits and optimization.
  </Card>

  <Card title="Chaining Endpoints" icon="link" href="/workflows/chaining-endpoints">
    Reuse parse results to save credits.
  </Card>
</CardGroup>
