---
title: "Initialize a direct-upload asynchronous workflow"
method: POST
path: "/api/v1/workflow-jobs"
tags: ["Portal-Ready Workflows"]
---

# Initialize a direct-upload asynchronous workflow

`POST /api/v1/workflow-jobs`

## Request

- Base URL: `https://exactpdf.com`
- URL: `https://exactpdf.com/api/v1/workflow-jobs`
- Auth: HTTP bearer

Validates limits, ownership, idempotency, and declared budget before a one-hour upload session. maxCredits is exactly 1 except folder_batch (1–100). API/MCP reserves before queueing; unused successful Folder Studio credits and failed API/MCP reservations return idempotently. Max web uses separate subscription usage.

## Headers

- `Idempotency-Key` string, required

## Request body

- object
  - `workflow` 'compress' | 'folder_batch' | 'source_pack' | 'smart_redact', required
  - `inputBytes` integer, required: Exact local input byte length.
  - `options` object, required: compress/folder: targetId or customTargetBytes; source_pack: mode developer, academic, or rag; smart_redact: inspect, or apply with reviewed:true, sourceSha256, and 1–2,000 normalized regions.
  - `maxCredits` integer, required: Exactly 1 except Folder Studio, which permits 1–100.

## Response `200`

Idempotent existing upload; session_uri is intentionally null.

- object

## Other responses

- `201`: New upload object: id, job_id, expires_at, session_uri, state.
- `400`: Structured asynchronous workflow error.
- `401`: Structured asynchronous workflow error.
- `402`: Structured asynchronous workflow error.
- `403`: Structured asynchronous workflow error.
- `409`: Structured asynchronous workflow error.
- `413`: Structured asynchronous workflow error.
- `503`: Structured asynchronous workflow error.

---

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