---
title: "Get Job Failed Files"
method: GET
path: "/api/v1/jobs/{job_id}/failed-files"
tags: ["jobs"]
---

# Get Job Failed Files

`GET /api/v1/jobs/{job_id}/failed-files`

## Request

- Base URL: `https://platform-api.transform.unstructured.io` (the document declares no server; this is the origin it was published from)
- URL: `https://platform-api.transform.unstructured.io/api/v1/jobs/{job_id}/failed-files`
- Auth: none declared
- TypeScript: <https://skmtc.dev/unstructured/apis/platform-api/docs/api/v1/jobs/:job_id/failed-files/get.ts> (a function with typed inputs; its response is checked against the schema)

Retrieve failed files for a specific job. Omit paging parameters for the legacy sample response. Supply limit (1-1000) or offset to page through the complete report on upgraded data planes, with pagination metadata; offset alone uses a page size of 500. Pages follow the stored report order. For a stable traversal, wait for the job and its final failure report to finish; reports can change while a job runs. Older data planes may have truncated the stored report, so pagination cannot recover entries missing from that artifact. Call this endpoint at most 60 times per minute for each job and authenticated identity.

## Path parameters

- `job_id` string, uuid, required

## Query parameters

- `limit` integer, nullable
- `offset` integer, nullable

## Headers

- `unstructured-api-key` string, nullable

## Response `200`

Successful Response

- JobFailedFiles
  - `failed_files` FailedFile[], required
    - `document` string, required
    - `error` string, required
    - `node` FailedFileNode, required: The workflow step that failed a file. ``type`` is the stage in the ordinary sense -- ``partition``, ``chunk``, ``embed``, ``uploader`` -- and is what to route on. ``name`` is whatever the user called the node in their workflow, so it is the one to show them. Everything but ``id`` is optional. The identity is read from the live workflow tables and, when those cannot answer, from the job's own spec; a job old enough to predate the spec layouts leaves all three null, and a response that failed on an unnamed node would take the failure list away at the moment it is needed.
      - `id` string, required
      - `name` string, nullable
      - `type` string, nullable
      - `subtype` string, nullable
  - `total` integer, nullable: Failure entries available in this report, before pagination. Counts file/node pairs, not unique documents. Older data planes may have capped the artifact; this count cannot recover or detect those omitted entries. Reports refresh periodically and at finalization. Present when paging.
  - `limit` integer, nullable: Requested page size, when paging.
  - `offset` integer, nullable: Page start, when paging.
  - `next_offset` integer, nullable: Next page start, or null at the end of the available artifact.

## Other responses

- `422`: Validation Error

---

[API](https://skmtc.dev/unstructured/apis/platform-api.md) - [All operations](https://skmtc.dev/unstructured/apis/platform-api/llms.txt) - [OpenAPI document](https://skmtc.dev/unstructured/apis/platform-api/revisions/16b4542093db?raw)
