Jira Workflows API

This resource represents workflows. Use it to: * Get workflows * Create workflows * Update workflows * Delete inactive workflows * Get workflow capabilities

Operations 16

POST /rest/api/3/workflow/history Read workflow version from history #
POST /rest/api/3/workflow/history/list List workflow history entries #
GET /rest/api/3/workflow/search Get workflows paginated #
DELETE /rest/api/3/workflow/{entityId} Delete inactive workflow #
GET /rest/api/3/workflow/{workflowId}/project/{projectId}/issueTypeUsages Get issue types in a project that are using a given workflow #
GET /rest/api/3/workflow/{workflowId}/projectUsages Get projects using a given workflow #
GET /rest/api/3/workflow/{workflowId}/workflowSchemes Get workflow schemes which are using a given workflow #
POST /rest/api/3/workflows Bulk get workflows #
GET /rest/api/3/workflows/capabilities Get available workflow capabilities #
POST /rest/api/3/workflows/create Bulk create workflows #
POST /rest/api/3/workflows/create/validation Validate create workflows #
GET /rest/api/3/workflows/defaultEditor Get the user's default workflow editor #
POST /rest/api/3/workflows/preview Preview workflow #
GET /rest/api/3/workflows/search Search workflows #
POST /rest/api/3/workflows/update Bulk update workflows #
POST /rest/api/3/workflows/update/validation Validate update workflows #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/jira-workflows-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

jira-workflows-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  contact:
    email: ecosystem@atlassian.com
  description: Jira Cloud platform REST API documentation
  license:
    name: Apache 2.0
    url: http://www.apache.org/licenses/LICENSE-2.0.html
  termsOfService: https://developer.atlassian.com/platform/marketplace/atlassian-developer-terms/
  title: Jira Cloud platform REST Workflows API
  version: 1001.0.0-SNAPSHOT-82b018affa468e58f284fbe4df33536469d757df
servers:
- url: https://your-domain.atlassian.net
tags:
- description: 'This resource represents workflows. Use it to:


    * Get workflows

    * Create workflows

    * Update workflows

    * Delete inactive workflows

    * Get workflow capabilities'
  name: Workflows
paths:
  /rest/api/3/workflow/history:
    post:
      deprecated: false
      description: 'Returns a workflow and related statuses for a specified workflow id and version number.


        **Note:** Stored workflow data expires after 60 days. Additionally, no data from before the 30th of October 2025 is available.


        **Permissions required:**


        * *Administer Jira* global permission to access all, including project-scoped, workflows

        * At least one of the *Administer projects* and *View (read-only) workflow* project permissions to access project-scoped workflows'
      operationId: readWorkflowFromHistory
      parameters: []
      requestBody:
        content:
          application/json:
            example:
              version: 4
              workflowId: c5ef565c-1b1e-427e-bc3b-e677b0dc027c
            schema:
              $ref: '#/components/schemas/WorkflowHistoryReadRequest'
        required: true
      responses:
        '200':
          content:
            application/json:
              example: '{"statuses":[{"description":"An example status description.","id":"10003","name":"To Do","scope":{"type":"GLOBAL"},"statusCategory":"To Do Category","statusReference":"10003"}],"workflows":[{"created":"2025-10-20 02:32:12.410331","description":"An example workflow description.","id":"c5ef565c-1b1e-427e-bc3b-e677b0dc027c","lastUpdateAuthorAAID":"123456789","name":"Example Workflow","scope":{"type":"GLOBAL"},"startPointLayout":{"x":20.0,"y":40.0},"statuses":[{"deprecated":false,"layout":{"x":10.0,"y":20.0},"properties":{},"statusReference":"10003"}],"transitions":[],"updated":"2025-11-21 03:20:39.15096","version":{"id":"93a7cb12-c503-442a-9e09-654eb7f4dfe2","versionNumber":4}}]}'
              schema:
                $ref: '#/components/schemas/WorkflowHistoryReadResponseDTO'
          description: Returned if the request is successful.
        '400':
          description: Returned if the request is not valid.
        '401':
          description: Returned if the authentication credentials are incorrect or missing, or the caller doesn't have permissions to perform the operation.
      security:
      - basicAuth: []
      - OAuth2:
        - manage:jira-configuration
      summary: Read workflow version from history
      tags:
      - Workflows
      x-atlassian-data-security-policy:
      - app-access-rule-exempt: true
      x-atlassian-oauth2-scopes:
      - scheme: OAuth2
        scopes:
        - manage:jira-configuration
        state: Current
      - scheme: OAuth2
        scopes:
        - read:workflow:jira
        state: Beta
      x-atlassian-connect-scope: ADMIN
  /rest/api/3/workflow/history/list:
    post:
      deprecated: false
      description: 'Returns a list of workflow history entries for a specified workflow id.


        **Note:** Stored workflow data expires after 60 days. Additionally, no data from before the 30th of October 2025 is available.


        **Permissions required:**


        * *Administer Jira* global permission to access all, including project-scoped, workflows

        * At least one of the *Administer projects* and *View (read-only) workflow* project permissions to access project-scoped workflows'
      operationId: listWorkflowHistory
      parameters:
      - description: "Use [expand](#expansion) to include additional information in the response. This parameter accepts a comma-separated list. Expand options include:\n\n *  `includeIntermediateWorkflows` Includes intermediate workflow versions that are sometimes created during workflow updates or migrations. By default, these are omitted from the response."
        in: query
        name: expand
        schema:
          type: string
      requestBody:
        content:
          application/json:
            example:
              workflowId: c5ef565c-1b1e-427e-bc3b-e677b0dc027c
            schema:
              $ref: '#/components/schemas/WorkflowHistoryListRequest'
        required: true
      responses:
        '200':
          content:
            application/json:
              example: '{"entries":[{"isIntermediate":false,"workflowId":"c5ef565c-1b1e-427e-bc3b-e677b0dc027c","workflowVersion":4,"writtenAt":"2025-11-20 02:21:19.598"},{"isIntermediate":true,"workflowId":"c5ef565c-1b1e-427e-bc3b-e677b0dc027c","workflowVersion":3,"writtenAt":"2025-11-19 02:23:17.465"}]}'
              schema:
                $ref: '#/components/schemas/WorkflowHistoryListResponseDTO'
          description: Returned if the request is successful.
        '400':
          description: Returned if the request is not valid.
        '401':
          description: Returned if the authentication credentials are incorrect or missing, or the caller doesn't have permissions to perform the operation.
      security:
      - basicAuth: []
      - OAuth2:
        - manage:jira-configuration
      summary: List workflow history entries
      tags:
      - Workflows
      x-atlassian-data-security-policy:
      - app-access-rule-exempt: true
      x-atlassian-oauth2-scopes:
      - scheme: OAuth2
        scopes:
        - manage:jira-configuration
        state: Current
      - scheme: OAuth2
        scopes:
        - read:workflow:jira
        state: Beta
      x-atlassian-connect-scope: ADMIN
  /rest/api/3/workflow/search:
    get:
      deprecated: true
      description: 'This will be removed on June 1, 2026; use Search workflows instead.


        Returns a paginated list of published classic workflows. When workflow names are specified, details of those workflows are returned. Otherwise, all published classic workflows are returned.


        This operation does not return next-gen workflows.


        **Permissions required:** *Administer Jira* global permission.'
      operationId: getWorkflowsPaginated
      parameters:
      - description: The index of the first item to return in a page of results (page offset).
        in: query
        name: startAt
        schema:
          default: 0
          format: int64
          type: integer
      - description: The maximum number of items to return per page.
        in: query
        name: maxResults
        schema:
          default: 50
          format: int32
          type: integer
      - description: The name of a workflow to return. To include multiple workflows, provide an ampersand-separated list. For example, `workflowName=name1&workflowName=name2`.
        in: query
        name: workflowName
        schema:
          items:
            default: ''
            type: string
          type: array
          uniqueItems: true
      - description: "Use [expand](#expansion) to include additional information in the response. This parameter accepts a comma-separated list. Expand options include:\n\n *  `transitions` For each workflow, returns information about the transitions inside the workflow.\n *  `transitions.rules` For each workflow transition, returns information about its rules. Transitions are included automatically if this expand is requested.\n *  `transitions.properties` For each workflow transition, returns information about its properties. Transitions are included automatically if this expand is requested.\n *  `statuses` For each workflow, returns information about the statuses inside the workflow.\n *  `statuses.properties` For each workflow status, returns information about its properties. Statuses are included automatically if this expand is requested.\n *  `default` For each workflow, returns information about whether this is the default workflow.\n *  `schemes` For each workflow, returns information about the workflow schemes the workflow is assigned to.\n *  `projects` For each workflow, returns information about the projects the workflow is assigned to, through workflow schemes.\n *  `hasDraftWorkflow` For each workflow, returns information about whether the workflow has a draft version.\n *  `operations` For each workflow, returns information about the actions that can be undertaken on the workflow."
        in: query
        name: expand
        schema:
          type: string
      - description: String used to perform a case-insensitive partial match with workflow name.
        in: query
        name: queryString
        schema:
          type: string
      - description: "[Order](#ordering) the results by a field:\n\n *  `name` Sorts by workflow name.\n *  `created` Sorts by create time.\n *  `updated` Sorts by update time."
        in: query
        name: orderBy
        schema:
          enum:
          - name
          - -name
          - +name
          - created
          - -created
          - +created
          - updated
          - +updated
          - -updated
          type: string
      - description: Filters active and inactive workflows.
        in: query
        name: isActive
        schema:
          type: boolean
      responses:
        '200':
          content:
            application/json:
              example: '{"isLast":false,"maxResults":1,"startAt":0,"total":5,"values":[{"id":{"name":"SCRUM Workflow","entityId":"5ed312c5-f7a6-4a78-a1f6-8ff7f307d063"},"description":"A workflow used for Software projects in the SCRUM methodology","transitions":[{"id":"5","name":"In Progress","description":"Start working on the issue.","from":["10","13"],"to":"14","type":"directed","screen":{"id":"10000","name":"Issue screen"},"rules":{"conditionsTree":{"nodeType":"compound","operator":"AND","conditions":[{"nodeType":"simple","type":"PermissionCondition","configuration":{"permissionKey":"WORK_ON_ISSUES"}},{"nodeType":"simple","type":"PermissionCondition","configuration":{"permissionKey":"RESOLVE_ISSUES"}}]},"validators":[{"type":"FieldRequiredValidator","configuration":{"errorMessage":"A custom error message","fields":["description","assignee"],"ignoreContext":true}}],"postFunctions":[{"type":"UpdateIssueStatusFunction"},{"type":"GenerateChangeHistoryFunction"},{"type":"FireIssueEventFunction"}]},"properties":{"jira.fieldscreen.id":1}}],"statuses":[{"id":"3","name":"In Progress","properties":{"issueEditable":false,"jira.issue.editable":"false"}}],"isDefault":false,"schemes":[{"id":"10001","name":"Test Workflow Scheme"}],"projects":[{"avatarUrls":{"16x16":"secure/projectavatar?size=xsmall&pid=10000","24x24":"secure/projectavatar?size=small&pid=10000","32x32":"secure/projectavatar?size=medium&pid=10000","48x48":"secure/projectavatar?size=large&pid=10000"},"id":"10000","key":"EX","name":"Example","projectCategory":{"description":"Project category description","id":"10000","name":"A project category"},"projectTypeKey":"ProjectTypeKey{key=''software''}","self":"project/EX","simplified":false}],"hasDraftWorkflow":true,"operations":{"canEdit":true,"canDelete":false},"created":"2018-12-10T16:30:15.000+0000","updated":"2018-12-11T11:45:13.000+0000"}]}'
              schema:
                $ref: '#/components/schemas/PageBeanWorkflow'
          description: Returned if the request is successful.
        '401':
          description: Returned if the authentication credentials are incorrect or missing.
        '403':
          content:
            application/json:
              example: '{"errorMessages":["Only Jira administrators can access workflows."],"errors":{}}'
              schema:
                $ref: '#/components/schemas/ErrorCollection'
          description: Returned if the user does not have the necessary permission.
      security:
      - basicAuth: []
      - OAuth2:
        - manage:jira-project
      summary: Get workflows paginated
      tags:
      - Workflows
      x-atlassian-data-security-policy:
      - app-access-rule-exempt: true
      x-atlassian-oauth2-scopes:
      - scheme: OAuth2
        scopes:
        - manage:jira-project
        state: Current
      - scheme: OAuth2
        scopes:
        - read:group:jira
        - read:issue-security-level:jira
        - read:project-role:jira
        - read:screen:jira
        - read:status:jira
        - read:user:jira
        - read:workflow:jira
        - read:webhook:jira
        - read:avatar:jira
        - read:project-category:jira
        - read:project:jira
        state: Beta
      x-atlassian-connect-scope: ADMIN
  /rest/api/3/workflow/{entityId}:
    delete:
      deprecated: false
      description: 'Deletes a workflow.


        The workflow cannot be deleted if it is:


        * an active workflow.

        * a system workflow.

        * associated with any workflow scheme.

        * associated with any draft workflow scheme.


        **Permissions required:** *Administer Jira* global permission.'
      operationId: deleteInactiveWorkflow
      parameters:
      - description: The entity ID of the workflow.
        in: path
        name: entityId
        required: true
        schema:
          type: string
      responses:
        '204':
          description: Returned if the workflow is deleted.
        '400':
          content:
            application/json:
              example: '{"errorMessages":["Cannot delete an active workflow."],"errors":{}}'
          description: Returned if the request is not valid.
        '401':
          description: Returned if the authentication credentials are incorrect or missing.
        '403':
          content:
            application/json:
              example: '{"errorMessages":["Only Jira administrators can access the workflow configuration."],"errors":{}}'
          description: Returned if the user does not have the required permissions.
        '404':
          content:
            application/json:
              example: '{"errorMessages":["The workflow was not found."],"errors":{}}'
          description: Returned if the workflow is not found.
      security:
      - basicAuth: []
      - OAuth2:
        - manage:jira-configuration
      summary: Delete inactive workflow
      tags:
      - Workflows
      x-atlassian-data-security-policy:
      - app-access-rule-exempt: true
      x-atlassian-oauth2-scopes:
      - scheme: OAuth2
        scopes:
        - manage:jira-configuration
        state: Current
      - scheme: OAuth2
        scopes:
        - delete:workflow:jira
        state: Beta
      x-atlassian-connect-scope: ADMIN
  /rest/api/3/workflow/{workflowId}/project/{projectId}/issueTypeUsages:
    get:
      deprecated: false
      description: Returns a page of issue types using a given workflow within a project.
      operationId: getWorkflowProjectIssueTypeUsages
      parameters:
      - description: The workflow ID
        in: path
        name: workflowId
        required: true
        schema:
          type: string
      - description: The project ID
        in: path
        name: projectId
        required: true
        schema:
          format: int64
          type: integer
      - description: The cursor for pagination
        in: query
        name: nextPageToken
        schema:
          type: string
      - description: The maximum number of results to return. Must be an integer between 1 and 200.
        in: query
        name: maxResults
        schema:
          default: 50
          format: int32
          type: integer
      responses:
        '200':
          content:
            application/json:
              example: '{"issueTypes":{"nextPageToken":"eyJvIjoyfQ==","values":[{"id":"1000"}]},"projectId":"6e2bde9f-f213-4920-95cd-28e015af59a1","workflowId":"fb759d53-a3a4-45ff-9de4-547c4b638dde"}'
              schema:
                $ref: '#/components/schemas/WorkflowProjectIssueTypeUsageDTO'
          description: Returned if the request is successful.
        '400':
          content:
            application/json:
              example: '{"errorMessages":["Invalid format of nextPageToken"],"errors":{}}'
          description: Returned if the request is not valid.
        '401':
          description: Returned if the authentication credentials are incorrect or missing, or the caller doesn't have permissions to perform the operation.
        '404':
          description: Returned if the workflow with the given ID does not exist.
      security:
      - basicAuth: []
      - OAuth2:
        - manage:jira-configuration
      summary: Get issue types in a project that are using a given workflow
      tags:
      - Workflows
      x-atlassian-data-security-policy:
      - app-access-rule-exempt: true
      x-atlassian-oauth2-scopes:
      - scheme: OAuth2
        scopes:
        - manage:jira-configuration
        state: Current
      - scheme: OAuth2
        scopes:
        - read:project:jira
        - read:workflow:jira
        - read:issue-type:jira
        state: Beta
      x-atlassian-connect-scope: ADMIN
  /rest/api/3/workflow/{workflowId}/projectUsages:
    get:
      deprecated: false
      description: Returns a page of projects using a given workflow.
      operationId: getProjectUsagesForWorkflow
      parameters:
      - description: The workflow ID
        in: path
        name: workflowId
        required: true
        schema:
          type: string
      - description: The cursor for pagination
        in: query
        name: nextPageToken
        schema:
          type: string
      - description: The maximum number of results to return. Must be an integer between 1 and 200.
        in: query
        name: maxResults
        schema:
          default: 50
          format: int32
          type: integer
      responses:
        '200':
          content:
            application/json:
              example: '{"projects":{"nextPageToken":"eyJvIjoyfQ==","values":[{"id":"1003"}]},"workflowId":"fb759d53-a3a4-45ff-9de4-547c4b638dde"}'
              schema:
                $ref: '#/components/schemas/WorkflowProjectUsageDTO'
          description: Returned if the request is successful.
        '400':
          content:
            application/json:
              example: '{"errorMessages":["Invalid format of nextPageToken"],"errors":{}}'
          description: Returned if the request is not valid.
        '401':
          description: Returned if the authentication credentials are incorrect or missing, or the caller doesn't have permissions to perform the operation.
        '404':
          description: Returned if the workflow with the given ID does not exist.
      security:
      - basicAuth: []
      - OAuth2:
        - manage:jira-configuration
      summary: Get projects using a given workflow
      tags:
      - Workflows
      x-atlassian-data-security-policy:
      - app-access-rule-exempt: true
      x-atlassian-oauth2-scopes:
      - scheme: OAuth2
        scopes:
        - manage:jira-configuration
        state: Current
      - scheme: OAuth2
        scopes:
        - read:project:jira
        - read:workflow:jira
        state: Beta
      x-atlassian-connect-scope: ADMIN
  /rest/api/3/workflow/{workflowId}/workflowSchemes:
    get:
      deprecated: false
      description: Returns a page of workflow schemes using a given workflow.
      operationId: getWorkflowSchemeUsagesForWorkflow
      parameters:
      - description: The workflow ID
        in: path
        name: workflowId
        required: true
        schema:
          type: string
      - description: The cursor for pagination
        in: query
        name: nextPageToken
        schema:
          type: string
      - description: The maximum number of results to return. Must be an integer between 1 and 200.
        in: query
        name: maxResults
        schema:
          default: 50
          format: int32
          type: integer
      responses:
        '200':
          content:
            application/json:
              example: '{"workflowId":"fb759d53-a3a4-45ff-9de4-547c4b638dde","workflowSchemes":{"nextPageToken":"eyJvIjoyfQ==","values":[{"id":"1000"}]}}'
              schema:
                $ref: '#/components/schemas/WorkflowSchemeUsageDTO'
          description: Returned if the request is successful.
        '400':
          content:
            application/json:
              example: '{"errorMessages":["Invalid format of nextPageToken"],"errors":{}}'
          description: Returned if the request is not valid.
        '401':
          description: Returned if the authentication credentials are incorrect or missing, or the caller doesn't have permissions to perform the operation.
        '404':
          description: Returned if the workflow with the given ID does not exist.
      security:
      - basicAuth: []
      - OAuth2:
        - manage:jira-configuration
      summary: Get workflow schemes which are using a given workflow
      tags:
      - Workflows
      x-atlassian-data-security-policy:
      - app-access-rule-exempt: true
      x-atlassian-oauth2-scopes:
      - scheme: OAuth2
        scopes:
        - manage:jira-configuration
        state: Current
      - scheme: OAuth2
        scopes:
        - read:workflow-scheme:jira
        - read:workflow:jira
        state: Beta
      x-atlassian-connect-scope: ADMIN
  /rest/api/3/workflows:
    post:
      deprecated: false
      description: 'Returns a list of workflows and related statuses by providing workflow names, workflow IDs, or project and issue types.


        **Permissions required:**


        * *Administer Jira* global permission to access all, including project-scoped, workflows

        * At least one of the *Administer projects* and *View (read-only) workflow* project permissions to access project-scoped workflows'
      operationId: readWorkflows
      parameters: []
      requestBody:
        content:
          application/json:
            example:
              projectAndIssueTypes: []
              workflowIds: []
              workflowNames:
              - Workflow 1
              - Workflow 2
            schema:
              $ref: '#/components/schemas/WorkflowReadRequest'
        required: true
      responses:
        '200':
          content:
            application/json:
              example: '{"statuses":[{"description":"","id":"10003","name":"Done","scope":{"type":"GLOBAL"},"statusCategory":"DONE","statusReference":"10003"},{"description":"","id":"10001","name":"To Do","scope":{"type":"GLOBAL"},"statusCategory":"TODO","statusReference":"10001"},{"description":"","id":"10002","name":"In Progress","scope":{"type":"GLOBAL"},"statusCategory":"IN_PROGRESS","statusReference":"10002"}],"workflows":[{"description":"","id":"b9ff2384-d3b6-4d4e-9509-3ee19f607168","isEditable":true,"name":"Workflow 1","scope":{"type":"GLOBAL"},"startPointLayout":{"x":-100.00030899047852,"y":-153.00020599365234},"statuses":[{"deprecated":false,"layout":{"x":317.0000915527344,"y":-16.0},"properties":{},"statusReference":"10002"},{"deprecated":false,"layout":{"x":508.000244140625,"y":-16.0},"properties":{},"statusReference":"10003"},{"deprecated":false,"layout":{"x":114.99993896484375,"y":-16.0},"properties":{},"statusReference":"10001"}],"transitions":[{"actions":[],"description":"","id":"11","links":[],"name":"To Do","properties":{},"toStatusReference":"10001","triggers":[],"type":"GLOBAL","validators":[]},{"actions":[],"description":"","id":"21","links":[],"name":"In Progress","properties":{},"toStatusReference":"10002","triggers":[],"type":"GLOBAL","validators":[]},{"actions":[],"description":"","id":"41","links":[{"fromPort":0,"fromStatusReference":"10001","toPort":1}],"name":"Start work","properties":{},"toStatusReference":"10002","triggers":[],"type":"DIRECTED","validators":[]},{"actions":[],"description":"","id":"1","links":[],"name":"Create","properties":{},"toStatusReference":"10001","triggers":[],"type":"INITIAL","validators":[]},{"actions":[],"description":"","id":"31","links":[],"name":"Done","properties":{},"toStatusReference":"10003","triggers":[],"type":"GLOBAL","validators":[]}],"version":{"id":"f010ac1b-3dd3-43a3-aa66-0ee8a447f76e","versionNumber":0}}]}'
              schema:
                $ref: '#/components/schemas/WorkflowReadResponse'
          description: Returned if the request is successful.
        '400':
          description: Returned if the request is not valid.
        '401':
          description: Returned if the authentication credentials are incorrect or missing, or the caller doesn't have permissions to perform the operation.
      security:
      - basicAuth: []
      - OAuth2:
        - manage:jira-configuration
      summary: Bulk get workflows
      tags:
      - Workflows
      x-atlassian-data-security-policy:
      - app-access-rule-exempt: true
      x-atlassian-oauth2-scopes:
      - scheme: OAuth2
        scopes:
        - manage:jira-configuration
        state: Current
      - scheme: OAuth2
        scopes:
        - read:workflow:jira
        state: Beta
      x-atlassian-connect-scope: INACCESSIBLE
  /rest/api/3/workflows/capabilities:
    get:
      deprecated: false
      description: Get the list of workflow capabilities for a specific workflow using either the workflow ID, or the project and issue type ID pair.
      operationId: workflowCapabilities
      parameters:
      - in: query
        name: workflowId
        schema:
          type: string
      - in: query
        name: projectId
        schema:
          type: string
      - in: query
        name: issueTypeId
        schema:
          type: string
      responses:
        '200':
          content:
            application/json:
              example: '{"connectRules":[{"addonKey":"com.atlassian.jira.refapp","createUrl":"/validators/jira-expression/create?id={validator.id}","description":"Validates if the given Jira expression is true.","editUrl":"/validators/jira-expression/edit?id={validator.id}","moduleKey":"jiraExpressionValidator","name":"Jira expression validator (by APPNAME)","ruleKey":"connect:expression-validator","ruleType":"Validator","viewUrl":"/validators/jira-expression/view?id={validator.id}"}],"editorScope":"GLOBAL","forgeRules":[{"description":"A Jira workflow validator example.","id":"ari:cloud:ecosystem::extension/9df6d15f-1bbe-443e-be08-150309e8dbb0/f6a3bed3-737f-4e7a-8942-130df302b749/static/workflow-validator-example-workflow-validator","name":"workflow-validator","ruleKey":"forge:expression-validator","ruleType":"Validator"}],"projectTypes":["software","business"],"systemRules":[{"description":"Automatically assign a request to someone after moving the request using a particular transition.","incompatibleRuleKeys":[],"isAvailableForInitialTransition":true,"isVisible":true,"name":"Assign a request","ruleKey":"system:change-assignee","ruleType":"Function"}],"triggerRules":[{"availableTypes":[{"description":"Automatically transitions the issue when a related branch is created in a connected repository","name":"Branch created","type":"com.atlassian.jira.plugins.jira-development-integration-plugin:branch-created-trigger"}],"ruleKey":"system:development-triggers"}]}'
              schema:
                $ref: '#/components/schemas/WorkflowCapabilities'
          description: Returned if the request is successful.
        '400':
          description: Returned if the request is not valid.
        '401':
          description: Returned if the authentication credentials are incorrect or missing, or the caller doesn't have permissions to perform the operation.
      security:
      - basicAuth: []
      - OAuth2:
        - manage:jira-configuration
      summary: Get available workflow capabilities
      tags:
      - Workflows
      x-atlassian-data-security-policy:
      - app-access-rule-exempt: true
      x-atlassian-oauth2-scopes:
      - scheme: OAuth2
        scopes:
        - manage:jira-configuration
        state: Current
      - scheme: OAuth2
        scopes:
        - read:workflow:jira
        state: Beta
      x-atlassian-connect-scope: INACCESSIBLE
  /rest/api/3/workflows/create:
    post:
      deprecated: false
      description: 'Create workflows and related statuses.


        **Permissions required:**


        * *Administer Jira* project permission to create all, including global-scoped, workflows

        * *Administer projects* project permissions to create project-scoped workflows'
      operationId: createWorkflows
      parameters: []
      requestBody:
        content:
          application/json:
            example:
              scope:
                type: GLOBAL
              statuses:
              - description: ''
                name: To Do
                statusCategory: TODO
                statusReference: f0b24de5-25e7-4fab-ab94-63d81db6c0c0
              - description: ''
                name: In Progress
                statusCategory: IN_PROGRESS
                statusReference: c7a35bf0-c127-4aa6-869f-4033730c61d8
              - description: ''
                name: Done
                statusCategory: DONE
                statusReference: 6b3fc04d-3316-46c5-a257-65751aeb8849
              workflows:
              - description: ''
                name: Software workflow 1
                startPointLayout:
                  x: -100.00030899047852
                  y: -153.00020599365234
                statuses:
                - layout:
                    x: 114.99993896484375
                    y: -16
                  properties: {}
                  statusReference: f0b24de5-25e7-4fab-ab94-63d81db6c0c0
                - layout:
                    x: 317.0000915527344
                    y: -16
                  properties: {}
                  statusReference: c7a35bf0-c127-4aa6-869f-4033730c61d8
                - layout:
                    x: 508.000244140625
                    y: -16
                  properties: {}
                  statusReference: 6b3fc04d-3316-46c5-a257-65751aeb8849
                transitions:
                - actions: []
                  description: ''
                  id: '1'
                  links: []
                  name: Create
                  properties: {}
                  toStatusReference: f0b24de5-25e7-4fab-ab94-63d81db6c0c0
                  triggers: []
                  type: INITIAL
                  validators: []
                - actions: []
                  description: ''
                  id: '11'
                  links: []
                  name: To Do
                  properties: {}
                  toStatusReference: f0b24de5-25e7-4fab-ab94-63d81db6c0c0
                  triggers: []
                  type: GLOBAL
                  validators: []
                - actions: []
                  description: ''
                  id: '21'
                  links: []
                  name: In Progress
                  properties: {}
                  toStatusReference: c7a35bf0-c127-4aa6-869f-4033730c61d8
                  triggers: []
                  type: GLOBAL
                  validators: []
                - actions: []
                  description: Move a work item from in progress to done
                  id: '31'
                  links:
                  - fromPort: 0
                    fromStatusReference: c7a35bf0-c127-4aa6-869f-4033730c61d8
                    toPort: 1
                  name: Done
                  properties: {}
                  toStatusReference: 6b3fc04d-3316-46c5-a257-65751aeb8849
                  triggers: []
                  type: DIRECTED
                  validators: []
            schema:
              $ref: '#/components/schemas/WorkflowCreateRequest'
        required: true
      responses:
        '200':
          content:
            application/json:
              example: '{"statuses":[{"description":"","id":"10003","name":"Done","scope":{"type":"GLOBAL"},"statusCategory":"DONE","statusReference":"10003"},{"description":"","id":"10001","name":"To Do","scope":{"type":"GLOBAL"},"statusCategory":"TODO","statusReference":"10001"},{"description":"","id":"10002","name":"In Progress","scope":{"type":"GLOBAL"},"statusCategory":"IN_PROGRESS","statusReference":"10002"}],"workflows":[{"description":"","id":"b9ff2384-d3b6-4d4e-9509-3ee19f607168","isEditable":true,"name":"Software workflow 1","scope":{"type":"GLOBAL"},"startPointLayout":{"x":-100.00030899047852,"y":-153.000205993652

# --- truncated at 32 KB (151 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/jira/refs/heads/main/openapi/jira-workflows-api-openapi.yml