---
title: "Get approval workflow"
method: GET
path: "/v1/approvals/workflows/{id}"
tags: ["Approval workflows"]
---

# Get approval workflow

`GET /v1/approvals/workflows/{id}`

Retrieve a single approval workflow.

## Path parameters

- `id` string, required

## Response `200`

- ApprovalWorkflow
  - `id` string, required — Approval workflow ID.
  - `name` string, required — Approval workflow name.
  - `description` string, nullable, required — Approval workflow description.
  - `applicable_flows` string[], required — Quote or subscription flows where the workflow applies.
  - `is_active` boolean, required — Whether the workflow is active.
  - `priority` integer, required — Workflow priority. Lower values are evaluated first when multiple workflows match.
  - `rules` ApprovalWorkflowRule[], required — Rules that determine when the workflow applies.
    - `id` string, required — Approval workflow rule ID.
    - `operator` 'and' | 'or', required — Logical operator used to combine the rule conditions.
    - `conditions` ApprovalCondition[], required — Conditions that must match for the rule to apply.
      - `field` string, required — Field evaluated by the approval condition. Use `has_attachment` with `eq` false when no quote attachment should trigger approval.
      - `operator` 'eq' | 'neq' | 'gt' | 'gte' | 'lt' | 'lte' | 'in' | 'not_in' | 'contains' | 'not_contains', required — Comparison operator used by the approval condition.
      - `value` union, required — Expected value for the approval condition.
        - string
        - number
        - boolean
        - string[]
        - number[]
        - object
          - `period` 'weeks' | 'months' | 'years', required — Product interval period.
          - `count` integer, required — Number of periods in the product interval.
        - object
          - `period` 'once', required — Product interval period.
          - `count` unknown, required
  - `step_execution` 'sequential' | 'parallel', required — How workflow steps execute. Sequential steps run by order; parallel steps run together.
  - `email_notification_enabled` boolean, required — Whether approvers receive email notifications for this workflow.
  - `steps` ApprovalWorkflowStep[], required — Approval steps required by the workflow.
    - `id` string, required — Approval workflow step ID.
    - `name` string, required — Approval workflow step name.
    - `order` integer, required — Step order. Orders must be sequential starting from 1.
    - `approver_requirement` 'any' | 'all', required — Whether any approver or all approvers must approve the step.
    - `approver_role_ids` string[], required — User role IDs that can approve the step.
    - `approver_user_ids` string[], required — User IDs that can approve the step.
  - `version` integer, required — Workflow version number.
  - `original_workflow_id` string, nullable, required — Original workflow ID when this workflow is an archived version.
  - `created_at` string, date-time, required — Approval workflow creation date. UTC date time string in the [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format.

## Other responses

- `404` — Approval workflow not found.

---

[API](https://skmtc.net/hyperline/apis/hyperline-api.md) · [All operations](https://skmtc.net/hyperline/apis/hyperline-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/hyperline/hyperline-api/versions/19fa5f22e39b/schema)
