Workflows

Manage workflow definitions and view run history

List Workflows Endpoint

GET
/workflows

Query Parameters

workflow_type?|

Filter by workflow type

include_archived?boolean

Include archived workflows

Defaultfalse
page?integer
Default1
Range1 <= value
page_size?integer
Default20
Range1 <= value <= 100
order_by?|

Sort field (- prefix = descending)

Response Body

application/json

application/json

curl -X GET "https://loading/workflows"
{
  "workflows": [
    {
      "id": "string",
      "name": "string",
      "workflow_type": "string",
      "phase_count": 0,
      "created_at": "string",
      "runs_count": 0,
      "is_archived": false,
      "requires_repos": true
    }
  ],
  "total": 0,
  "page": 1,
  "page_size": 20
}
{
  "detail": [
    {
      "loc": [
        "string"
      ],
      "msg": "string",
      "type": "string",
      "input": null,
      "ctx": {}
    }
  ]
}

Create Workflow Endpoint

POST
/workflows

Request Body

application/json

id?|
name*string
workflow_type?string
Default"custom"
classification?string
Default"standard"
repository_url?string
Default""
repository_ref?string
Default"main"
description?|
project_name?|
phases?array<>|
input_declarations?array<>|
repos?array<>

Default GitHub URLs for this workflow template (ADR-058). Can be overridden at execution time via the repos field on the execute request.

requires_repos?boolean

Whether this workflow requires repository access at execution time (ADR-058 #666). Set to false for research or analysis workflows that don't need repos.

Defaulttrue
[key: string]?never

Response Body

application/json

application/json

curl -X POST "https://loading/workflows" \  -H "Content-Type: application/json" \  -d '{    "name": "string"  }'
{
  "id": "string",
  "name": "string",
  "workflow_type": "string",
  "classification": "string",
  "repository_url": "string",
  "requires_repos": true,
  "status": "string"
}
{
  "detail": [
    {
      "loc": [
        "string"
      ],
      "msg": "string",
      "type": "string",
      "input": null,
      "ctx": {}
    }
  ]
}

Get Workflow Endpoint

GET
/workflows/{workflow_id}

Path Parameters

workflow_id*string

Response Body

application/json

application/json

curl -X GET "https://loading/workflows/string"
{
  "id": "string",
  "name": "string",
  "description": "string",
  "workflow_type": "string",
  "classification": "string",
  "phases": [
    {
      "phase_id": "string",
      "name": "string",
      "order": 0,
      "description": "string",
      "agent_type": "",
      "prompt_template": "string",
      "timeout_seconds": 300,
      "allowed_tools": [
        "string"
      ],
      "argument_hint": "string",
      "model": "string"
    }
  ],
  "input_declarations": [
    {
      "name": "string",
      "description": "string",
      "required": true,
      "default": "string"
    }
  ],
  "created_at": "string",
  "runs_count": 0,
  "runs_link": "string",
  "repository_url": "string",
  "repos": [
    "string"
  ],
  "requires_repos": true
}
{
  "detail": [
    {
      "loc": [
        "string"
      ],
      "msg": "string",
      "type": "string",
      "input": null,
      "ctx": {}
    }
  ]
}

Archive (soft-delete) a workflow template

DELETE
/workflows/{workflow_id}

Path Parameters

workflow_id*string

Response Body

application/json

application/json

curl -X DELETE "https://loading/workflows/string"
{
  "workflow_id": "string",
  "status": "string"
}
Empty
Empty
{
  "detail": [
    {
      "loc": [
        "string"
      ],
      "msg": "string",
      "type": "string",
      "input": null,
      "ctx": {}
    }
  ]
}

Export Workflow Endpoint

GET
/workflows/{workflow_id}/export

Path Parameters

workflow_id*string

Query Parameters

format?string

Export format: 'package' (workflow.yaml + phases) or 'plugin' (full CC plugin)

Default"package"
Value in"package" | "plugin"

Response Body

application/json

application/json

curl -X GET "https://loading/workflows/string/export"
{
  "format": "package",
  "workflow_id": "string",
  "workflow_name": "string",
  "files": {
    "property1": "string",
    "property2": "string"
  }
}
{
  "detail": [
    {
      "loc": [
        "string"
      ],
      "msg": "string",
      "type": "string",
      "input": null,
      "ctx": {}
    }
  ]
}

List Workflow Runs Endpoint

GET
/workflows/{workflow_id}/runs

Path Parameters

workflow_id*string

Response Body

application/json

application/json

curl -X GET "https://loading/workflows/string/runs"
{
  "runs": [
    {
      "workflow_execution_id": "string",
      "workflow_id": "string",
      "workflow_name": "string",
      "status": "string",
      "started_at": "string",
      "completed_at": "string",
      "completed_phases": 0,
      "total_phases": 0,
      "total_tokens": 0,
      "total_cost_usd": "0",
      "error_message": "string"
    }
  ],
  "total": 0,
  "workflow_id": "string",
  "workflow_name": "string"
}
{
  "detail": [
    {
      "loc": [
        "string"
      ],
      "msg": "string",
      "type": "string",
      "input": null,
      "ctx": {}
    }
  ]
}

Get Workflow History Endpoint

GET
/workflows/{workflow_id}/history

Path Parameters

workflow_id*string

Response Body

application/json

application/json

curl -X GET "https://loading/workflows/string/history"
{
  "workflow_id": "string",
  "workflow_name": "string",
  "executions": [
    {}
  ],
  "total_executions": 0
}
{
  "detail": [
    {
      "loc": [
        "string"
      ],
      "msg": "string",
      "type": "string",
      "input": null,
      "ctx": {}
    }
  ]
}

Validate Yaml Endpoint

POST
/workflows/validate

Request Body

application/json

content?|

Raw YAML content to validate

filename?string

Original filename (informational)

Default"workflow.yaml"
file?|

Deprecated — file paths are no longer supported. Use 'content' instead.

[key: string]?never

Response Body

application/json

application/json

curl -X POST "https://loading/workflows/validate" \  -H "Content-Type: application/json" \  -d '{}'
{
  "valid": true,
  "name": "",
  "workflow_type": "",
  "phase_count": 0,
  "errors": [
    "string"
  ]
}
{
  "detail": [
    {
      "loc": [
        "string"
      ],
      "msg": "string",
      "type": "string",
      "input": null,
      "ctx": {}
    }
  ]
}

Update Phase Prompt Endpoint

PUT
/workflows/{workflow_id}/phases/{phase_id}

Path Parameters

workflow_id*string
phase_id*string

Request Body

application/json

prompt_template*string
Length1 <= length
model?|
timeout_seconds?|
allowed_tools?array<>|
[key: string]?never

Response Body

application/json

application/json

curl -X PUT "https://loading/workflows/string/phases/string" \  -H "Content-Type: application/json" \  -d '{    "prompt_template": "string"  }'
{
  "workflow_id": "string",
  "phase_id": "string",
  "status": "string"
}
{
  "detail": [
    {
      "loc": [
        "string"
      ],
      "msg": "string",
      "type": "string",
      "input": null,
      "ctx": {}
    }
  ]
}

Create Workflow From Yaml Endpoint

POST
/workflows/from-yaml

Query Parameters

name?|
workflow_id?|

Response Body

application/json

application/json

curl -X POST "https://loading/workflows/from-yaml"
{
  "id": "string",
  "name": "string",
  "workflow_type": "string",
  "classification": "string",
  "repository_url": "string",
  "requires_repos": true,
  "status": "string"
}
{
  "detail": [
    {
      "loc": [
        "string"
      ],
      "msg": "string",
      "type": "string",
      "input": null,
      "ctx": {}
    }
  ]
}

Syntropic137 Docs v0.25.4 · Last updated March 2026

On this page