---
title: "Start Document Intelligence Job"
method: POST
path: "/doc-digitization/job/v1/{job_id}/start"
tags: ["documentIntelligence"]
---

# Start Document Intelligence Job

`POST /doc-digitization/job/v1/{job_id}/start`

## Request

- Base URL: `https://api.sarvam.ai`
- URL: `https://api.sarvam.ai/doc-digitization/job/v1/{job_id}/start`
- Auth: none declared. Required headers: `api-subscription-key`
- TypeScript: <https://skmtc.dev/sarvam/apis/endpoints/docs/doc-digitization/job/v1/:job_id/start/post.ts> (a function with typed inputs; its response is checked against the schema)

Validates the uploaded file and starts processing.

**Validation Checks:**
- File must be uploaded before starting
- File size must not exceed 200 MB
- PDF must be parseable by the PDF parser
- ZIP must contain only JPEG/PNG images
- ZIP must be flat (no nested folders beyond one level)
- ZIP must contain at least one valid image
- Page/image count must not exceed 10 (returns `400` with `invalid_request_error` if exceeded)
- User must have sufficient credits

**Processing:**
Job runs asynchronously. Poll the status endpoint or use webhook callback for completion notification.

## Path parameters

- `job_id` string, uuid, required

## Headers

- `api-subscription-key` string, required

## Response `202`

Successful Response

- DocDigitizationJobStatusResponse: Response model for job status endpoint.
  - `job_id` string, uuid, required: Job identifier (UUID)
  - `job_state` 'Accepted' | 'Pending' | 'Running' | 'Completed' | 'PartiallyCompleted' | 'Failed', required: Current state of the document intelligence job
  - `created_at` string, date-time, required: Job creation timestamp (ISO 8601)
  - `updated_at` string, date-time, required: Last update timestamp (ISO 8601)
  - `storage_container_type` 'Azure' | 'Local' | 'Google' | 'Azure_V1', required
  - `total_files` integer: Total input files (always 1)
  - `successful_files_count` integer: Files that completed successfully
  - `failed_files_count` integer: Files that failed
  - `error_message` string: Job-level error message
  - `job_details` DocDigitizationJobDetail[]: Per-file processing details with page metrics
    - `inputs` TaskFileDetails[], required: Input file(s) for this task
      - `file_name` string, required
      - `file_id` string, required
    - `outputs` TaskFileDetails[], required: Output file(s) produced
      - `file_name` string, required
      - `file_id` string, required
    - `state` 'Pending' | 'Running' | 'Success' | 'PartialSuccess' | 'Failed', required: Processing state for individual file
    - `total_pages` integer: Total pages/images in the input file
    - `pages_processed` integer: Number of pages processed so far
    - `pages_succeeded` integer: Number of pages successfully processed
    - `pages_failed` integer: Number of pages that failed processing
    - `error_message` string: Error message if processing failed
    - `error_code` string, nullable: Standardized error code if failed
    - `page_errors` DocDigitizationPageError[]: Detailed errors for each failed page
      - `page_number` integer, required: Page number that failed
      - `error_code` string, required: Standardized error code
      - `error_message` string, required: Human-readable error description

## Other responses

- `400`: Bad Request
- `403`: Forbidden
- `429`: Quota Exceeded / Rate Limited
- `500`: Internal Server Error
- `503`: Service Unavailable

---

[API](https://skmtc.dev/sarvam/apis/endpoints.md) - [All operations](https://skmtc.dev/sarvam/apis/endpoints/llms.txt) - [OpenAPI document](https://skmtc.dev/sarvam/apis/endpoints/revisions/2b7f7955b147?raw)
