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

# File Job Status

> Poll file upload or file delete job progress.

## Overview

Returns status for jobs started by [Upload file](/on-prem/api-references/files/upload) or [Delete file index](/on-prem/api-references/files/delete). The same endpoint handles both job types — check `job_type`.

## Path parameters

<ParamField path="namespace_name" type="string" required>
  Namespace the job belongs to.
</ParamField>

<ParamField path="job_id" type="string" required>
  Job id from upload or delete response.
</ParamField>

## Request example

```bash theme={null}
curl "http://localhost:8080/namespaces/my-documents/file-jobs/job-1fad681df00046c0a7f950daeb52f120"
```

## Response fields

<ResponseField name="job_id" type="string">
  Job id.
</ResponseField>

<ResponseField name="job_type" type="string">
  `"file_ingest"` or `"file_delete"`.
</ResponseField>

<ResponseField name="namespace_name" type="string">
  Target namespace.
</ResponseField>

<ResponseField name="status" type="string">
  `running`, `completed`, or `failed`.
</ResponseField>

<ResponseField name="file_id" type="string">
  File id (set during upload/delete).
</ResponseField>

<ResponseField name="absolute_path" type="string">
  Container path for the file.
</ResponseField>

<ResponseField name="chunks_total" type="number">
  Total chunks expected (ingest) or to delete (delete job).
</ResponseField>

<ResponseField name="chunks_processed" type="number">
  Chunks processed so far (upload).
</ResponseField>

<ResponseField name="summaries_created" type="number">
  Summary chunks created (upload).
</ResponseField>

<ResponseField name="items_deleted" type="number">
  Items removed from the index (delete).
</ResponseField>

<ResponseField name="last_error" type="string">
  Error message when `status` is `failed`.
</ResponseField>

<ResponseField name="started_at" type="string">
  ISO 8601 start time.
</ResponseField>

<ResponseField name="updated_at" type="string">
  ISO 8601 last update time.
</ResponseField>

<ResponseField name="finished_at" type="string">
  ISO 8601 end time when completed or failed.
</ResponseField>

<ResponseExample>
  ```json 200 - Upload completed theme={null}
  {
    "job_id": "job-1fad681df00046c0a7f950daeb52f120",
    "job_type": "file_ingest",
    "namespace_name": "my-documents",
    "file_id": "a1b2c3d4e5f67890",
    "absolute_path": "/uploads/document.pdf",
    "status": "completed",
    "chunks_total": 1,
    "chunks_processed": 1,
    "summaries_created": 1,
    "items_deleted": 0,
    "last_error": null,
    "started_at": "2026-06-05T18:53:24Z",
    "updated_at": "2026-06-05T18:53:37Z",
    "finished_at": "2026-06-05T18:53:37Z"
  }
  ```

  ```json 200 - Delete completed theme={null}
  {
    "job_id": "job-39e12e05109c45bb8f477edb1912964d",
    "job_type": "file_delete",
    "namespace_name": "my-documents",
    "file_id": "a1b2c3d4e5f67890",
    "absolute_path": "/uploads/document.pdf",
    "status": "completed",
    "chunks_total": 2,
    "chunks_processed": 2,
    "summaries_created": 0,
    "items_deleted": 2,
    "last_error": null,
    "started_at": "2026-06-05T18:53:39Z",
    "updated_at": "2026-06-05T18:53:39Z",
    "finished_at": "2026-06-05T18:53:39Z"
  }
  ```
</ResponseExample>

## Related

* [CLI: moorcheh file-job-status](/on-prem/cli/files/file-job-status)
* [Python: files.job\_status()](/on-prem/python-client/files/file-job-status)
