---
title: "Test workflow execution using mock data"
method: POST
path: "/api/workflow/test"
tags: ["workflow-resource"]
---

# Test workflow execution using mock data

`POST /api/workflow/test`

## Request body

- WorkflowTestRequest
  - `correlationId` string
  - `createdBy` string
  - `externalInputPayloadStoragePath` string
  - `idempotencyKey` string
  - `idempotencyStrategy` 'FAIL' | 'RETURN_EXISTING' | 'FAIL_ON_RUNNING'
  - `input` object
  - `maxLoops` integer
  - `mockTtlSeconds` integer
  - `name` string, required
  - `priority` integer
  - `subWorkflowTestRequest` object
  - `taskRefToMockOutput` object
  - `taskToDomain` object
  - `version` integer
  - `workflowDef` WorkflowDef
    - `cacheConfig` CacheConfig
      - `key` string
      - `ttlInSecond` integer
    - `createTime` integer
    - `createdBy` string
    - `description` string
    - `enforceSchema` boolean
    - `failureWorkflow` string
    - `failureWorkflowVersion` integer
    - `inputParameters` string[]
    - `inputSchema` SchemaDef
      - `createTime` integer
      - `createdBy` string
      - `data` object
      - `externalRef` string
      - `name` string, required
      - `ownerApp` string
      - `type` 'JSON' | 'AVRO' | 'PROTOBUF', required
      - `updateTime` integer
      - `updatedBy` string
      - `version` integer, required
    - `inputTemplate` object
    - `maskedFields` string[]
    - `metadata` object
    - `name` string, required
    - `outputParameters` object
    - `outputSchema` SchemaDef
      - `createTime` integer
      - `createdBy` string
      - `data` object
      - `externalRef` string
      - `name` string, required
      - `ownerApp` string
      - `type` 'JSON' | 'AVRO' | 'PROTOBUF', required
      - `updateTime` integer
      - `updatedBy` string
      - `version` integer, required
    - `ownerApp` string
    - `ownerEmail` string
    - `rateLimitConfig` RateLimitConfig
      - `concurrentExecLimit` integer
      - `policy` 'QUEUE' | 'REJECT'
      - `rateLimitKey` string
    - `restartable` boolean
    - `schemaVersion` integer
    - `tasks` WorkflowTask[], required
      - `asyncComplete` boolean
      - `cacheConfig` CacheConfig
        - `key` string
        - `ttlInSecond` integer
      - `caseExpression` string
      - `caseValueParam` string
      - `decisionCases` object
      - `defaultCase` WorkflowTask[]
      - `defaultExclusiveJoinTask` string[]
      - `description` string
      - `dynamicForkJoinTasksParam` string
      - `dynamicForkTasksInputParamName` string
      - `dynamicForkTasksParam` string
      - `dynamicTaskNameParam` string
      - `evaluatorType` string
      - `expression` string
      - `forkTasks` array[]
        - WorkflowTask[]
      - `inputParameters` object
      - `items` string
      - `joinMode` 'SYNC' | 'ASYNC'
      - `joinOn` string[]
      - `joinStatus` string
      - `loopCondition` string
      - `loopOver` WorkflowTask[]
      - `metadata` object
      - `name` string, required
      - `onStateChange` object
      - `optional` boolean
      - `permissive` boolean
      - `rateLimited` boolean
      - `retryCount` integer
      - `scriptExpression` string
      - `sink` string
      - `startDelay` integer
      - `subWorkflowParam` SubWorkflowParams
        - `idempotencyKey` string
        - `idempotencyStrategy` 'FAIL' | 'RETURN_EXISTING' | 'FAIL_ON_RUNNING'
        - `name` string
        - `priority` object
        - `taskToDomain` object
        - `version` integer
        - `workflowDefinition` object
      - `taskDefinition` TaskDef
        - `backoffJitterMs` integer
        - `backoffScaleFactor` integer
        - `baseType` string
        - `concurrentExecLimit` integer
        - `createTime` integer
        - `createdBy` string
        - `description` string
        - `enforceSchema` boolean
        - `executionNameSpace` string
        - `inputKeys` string[]
        - `inputSchema` SchemaDef
          - `createTime` integer
          - `createdBy` string
          - `data` object
          - `externalRef` string
          - `name` string, required
          - `ownerApp` string
          - `type` 'JSON' | 'AVRO' | 'PROTOBUF', required
          - `updateTime` integer
          - `updatedBy` string
          - `version` integer, required
        - `inputTemplate` object
        - `isolationGroupId` string
        - `maxRetryDelaySeconds` integer
        - `name` string, required
        - `outputKeys` string[]
        - `outputSchema` SchemaDef
          - `createTime` integer
          - `createdBy` string
          - `data` object
          - `externalRef` string
          - `name` string, required
          - `ownerApp` string
          - `type` 'JSON' | 'AVRO' | 'PROTOBUF', required
          - `updateTime` integer
          - `updatedBy` string
          - `version` integer, required
        - `ownerApp` string
        - `ownerEmail` string
        - `pollTimeoutSeconds` integer
        - `rateLimitFrequencyInSeconds` integer
        - `rateLimitPerFrequency` integer
        - `responseTimeoutSeconds` integer
        - `retryCount` integer
        - `retryDelaySeconds` integer
        - `retryLogic` 'FIXED' | 'EXPONENTIAL_BACKOFF' | 'LINEAR_BACKOFF'
        - `runtimeMetadata` string[]
        - `taskStatusListenerEnabled` boolean
        - `timeoutPolicy` 'RETRY' | 'TIME_OUT_WF' | 'ALERT_ONLY'
        - `timeoutSeconds` integer, required
        - `totalTimeoutSeconds` integer
        - `updateTime` integer
        - `updatedBy` string
      - `taskReferenceName` string, required
      - `type` string
      - `workflowTaskType` 'SIMPLE' | 'DYNAMIC' | 'FORK_JOIN' | 'FORK_JOIN_DYNAMIC' | 'DECISION' | 'SWITCH' | 'JOIN' | 'DO_WHILE' | 'SUB_WORKFLOW' | 'START_WORKFLOW' | 'EVENT' | 'WAIT' | 'HUMAN' | 'USER_DEFINED' | 'HTTP' | 'LAMBDA' | 'INLINE' | 'EXCLUSIVE_JOIN' | 'TERMINATE' | 'KAFKA_PUBLISH' | 'JSON_JQ_TRANSFORM' | 'SET_VARIABLE' | 'NOOP' | 'LLM_TEXT_COMPLETE' | 'LLM_CHAT_COMPLETE' | 'LLM_INDEX_TEXT' | 'LLM_SEARCH_INDEX' | 'LLM_GENERATE_EMBEDDINGS' | 'LLM_STORE_EMBEDDINGS' | 'LLM_GET_EMBEDDINGS' | 'LIST_MCP_TOOLS' | 'CALL_MCP_TOOL' | 'PULL_WORKFLOW_MESSAGES' | 'AGENT' | 'GET_AGENT_CARD' | 'CANCEL_AGENT'
    - `timeoutPolicy` 'TIME_OUT_WF' | 'ALERT_ONLY'
    - `timeoutSeconds` integer, required
    - `updateTime` integer
    - `updatedBy` string
    - `variables` object
    - `version` integer
    - `workflowStatusListenerEnabled` boolean
    - `workflowStatusListenerSink` string

## Response `200`

OK

- Workflow
  - `aggregateTokenUsage` AggregateTokenUsage
    - `completionTokens` integer
    - `promptTokens` integer
    - `totalTokens` integer
  - `correlationId` string
  - `createTime` integer
  - `createdBy` string
  - `endTime` integer
  - `event` string
  - `externalInputPayloadStoragePath` string
  - `externalOutputPayloadStoragePath` string
  - `failedReferenceTaskNames` string[]
  - `failedTaskNames` string[]
  - `history` Workflow[]
  - `idempotencyKey` string
  - `input` object
  - `lastRetriedTime` integer
  - `output` object
  - `ownerApp` string
  - `parentWorkflowId` string
  - `parentWorkflowTaskId` string
  - `priority` integer
  - `rateLimitKey` string
  - `rateLimited` boolean
  - `reRunFromWorkflowId` string
  - `reasonForIncompletion` string
  - `startTime` integer
  - `status` 'RUNNING' | 'COMPLETED' | 'FAILED' | 'TIMED_OUT' | 'TERMINATED' | 'PAUSED'
  - `taskToDomain` object
  - `tasks` Task[]
    - `callbackAfterSeconds` integer
    - `callbackFromWorker` boolean
    - `correlationId` string
    - `domain` string
    - `endTime` integer
    - `executed` boolean
    - `executionMetadata` ExecutionMetadata
      - `additionalContext` object
      - `additionalContextMap` object
      - `clientReceiveTime` integer
      - `clientSendTime` integer
      - `empty` boolean
      - `executionDuration` integer
      - `executionEndTime` integer
      - `executionStartTime` integer
      - `pollNetworkLatency` integer
      - `serverSendTime` integer
      - `updateNetworkLatency` integer
    - `executionNameSpace` string
    - `externalInputPayloadStoragePath` string
    - `externalOutputPayloadStoragePath` string
    - `firstStartTime` integer
    - `inputData` object
    - `isolationGroupId` string
    - `iteration` integer
    - `loopOverTask` boolean
    - `outputData` object
    - `parentTaskId` string
    - `pollCount` integer
    - `queueWaitTime` integer
    - `rateLimitFrequencyInSeconds` integer
    - `rateLimitPerFrequency` integer
    - `reasonForIncompletion` string
    - `referenceTaskName` string
    - `responseTimeoutSeconds` integer
    - `retried` boolean
    - `retriedTaskId` string
    - `retryCount` integer
    - `runtimeMetadata` object
    - `scheduledTime` integer
    - `seq` integer
    - `startDelayInSeconds` integer
    - `startTime` integer
    - `status` 'IN_PROGRESS' | 'CANCELED' | 'FAILED' | 'FAILED_WITH_TERMINAL_ERROR' | 'COMPLETED' | 'COMPLETED_WITH_ERRORS' | 'SCHEDULED' | 'TIMED_OUT' | 'SKIPPED'
    - `subWorkflowId` string
    - `subworkflowChanged` boolean
    - `taskDefName` string
    - `taskDefinition` TaskDef
      - `backoffJitterMs` integer
      - `backoffScaleFactor` integer
      - `baseType` string
      - `concurrentExecLimit` integer
      - `createTime` integer
      - `createdBy` string
      - `description` string
      - `enforceSchema` boolean
      - `executionNameSpace` string
      - `inputKeys` string[]
      - `inputSchema` SchemaDef
        - `createTime` integer
        - `createdBy` string
        - `data` object
        - `externalRef` string
        - `name` string, required
        - `ownerApp` string
        - `type` 'JSON' | 'AVRO' | 'PROTOBUF', required
        - `updateTime` integer
        - `updatedBy` string
        - `version` integer, required
      - `inputTemplate` object
      - `isolationGroupId` string
      - `maxRetryDelaySeconds` integer
      - `name` string, required
      - `outputKeys` string[]
      - `outputSchema` SchemaDef
        - `createTime` integer
        - `createdBy` string
        - `data` object
        - `externalRef` string
        - `name` string, required
        - `ownerApp` string
        - `type` 'JSON' | 'AVRO' | 'PROTOBUF', required
        - `updateTime` integer
        - `updatedBy` string
        - `version` integer, required
      - `ownerApp` string
      - `ownerEmail` string
      - `pollTimeoutSeconds` integer
      - `rateLimitFrequencyInSeconds` integer
      - `rateLimitPerFrequency` integer
      - `responseTimeoutSeconds` integer
      - `retryCount` integer
      - `retryDelaySeconds` integer
      - `retryLogic` 'FIXED' | 'EXPONENTIAL_BACKOFF' | 'LINEAR_BACKOFF'
      - `runtimeMetadata` string[]
      - `taskStatusListenerEnabled` boolean
      - `timeoutPolicy` 'RETRY' | 'TIME_OUT_WF' | 'ALERT_ONLY'
      - `timeoutSeconds` integer, required
      - `totalTimeoutSeconds` integer
      - `updateTime` integer
      - `updatedBy` string
    - `taskId` string
    - `taskType` string
    - `updateTime` integer
    - `workerId` string
    - `workflowInstanceId` string
    - `workflowPriority` integer
    - `workflowTask` WorkflowTask
      - `asyncComplete` boolean
      - `cacheConfig` CacheConfig
        - `key` string
        - `ttlInSecond` integer
      - `caseExpression` string
      - `caseValueParam` string
      - `decisionCases` object
      - `defaultCase` WorkflowTask[]
      - `defaultExclusiveJoinTask` string[]
      - `description` string
      - `dynamicForkJoinTasksParam` string
      - `dynamicForkTasksInputParamName` string
      - `dynamicForkTasksParam` string
      - `dynamicTaskNameParam` string
      - `evaluatorType` string
      - `expression` string
      - `forkTasks` array[]
        - WorkflowTask[]
      - `inputParameters` object
      - `items` string
      - `joinMode` 'SYNC' | 'ASYNC'
      - `joinOn` string[]
      - `joinStatus` string
      - `loopCondition` string
      - `loopOver` WorkflowTask[]
      - `metadata` object
      - `name` string, required
      - `onStateChange` object
      - `optional` boolean
      - `permissive` boolean
      - `rateLimited` boolean
      - `retryCount` integer
      - `scriptExpression` string
      - `sink` string
      - `startDelay` integer
      - `subWorkflowParam` SubWorkflowParams
        - `idempotencyKey` string
        - `idempotencyStrategy` 'FAIL' | 'RETURN_EXISTING' | 'FAIL_ON_RUNNING'
        - `name` string
        - `priority` object
        - `taskToDomain` object
        - `version` integer
        - `workflowDefinition` object
      - `taskDefinition` TaskDef
        - `backoffJitterMs` integer
        - `backoffScaleFactor` integer
        - `baseType` string
        - `concurrentExecLimit` integer
        - `createTime` integer
        - `createdBy` string
        - `description` string
        - `enforceSchema` boolean
        - `executionNameSpace` string
        - `inputKeys` string[]
        - `inputSchema` SchemaDef
          - `createTime` integer
          - `createdBy` string
          - `data` object
          - `externalRef` string
          - `name` string, required
          - `ownerApp` string
          - `type` 'JSON' | 'AVRO' | 'PROTOBUF', required
          - `updateTime` integer
          - `updatedBy` string
          - `version` integer, required
        - `inputTemplate` object
        - `isolationGroupId` string
        - `maxRetryDelaySeconds` integer
        - `name` string, required
        - `outputKeys` string[]
        - `outputSchema` SchemaDef
          - `createTime` integer
          - `createdBy` string
          - `data` object
          - `externalRef` string
          - `name` string, required
          - `ownerApp` string
          - `type` 'JSON' | 'AVRO' | 'PROTOBUF', required
          - `updateTime` integer
          - `updatedBy` string
          - `version` integer, required
        - `ownerApp` string
        - `ownerEmail` string
        - `pollTimeoutSeconds` integer
        - `rateLimitFrequencyInSeconds` integer
        - `rateLimitPerFrequency` integer
        - `responseTimeoutSeconds` integer
        - `retryCount` integer
        - `retryDelaySeconds` integer
        - `retryLogic` 'FIXED' | 'EXPONENTIAL_BACKOFF' | 'LINEAR_BACKOFF'
        - `runtimeMetadata` string[]
        - `taskStatusListenerEnabled` boolean
        - `timeoutPolicy` 'RETRY' | 'TIME_OUT_WF' | 'ALERT_ONLY'
        - `timeoutSeconds` integer, required
        - `totalTimeoutSeconds` integer
        - `updateTime` integer
        - `updatedBy` string
      - `taskReferenceName` string, required
      - `type` string
      - `workflowTaskType` 'SIMPLE' | 'DYNAMIC' | 'FORK_JOIN' | 'FORK_JOIN_DYNAMIC' | 'DECISION' | 'SWITCH' | 'JOIN' | 'DO_WHILE' | 'SUB_WORKFLOW' | 'START_WORKFLOW' | 'EVENT' | 'WAIT' | 'HUMAN' | 'USER_DEFINED' | 'HTTP' | 'LAMBDA' | 'INLINE' | 'EXCLUSIVE_JOIN' | 'TERMINATE' | 'KAFKA_PUBLISH' | 'JSON_JQ_TRANSFORM' | 'SET_VARIABLE' | 'NOOP' | 'LLM_TEXT_COMPLETE' | 'LLM_CHAT_COMPLETE' | 'LLM_INDEX_TEXT' | 'LLM_SEARCH_INDEX' | 'LLM_GENERATE_EMBEDDINGS' | 'LLM_STORE_EMBEDDINGS' | 'LLM_GET_EMBEDDINGS' | 'LIST_MCP_TOOLS' | 'CALL_MCP_TOOL' | 'PULL_WORKFLOW_MESSAGES' | 'AGENT' | 'GET_AGENT_CARD' | 'CANCEL_AGENT'
    - `workflowType` string
  - `updateTime` integer
  - `updatedBy` string
  - `variables` object
  - `workflowDefinition` WorkflowDef
    - `cacheConfig` CacheConfig
      - `key` string
      - `ttlInSecond` integer
    - `createTime` integer
    - `createdBy` string
    - `description` string
    - `enforceSchema` boolean
    - `failureWorkflow` string
    - `failureWorkflowVersion` integer
    - `inputParameters` string[]
    - `inputSchema` SchemaDef
      - `createTime` integer
      - `createdBy` string
      - `data` object
      - `externalRef` string
      - `name` string, required
      - `ownerApp` string
      - `type` 'JSON' | 'AVRO' | 'PROTOBUF', required
      - `updateTime` integer
      - `updatedBy` string
      - `version` integer, required
    - `inputTemplate` object
    - `maskedFields` string[]
    - `metadata` object
    - `name` string, required
    - `outputParameters` object
    - `outputSchema` SchemaDef
      - `createTime` integer
      - `createdBy` string
      - `data` object
      - `externalRef` string
      - `name` string, required
      - `ownerApp` string
      - `type` 'JSON' | 'AVRO' | 'PROTOBUF', required
      - `updateTime` integer
      - `updatedBy` string
      - `version` integer, required
    - `ownerApp` string
    - `ownerEmail` string
    - `rateLimitConfig` RateLimitConfig
      - `concurrentExecLimit` integer
      - `policy` 'QUEUE' | 'REJECT'
      - `rateLimitKey` string
    - `restartable` boolean
    - `schemaVersion` integer
    - `tasks` WorkflowTask[], required
      - `asyncComplete` boolean
      - `cacheConfig` CacheConfig
        - `key` string
        - `ttlInSecond` integer
      - `caseExpression` string
      - `caseValueParam` string
      - `decisionCases` object
      - `defaultCase` WorkflowTask[]
      - `defaultExclusiveJoinTask` string[]
      - `description` string
      - `dynamicForkJoinTasksParam` string
      - `dynamicForkTasksInputParamName` string
      - `dynamicForkTasksParam` string
      - `dynamicTaskNameParam` string
      - `evaluatorType` string
      - `expression` string
      - `forkTasks` array[]
        - WorkflowTask[]
      - `inputParameters` object
      - `items` string
      - `joinMode` 'SYNC' | 'ASYNC'
      - `joinOn` string[]
      - `joinStatus` string
      - `loopCondition` string
      - `loopOver` WorkflowTask[]
      - `metadata` object
      - `name` string, required
      - `onStateChange` object
      - `optional` boolean
      - `permissive` boolean
      - `rateLimited` boolean
      - `retryCount` integer
      - `scriptExpression` string
      - `sink` string
      - `startDelay` integer
      - `subWorkflowParam` SubWorkflowParams
        - `idempotencyKey` string
        - `idempotencyStrategy` 'FAIL' | 'RETURN_EXISTING' | 'FAIL_ON_RUNNING'
        - `name` string
        - `priority` object
        - `taskToDomain` object
        - `version` integer
        - `workflowDefinition` object
      - `taskDefinition` TaskDef
        - `backoffJitterMs` integer
        - `backoffScaleFactor` integer
        - `baseType` string
        - `concurrentExecLimit` integer
        - `createTime` integer
        - `createdBy` string
        - `description` string
        - `enforceSchema` boolean
        - `executionNameSpace` string
        - `inputKeys` string[]
        - `inputSchema` SchemaDef
          - `createTime` integer
          - `createdBy` string
          - `data` object
          - `externalRef` string
          - `name` string, required
          - `ownerApp` string
          - `type` 'JSON' | 'AVRO' | 'PROTOBUF', required
          - `updateTime` integer
          - `updatedBy` string
          - `version` integer, required
        - `inputTemplate` object
        - `isolationGroupId` string
        - `maxRetryDelaySeconds` integer
        - `name` string, required
        - `outputKeys` string[]
        - `outputSchema` SchemaDef
          - `createTime` integer
          - `createdBy` string
          - `data` object
          - `externalRef` string
          - `name` string, required
          - `ownerApp` string
          - `type` 'JSON' | 'AVRO' | 'PROTOBUF', required
          - `updateTime` integer
          - `updatedBy` string
          - `version` integer, required
        - `ownerApp` string
        - `ownerEmail` string
        - `pollTimeoutSeconds` integer
        - `rateLimitFrequencyInSeconds` integer
        - `rateLimitPerFrequency` integer
        - `responseTimeoutSeconds` integer
        - `retryCount` integer
        - `retryDelaySeconds` integer
        - `retryLogic` 'FIXED' | 'EXPONENTIAL_BACKOFF' | 'LINEAR_BACKOFF'
        - `runtimeMetadata` string[]
        - `taskStatusListenerEnabled` boolean
        - `timeoutPolicy` 'RETRY' | 'TIME_OUT_WF' | 'ALERT_ONLY'
        - `timeoutSeconds` integer, required
        - `totalTimeoutSeconds` integer
        - `updateTime` integer
        - `updatedBy` string
      - `taskReferenceName` string, required
      - `type` string
      - `workflowTaskType` 'SIMPLE' | 'DYNAMIC' | 'FORK_JOIN' | 'FORK_JOIN_DYNAMIC' | 'DECISION' | 'SWITCH' | 'JOIN' | 'DO_WHILE' | 'SUB_WORKFLOW' | 'START_WORKFLOW' | 'EVENT' | 'WAIT' | 'HUMAN' | 'USER_DEFINED' | 'HTTP' | 'LAMBDA' | 'INLINE' | 'EXCLUSIVE_JOIN' | 'TERMINATE' | 'KAFKA_PUBLISH' | 'JSON_JQ_TRANSFORM' | 'SET_VARIABLE' | 'NOOP' | 'LLM_TEXT_COMPLETE' | 'LLM_CHAT_COMPLETE' | 'LLM_INDEX_TEXT' | 'LLM_SEARCH_INDEX' | 'LLM_GENERATE_EMBEDDINGS' | 'LLM_STORE_EMBEDDINGS' | 'LLM_GET_EMBEDDINGS' | 'LIST_MCP_TOOLS' | 'CALL_MCP_TOOL' | 'PULL_WORKFLOW_MESSAGES' | 'AGENT' | 'GET_AGENT_CARD' | 'CANCEL_AGENT'
    - `timeoutPolicy` 'TIME_OUT_WF' | 'ALERT_ONLY'
    - `timeoutSeconds` integer, required
    - `updateTime` integer
    - `updatedBy` string
    - `variables` object
    - `version` integer
    - `workflowStatusListenerEnabled` boolean
    - `workflowStatusListenerSink` string
  - `workflowId` string
  - `workflowName` string
  - `workflowVersion` integer

---

[API](https://skmtc.dev/orkescloud/apis/orkes-conductor-api-server.md) · [All operations](https://skmtc.dev/orkescloud/apis/orkes-conductor-api-server/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/orkescloud/orkes-conductor-api-server/revisions/6ebf0c14ac41/schema)
