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

# Overview

> How to work with asynchronous Vision API jobs.

All Vision API operations run asynchronously. When you start an operation, you receive a job ID. [Poll the job](/vision-api/async-jobs/polling) or subscribe to [webhooks](/vision-api/webhooks) for results.

## What are Jobs?

Many operations in Bedrock take time to complete—processing a large drawing PDF, comparing hundreds of sheets, or running AI analysis. These operations create Jobs that you can monitor.

## Job Lifecycle

```
Job Created (Queued)
  │
  ├─→ Started (processing)
  │
  ├─→ Completed (success)
  │     └─→ Results available
  │
  └─→ Failed (error)
        └─→ Error details in response
```

## Job Object

| Field             | Type     | Description                                                                              |
| ----------------- | -------- | ---------------------------------------------------------------------------------------- |
| `job_id`          | string   | Unique identifier (e.g., `job_01JABCD123`)                                               |
| `organization_id` | string   | Parent Organization                                                                      |
| `project_id`      | string   | Parent Project                                                                           |
| `type`            | string   | Job type (e.g., `overlay.change.detect`). See [Job Types](/vision-api/async-jobs/types). |
| `status`          | string   | Current status                                                                           |
| `target`          | object   | `{ type, id }` of the resource being processed                                           |
| `parent_id`       | string   | Parent job ID (for child jobs)                                                           |
| `results`         | object   | Job output data (when completed)                                                         |
| `error`           | object   | Error details (when failed)                                                              |
| `events`          | array    | Status change history                                                                    |
| `created_at`      | datetime | Creation timestamp                                                                       |
| `completed_at`    | datetime | Completion timestamp (when completed)                                                    |

## Job Statuses

| Status      | Description                    |
| ----------- | ------------------------------ |
| `Queued`    | Job is waiting to be processed |
| `Started`   | Job is currently running       |
| `Completed` | Job finished successfully      |
| `Failed`    | Job encountered an error       |
| `Canceled`  | Job was canceled               |

## Job Hierarchy

Some jobs create child jobs for parallel processing:

```
drawing.preprocess (parent)
  ├─→ sheet.preprocess (child 1)
  ├─→ sheet.preprocess (child 2)
  └─→ sheet.preprocess (child 3)
```

The parent job completes when all child jobs finish.

<Note>
  Jobs are created automatically by other operations (uploading files, comparing drawings, etc.). You cannot create jobs directly.
</Note>
