# Get Workflow

GET /api/v2/projects/{projectId}/workflows/{workflowId}

Fetches a single workflow by ID. Returns 404 if no workflow matches.

## Request

- projectId: string, path, required — ID of the project that owns the workflow.
- workflowId: string, path, required — ID of the workflow to fetch.

## Response

- 200: Successful response
  - contactsFilterGroups: object[], required
    - filters: object[], required — Attribute filters combined with groupType.
    - groupType: AND | OR | NOT, required — How filters in this group are combined.
    - oneDayEventFilters: object[] — Event filters evaluated over the last 24 hours only.
    - requireSubscribed: boolean — When true, the group is ANDed with `$subscribed == true`. Set by email sending, not the filter UI.
  - createdAt: string, required
  - frequency: ONCE | EVERY, required, default ONCE
  - id: string, required
  - name: string, required
  - projectId: string, required
  - status: INACTIVE | PAUSED | ACTIVE, required, default INACTIVE
  - triggerEvent: string, required
  - updatedAt: string, required
  - maxRuns: integer
  - minDelayAmount: integer, default 5
  - minDelayUnit: MINUTES | HOURS | DAYS, default MINUTES
- 400: Invalid input data
- 401: Authorization not provided
- 403: Insufficient access
- 404: Not found
- 500: Internal server error
