Welcome to the Smart Checklist for Jira Server/Data Center platform REST API reference. You can use this REST API to develop integrations between Smart Checklist, Jira, and other 3rd party applications. This page documents the REST resources available in Smart Checklist for the Jira Server/Data Center platform, along with expected HTTP response codes and sample requests.

Looking for simpler integration using Jira REST API and/or 3rd party add-ons? Follow the links below:

Authentication

Use the same authentication that you use to authenticate to Jira applications on your instances.

Resources

/rest/railsware/1.0/checklist

Get checklists GET /rest/railsware/1.0/checklist

Retrieve an existing list of checklists for the given issue key

Query parameters

  • issueKey: string (required)

Responses

  • application/json Returns a list of all checklists associated with the provided issue key in JSON format
    Example

{
    "checklists": [
        {
            "checklistId": 5,
            "issueId": 10115,
            "items": [
                {
                    "id": 50829,
                    "rank": 0,
                    "label": "Release instructions",
                    "type": "heading",
                    "level": 1,
                    "quotes": []
                },
                {
                    "id": 50830,
                    "rank": 1,
                    "label": "Preparation",
                    "type": "heading",
                    "level": 2,
                    "quotes": []
                },
                {
                    "id": 50831,
                    "rank": 2,
                    "label": "Add feature permissions",
                    "type": "item",
                    "status": {
                        "id": 4,
                        "rank": 2,
                        "name": "DONE",
                        "color": "GREEN",
                        "default": true,
                        "statusState": "CHECKED"
                    },
                    "quotes": []
                },
                {
                    "id": 50832,
                    "rank": 3,
                    "label": "Send `internal` announcement with presentation",
                    "type": "item",
                    "status": {
                        "id": 4,
                        "rank": 2,
                        "name": "DONE",
                        "color": "GREEN",
                        "default": true,
                        "statusState": "CHECKED"
                    },
                    "quotes": []
                },
                {
                    "id": 50833,
                    "rank": 4,
                    "label": "Prepare branch",
                    "type": "item",
                    "status": {
                        "id": 2,
                        "rank": 6,
                        "name": "IN PROGRESS",
                        "color": "BLUE",
                        "default": true,
                        "statusState": "UNCHECKED"
                    },
                    "quotes": [
                        {
                            "id": 1439,
                            "rank": 0,
                            "text": "* merge feature to master",
                            "label": "* merge feature to master"
                        },
                        {
                            "id": 1440,
                            "rank": 1,
                            "text": "* set tag",
                            "label": "* set tag"
                        },
                        {
                            "id": 1441,
                            "rank": 2,
                            "text": "* update changelog.com",
                            "label": "* update changelog.com"
                        }
                    ]
                }
            ],
            "mentionedUsers": {}
        }
    ]
}

  • Returned if the issue key is not provided

  • Returned if the requested issue is not found

Update checklist PUT /rest/railsware/1.0/checklist/{checklistId}

Updates checklist items

Path parameters

  • checklistId: number (required)

Body parameters (application/json) - list of JSON objects:

  • id: number

  • rank: number

  • label: string

  • status: object

    • id: number (required) - new status id

Example

Changes the item 50859 position and changes label + status of item 50860:

[
    {
        "id": 50859,
        "rank": 3
    },
    {
        "id": 50860,
        "label": "Add feature permissions",
        "status": {
            "id": 2
        }
    }
]

Responses

  • Returns a list of all checklists associated with the same issue in JSON format

  • Returned if the request body is invalid

  • Returned if the requested checklist is not found

Delete checklist items DELETE /rest/railsware/1.0/checklist/{checklistId}

Deletes all checklist items for the given checklist

Path parameters

  • checklistId: number (required)

Responses

  • application/json returns empty checklist in JSON format

  • Returned if the requested checklist is not found

Create/Update checklist from string PUT /rest/railsware/1.0/checklist/{checklistId}/item

Creates or updates checklist items from string

Path parameters

  • checklistId: number (required)

Body parameters (application/json)

  • stringValue: string (required)

  • isReplace: boolean - replaces all checklist items by the provided string value if true, appends items to the end of the list otherwise

Example

{
    "isReplace": true,
    "stringValue": "# Release instructions2\n## Preparation\n+ Add feature permissions\n+ Send `internal` announcement with presentation\n~ Prepare branch\n> * merge feature to master\n> * set tag\n> * update changelog.com"
}

Responses

  • Returns a list of all checklists associated with the same issue in JSON format

/rest/railsware/1.0/template/

Get templates list GET /rest/railsware/1.0/template/global

Returns a paginated list of templates available in Jira

Query parameters

  • page: number (default 1)

  • reversed: boolean - specifies ASC or DESC order of templates

  • query: string - specifies the filter by template name

  • orderBy: string - specifies the order column of templates. Valid values are name, enabled, issueTypes and projects

Responses

  • application/json returns a list of templates in JSON format

    Example:

{
   "totalPages": 1,
   "templates": [
       {
           "id": 2,
           "name": "For manual",
           "value": "- uno\n- duo\n- tres\n",
           "enabled": true,
           "defaultContext": {
               "type": 0,
               "values": []
           },
           "scope": {
               "type": 1,
               "values": [
                   {
                       "value": "10000",
                       "label": "Test 1",
                       "iconUrl": "http://localhost:2990/jira/secure/projectavatar?size=xsmall&avatarId=10324",
                       "link": ""
                   },
                   {
                       "value": "10001",
                       "label": "Second Project",
                       "iconUrl": "http://localhost:2990/jira/secure/projectavatar?size=xsmall&avatarId=10324",
                       "link": ""
                   }
               ]
           },
           "conditions": [],
           "trigger": {
               "type": 3,
               "preventDuplicates": false
           },
           "usageCount": 0,
           "modificationType": "APPEND"
       },
       {
           "id": 3,
           "name": "Release",
           "value": "# Release instuctions\n## Preparation\n+ Add feature permissions\n+ Send `internal` announcement\n~ Prepare branch\n> * merge feature to master\n> * set tag\n> * update changlog.com\n## Deploy\n- Deploy master to prod\nx Deploy new login page\n- Test and confirm successful deployment\n- Send `external` announcement to customers\n",
           "enabled": true,
           "defaultContext": {
               "type": 2,
               "values": [
                   {
                       "value": "10000",
                       "label": "Task",
                       "iconUrl": "http://localhost:2990/jira/secure/viewavatar?size=xsmall&avatarId=10318&avatarType=issuetype"
                   }
               ]
           },
           "scope": {
               "type": 0,
               "values": []
           },
           "conditions": [
               {
                   "field": {
                       "id": "issuetype",
                       "type": "MULTI_SELECT",
                       "suggestionFieldId": "issuetype"
                   },
                   "option": "IS_ONE_OF",
                   "values": [
                       "10000"
                   ]
               },
               {
                   "field": {
                       "id": "priority",
                       "type": "PRIORITY",
                       "suggestionFieldId": "priority"
                   },
                   "option": "GREATER_THAN",
                   "values": [
                       "2"
                   ]
               }
           ],
           "trigger": {
               "type": 2,
               "to": [
                   "6",
                   "10001",
                   "5"
               ],
               "preventDuplicates": false
           },
           "usageCount": 0,
           "modificationType": "APPEND"
       },
       {
           "id": 1,
           "name": "Test",
           "value": "- item 1\n- item 2\n- item 3\n",
           "enabled": false,
           "defaultContext": {
               "type": 1,
               "values": []
           },
           "scope": {
               "type": 2,
               "values": [
                   {
                       "value": "10000",
                       "label": "Test 1",
                       "iconUrl": "http://localhost:2990/jira/secure/projectavatar?size=xsmall&avatarId=10324",
                       "link": ""
                   }
               ]
           },
           "conditions": [
               {
                   "field": {
                       "id": "summary",
                       "type": "SINGLE_LINE_TEXT",
                       "suggestionFieldId": "summary"
                   },
                   "option": "CONTAINS",
                   "values": [
                       "urgent"
                   ]
               },
               {
                   "field": {
                       "id": "issuetype",
                       "type": "MULTI_SELECT",
                       "suggestionFieldId": "issuetype"
                   },
                   "option": "ALL",
                   "values": []
               }
           ],
           "trigger": {
               "type": 0,
               "preventDuplicates": false
           },
           "usageCount": 0,
           "modificationType": "APPEND"
       }
   ]
}
  • Returned if the request parameters are invalid

Get project templates GET /rest/railsware/1.0/template/project/{projectId}

Returns a paginated list of project templates

Path parameters

  • projectId: number

Query parameters

  • page: number (default 1)

  • global: boolean - if true returns templates for ALL projects scope and Multiple project scope that contains selected project

  • reversed: boolean - specify ASC or DESC order of templates by name

Responses

  • application/json returns a list of project templates in JSON format
    Example:

{
   "totalPages": 1,
   "templates": [
       {
           "id": 2,
           "name": "For manual",
           "value": "- uno\n- duo\n- tres\n",
           "enabled": true,
           "defaultContext": {
               "type": 0,
               "values": []
           },
           "scope": {
               "type": 1,
               "values": [
                   {
                       "value": "10000",
                       "label": "Test 1",
                       "iconUrl": "http://localhost:2990/jira/secure/projectavatar?size=xsmall&avatarId=10324",
                       "link": ""
                   },
                   {
                       "value": "10001",
                       "label": "Second Project",
                       "iconUrl": "http://localhost:2990/jira/secure/projectavatar?size=xsmall&avatarId=10324",
                       "link": ""
                   }
               ]
           },
           "conditions": [],
           "trigger": {
               "type": 3,
               "preventDuplicates": false
           },
           "usageCount": 0,
           "modificationType": "APPEND"
       },
       {
           "id": 3,
           "name": "Release",
           "value": "# Release instuctions\n## Preparation\n+ Add feature permissions\n+ Send `internal` announcement\n~ Prepare branch\n> * merge feature to master\n> * set tag\n> * update changlog.com\n## Deploy\n- Deploy master to prod\nx Deploy new login page\n- Test and confirm successful deployment\n- Send `external` announcement to customers\n",
           "enabled": true,
           "defaultContext": {
               "type": 2,
               "values": [
                   {
                       "value": "10000",
                       "label": "Task",
                       "iconUrl": "http://localhost:2990/jira/secure/viewavatar?size=xsmall&avatarId=10318&avatarType=issuetype"
                   }
               ]
           },
           "scope": {
               "type": 0,
               "values": []
           },
           "conditions": [
               {
                   "field": {
                       "id": "issuetype",
                       "type": "MULTI_SELECT",
                       "suggestionFieldId": "issuetype"
                   },
                   "option": "IS_ONE_OF",
                   "values": [
                       "10000"
                   ]
               },
               {
                   "field": {
                       "id": "priority",
                       "type": "PRIORITY",
                       "suggestionFieldId": "priority"
                   },
                   "option": "GREATER_THAN",
                   "values": [
                       "2"
                   ]
               }
           ],
           "trigger": {
               "type": 2,
               "to": [
                   "6",
                   "10001",
                   "5"
               ],
               "preventDuplicates": false
           },
           "usageCount": 0,
           "modificationType": "APPEND"
       }
   ]
}
  • returned if the requested project is not found

  • returned if the request parameters are invalid

Get template by ID GET /rest/railsware/1.0/template/{templateId}

Returns the Smart Checklist template by id

Path parameters

  • templateId: number

Responses

  • application/json returns a single template in JSON format
    Example:

    {
       "id": 3,
       "name": "Release",
       "value": "# Release instuctions\n## Preparation\n+ Add feature permissions\n+ Send `internal` announcement\n~ Prepare branch\n> * merge feature to master\n> * set tag\n> * update changlog.com\n## Deploy\n- Deploy master to prod\nx Deploy new login page\n- Test and confirm successful deployment\n- Send `external` announcement to customers\n",
       "enabled": true,
       "defaultContext": {
           "type": 2,
           "values": [
               {
                   "value": "10000",
                   "label": "Task",
                   "iconUrl": "http://localhost:2990/jira/secure/viewavatar?size=xsmall&avatarId=10318&avatarType=issuetype"
               }
           ]
       },
       "scope": {
           "type": 0,
           "values": []
       },
       "conditions": [
           {
               "field": {
                   "id": "issuetype",
                   "type": "MULTI_SELECT",
                   "suggestionFieldId": "issuetype"
               },
               "option": "IS_ONE_OF",
               "values": [
                   "10000"
               ]
           },
           {
               "field": {
                   "id": "priority",
                   "type": "PRIORITY",
                   "suggestionFieldId": "priority"
               },
               "option": "GREATER_THAN",
               "values": [
                   "2"
               ]
           }
       ],
       "trigger": {
           "type": 2,
           "to": [
               "6",
               "10001",
               "5"
           ],
           "preventDuplicates": false
       },
       "usageCount": 0,
       "modificationType": "APPEND"
    }
  • returned if the requested template is not found


Get templates fields GET /rest/railsware/1.0/template/fields

Returns a supported list of fields with types for template condition section

Supported options per field types are:

  • MULTI_SELECT - EQUALS, DOES_NOT_EQUAL, IS_ONE_OF, IS_NOT_ONE_OF

  • SINGLE_SELECT - EQUALS, CONTAINS_ANY_OF, CONTAINS_ALL_OF, CONTAINS_NONE_OF

  • USER - EQUALS, DOES_NOT_EQUAL, IS_ONE_OF, IS_NOT_ONE_OF

  • SINGLE_LINE_TEXT - EQUALS, DOES_NOT_EQUAL, STARTS_WITH, ENDS_WITH, CONTAINS, DOES_NOT_CONTAIN

  • MULTI_LINE_TEXT - EQUALS, DOES_NOT_EQUAL, STARTS_WITH, ENDS_WITH, CONTAINS, DOES_NOT_CONTAIN

  • NUMBER - EQUALS, DOES_NOT_EQUAL, GREATER_THAN, GREATER_THAN_OR_EQUAL_TO, LESS_THAN, LESS_THAN_OR_EQUAL_TO

  • PRIORITY - EQUALS, DOES_NOT_EQUAL, GREATER_THAN, GREATER_THAN_OR_EQUAL_TO, LESS_THAN, LESS_THAN_OR_EQUAL_TO, IS_ONE_OF, IS_NOT_ONE_OF

  • RESOLUTION - EQUALS, DOES_NOT_EQUAL, IS_ONE_OF, IS_NOT_ONE_OF, IS_RESOLVED, IS_UNRESOLVED

  • REQUEST_TYPE - EQUALS, DOES_NOT_EQUAL, IS_ONE_OF, IS_NOT_ONE_OF

Also, if a field has property “canBeEmpty” equal to ‘true’, a list of options will extend with two additional values - IS_EMPTY and IS_NOT_EMPTY

Responses

  • application/json returns a list of fields in JSON format
    Example:

    [
       {
           "id": "summary",
           "type": "SINGLE_LINE_TEXT",
           "name": "Summary",
           "canBeEmpty": true,
           "suggestionFieldId": "summary"
       },
       {
           "id": "issuetype",
           "type": "MULTI_SELECT",
           "name": "Issue Type",
           "canBeEmpty": false,
           "suggestionFieldId": "issuetype"
       },
       {
           "id": "status",
           "type": "MULTI_SELECT",
           "name": "Status",
           "canBeEmpty": false,
           "suggestionFieldId": "status"
       },
       {
           "id": "priority",
           "type": "PRIORITY",
           "name": "Priority",
           "canBeEmpty": false,
           "suggestionFieldId": "priority"
       },
       {
           "id": "resolution",
           "type": "RESOLUTION",
           "name": "Resolution",
           "canBeEmpty": false,
           "suggestionFieldId": "resolution"
       },
       {
           "id": "assignee",
           "type": "USER",
           "name": "Assignee",
           "canBeEmpty": true,
           "suggestionFieldId": "assignee"
       },
       {
           "id": "reporter",
           "type": "USER",
           "name": "Reporter",
           "canBeEmpty": true,
           "suggestionFieldId": "reporter"
       },
       {
           "id": "creator",
           "type": "USER",
           "name": "Creator",
           "canBeEmpty": true,
           "suggestionFieldId": "creator"
       },
       {
           "id": "affectedVersion",
           "type": "MULTI_SELECT",
           "name": "Affects Version/s",
           "canBeEmpty": true,
           "suggestionFieldId": "affectedVersion"
       },
       {
           "id": "fixVersion",
           "type": "MULTI_SELECT",
           "name": "Fix Version/s",
           "canBeEmpty": true,
           "suggestionFieldId": "fixVersion"
       },
       {
           "id": "component",
           "type": "MULTI_SELECT",
           "name": "Component/s",
           "canBeEmpty": true,
           "suggestionFieldId": "component"
       },
       {
           "id": "environment",
           "type": "MULTI_LINE_TEXT",
           "name": "Environment",
           "canBeEmpty": true,
           "suggestionFieldId": "environment"
       },
       {
           "id": "description",
           "type": "MULTI_LINE_TEXT",
           "name": "Description",
           "canBeEmpty": true,
           "suggestionFieldId": "description"
       },
       {
           "id": "labels",
           "type": "MULTI_SELECT",
           "name": "Labels",
           "canBeEmpty": true,
           "suggestionFieldId": "labels"
       },
       {
           "id": "customfield_10001",
           "type": "MULTI_LINE_TEXT",
           "name": "Checklists",
           "canBeEmpty": true,
           "suggestionFieldId": "cf[10001]"
       },
       {
           "id": "customfield_10002",
           "type": "SINGLE_LINE_TEXT",
           "name": "Smart Checklist Progress",
           "canBeEmpty": true,
           "suggestionFieldId": "cf[10002]"
       }
    ]

Create template POST /rest/railsware/1.0/template

Creates a new template


Body parameters (application/json)

  • name: string (required) - specifies a template name

  • value: string - specifies checklist value in string format

  • enabled: boolean (true by default)

  • scope: object (required) - specifies a scope of projects to be displayed on
    type: number - (0 - All projects, 1 - Multiple projects, 2 - Single project)
    values: array of project ids

  • trigger: object - specifies a trigger for automatically template applying
    type: number - (0 - Issue created, 1 - Issue updated, 2 - Issue transitioned, 3 - none)
    from: array of status ids - available only for Issue transitioned trigger type
    to: array of status ids - available only for Issue transitioned trigger type
    preventDuplicates: boolean

  • conditions: array of objects - specifies a list of conditions that have to be checked before applying a template
    field: object
    type: string (required)
    id: string (required)
    option: string
    values: array of strings

Request body example:

{
   "name": "Template name",
   "value": "- item 1\n",
   "enabled": true,
   "scope": {
       "type": 0,
       "values": []
   },
   "conditions": [
       {
           "field": {
               "id": "resolution",
               "type": "RESOLUTION"
           },
           "option": "IS_UNRESOLVED",
           "values": []
       },
       {
           "field": {
               "id": "issuetype",
               "type": "MULTI_SELECT"
           },
           "option": "IS_ONE_OF",
           "values": [
               "10000",
               "10001"
           ]
       },
       {
           "field": {
               "id": "priority",
               "type": "PRIORITY"
           },
           "option": "GREATER_THAN",
           "values": [
               "2"
           ]
       }
   ],
   "trigger": {
       "type": 2,
       "from": ["4"],
       "to": [
           "6",
           "10001",
           "5"
       ],
       "preventDuplicates": false
   }
}

Responses

  • application/json returns the created template in JSON format

  • returned if the request parameters are invalid

Update template PUT /rest/railsware/1.0/template/{id}

Updates template


Path parameters

  • id: number (required)

Body parameters (application/json)

  • name: string (required) - specifies a template name

  • value: string - specifies checklist value in string format

  • enabled: boolean (true by default)

  • scope: object (required) - specifies a scope of projects to be displayed on
    type: number - (0 - All projects, 1 - Multiple projects, 2 - Single project)
    values: array of project ids

  • trigger: object - specifies a trigger for automatically template applying
    type: number - (0 - Issue created, 1 - Issue updated, 2 - Issue transitioned, 3 - none)
    from: array of status ids - available only for Issue transitioned trigger type
    to: array of status ids - available only for Issue transitioned trigger type
    preventDuplicates: boolean

  • conditions: array of objects - specifies a list of conditions that have to be checked before applying a template
    field: object
    type: string (required)
    id: string (required)
    option: string
    values: array of strings

Responses

  • application/json returns the created template in JSON format

  • returned if the request parameters are invalid


Delete template DELETE /rest/railsware/1.0/template/{id}

Deletes template by id

Path parameters

  • id: number (required)

Query parameters:

  • page: number

Responses

  • application/json Returns list of existing templates in JSON format

  • status 404 - returned if the requested template is not found