Conductor Task API

APIs for polling and updating tasks

OpenAPI Specification

conductor-task-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Conductor Admin Task API
  description: Conductor is a workflow orchestration platform originally created by Netflix. It allows you to build complex applications using simple and granular tasks that do not need to be aware of or keep track of the state of your application's execution flow. Conductor keeps track of the state, calls tasks in the right order (sequentially or in parallel, as defined by you), retries calls if needed, handles failure scenarios gracefully, and outputs the final result. This API provides endpoints for managing workflow definitions, task definitions, workflow executions, task executions, and event handlers.
  version: 3.x
  contact:
    name: Conductor OSS
    url: https://conductor-oss.github.io/conductor/
  license:
    name: Apache 2.0
    url: https://www.apache.org/licenses/LICENSE-2.0
servers:
- url: https://localhost:8080/api
  description: Local Conductor Server
- url: https://play.orkes.io/api
  description: Orkes Conductor Playground
tags:
- name: Task
  description: APIs for polling and updating tasks
paths:
  /tasks/poll/{taskType}:
    get:
      operationId: pollForTask
      summary: Conductor Poll for a Task
      description: Polls for a task of the specified type. Used by workers to get tasks to execute. Returns a single task if available.
      tags:
      - Task
      parameters:
      - name: taskType
        in: path
        required: true
        description: The task type to poll for
        schema:
          type: string
      - name: workerId
        in: query
        required: false
        description: ID of the worker polling for the task
        schema:
          type: string
      - name: domain
        in: query
        required: false
        description: Domain for task routing
        schema:
          type: string
      responses:
        '200':
          description: Successful operation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Task'
        '204':
          description: No tasks available for polling
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /tasks/poll/batch/{taskType}:
    get:
      operationId: batchPollForTasks
      summary: Conductor Batch Poll for Tasks
      description: Polls for multiple tasks of the specified type in a single request. Returns up to the specified count of tasks.
      tags:
      - Task
      parameters:
      - name: taskType
        in: path
        required: true
        description: The task type to poll for
        schema:
          type: string
      - name: workerId
        in: query
        required: false
        description: ID of the worker polling for tasks
        schema:
          type: string
      - name: count
        in: query
        required: false
        description: Number of tasks to poll for
        schema:
          type: integer
          default: 1
      - name: timeout
        in: query
        required: false
        description: Long poll timeout in milliseconds
        schema:
          type: integer
          default: 100
      - name: domain
        in: query
        required: false
        description: Domain for task routing
        schema:
          type: string
      responses:
        '200':
          description: Successful operation
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Task'
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /tasks:
    post:
      operationId: updateTask
      summary: Conductor Update Task Status
      description: Updates the status and result of a task. Used by workers to report task completion, failure, or progress.
      tags:
      - Task
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/TaskResult'
      responses:
        '200':
          description: Task updated successfully
          content:
            application/json:
              schema:
                type: string
                description: The task ID
        '400':
          description: Invalid task result
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /tasks/{taskId}:
    get:
      operationId: getTask
      summary: Conductor Get Task Details
      description: Retrieves the details of a specific task by its ID.
      tags:
      - Task
      parameters:
      - name: taskId
        in: path
        required: true
        description: The task ID
        schema:
          type: string
      responses:
        '200':
          description: Successful operation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Task'
        '404':
          description: Task not found
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /tasks/{taskId}/ack:
    post:
      operationId: acknowledgeTask
      summary: Conductor Acknowledge a Task
      description: Acknowledges that a task has been received by a worker. This prevents the task from being sent to another worker.
      tags:
      - Task
      parameters:
      - name: taskId
        in: path
        required: true
        description: The task ID to acknowledge
        schema:
          type: string
      - name: workerId
        in: query
        required: false
        description: ID of the worker acknowledging the task
        schema:
          type: string
      responses:
        '200':
          description: Task acknowledged successfully
          content:
            application/json:
              schema:
                type: boolean
        '404':
          description: Task not found
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /tasks/{taskId}/log:
    post:
      operationId: addTaskLog
      summary: Conductor Add a Log Entry to a Task
      description: Adds a log message to a task execution for debugging or auditing.
      tags:
      - Task
      parameters:
      - name: taskId
        in: path
        required: true
        description: The task ID
        schema:
          type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: string
              description: The log message to add
      responses:
        '200':
          description: Log entry added successfully
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
    get:
      operationId: getTaskLogs
      summary: Conductor Get Task Execution Logs
      description: Retrieves the log entries for a specific task execution.
      tags:
      - Task
      parameters:
      - name: taskId
        in: path
        required: true
        description: The task ID
        schema:
          type: string
      responses:
        '200':
          description: Successful operation
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/TaskExecLog'
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /tasks/queue/sizes:
    get:
      operationId: getTaskQueueSizes
      summary: Conductor Get Task Queue Sizes
      description: Returns the number of pending tasks for each task type in the queue.
      tags:
      - Task
      parameters:
      - name: taskType
        in: query
        required: false
        description: Comma-separated list of task types. If not specified, returns sizes for all task types.
        schema:
          type: string
      responses:
        '200':
          description: Successful operation
          content:
            application/json:
              schema:
                type: object
                additionalProperties:
                  type: integer
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /tasks/search:
    get:
      operationId: searchTasks
      summary: Conductor Search for Tasks
      description: Searches for task executions based on query parameters.
      tags:
      - Task
      parameters:
      - name: start
        in: query
        required: false
        description: Start index for pagination
        schema:
          type: integer
          default: 0
      - name: size
        in: query
        required: false
        description: Number of results to return
        schema:
          type: integer
          default: 100
      - name: sort
        in: query
        required: false
        description: Sort field and order
        schema:
          type: string
      - name: freeText
        in: query
        required: false
        description: Free text search
        schema:
          type: string
          default: '*'
      - name: query
        in: query
        required: false
        description: Query expression for filtering results
        schema:
          type: string
      responses:
        '200':
          description: Successful operation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SearchResultTaskSummary'
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
components:
  schemas:
    TaskResult:
      type: object
      required:
      - workflowInstanceId
      - taskId
      - status
      properties:
        workflowInstanceId:
          type: string
          description: The workflow instance ID
          example: '500123'
        taskId:
          type: string
          description: The task ID
          example: '500123'
        status:
          type: string
          description: Task execution status
          enum:
          - IN_PROGRESS
          - FAILED
          - FAILED_WITH_TERMINAL_ERROR
          - COMPLETED
          example: IN_PROGRESS
        outputData:
          type: object
          description: Task output data
          additionalProperties: true
          example: example_value
        reasonForIncompletion:
          type: string
          description: Reason for failure
          example: example_value
        callbackAfterSeconds:
          type: integer
          format: int64
          description: Callback delay for IN_PROGRESS tasks
          example: 10
        workerId:
          type: string
          description: ID of the worker updating the task
          example: '500123'
        logs:
          type: array
          description: Task execution logs
          items:
            $ref: '#/components/schemas/TaskExecLog'
          example: []
        externalOutputPayloadStoragePath:
          type: string
          description: Path to externally stored output payload
          example: example_value
    SearchResultTaskSummary:
      type: object
      properties:
        totalHits:
          type: integer
          format: int64
          description: Total number of matching results
          example: 10
        results:
          type: array
          description: List of task summaries
          items:
            $ref: '#/components/schemas/TaskSummary'
          example: []
    Task:
      type: object
      properties:
        taskId:
          type: string
          description: Unique task instance ID
          example: '500123'
        taskType:
          type: string
          description: The type of the task
          example: example_value
        status:
          type: string
          description: Current status of the task
          enum:
          - IN_PROGRESS
          - CANCELED
          - FAILED
          - FAILED_WITH_TERMINAL_ERROR
          - COMPLETED
          - COMPLETED_WITH_ERRORS
          - SCHEDULED
          - TIMED_OUT
          - SKIPPED
          example: IN_PROGRESS
        referenceTaskName:
          type: string
          description: Reference name of the task in the workflow
          example: example_value
        workflowInstanceId:
          type: string
          description: ID of the workflow instance this task belongs to
          example: '500123'
        workflowType:
          type: string
          description: Type/name of the workflow
          example: example_value
        correlationId:
          type: string
          description: Correlation ID
          example: '500123'
        scheduledTime:
          type: integer
          format: int64
          description: Scheduled time
          example: 10
        startTime:
          type: integer
          format: int64
          description: Start time
          example: 10
        endTime:
          type: integer
          format: int64
          description: End time
          example: 10
        updateTime:
          type: integer
          format: int64
          description: Last update time
          example: 10
        retryCount:
          type: integer
          description: Current retry count
          example: 10
        pollCount:
          type: integer
          description: Number of times this task was polled
          example: 10
        callbackAfterSeconds:
          type: integer
          format: int64
          description: Callback delay in seconds
          example: 10
        workerId:
          type: string
          description: ID of the worker that polled this task
          example: '500123'
        inputData:
          type: object
          description: Task input data
          additionalProperties: true
          example: example_value
        outputData:
          type: object
          description: Task output data
          additionalProperties: true
          example: example_value
        reasonForIncompletion:
          type: string
          description: Reason for failure
          example: example_value
        logs:
          type: array
          description: Task execution logs
          items:
            $ref: '#/components/schemas/TaskExecLog'
          example: []
        domain:
          type: string
          description: Task domain
          example: example_value
        seq:
          type: integer
          description: Sequence number
          example: 10
        taskDefName:
          type: string
          description: Task definition name
          example: example_value
        responseTimeoutSeconds:
          type: integer
          format: int64
          description: Response timeout
          example: 10
        queueWaitTime:
          type: integer
          format: int64
          description: Time spent waiting in queue
          example: 10
    TaskExecLog:
      type: object
      properties:
        log:
          type: string
          description: Log message
          example: example_value
        taskId:
          type: string
          description: Associated task ID
          example: '500123'
        createdTime:
          type: integer
          format: int64
          description: Timestamp of the log entry
          example: 10
    TaskSummary:
      type: object
      properties:
        taskId:
          type: string
          example: '500123'
        taskType:
          type: string
          example: example_value
        taskDefName:
          type: string
          example: example_value
        status:
          type: string
          enum:
          - IN_PROGRESS
          - CANCELED
          - FAILED
          - FAILED_WITH_TERMINAL_ERROR
          - COMPLETED
          - COMPLETED_WITH_ERRORS
          - SCHEDULED
          - TIMED_OUT
          - SKIPPED
          example: IN_PROGRESS
        workflowId:
          type: string
          example: '500123'
        workflowType:
          type: string
          example: example_value
        correlationId:
          type: string
          example: '500123'
        scheduledTime:
          type: string
          example: example_value
        startTime:
          type: string
          example: example_value
        updateTime:
          type: string
          example: example_value
        endTime:
          type: string
          example: example_value
        input:
          type: string
          example: example_value
        output:
          type: string
          example: example_value
        reasonForIncompletion:
          type: string
          example: example_value
        queueWaitTime:
          type: integer
          format: int64
          example: 10
        domain:
          type: string
          example: example_value
externalDocs:
  description: Conductor API Documentation
  url: https://conductor-oss.github.io/conductor/documentation/api/index.html