---
title: "List a job's output assets"
method: GET
path: "/api/jobs/{job_id}/assets"
tags: ["workflow"]
---

# List a job's output assets

`GET /api/jobs/{job_id}/assets`

Retrieve a paginated list of the assets produced by a specific job,
enriched with the per-output node context (`node_id`, `output_key`,
`output_index`) correlated from the job's execution outputs by content
hash. Unlike `GET /api/assets?job_ids={id}`, this endpoint is scoped to a
single job and carries node-level placement, making it suited to job
output views rather than the general asset browser. Returns an empty
`assets` array for jobs that produced no assets.

## Path parameters

- `job_id` string, uuid, required

## Query parameters

- `limit` integer
- `offset` integer

## Response `200`

Success - Job assets returned

- JobAssetsResponse — Paginated list of the assets produced by a single job.
  - `assets` JobOutputAsset[], required — The job's output assets for the requested page (empty when the job produced none)
    - `created_at` string, date-time, required — Timestamp when the asset was created
    - `hash` string — Blake3 hash of the asset content.
    - `id` string, uuid, required — Unique identifier for the asset
    - `mime_type` string — MIME type of the asset
    - `name` string, required — Name of the asset file
    - `node_id` string, nullable — ID of the workflow node that produced this asset, if known
    - `output_index` integer, nullable — Zero-based index of this asset within the node's output slot, if known
    - `output_key` string, nullable — Output slot key under the producing node (e.g. "images"), if known
    - `preview_url` string, uri-reference — Relative URL for asset preview/thumbnail
    - `size` integer — Size of the asset in bytes
  - `job_id` string, uuid, required — ID of the job these assets belong to
  - `pagination` PaginationInfo, required — Pagination metadata included in list responses. Supports both legacy offset/limit pagination and cursor-based pagination. When cursor-based pagination is used, `next_cursor` is the primary pagination token and `offset`/`total` may be zero.
    - `has_more` boolean, required — Whether more items are available beyond this page
    - `limit` integer, required — Items per page
    - `next_cursor` string — Opaque cursor for the next page. Pass this value as the `after` query parameter on the next request. Empty or absent when there are no more results.
    - `offset` integer, required — Current offset (0-based). Deprecated: use cursor-based pagination.
    - `total` integer, required — Total number of items matching filters (may be 0 when using cursor pagination)

## Other responses

- `400` — Invalid request parameters
- `401` — Unauthorized - Authentication required
- `404` — Job not found or does not belong to the user
- `500` — Internal server error

---

[API](https://skmtc.net/comfy-org/apis/comfyui-api.md) · [All operations](https://skmtc.net/comfy-org/apis/comfyui-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/comfy-org/comfyui-api/revisions/da017caf56f1/schema)
