---
title: "Submit a document for processing"
method: POST
path: "/v1/process"
tags: ["Process"]
deprecated: true
---

# Submit a document for processing

`POST /v1/process`

## Request

- Base URL: `https://api.talonic.com`
- URL: `https://api.talonic.com/v1/process`
- Auth: HTTP bearer

> **Deprecated.**

Deprecated: prefer `/v1/pipelines` for new integrations; this endpoint remains supported.

Upload a document and trigger a configured processing pipeline.
Always returns 202. Results delivered via `process.completed` webhook.

Idempotency is automatic: the same (config_id, batch_id, file) combination
returns the existing run without re-processing. If batch_id is absent,
dedup applies within a 24-hour window.

## Response `200`

Idempotency hit — returning existing run result.

- RunResponse
  - `run_id` string, uuid
  - `status` 'pending' | 'running' | 'step_extract' | 'step_structure' | 'step_reconcile' | 'completed' | 'failed'
  - `config_id` string
  - `batch_id` string
  - `created_at` string, date-time
  - `started_at` string, date-time
  - `completed_at` string, date-time
  - `duration_ms` integer
  - `current_step` string
  - `markdown` string: OCR-converted markdown (on completion).
  - `structured_data` union: Structured extraction results (on completion). Shape forks on document count: a SINGLE-document run returns one flat `field_key -> value` object; a MULTI-document run returns an array of those row objects. A review-held cell arrives as `null`. Values are the typed projection (subfields cast to their declared types), matching the `run.completed` webhook byte-for-byte. Prefer `records[]` for new integrations — it is always an array and binds each row to its source document.
    - StructuredRow: One extracted row: schema field key -> extracted value. Keys are the Spec's field keys; a field with no cell, or one held for review, is `null`. Scalars are strings/numbers/booleans; a structured field is an object or an array of objects per its declared element shape.
    - StructuredRow[]
  - `reconciliation` object: Reconciliation results (on completion).
  - `error` object: Error detail (on failure).
    - `step` string
    - `error_code` string
    - `message` string

## Other responses

- `202`: Processing accepted.
- `400`: Missing required field (config_id or file).
- `402`: Insufficient credits.
- `404`: Config ID not found or inactive.

---

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