Skip to main content
GET
/
workflow
/
{workflowId}
# Latest active version
curl --request GET \
  --url https://operator.opus.com/workflow/{YOUR_WORKFLOW_ID} \
  --header 'x-service-key: {YOUR_SERVICE_KEY}'

# Pinned to a specific version number
curl --request GET \
  --url 'https://operator.opus.com/workflow/{YOUR_WORKFLOW_ID}?version=3' \
  --header 'x-service-key: {YOUR_SERVICE_KEY}'

# Pinned to a specific version UUID
curl --request GET \
  --url 'https://operator.opus.com/workflow/{YOUR_WORKFLOW_ID}?workflowVersionId={WORKFLOW_VERSION_ID}' \
  --header 'x-service-key: {YOUR_SERVICE_KEY}'
{
  "jobPayloadSchema": {
    "{VARIABLE_NAME_1}": {
      "id": "{INPUT_ID}",
      "variable_name": "{VARIABLE_NAME_1}",
      "display_name": "{DISPLAY_NAME}",
      "type": "str",
      "is_nullable": false
    },
    "{VARIABLE_NAME_2}": {
      "id": "{INPUT_ID}",
      "variable_name": "{VARIABLE_NAME_2}",
      "display_name": "{DISPLAY_NAME}",
      "type": "file",
      "is_nullable": false,
      "tags": [
        {
          "variable_name": "allowed_file_types",
          "value": ["JPEG", "PNG", "JPG", "PDF", "DOCX", "CSV", "XLSX"]
        }
      ]
    }
  }
}
Before you can execute a job, you must know what inputs it expects. This endpoint returns the workflow object, including its name, description, blueprint, and the jobPayloadSchema that defines all of the workflow’s inputs. By default, the response describes the latest active version of the workflow. To inspect a specific historical version, pass either the version number or the workflowVersionId UUID as a query parameter.

Path Parameters

workflowId
string
required
The unique identifier of the workflow to retrieve details for

Query Parameters

version
number
Workflow version number to retrieve. Omit to use the latest active version.
workflowVersionId
string
Specific workflow version UUID. Takes precedence over version when both are supplied.

Headers

x-service-key
string
required
Your API authentication key

Response

The jobPayloadSchema object defines all workflow inputs, their unique variable names (e.g., workflow_input_we4tej0ly), and their data types.
jobPayloadSchema
object
An object containing all workflow input definitions

Supported Data Types

TypeDescriptionExample Value
strText string"Hello World"
floatNumeric value45.8
boolBooleantrue or false
dateDate string"2025-11-09"
fileSingle file URL"https://files.opus.com/..."
arrayList of values["item1", "item2"]
array_filesMultiple file URLs["url1", "url2"]
objectNested object{"key": "value"}
# Latest active version
curl --request GET \
  --url https://operator.opus.com/workflow/{YOUR_WORKFLOW_ID} \
  --header 'x-service-key: {YOUR_SERVICE_KEY}'

# Pinned to a specific version number
curl --request GET \
  --url 'https://operator.opus.com/workflow/{YOUR_WORKFLOW_ID}?version=3' \
  --header 'x-service-key: {YOUR_SERVICE_KEY}'

# Pinned to a specific version UUID
curl --request GET \
  --url 'https://operator.opus.com/workflow/{YOUR_WORKFLOW_ID}?workflowVersionId={WORKFLOW_VERSION_ID}' \
  --header 'x-service-key: {YOUR_SERVICE_KEY}'
{
  "jobPayloadSchema": {
    "{VARIABLE_NAME_1}": {
      "id": "{INPUT_ID}",
      "variable_name": "{VARIABLE_NAME_1}",
      "display_name": "{DISPLAY_NAME}",
      "type": "str",
      "is_nullable": false
    },
    "{VARIABLE_NAME_2}": {
      "id": "{INPUT_ID}",
      "variable_name": "{VARIABLE_NAME_2}",
      "display_name": "{DISPLAY_NAME}",
      "type": "file",
      "is_nullable": false,
      "tags": [
        {
          "variable_name": "allowed_file_types",
          "value": ["JPEG", "PNG", "JPG", "PDF", "DOCX", "CSV", "XLSX"]
        }
      ]
    }
  }
}