Skip to main content
GET
Get workflow by ID

Authorizations

x-api-key
string
header
required

API key for authentication

Path Parameters

workflowId
string
required

ID of the workflow to retrieve

Response

Workflow details retrieved successfully

id
string

Unique identifier for the workflow

name
string

Name of the workflow

description
string

Description of the workflow

state
enum<string>

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.

Available options:
ACTIVE,
DRAFT,
ERROR,
PAUSED,
NOT_SUPPORTED,
PREVIEW,
COMPLIANCE_REVIEW,
COMPLIANCE_REJECTED,
QUEUED,
SETUP,
DELETED
displayState
enum<string>

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.

Available options:
ACTIVE,
DRAFT,
ERROR,
PAUSED,
NOT_SUPPORTED,
PREVIEW,
QUEUED,
SETUP,
PENDING_START,
RUNNING,
VALIDATING,
FAILED,
DEGRADED,
COMPLIANCE_REVIEW,
COMPLIANCE_REJECTED,
DELETED,
STOPPED
reviewReason
enum<string>

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

Available options:
COMPLIANCE_REVIEW,
HARD_FAIL,
BLOCKED,
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
userId
string

ID of the user who owns the workflow

userName
string

Display name of the workflow owner

userEmail
string<email>

Email of the workflow owner

createdAt
string<date-time>

Timestamp when the workflow was created

updateInterval
string

Update frequency

isRealTime
boolean

Whether this workflow should be displayed as realtime

lastDataChangedAt
string<date-time> | null

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

schedules
string[]

Cron schedules for updates

scheduleTimezone
string

IANA timezone used to evaluate cron schedules

Example:

"America/New_York"

nextInvocation
string<date-time>

Next scheduled execution time

monitoring
boolean

Whether monitoring is enabled

location
object

Scraping location configuration

tags
string[]

Tags associated with the workflow

schemaName
string

Name of the schema used

schemaId
string

ID of the schema used

templateName
string | null

Name of the linked workflow template

templateId
string | null

ID of the linked workflow template

templateVersion
integer | null

Applied template version

templateHasPrompt
boolean

Whether the template controls the workflow prompt

templateHasSchema
boolean

Whether the template controls the extraction schema

templateHasSchemaValidationRules
boolean

Whether the template controls schema validation rules

templateHasNotifications
boolean

Whether the template controls notification settings

templateHasFrequency
boolean

Whether the template controls schedule/frequency

templateHasRecordLimit
boolean

Whether the template controls the output record limit

hasSchemaValidationRules
boolean

Whether this workflow has schema validation rules

channelCounts
object

Notification channel counts grouped by channel type

jobId
string

ID of the latest operational run attempt

publishedJobId
string

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

isFirstRun
boolean

Whether the workflow has not completed a regular run yet

dataQualityIssues
integer

Number of data-quality issues in the latest finished run

finishedAt
string<date-time>

When the last job finished

startedAt
string<date-time>

When the last job started

estimatedFinishedAtUtc
string<date-time> | null

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

dataKey
string

Database key for the workflow data

errors
object[]

Errors from the last job run

runCosts
number

Cost of the last job run in credits

runState
enum<string>

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

Available options:
RUNNING,
FINISHED,
FAILED,
STOPPED
totalRecords
integer

Total number of records extracted

url
string

Primary URL being scraped

urls
string[]

List of URLs being scraped

browserActions
object[]

Optional browser actions to perform before extraction

maxDepth
integer

Maximum crawl depth (default: 50, max: 200).

Required range: 1 <= x <= 200
maxPages
integer

Maximum pages to crawl (default: 10,000, max: 100,000).

Required range: 1 <= x <= 100000
schema
object[]

Extraction schema fields

entity
string

Canonical extracted entity name

extractionSpec
object

Canonical extraction intent for Assistant-built workflows

dataStale
boolean

Whether batch workflow data predates the current canonical configuration/build

isSchemaEditable
boolean

Whether the schema can be edited

limit
integer

Maximum number of items to scrape

additionalData
object

Additional static data for the workflow

dataValidation
object

Data validation configuration

validationStatistics
object

Validation statistics

notificationConfig
object | null

Current monitoring configuration. Use these values as the basis for replacement updates.

openSupportRequests
object[]

List of open support requests for this workflow. Only present when there are open requests.

inSupport
boolean

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.

observerHealth
object | null

Health status for monitored workflows. Only present when health monitoring is active and detects issues.

extractionStrategySummary
object | null

Customer-safe extraction strategy for custom SCRIPT workflows without an Assistant build. Omitted for Assistant-owned workflows, whose current strategy is available from the Agent strategy endpoint.

assistantSessionId
string | null

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

assistantThreadId
string | null

Newest assistant thread within the assistant session.

assistantEligible
boolean

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.

sessionStatus
enum<string> | null

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.

Available options:
pending,
active,
idle,
inactive,
failed,
interrupted,
errored,
aborted,
timed_out
awaitingUserInput
object | null

Present when the workflow cannot progress without the requesting user's next input. Scoped to that user; do not infer this from sessionStatus.