---
title: "Get Workflow"
method: GET
path: "/workflows/{workflow_id}"
tags: ["Workflow"]
---

# Get Workflow

`GET /workflows/{workflow_id}`

Retrieve a workflow's full details, including its block graph definition.

## Path parameters

- `workflow_id` string, uuid, required

## Headers

- `x-api-key` string, nullable

## Response `200`

Successful Response

- WorkflowResponse
  - `id` string, required — Workflow identifier.
  - `user_uuid` string, nullable — User who created the workflow.
  - `org_id` string, nullable — Organization that owns the workflow.
  - `name` string, required — Workflow name.
  - `description` string, nullable — Workflow description.
  - `status` string, required — Lifecycle status of the workflow definition (e.g. draft, ready).
  - `step` string, required — Current authoring step in the builder UI.
  - `created_at` string, date-time, required — Timestamp when the record was created.
  - `updated_at` string, date-time, required — Timestamp when the record was last updated.
  - `last_run_date` string, date-time, nullable — Timestamp of the most recent run.
  - `workflow_definition` WorkflowGraph — A workflow expressed as a directed graph of blocks and edges.
    - `blocks` Block[], required — All blocks in the workflow.
      - `sequence_number` integer, required — Position of the block in the workflow execution order.
      - `block_type` string, required — Category of block (e.g. 'source', 'enrich', 'output').
      - `block_name` string, required — Registered block type name (e.g. 'enrich_lead', 'find_email').
      - `specs` object, required — Block-specific configuration; shape depends on `block_name`.
      - `block_id` string, nullable — Stable block identifier; non-UUID values are normalized server-side.
    - `edges` WorkflowEdge[], required — Edges defining the execution order between blocks.
      - `from_block_id` string, required — Source block ID for this edge.
      - `to_block_id` string, required — Destination block ID for this edge.
      - `condition` string, nullable — Reserved for future conditional branching.

## Other responses

- `400` — Request was rejected by the route's validation rules.
- `401` — Missing or invalid API key.
- `403` — Caller does not have access to this workflow.
- `404` — Workflow, run, or job not found.
- `409` — Workflow with the supplied ID already exists.
- `422` — Request body failed validation.
- `500` — Unexpected server error. Retry with backoff.

---

[API](https://skmtc.dev/sixtyfour/apis/sixtyfour-api.md) · [All operations](https://skmtc.dev/sixtyfour/apis/sixtyfour-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/sixtyfour/sixtyfour-api/revisions/51f0a2b62b44/schema)
