Workflows

Get workflow by ID

Retrieves detailed information about a specific workflow. This endpoint requires authentication and proper team access permissions.

get/v4/workflows/{workflowId}

Request

  • Base URL: https://api.kadoa.com
  • URL: https://api.kadoa.com/v4/workflows/{workflowId}
  • Auth: API key in header x-api-key

Path parameters

workflowIdstring required

ID of the workflow to retrieve

Response

Workflow details retrieved successfully

idstring

Unique identifier for the workflow

namestring

Name of the workflow

descriptionstring

Description of the workflow

state'ACTIVE' | 'DRAFT' | 'ERROR' | 'PAUSED' | 'NOT_SUPPORTED' | 'PREVIEW' | 'COMPLIANCE_REVIEW' | 'COMPLIANCE_REJECTED' | 'QUEUED' | 'SETUP' | 'DELETED'

Persisted state of the long-lived workflow. It may describe setup or a control state such as ACTIVE or PAUSED. Use displayState for operational status UI.

displayState'ACTIVE' | 'DRAFT' | 'ERROR' | 'PAUSED' | 'NOT_SUPPORTED' | 'PREVIEW' | 'QUEUED' | 'SETUP' | 'PENDING_START' | 'RUNNING' | 'VALIDATING' | 'FAILED' | 'DEGRADED' | 'COMPLIANCE_REVIEW' | 'COMPLIANCE_REJECTED' | 'DELETED' | 'STOPPED'

Computed operational summary based on workflow state, the latest run, and monitor health. It does not indicate pending user input or support ownership; use awaitingUserInput and inSupport for those. ACTIVE may be presented as Complete, Scheduled, or Running depending on workflow type and schedule.

reviewReason'COMPLIANCE_REVIEW' | 'HARD_FAIL' | 'TRANSFORMATION_REPAIR_REQUIRED' | 'MINIMUM_HUMAN_APPROVALS' | 'DATA_QUALITY_SCHEMA_ADHERENCE' | 'DATA_QUALITY_SCHEMA_VALIDATION' | 'DATA_QUALITY_COMPLETENESS' | 'DATA_QUALITY_SEMANTIC_PLAUSIBILITY' | 'ROW_COUNT_CHANGED' | 'WORKFLOW_REVISION_DRIFT' | 'ZERO_RESULTS'

Why the latest run is being verified. Only present while displayState is VALIDATING.

userIdstring

ID of the user who owns the workflow

userNamestring

Display name of the workflow owner

userEmailstring email

Email of the workflow owner

createdAtstring date-time

Timestamp when the workflow was created

updateIntervalstring

Update frequency

isRealTimeboolean

Whether this workflow should be displayed as realtime

lastDataChangedAtstring date-time nullable

Most recent persisted customer-visible data change for a real-time workflow

schedulesstring[]

Cron schedules for updates

scheduleTimezonestring

IANA timezone used to evaluate cron schedules

nextInvocationstring date-time

Next scheduled execution time

monitoringboolean

Whether monitoring is enabled

tagsstring[]

Tags associated with the workflow

schemaNamestring

Name of the schema used

schemaIdstring

ID of the schema used

templateNamestring nullable

Name of the linked workflow template

templateIdstring nullable

ID of the linked workflow template

templateVersioninteger nullable

Applied template version

templateHasPromptboolean

Whether the template controls the workflow prompt

templateHasSchemaboolean

Whether the template controls the extraction schema

templateHasSchemaValidationRulesboolean

Whether the template controls schema validation rules

templateHasNotificationsboolean

Whether the template controls notification settings

templateHasFrequencyboolean

Whether the template controls schedule/frequency

templateHasRecordLimitboolean

Whether the template controls the output record limit

hasSchemaValidationRulesboolean

Whether this workflow has schema validation rules

channelCountsobject

Notification channel counts grouped by channel type

jobIdstring

ID of the latest operational run attempt

publishedJobIdstring

ID of the latest finished run that supplies customer-visible data

isFirstRunboolean

Whether the workflow has not completed a regular run yet

dataQualityIssuesinteger

Number of data-quality issues in the latest finished run

finishedAtstring date-time

When the last job finished

startedAtstring date-time

When the last job started

estimatedFinishedAtUtcstring date-time nullable

Estimated UTC finish time for the active job, when available.

dataKeystring

Database key for the workflow data

runState'RUNNING' | 'FINISHED' | 'FAILED' | 'STOPPED'

State of the latest execution attempt. Use this for run diagnostics or workflow history, not as the workflow lifecycle or status label.

totalRecordsinteger

Total number of records extracted

urlstring

Primary URL being scraped

urlsstring[]

List of URLs being scraped

entitystring

Canonical extracted entity name

extractionSpecobject

Canonical extraction intent for Assistant-built workflows

isSchemaEditableboolean

Whether the schema can be edited

limitinteger

Maximum number of items to scrape

additionalDataobject

Additional static data for the workflow

inSupportboolean

True when Kadoa support has an open ticket on this workflow. Same predicate as the inSupport query filter. Independent of state/displayState: this answers who is handling the workflow, while displayState answers whether it is delivering data. Prefer this over recomputing from openSupportRequests.

assistantSessionIdstring nullable

Newest assistant session linked to this workflow, regardless of status. Null if no assistant session has been created for this workflow.

assistantThreadIdstring nullable

Newest assistant thread within the assistant session.

assistantEligibleboolean

True when this workflow's lane supports the assistant (SHELLY_SCRIPT or SHELLY_REAL_TIME_SCRIPT). Independent of assistantSessionId; combine with !assistantSessionId for start-vs-continue.

workspaceActivity'idle' | 'assistant' | 'repair'

Current workspace execution lane, independent of preview readiness.

assistantFinishedAtstring date-time nullable
sessionStatus'pending' | 'active' | 'idle' | 'inactive' | 'failed' | 'interrupted' | 'errored' | 'aborted' | 'timed_out' nullable

Low-level status of the latest Assistant conversation. Use it only to decide whether that conversation can accept input. Do not infer workflow progress or whether a reply is needed; use displayState and awaitingUserInput instead.

Example response

{
  "scheduleTimezone": "America/New_York"
}

Changes

No recorded changes to this operation across all 1 revision of this API.