# Get a workflow node type (/docs/api-reference/workflows/getWorkflowNodeType)

> The settings one node type reads, with their types, required flags and outputs. Call it before you add or edit a node, because its `fields` are the keys of the node's `config`. Use `detail=full` only when you need help text and examples.


> **Workflow builder.** Included from the Jump Starter plan. [See plans](https://omnidim.io/pricing).

**GET** `/workflow-node-types/{node_type}`

The settings one node type reads, with their types, required flags and outputs. Call it before you add or edit a node, because its `fields` are the keys of the node's `config`. Use `detail=full` only when you need help text and examples.

```yaml
operationId: getWorkflowNodeType
parameters:
  - in: path
    name: node_type
    required: true
    schema:
      type: string
    description: A node type from `listWorkflowNodeTypes`, such as `whatsapp`.
  - in: query
    name: detail
    schema:
      type: string
      enum:
        - minimal
        - full
      default: minimal
    description: '`full` adds descriptions, examples and `output_example`.'
responses:
  '200':
    description: The node type.
    content:
      application/json:
        schema:
          type: object
          properties:
            type:
              type: object
              description: One node type with the settings it reads.
              properties:
                type:
                  type: string
                label:
                  type: string
                category:
                  type: string
                kind:
                  type: string
                  enum:
                    - trigger
                    - action
                    - flow
                    - note
                description:
                  type: string
                  description: Only with `detail=full`.
                sends:
                  type: boolean
                fields:
                  type: object
                  description: The node's settings, by name. Put these under `config` in an op.
                  additionalProperties:
                    type: object
                    description: One setting of a node type.
                    properties:
                      type:
                        type: string
                        enum:
                          - text
                          - number
                          - boolean
                          - enum
                          - ref
                          - ref_list
                          - map
                          - list
                          - json
                      required:
                        type: boolean
                      required_if:
                        type: object
                        additionalProperties: true
                        description: The field is required only when another field has this value.
                      default:
                        description: The value the node uses when the field is missing.
                      options:
                        type: array
                        items: {}
                        description: For `enum`, the accepted values.
                      ref:
                        type: string
                        description: >-
                          For `ref`, what the id points at. Get the choices from
                          `listWorkflowFieldOptions`.
                      depends_on:
                        type: string
                        description: >-
                          For `ref`, the field whose value narrows the choices. Pass its value as
                          `depends`.
                      items:
                        type: object
                        additionalProperties: true
                        description: For `list`, the fields of each item.
                      templated:
                        type: boolean
                        description: '`{{ context.<node>.<field> }}` expressions are filled in at run time.'
                      secret:
                        type: boolean
                        description: Holds a credential. It reads back as `********`.
                      description:
                        type: string
                        description: Only with `detail=full`.
                      example:
                        description: Only with `detail=full`.
                outputs:
                  type: array
                  items:
                    type: string
                  description: The outputs an edge can start from. `default` is a plain edge.
                output_example:
                  type: object
                  additionalProperties: true
                  description: >-
                    Only with `detail=full`. What later nodes can read as `{{ context.<node
                    id>.<key> }}`.
  '400':
    description: >-
      A bad parameter or body. `code` says which, such as `invalid_json`, `invalid_parameter`,
      `missing_fields` or `no_options`.
    content:
      application/json:
        schema:
          type: object
          description: |
            The v1 error envelope. Some errors add keys: `errors` (validation
            issues), `op_index` and `hint` (a refused op), `revision` (the current
            revision after a conflict).
          properties:
            error:
              type: string
              description: Machine-readable error code, such as `revision_conflict`.
            error_description:
              type: string
              description: Human-readable explanation.
            code:
              type: string
              description: Stable, specific reason. Present on 400 errors and auth errors.
            request_id:
              type: string
              description: >-
                Correlates this response with the server log. Also sent as the `X-Request-Id`
                header.
            errors:
              type: array
              description: On `validation_failed`, the issues that blocked the request.
              items:
                type: object
                description: One problem found in a draft.
                properties:
                  code:
                    type: string
                    description: >
                      Stable issue code. `not_found`: an id is not in this workspace, pick one with

                      `listWorkflowFieldOptions`. `templated_ref`: an id field holds a `{{ }}`
                      template; ids

                      must be literal. Others include `missing_field`, `bad_option`, `bad_handle`,

                      `unreachable`, `trigger_count`, `unknown_type`, `unknown_reference` and
                      `malformed`.
                  message:
                    type: string
                  node:
                    type: string
                    nullable: true
                    description: Id of the node the issue is about, if any.
                  field:
                    type: string
                    nullable: true
                    description: Config field the issue is about, if any.
                  hint:
                    type: string
                    nullable: true
                    description: What to do to fix it.
            op_index:
              type: integer
              description: On `invalid_op`, the zero-based position of the op that failed.
            hint:
              type: string
              description: On `invalid_op`, what to do next.
            revision:
              type: string
              description: On `revision_conflict`, the current revision of the draft.
        example:
          error: invalid_request
          error_description: revision is required. Read the workflow to get it.
          code: missing_fields
          request_id: req_5d9a1f3e8b02
  '401':
    description: Missing or invalid API key.
    content:
      application/json:
        schema:
          type: object
          description: |
            The v1 error envelope. Some errors add keys: `errors` (validation
            issues), `op_index` and `hint` (a refused op), `revision` (the current
            revision after a conflict).
          properties:
            error:
              type: string
              description: Machine-readable error code, such as `revision_conflict`.
            error_description:
              type: string
              description: Human-readable explanation.
            code:
              type: string
              description: Stable, specific reason. Present on 400 errors and auth errors.
            request_id:
              type: string
              description: >-
                Correlates this response with the server log. Also sent as the `X-Request-Id`
                header.
            errors:
              type: array
              description: On `validation_failed`, the issues that blocked the request.
              items:
                type: object
                description: One problem found in a draft.
                properties:
                  code:
                    type: string
                    description: >
                      Stable issue code. `not_found`: an id is not in this workspace, pick one with

                      `listWorkflowFieldOptions`. `templated_ref`: an id field holds a `{{ }}`
                      template; ids

                      must be literal. Others include `missing_field`, `bad_option`, `bad_handle`,

                      `unreachable`, `trigger_count`, `unknown_type`, `unknown_reference` and
                      `malformed`.
                  message:
                    type: string
                  node:
                    type: string
                    nullable: true
                    description: Id of the node the issue is about, if any.
                  field:
                    type: string
                    nullable: true
                    description: Config field the issue is about, if any.
                  hint:
                    type: string
                    nullable: true
                    description: What to do to fix it.
            op_index:
              type: integer
              description: On `invalid_op`, the zero-based position of the op that failed.
            hint:
              type: string
              description: On `invalid_op`, what to do next.
            revision:
              type: string
              description: On `revision_conflict`, the current revision of the draft.
        example:
          error: unauthorized
          error_description: Missing or invalid API key
          code: invalid_api_key
          request_id: req_6e2b9d4f1a38
  '403':
    description: |
      The Workflow Builder is not enabled for this account
      (`feature_not_enabled`), or your API key's user cannot make this
      change (`permission_denied`). The Workflow Builder must be included in
      your plan.
    content:
      application/json:
        schema:
          type: object
          description: |
            The v1 error envelope. Some errors add keys: `errors` (validation
            issues), `op_index` and `hint` (a refused op), `revision` (the current
            revision after a conflict).
          properties:
            error:
              type: string
              description: Machine-readable error code, such as `revision_conflict`.
            error_description:
              type: string
              description: Human-readable explanation.
            code:
              type: string
              description: Stable, specific reason. Present on 400 errors and auth errors.
            request_id:
              type: string
              description: >-
                Correlates this response with the server log. Also sent as the `X-Request-Id`
                header.
            errors:
              type: array
              description: On `validation_failed`, the issues that blocked the request.
              items:
                type: object
                description: One problem found in a draft.
                properties:
                  code:
                    type: string
                    description: >
                      Stable issue code. `not_found`: an id is not in this workspace, pick one with

                      `listWorkflowFieldOptions`. `templated_ref`: an id field holds a `{{ }}`
                      template; ids

                      must be literal. Others include `missing_field`, `bad_option`, `bad_handle`,

                      `unreachable`, `trigger_count`, `unknown_type`, `unknown_reference` and
                      `malformed`.
                  message:
                    type: string
                  node:
                    type: string
                    nullable: true
                    description: Id of the node the issue is about, if any.
                  field:
                    type: string
                    nullable: true
                    description: Config field the issue is about, if any.
                  hint:
                    type: string
                    nullable: true
                    description: What to do to fix it.
            op_index:
              type: integer
              description: On `invalid_op`, the zero-based position of the op that failed.
            hint:
              type: string
              description: On `invalid_op`, what to do next.
            revision:
              type: string
              description: On `revision_conflict`, the current revision of the draft.
        example:
          error: forbidden
          error_description: You do not have permission to use Workflows.
          code: feature_not_enabled
          request_id: req_9f2c1a4b7d3e
  '404':
    description: No workflow, node type or run with that id in your account.
    content:
      application/json:
        schema:
          type: object
          description: |
            The v1 error envelope. Some errors add keys: `errors` (validation
            issues), `op_index` and `hint` (a refused op), `revision` (the current
            revision after a conflict).
          properties:
            error:
              type: string
              description: Machine-readable error code, such as `revision_conflict`.
            error_description:
              type: string
              description: Human-readable explanation.
            code:
              type: string
              description: Stable, specific reason. Present on 400 errors and auth errors.
            request_id:
              type: string
              description: >-
                Correlates this response with the server log. Also sent as the `X-Request-Id`
                header.
            errors:
              type: array
              description: On `validation_failed`, the issues that blocked the request.
              items:
                type: object
                description: One problem found in a draft.
                properties:
                  code:
                    type: string
                    description: >
                      Stable issue code. `not_found`: an id is not in this workspace, pick one with

                      `listWorkflowFieldOptions`. `templated_ref`: an id field holds a `{{ }}`
                      template; ids

                      must be literal. Others include `missing_field`, `bad_option`, `bad_handle`,

                      `unreachable`, `trigger_count`, `unknown_type`, `unknown_reference` and
                      `malformed`.
                  message:
                    type: string
                  node:
                    type: string
                    nullable: true
                    description: Id of the node the issue is about, if any.
                  field:
                    type: string
                    nullable: true
                    description: Config field the issue is about, if any.
                  hint:
                    type: string
                    nullable: true
                    description: What to do to fix it.
            op_index:
              type: integer
              description: On `invalid_op`, the zero-based position of the op that failed.
            hint:
              type: string
              description: On `invalid_op`, what to do next.
            revision:
              type: string
              description: On `revision_conflict`, the current revision of the draft.
        example:
          error: not_found
          error_description: No workflow with that id.
          request_id: req_2c8e7a1d9b40
```

**curl**

```bash
curl -X GET "https://backend.omnidim.io/api/v1/workflow-node-types/{node_type}" \
  -H "Authorization: Bearer $OMNIDIM_API_KEY"
```