---
title: "Create extraction job"
method: POST
path: "/jobs"
tags: ["Jobs"]
---

# Create extraction job

`POST /jobs`

## Request

- Base URL: `https://api.pdfparse.net/v1`
- URL: `https://api.pdfparse.net/v1/jobs`
- Auth: HTTP bearer

Queue extraction for uploaded documents into a table. Credits are charged per page. Documents that are already processing, classifying, or attached to an active processing run are rejected with a 409 conflict so concurrent requests cannot double-process a file.

## Headers

- `Idempotency-Key` string: Scopes replay protection to the authenticated project, method, and route for 24 hours.

## Request body

- object
  - `tableSlug` string, required
  - `documentKeys` string[], required

## Response `201`

Created

- object
  - `id` number, required
  - `status` string, required
  - `workflow_type` string, nullable
  - `table_id` string, required
  - `projects_id` number, required
  - `processing_mode` 'instant' | 'batch': Extraction path chosen for this job. Jobs at or below the project's instant-mode threshold run instantly; larger jobs use the provider batch API.
  - `document_count` integer
  - `created_at` string, nullable, required
  - `updated_at` string, nullable, required

## Other responses

- `401`: Unauthorized
- `403`: Forbidden
- `404`: Not found
- `500`: Workflow error

---

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