Skip to main content
GET
Rate limit tier: general, 600 requests/min. See Rate limits. Returns a workflow with its complete typed graph inline. v3 has no separate /definition/ endpoint: this read is the round-trippable definition. The {name, description, nodes, edges} subset is the exact shape POST /v3/workflows/ accepts. Strip the read-only id, created_at and updated_at, then feed the remainder to PATCH /v3/workflows/{workflow_id}/. Its Python example shows the one-liner. An unknown field is rejected with 400 VALIDATION_ERROR. Every field in an extract node carries its server-assigned persistent_id, the stable identity that survives a rename. Echo it unchanged when you PATCH, and analytics, ground truth and quality metrics stay attached to the field. See the migration guide.

Reading an earlier version

The response is the latest version by default. Pass ?version=<version_id> to read an earlier version’s graph in the same shape. Take the version_id from GET /v3/workflows/{workflow_id}/versions/. An unknown version_id answers 404 with a detail naming it. Any other query parameter is rejected with 400 VALIDATION_ERROR, so a misspelled version cannot silently read the latest. Versions are read-only, for comparison and audit. A run always uses the latest version, and a PATCH always builds on it. The versions page shows how to diff two versions’ field descriptions.

Authorizations

Authorization
string
header
required

API key issued from app.anyformat.ai/api-key. Send as Authorization: Bearer <key>.

Path Parameters

workflow_id
string
required

Query Parameters

version
string | null

A version_id from GET /v3/workflows/{workflow_id}/versions/. Reads that version's graph instead of the latest.

Response

Successful Response

A workflow with its complete typed graph inline.

{name, description, nodes, edges} is the exact shape POST /v3/workflows/ accepts — mutate it and feed it back to edit.

id
string
required

Unique identifier of the workflow (hyphenated UUID).

Example:

"0686bb97-8c30-70f0-8000-97669e000eb8"

name
string
required

Human-readable name of the workflow.

Example:

"Invoice Processing"

nodes
(PublicParseNode · object | ClassifyNode · object | SplitterNode · object | PublicExtractNode · object | PublicValidateNode · object | PublicIfElseNode · object | PublicSlackAlertNode · object | PublicEditNode · object | KnowledgeNode · object)[]
required

Typed graph nodes (parse / classify / splitter / extract / validate / if_else).

description
string | null

Optional description of what this workflow extracts.

Example:

"A workflow for processing invoices and retrieving invoice details."

created_at
string<date-time> | null

Timestamp when the workflow was created (ISO 8601).

updated_at
string<date-time> | null

Timestamp when the workflow was last modified (ISO 8601).

edges
Edge · object[]

Directed edges between the graph nodes.