---
title: "Create a job to run an extractor on a collection or document"
method: POST
path: "/extractors/{extractor_id}/job"
tags: ["Extractors"]
---

# Create a job to run an extractor on a collection or document

`POST /extractors/{extractor_id}/job`

## Request

- Base URL: `https://h2ogpte.genai.h2o.ai/api/v1`
- URL: `https://h2ogpte.genai.h2o.ai/api/v1/extractors/{extractor_id}/job`
- Auth: HTTP bearer
- TypeScript: <https://skmtc.dev/h2o/apis/h2ogpte-rest-api/docs/extractors/:extractor_id/job/post.ts> (a function with typed inputs; its response is checked against the schema)

Creates a job to execute the specified extractor by running it on all documents
in a collection, or on a single document when document_id is specified.
This endpoint is designed for long-running extractions.

The endpoint immediately returns a 201 Created response with job details.

Exactly one of collection_id or document_id must be provided.

## Path parameters

- `extractor_id` string, required

## Query parameters

- `collection_id` string
- `document_id` string
- `timeout` number, double

## Response `201`

Job created successfully. The job has been accepted and is being processed.
Use GET /jobs/{job_id} to check progress. Once completed, retrieve results
using `/extractors/{extractor_id}/results?job_id={job_id}`.

- JobDetails
  - `id` string, required
  - `name` string, required
  - `overall_status` 'in progress' | 'completed' | 'failed' | 'canceled', required
  - `status` string
  - `passed_percentage` number, double, required
  - `failed_percentage` number, double, required
  - `progress` number, double, required
  - `created_at` string, date-time, required
  - `updated_at` string, date-time, required
  - `kind` string, required
  - `statuses` JobDetailsStatus[], required
    - `id` string, required
    - `status` string, required
  - `errors` string[], required
  - `duration` string, required
  - `duration_seconds` number, double, required
  - `canceled_by` string
  - `cancel_reason` string
  - `timeout` number, double
  - `start_time` number, double
  - `files_total` integer
  - `files_failed` integer

## Other responses

- `400`: Bad request
- `401`: Unauthorized - Invalid or missing API key
- `404`: Not found
- `default`: Unexpected error

---

[API](https://skmtc.dev/h2o/apis/h2ogpte-rest-api.md) - [All operations](https://skmtc.dev/h2o/apis/h2ogpte-rest-api/llms.txt) - [OpenAPI document](https://skmtc.dev/h2o/apis/h2ogpte-rest-api/revisions/a82a117320f4?raw)
