---
title: "Get full job details"
method: GET
path: "/api/jobs/{job_id}"
tags: ["workflow"]
---

# Get full job details

`GET /api/jobs/{job_id}`

Retrieve complete details for a specific job including workflow and outputs.
Used for detail views, workflow re-execution, and debugging.

## Path parameters

- `job_id` string, uuid, required

## Query parameters

- `short_link` 'ephemeral_tool_chain' | 'default'

## Response `200`

Success - Job details retrieved

- JobDetailResponse — Full job details including workflow and outputs
  - `create_time` integer, required — Job creation timestamp (Unix timestamp in milliseconds)
  - `execution_end_time` integer — Workflow execution completion timestamp (Unix milliseconds, only present for terminal states)
  - `execution_error` ExecutionError — Detailed execution error information from ComfyUI
    - `current_inputs` object, required — Input values at time of failure (empty object if not available)
    - `current_outputs` object, required — Output values at time of failure (empty object if not available)
    - `exception_message` string, required — Human-readable error message
    - `exception_type` string, required — Python exception type (e.g., "RuntimeError")
    - `node_id` string, required — ID of the node that failed
    - `node_type` string, required — Type name of the node (e.g., "KSampler")
    - `traceback` string[], required — Array of traceback lines (empty array if not available)
  - `execution_meta` object — Node-level execution metadata (only for terminal states)
  - `execution_start_time` integer — Workflow execution start timestamp (Unix milliseconds, only present once execution has started)
  - `execution_status` object — ComfyUI execution status and timeline (only for terminal states)
  - `id` string, uuid, required — Unique job identifier
  - `outputs` object — Full outputs object from ComfyUI (only for terminal states)
  - `outputs_count` integer — Total number of output files (omitted for non-terminal states)
  - `preview_output` object — Primary preview output (only for terminal states)
  - `status` 'pending' | 'in_progress' | 'completed' | 'failed' | 'cancelled', required — User-friendly job status
  - `update_time` integer, required — Last update timestamp (Unix timestamp in milliseconds)
  - `user_id` string — ID of the user that owns this job (see the `workspace_id` description above for why this is always the caller's own id on a successful response).
  - `workflow` object — Full ComfyUI workflow (10-100KB, omitted if not available). Sensitive credentials are redacted before the response is returned: `extra_data.api_key_comfy_org`, when present, is replaced with the literal string `"[REDACTED]"`. The field is preserved (not removed) so existence checks still pass, but the value is not usable.
  - `workflow_id` string — UUID identifying the workflow graph definition
  - `workspace_id` string — ID of the workspace that owns this job. A successful (200) response from this operation is only ever returned for the caller's own job (see this operation's ownership-scoped query), so this is always the caller's own workspace — consumers that also need to correlate this job to its live-progress broadcast channel (workspace+user scoped; see the internal common/gateways/broadcast package) can use this value directly rather than resolving their own identity a second way.

## Other responses

- `401` — Unauthorized - Authentication required
- `403` — Forbidden - Job does not belong to user
- `404` — Job not found
- `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/a3660438bbe9/schema)
