> ## Documentation Index
> Fetch the complete documentation index at: https://docs.unstructured.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Jobs

> Manage Unstructured workflow jobs with the Python SDK or REST API. List jobs, monitor processing status, inspect failed files, and cancel running jobs.

A workflow job is created automatically whenever:

* A workflow runs on a schedule. For more details see [Create workflow](/api-reference/api/workflow/create-workflow).
* You run a workflow manually. For more details see [Run workflow](/api-reference/api/workflow/run-workflow).

To use the [Unstructured API's workflow operations](/api-reference/workflow/overview) to manage jobs, do the following:

| Task                                                                                                                                                           | Python function         | curl                                                                               |
| -------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------- | ---------------------------------------------------------------------------------- |
| Get a list of available jobs                                                                                                                                   | `jobs.list_jobs`        | `GET` [`/jobs`](/api-reference/api/job/list-jobs)                                  |
| Get basic information about a job                                                                                                                              | `jobs.get_job`          | `GET` [`/jobs/<job-id>`](/api-reference/api/job/get-job)                           |
| Get information about a job's current processing status                                                                                                        | `jobs.get_job_details`  | `GET` [`/jobs/<job-id>/details`](/api-reference/api/job/get-job-details)           |
| Get the list of any failed files for a job and why those files failed                                                                                          | `jobs.get_failed_files` | `GET` [`/jobs/<job-id>/failed-files`](/api-reference/api/job/get-job-failed-files) |
| Run a workflow that takes one or more local files only as input, and the workflow exists only for the duration of that job's run (known as an *on-demand job*) |                         | `POST` [`/jobs/`](/api-reference/api/job/create-job)                               |
| Cancel a running job                                                                                                                                           | `jobs.cancel_job`       | `POST` [`/jobs/<job-id>/cancel`](/api-reference/api/job/cancel-job)                |

A workflow job is created automatically whenever:

* A workflow runs on a schedule. For more details see [Create workflow](/api-reference/api/workflow/create-workflow).
* You run a workflow manually. For more details see [Run workflow](/api-reference/api/workflow/run-workflow).
