> ## Documentation Index
> Fetch the complete documentation index at: https://docs.kadoa.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Get workflow by ID

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




## OpenAPI

````yaml get /v4/workflows/{workflowId}
openapi: 3.0.3
info:
  title: Kadoa API
  version: 3.0.0
  contact:
    name: Support
    email: support@kadoa.com
servers:
  - url: https://api.kadoa.com
security: []
paths:
  /v4/workflows/{workflowId}:
    get:
      tags:
        - Workflows
      summary: Get workflow by ID
      description: >
        Retrieves detailed information about a specific workflow. This endpoint
        requires authentication and proper

        team access permissions.
      parameters:
        - name: workflowId
          in: path
          required: true
          description: ID of the workflow to retrieve
          schema:
            type: string
      responses:
        '200':
          description: Workflow details retrieved successfully
          content:
            application/json:
              schema:
                type: object
                properties:
                  id:
                    type: string
                    description: Unique identifier for the workflow
                  name:
                    type: string
                    description: Name of the workflow
                  description:
                    type: string
                    description: Description of the workflow
                  state:
                    type: string
                    enum:
                      - ACTIVE
                      - DRAFT
                      - ERROR
                      - PAUSED
                      - NOT_SUPPORTED
                      - PREVIEW
                      - COMPLIANCE_REVIEW
                      - COMPLIANCE_REJECTED
                      - QUEUED
                      - SETUP
                      - DELETED
                    description: >-
                      Persisted workflow lifecycle state. DRAFT = workflow
                      exists but setup is incomplete, ACTIVE = workflow is
                      enabled, PAUSED = user paused it, DELETED = soft deleted.
                  displayState:
                    type: string
                    enum:
                      - ACTIVE
                      - DRAFT
                      - ERROR
                      - PAUSED
                      - NOT_SUPPORTED
                      - PREVIEW
                      - QUEUED
                      - SETUP
                      - PENDING_START
                      - RUNNING
                      - VALIDATING
                      - FAILED
                      - DEGRADED
                      - COMPLIANCE_REVIEW
                      - COMPLIANCE_REJECTED
                      - DELETED
                    description: >-
                      Computed status shown to users. Combines state + runState.
                      DRAFT = workflow exists but setup is incomplete, ACTIVE =
                      complete/scheduled, RUNNING = job in progress, VALIDATING
                      = run is held for QA review before data delivery, FAILED =
                      last run failed, DEGRADED = monitor experiencing issues
                      (15-60 min stale).
                  userId:
                    type: string
                    description: ID of the user who owns the workflow
                  createdAt:
                    type: string
                    format: date-time
                    description: Timestamp when the workflow was created
                  updateInterval:
                    type: string
                    description: Update frequency
                  isRealTime:
                    type: boolean
                    description: Whether this workflow should be displayed as realtime
                  schedules:
                    type: array
                    items:
                      type: string
                    description: Cron schedules for updates
                  nextInvocation:
                    type: string
                    format: date-time
                    description: Next scheduled execution time
                  monitoring:
                    type: boolean
                    description: Whether monitoring is enabled
                  location:
                    type: object
                    properties:
                      type:
                        type: string
                        enum:
                          - auto
                          - manual
                      isoCode:
                        type: string
                        enum:
                          - DE
                          - US
                          - GB
                          - NL
                          - CA
                    description: Scraping location configuration
                  tags:
                    type: array
                    items:
                      type: string
                    description: Tags associated with the workflow
                  schemaName:
                    type: string
                    description: Name of the schema used
                  schemaId:
                    type: string
                    description: ID of the schema used
                  jobId:
                    type: string
                    description: ID of the last job
                  finishedAt:
                    type: string
                    format: date-time
                    description: When the last job finished
                  startedAt:
                    type: string
                    format: date-time
                    description: When the last job started
                  estimatedFinishedAtUtc:
                    type: string
                    format: date-time
                    nullable: true
                    description: >-
                      Estimated UTC finish time for the active job, when
                      available.
                  dataKey:
                    type: string
                    description: Database key for the workflow data
                  errors:
                    type: array
                    description: Errors from the last job run
                    items:
                      type: object
                      properties:
                        errorCode:
                          type: string
                          description: Error code identifying the type of error
                        message:
                          type: string
                          description: Human-readable error message
                        timestamp:
                          type: string
                          format: date-time
                          description: When the error occurred
                        screenshot:
                          type: string
                          description: Optional screenshot URL
                        context:
                          type: object
                          description: Additional context about the error
                  runCosts:
                    type: number
                    description: Cost of the last job run in credits
                  runState:
                    type: string
                    enum:
                      - RUNNING
                      - FINISHED
                      - FAILED
                    description: >-
                      Latest job execution state. RUNNING = job in progress,
                      FINISHED = completed successfully, FAILED = job failed.
                  totalRecords:
                    type: integer
                    description: Total number of records extracted
                  url:
                    type: string
                    description: Primary URL being scraped
                  urls:
                    type: array
                    items:
                      type: string
                    description: List of URLs being scraped
                  browserActions:
                    type: array
                    description: Optional browser actions to perform before extraction
                    items:
                      type: object
                      properties:
                        type:
                          type: string
                          description: Action type (e.g., CLICK, TYPE, WAIT, GOTO)
                        selector:
                          type: string
                          description: CSS selector for element-based actions
                        text:
                          type: string
                          description: Text to type for TYPE actions
                        timeMs:
                          type: integer
                          description: Milliseconds to wait for WAIT actions
                        url:
                          type: string
                          description: URL to navigate to for GOTO actions
                  maxDepth:
                    type: integer
                    minimum: 1
                    maximum: 200
                    description: 'Maximum crawl depth (default: 50, max: 200).'
                  maxPages:
                    type: integer
                    minimum: 1
                    maximum: 100000
                    description: 'Maximum pages to crawl (default: 10,000, max: 100,000).'
                  schema:
                    type: array
                    items:
                      type: object
                      properties:
                        name:
                          type: string
                        description:
                          type: string
                        example:
                          type: string
                        dataType:
                          type: string
                          enum:
                            - STRING
                            - NUMBER
                            - BOOLEAN
                            - DATE
                            - DATETIME
                            - CURRENCY
                            - MONEY
                            - IMAGE
                            - LINK
                            - OBJECT
                            - ARRAY
                        isKey:
                          type: boolean
                        isRequired:
                          type: boolean
                        isUnique:
                          type: boolean
                    description: Extraction schema fields
                  entity:
                    type: object
                    description: Entity information
                  isSchemaEditable:
                    type: boolean
                    description: Whether the schema can be edited
                  limit:
                    type: integer
                    description: Maximum number of items to scrape
                  additionalData:
                    type: object
                    description: Additional static data for the workflow
                  dataValidation:
                    type: object
                    description: Data validation configuration
                    properties:
                      enabled:
                        type: boolean
                        description: Whether data validation is enabled
                      ruleCounts:
                        type: object
                        description: Counts of validation rules by status
                        properties:
                          enabled:
                            type: integer
                            description: Number of enabled validation rules
                          disabled:
                            type: integer
                            description: Number of disabled validation rules
                          preview:
                            type: integer
                            description: Number of preview validation rules
                  validationStatistics:
                    type: object
                    description: Validation statistics
                    properties:
                      count:
                        type: number
                        description: Overall validation score
                      change:
                        type: number
                        description: Change in validation score since last validation
                  notificationConfig:
                    type: object
                    properties:
                      enabled:
                        type: boolean
                      fields:
                        type: array
                        items:
                          type: object
                          properties:
                            fieldName:
                              type: string
                            operator:
                              type: string
                              enum:
                                - changed
                                - added
                                - removed
                    description: Monitoring configuration
                  openSupportRequests:
                    type: array
                    description: >-
                      List of open support requests for this workflow. Only
                      present when there are open requests.
                    items:
                      type: object
                      properties:
                        issueId:
                          type: string
                          nullable: true
                          description: Linear issue identifier (e.g., KAD-123)
                        requestedAt:
                          type: string
                          format: date-time
                          description: When the support request was created
                  observerHealth:
                    type: object
                    nullable: true
                    description: >-
                      Health status for REAL_TIME observer workflows. Only
                      present when health monitoring is active and detects
                      issues.
                    properties:
                      healthTier:
                        type: string
                        enum:
                          - HEALTHY
                          - WARNING
                          - DEGRADED
                          - UNHEALTHY
                          - FAILED
                        description: Current health tier
                      reason:
                        type: string
                        description: Human-readable explanation of the health status
                      issueStartedAt:
                        type: string
                        format: date-time
                        description: When the current degradation episode started
                      lastCheckedAt:
                        type: string
                        format: date-time
                        description: When health was last evaluated
                  assistantSessionId:
                    type: string
                    nullable: true
                    description: >-
                      Newest assistant session linked to this workflow,
                      regardless of status. Null if no assistant session has
                      been created for this workflow.
                  assistantThreadId:
                    type: string
                    nullable: true
                    description: Newest assistant thread within the assistant session.
                  assistantEligible:
                    type: boolean
                    description: >-
                      True when this workflow has no assistant session yet and
                      is eligible to start one (SHELLY_SCRIPT and
                      SHELLY_REAL_TIME_SCRIPT workflows).
                  sessionStatus:
                    type: string
                    nullable: true
                    enum:
                      - pending
                      - created
                      - active
                      - idle
                      - inactive
                      - failed
                      - interrupted
                      - errored
                      - aborted
                      - timed_out
                    description: >-
                      Status of the linked assistant session. Useful for
                      deciding whether the Assistant can accept new input
                      (failed/errored/aborted/timed_out are closed).
        '400':
          description: Bad Request - Invalid workflowId format
        '401':
          description: Unauthorized - Invalid or missing authentication token
        '403':
          description: Forbidden - User doesn't have required permissions
        '404':
          description: Workflow not found
        '500':
          description: Internal server error
      security:
        - ApiKeyAuth: []
components:
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: x-api-key
      description: API key for authentication

````