# Reducto

Reducto is the complete agentic document platform for parsing, extracting, splitting, classifying, and editing documents at enterprise scale. It combines custom models with frontier models for accurate, citation-ready outputs across 30+ file types, including complex tables, charts, handwriting, scans, and spreadsheets.

Get started free with 15,000 credits at https://studio.reducto.ai/.

## Products

- [Parse](https://reducto.ai/parse): Turn PDFs, scans, spreadsheets, and slides into structured, citation-ready JSON.
- [Split](https://reducto.ai/split): Segment documents into meaningful sections and repeating sub-documents.
- [Extract](https://reducto.ai/extract): Return typed JSON with citations and bounding boxes.
- [Classify](https://reducto.ai/classify): Route documents using plain-language taxonomies.
- [Edit](https://reducto.ai/edit): Turn extracted data back into finished PDF and DOCX files.
- [Studio](https://reducto.ai/studio): Build, test, and deploy document pipelines without code.

## Developer Tools

- [Agent skill](https://reducto.ai/SKILL.md): Setup instructions for AI agents, including API usage, CLI, and MCP.
- [MCP server](https://docs.reducto.ai/mcp-server): Connect AI agents through the hosted server or `uvx mcp-server-reducto`.
- [CLI](https://docs.reducto.ai/cli): Parse, extract, split, classify, and edit from the terminal with `pip install reducto-cli`.
- [API documentation](https://docs.reducto.ai): Quickstarts, API reference, and SDKs for Python and Node.

## Setup for agents

```text
Step 1: Set up Reducto

Read https://reducto.ai/SKILL.md and follow its setup instructions: get a Reducto API key configured and verify credentials against the API before proceeding.

Step 2: Ask the user

Would you like to:
a) Start a fresh project
b) Integrate into an existing project
c) Process local files from the terminal (no project)
d) Add Reducto as MCP tools in this agent or another MCP client

Step 3: Set up the chosen path

If the answer to Step 2 is (a) - Fresh project:

Ask the user which language they prefer (Python or TypeScript).
Scaffold a minimal project and install the SDK (pip install reductoai or npm install reductoai).
Wire up REDUCTO_API_KEY: the SDKs read it from the process environment, not from .env files — if you use a .env file, load it explicitly (python-dotenv in Python, node --env-file=.env or dotenv in Node).
Write a first script from the SKILL.md quickstart: upload a document, parse it, print the result.

If the answer to Step 2 is (b) - Existing project:

Read the user's codebase to understand:

- Language and framework
- Package manager (npm, pnpm, pip, uv, poetry, go modules, etc.)
- Project structure and file conventions
- How environment variables are managed (.env, config files, secrets, etc.)

Ask the user what they want Reducto to do in their project (parse documents to markdown, extract fields to JSON with a schema, classify, split, or fill forms).

Based on the project's language, read the relevant Reducto SDK README:

Python: https://raw.githubusercontent.com/reductoai/reducto-python-sdk/main/README.md
TypeScript: https://raw.githubusercontent.com/reductoai/reducto-node-sdk/main/README.md
Go: https://raw.githubusercontent.com/reductoai/reducto-go-sdk/main/README.md

- Install the Reducto SDK and any required dependencies.
- Write the integration code, matching the project's existing conventions.

If the answer to Step 2 is (c) - Terminal only:

Install the CLI: pip install reducto-cli (requires Python 3.11+; on older Pythons use uv tool install reducto-cli). If it's already installed, update it: pip install --upgrade reducto-cli, or uv tool upgrade reducto-cli if it was installed with uv.
The CLI reads REDUCTO_API_KEY from the environment; run reducto login only if the env var isn't set.
Then run reducto parse <file-or-folder> or reducto extract <file> -s schema.json.

If the answer to Step 2 is (d) - MCP tools:

Follow the SKILL.md "MCP Server" section. Use the local server (uvx mcp-server-reducto, requires Python 3.11+ and uvx) when documents are local files; use the hosted server (https://mcp.reducto.ai/mcp with an Authorization: Bearer header) when documents are at public URLs. For Claude Code: claude mcp add -s user reducto -- uvx mcp-server-reducto. The local server reads REDUCTO_API_KEY from the environment.
Restart the MCP client and confirm the Reducto tools (parse_document, extract_data, upload_file, ...) appear, then verify by calling parse_document on a sample document.

Step 4: Verify

Confirm credentials: curl -s "https://platform.reducto.ai/jobs?limit=1" -H "Authorization: Bearer $REDUCTO_API_KEY" returns a jobs array.
Run a first parse on a real document and confirm the response contains job_id, result, and usage.
Share the response's studio_link with the user so they can inspect the output against the source document.
If something fails, diagnose the issue and fix it. Common issues:

- 401 "Provide an access token" means REDUCTO_API_KEY is empty in this shell; 401 "Invalid access token" means the key is wrong; 403 with an HTML page means no Authorization header was sent
- reducto command not found: requires Python 3.11+, or install with uv tool install reducto-cli
- Empty chunks on large documents: result.type == "url" - fetch result.url for the content

```

## More

- [Agent skill](https://reducto.ai/SKILL.md)
- [LLM documentation index](https://reducto.ai/llms.txt)
- [Full homepage overview](https://reducto.ai/llms-full.txt)
- [MCP capabilities catalog](https://reducto.ai/.well-known/ai-catalog.json)
