Skip to main content
GET
Get workflow (latest or specific version)
The latest version by default; pass version= for a specific one. Returns the definition and the declared inputs, which is what you need to know what to send when you run it.

Authorizations

Authorization
string
header
required

API key in format: Bearer inf_***

Path Parameters

id
string
required

Workflow UUID.

Example:

"b0e9f2a4-2b1a-4c7d-9a3e-1f5c8d2e4b60"

Query Parameters

Response

The workflow and the requested version's definition.

id
string
required

Workflow UUID.

Example:

"b0e9f2a4-2b1a-4c7d-9a3e-1f5c8d2e4b60"

workspaceId
string
required

Owning workspace UUID — always the workspace the API key belongs to.

Example:

"7d1c0a55-9f2b-4a13-8c6e-30b4e9a1c7f2"

name
string
required

Author-supplied name. Max 120 characters.

Example:

"Weekly report"

description
string | null
required

Author-supplied description. Max 2000 characters. Null when never set.

Example:

"Summarise the week and render a PDF"

latestVersion
number
required

Highest version number that exists for this workflow. PUT increments it only when the request carried a definition; a name/description-only update leaves it unchanged.

Example:

3

isActive
boolean
required

Column default. No code path in this repo ever writes it, so it is true on every row; do not read it as an enable/disable switch.

Example:

true

createdAt
string
required

ISO-8601 creation timestamp.

Example:

"2026-05-04T09:15:22.113Z"

updatedAt
string
required

ISO-8601 timestamp of the last PUT (name, description or definition).

Example:

"2026-05-06T11:02:47.900Z"

deletedAt
string | null
required

Soft-delete timestamp. Always null on these responses: both reads filter on deletedAt: null, so a deleted workflow is a 404 rather than a row with a value here.

Example:

null

createdByUserId
string | null
required

User the workflow was created by, when the creating API key could be attributed to a workspace member. Null for a key whose creator was deleted or has left the workspace — such a key creates workspace-scoped workflows instead.

Example:

"4e5a1b8c-77d3-4c21-a0fe-9b6d2c3a5e11"

sharingScope
enum<string>
required

Who may see this workflow, before per-user grants. private = its creator (plus workspace owners/admins); workspace = every member; users = the members it was explicitly shared with. New workflows land on private unless the API key had no attributable creator.

Available options:
private,
workspace,
users
Example:

"private"

sharePermission
enum<string>
required

What the sharing grant permits. Consulted only for the workspace and users scopes. read allows running the workflow — it means "you cannot change it", not "you cannot use it".

Available options:
read,
write
Example:

"read"

definition
object
required

The stored workflow definition for version, exactly as it was written. Unmodelled here: its shape is the Zod schema in schemas/pipeline-definition.schema.ts (steps[], output, retry, failure_mode, inputs[], ui), which this document does not publish. It is returned as stored — the schema .default() values are NOT filled in on this read.

version
number
required

The version this definition came from: the version query parameter when one was given, otherwise latestVersion.

Example:

3

inputs
object[]
required

The declared run inputs read out of definition.inputs. [] for a legacy definition that predates the input contract, and also [] — never an error — when a hand-edited row carries a non-array inputs.