API changes from v8.7.1 to v8.8

With the new and upcoming releases of QMetry, we continue to add exciting and useful new features that improve usability. The new features and improvements being added to QMetry also necessitate changes in the APIs. This page enlists such APIs that will be updated from v8.8 scheduled to be released during the first week of May 2021 for all the cloud and server customers. The purpose of this document is to help integration teams keep their code updated and current with the API changes/updates to the existing APIs. In case you do not use any of these APIs, these changes can be safely ignored.


Summarized API changes

API NameREST URLMethodBackward compatibility with 8.7Request Change

Response Change

Create or update requirements/rest/requirementsPOSTYesYesNo
Create or update test cases/rest/testcasesPOSTYesYesNo
Create or update test suites/rest/testsuitesPOSTYesYesNo
Create or update issues/rest/issuesPOSTYes YesNo
Get Test Suite Run IDs/rest/execution/list/platformHomePOSTYesNoYes
List Test Case Steps/rest/testcases/steps/listPOSTYesNoYes
Get Info/rest/admin/project/getinfoGETYesNoYes

Fetch Details of a specific test case version

/rest/testcases/listPOSTYesNoYes

Get Test Suite Run IDs

/rest/execution/list/platformHomePOSTYesNoYes
Fetch Requirements/rest/requirements/list/viewColumnsPOSTYesNoYes

Fetch Test Cases

/rest/testcases/list/viewColumnsPOSTYesNoYes

Updated APIs

Create or update requirements

API/rest/requirements
MethodPOST
Impact of changeLow
Backward CompatibilityYes
Reason for change

API updated to manage the same name as in the manage fields section.

Changes"owner" parameter updated to "requirementOwner"
Version 8.7.1Version 8.8.0
Request Body
{
  "rqFolderId": "57796",
  "updateWithVersion": false,
  "updateVersionFlag": 0,
  "scope": "project",
  "name": "Summary",
  "priority": [
    2025268
  ],
  "component": [
    2025328
  ],
  "requirementState": [
    2025285
  ],
  "description": "desc",
  "owner": 1467,
  "associateRelCyc": true,
  "releaseCycleMapping": [
    {
      "release": 14239,
      "cycle": [
        21395
      ],
      "version": 1
    }
  ]
}
Request Body
{
  "rqFolderId": "57796",
  "updateWithVersion": false,
  "updateVersionFlag": 0,
  "scope": "project",
  "name": "Summary",
  "priority": [
    2025268
  ],
  "component": [
    2025328
  ],
  "requirementState": [
    2025285
  ],
  "description": "desc",
  "requirementOwner": 1467,
  "associateRelCyc": true,
  "releaseCycleMapping": [
    {
      "release": 14239,
      "cycle": [
        21395
      ],
      "version": 1
    }
  ]
}

Create or update test cases

API/rest/testcases
MethodPOST
Impact of changeLow
Backward CompatibilityYes
Reason for change

API updated to manage the same name as in the manage fields section.

Changes"executionMinutes" parameter updated to "estimatedTime"
Version 8.7.1Version 8.8.0
Request Body
{
	"tcFolderID": "34363",
	"scope": "project",
	"steps": [{
			"orderId": 1,
			"description": "First Step",
			"inputData": "First Data",
			"expectedOutcome": "First Outcome"
		},
		{
			"orderId": 2,
			"description": "Second Step",
			"inputData": "Second Data",
			"expectedOutcome": "Second Outcome"
		}
	],
	"name": "Test Case 1",
	"priority": 156433,
	"component": [
		156816
	],
	"owner": 1314,
	"testCaseState": 156477,
	"testCaseType": 156448,
	"executionMinutes": 30,
	"description": "Description",
	"associateRelCyc": true,
	"releaseCycleMapping": [{
		"release": 4005,
		"cycle": [
			5925
		],
		"version": 1
	}]
}
Request Body
{
	"tcFolderID": "34363",
	"scope": "project",
	"steps": [{
			"orderId": 1,
			"description": "First Step",
			"inputData": "First Data",
			"expectedOutcome": "First Outcome"
		},
		{
			"orderId": 2,
			"description": "Second Step",
			"inputData": "Second Data",
			"expectedOutcome": "Second Outcome"
		}
	],
	"name": "Test Case 1",
	"priority": 156433,
	"component": [
		156816
	],
	"owner": 1314,
	"testCaseState": 156477,
	"testCaseType": 156448,
	"estimatedTime": 30,
	"description": "Description",
	"associateRelCyc": true,
	"releaseCycleMapping": [{
		"release": 4005,
		"cycle": [
			5925
		],
		"version": 1
	}]
}

Create or update test suites

API/rest/testsuites
MethodPOST
Impact of changeLow
Backward CompatibilityYes
Reason for change

API updated to manage the same name as in the manage fields section.

Changes"owner" parameter updated to "testsuiteOwner"
Version 8.7.1Version 8.8.0
Request Body
{
  "parentFolderId": "16907",
  "isAutomatedFlag": false,
  "name": "Testsuite without platform",
  "description": "Testsuite description",
  "owner": 11,
  "testSuiteState": 156489,
  "associateRelCyc": true,
  "releaseCycleMapping": [
    {
      "buildID": 5923,
      "releaseId": 4004
    }
  ]
}
Request Body
{
  "parentFolderId": "16907",
  "isAutomatedFlag": false,
  "name": "Testsuite without platform",
  "description": "Testsuite description",
  "testsuiteOwner": 11,
  "testSuiteState": 156489,
  "associateRelCyc": true,
  "releaseCycleMapping": [
    {
      "buildID": 5923,
      "releaseId": 4004
    }
  ]
}

Create or update issues

API/rest/issues
MethodPOST
Impact of changeLow
Backward CompatibilityYes
Reason for change

API updated to manage the same name as in the manage fields section.

Changes"owner" parameter updated to "issueOwner"
Version 8.7.1Version 8.8.0
Request Body
{
	"sync_with": 2,
	"issueType": 156454,
	"issuePriority": 156457,
	"owner": 302,
	"summary": "Money withdrawal is success even if insufficient amount",
	"component": [156821, 156819, 156818],
	"environment": "Staging",
	"description": "Money withdrawal is success even if insufficient amount",
	"affectedRelease": 4036
}
Request Body
{
	"sync_with": 2,
	"issueType": 156454,
	"issuePriority": 156457,
	"issueOwner": 302,
	"summary": "Money withdrawal is success even if insufficient amount",
	"component": [156821, 156819, 156818],
	"environment": "Staging",
	"description": "Money withdrawal is success even if insufficient amount",
	"affectedRelease": 4036
}

Get Info API

API/rest/admin/project/getinfo
MethodGET
Impact of changeLow
Backward CompatibilityYes
Reason for change

New parameter added for the requirement review workflow for eSignature enabled projects

Changes"isRequirementReviewer" parameter added which has the value true/false based on the requirement reviewer process enabled/disabled.
Version 8.7.1Version 8.8.0
Request Body
{
	"clientData": {
		"localeID": 1,
		"timeZoneID": 18,
		"dateTimeFormatID": 1,
		"ldapActive": true,
		"SAMLActive": false,
		"authTypeArray": ["QMETRY", "LDAP"],
		"isAllowManualEditOfLastExecutedField": "false",
		"maxpagelimit": "10",
		"saveexecutionhistory": "true",
		"timesettings": "12"
	},
...
	"maxAttachmentSize": 10,
	"agentUrl": "URL",
	"isTestingTypeVisible": true,
	"clientCode": "2O5API",
	"isMatrixViewEnabled": true,
	"isPlatformScopeFeatureEnabled": true,
	"isSyncAcrossDomainEnabled": false,
	"isTestDataEnabled": false,
	"isTestCaseApprover": false,
	"isTestSuiteApprover": false,
	"isApprovalWorkflowEnabled": true,
	"isPartLevelComplianceEnabled": false,
	"userType": 1,
	"defaultPlatformId": 2209,
	"isSaasEnabled": true,
	"timeFormat": 24,
	"dateTimeFormatID": 4,
	"matrixPlatformCount": 20,
	"testSuiteTescaseCount": 50
...
	"isBddConfigured": true,
	"isMFAMandatory": false,
	"authenticationInfo": [{
		"181": ""
	}]
}
Request Body
{
	"clientData": {
		"localeID": 1,
		"timeZoneID": 18,
		"dateTimeFormatID": 1,
		"ldapActive": true,
		"SAMLActive": false,
		"authTypeArray": ["QMETRY", "LDAP"],
		"isAllowManualEditOfLastExecutedField": "false",
		"maxpagelimit": "10",
		"saveexecutionhistory": "true",
		"timesettings": "12"
	},
...
	"maxAttachmentSize": 10,
	"agentUrl": "URL",
	"isTestingTypeVisible": true,
	"clientCode": "2O5API",
	"isMatrixViewEnabled": true,
	"isPlatformScopeFeatureEnabled": true,
	"isSyncAcrossDomainEnabled": false,
	"isTestDataEnabled": false,
	"isTestCaseApprover": false,
	"isTestSuiteApprover": false,
	"isRequirementReviewer": true,
	"isApprovalWorkflowEnabled": true,
	"isPartLevelComplianceEnabled": false,
	"userType": 1,
	"defaultPlatformId": 2209,
	"isSaasEnabled": true,
	"timeFormat": 24,
	"dateTimeFormatID": 4,
	"matrixPlatformCount": 20,
	"testSuiteTescaseCount": 50
...
	"isBddConfigured": true,
	"isMFAMandatory": false,
	"authenticationInfo": [{
		"181": ""
	}]
}

Fetch Details of a specific test case version

API/rest/testcases/list
MethodPOST
Impact of changeLow
Backward CompatibilityYes
Reason for change

New parameters added for multilevel eSignature approval workflow when test case is pending for approval.

ChangesParameters added -  "approverLevelID", "approverLevelOrder", "approverLevelName", "approverID" in the API response
Version 8.7.1Version 8.8.0
Response Body
{
	"data": [{
		"isVersionArchived": false,
		"isShared": false,
		"associatedCycles": "Default Cycle",
		"state": 1,
		"releaseNameDetail": "Default Release",
		"cycleNameDetail": "Default Cycle",
		"cycleIdsAsVersion": "4448",
		"releaseIdsAsVersion": "3023",
		"tcrCount": 0,
		"associatedVersion": 1,
		"tcID": 1303073,
		"paramIdList": "",
		"entityKey": "FT-TC-163",
		"projectId": 1257,
		"projectName": "Fitness Tracker",
		"summary": "Test case 2 with multilevel approval",
		"tcVersion": 1,
		"approvedBy": "",
		"approvedByAlias": "",
		"approvedDate": "",
		"createdDate": "04-21-2021 06:11:08 AM",
		"updatedDate": "04-21-2021 06:12:59 AM",
		"description": "Sample Test Description<div><br></div>",
		"updatedBy": "jatin",
		"updatedByAlias": "jatin (jatin)",
		"createdBy": "jatin",
		"createdByAlias": "jatin (jatin)",
		"designerAlias": "",
		"testingType": 116705,
		"testingTypeAlias": "Manual",
		"testCaseType": 116711,
		"testCaseTypeAlias": "Regression",
		"testCaseState": 116704,
		"testCaseStateAlias": "Open",
		"testCaseStateLabel": "Open",
		"priority": 617762,
		"priorityAlias": "Major",
		"tcFolderID": 9845,
		"folderPath": "/Fitness Tracker",
		"tcVersionID": 1276256,
		"testScriptName": "",
		"owner": 302,
		"ownerAlias": "jatin",
		"modifiedReasonAlias": "",
		"executionMinutes": "20",
		"preCondition": "",
		"postCondition": "",
		"isLatestVersion": true,
		"currentTcVersion": 1,
		"isArchived": false,
		"attachmentCount": 0,
		"statusId": 8937,
		"isChild": false,
		"component": "[116763]",
		"componentAlias": "Track",
		"componentAlias_search": "Track",
		"Automation_Command": "Automation Accomplished<div><br></div>",
		"totalWatchers": 1,
		"isCurrentUserWatcher": true,
		"isUpdatedByActive": true,
		"isCreatedByActive": true,
		"isParameterized": false
	}],
	"total": 1,
	"buildId": 3023,
	"cycleId": 4448,
	"UDFTypeData": {
		"Automation_Command": "LARGETEXT"
	}
}
Response Body
{
    "data": [
        {
            "isVersionArchived": false,
            "isShared": false,
            "associatedCycles": "Default Cycle",
            "state": 1,
            "releaseNameDetail": "Default Release",
            "cycleNameDetail": "Default Cycle",
            "cycleIdsAsVersion": "4448",
            "releaseIdsAsVersion": "3023",
            "tcrCount": 0,
            "associatedVersion": 1,
            "tcID": 1303073,
            "paramIdList": "",
            "entityKey": "FT-TC-163",
            "projectId": 1257,
            "projectName": "Fitness Tracker",
            "summary": "Test case 2 with multilevel approval",
            "tcVersion": 1,
            "approvedBy": "",
            "approvedByAlias": "",
            "approvedDate": "",
            "createdDate": "21-Apr-2021 16:08:12",
            "updatedDate": "",
            "description": "test case 2 with multilevel approval",
            "updatedBy": "jatin",
            "updatedByAlias": "jatin (jatin)",
            "createdBy": "jatin",
            "createdByAlias": "jatin (jatin)",
            "designerAlias": "",
            "testingType": 116705,
            "testingTypeAlias": "Manual",
            "testCaseType": 116711,
            "testCaseTypeAlias": "Regression",
            "testCaseState": 116704,
            "testCaseStateAlias": "Open",
            "testCaseStateLabel": "Open",
            "priority": 116700,
            "priorityAlias": "Major",
            "tcFolderID": 9845,
            "folderPath": "/Fitness Tracker",
            "tcVersionID": 1276256,
            "testScriptName": "",
            "owner": 302,
            "ownerAlias": "jatin",
            "modifiedReasonAlias": "",
            "executionMinutes": "10",
            "preCondition": "",
            "postCondition": "",
            "isLatestVersion": true,
            "currentTcVersion": 1,
            "isArchived": false,
            "attachmentCount": 0,
            "statusId": 8937,
            "isChild": false,
            "component": "[116763]",
            "componentAlias": "Track",
            "componentAlias_search": "Track",
            "totalWatchers": 1,
            "isCurrentUserWatcher": true,
            "isCreatedByActive": true,
            "isParameterized": false,
            "approverLevelID": 42,
            "approverLevelOrder": 1,
            "approverLevelName": "Level 1",
            "approverID": 1429
        }
    ],
    "total": 1,
    "buildId": 3023,
    "cycleId": 4448,
    "UDFTypeData": {}
}

Get Test Suite Run IDs

API/rest/execution/list/platformHome
MethodPOST
Impact of changeLow
Backward CompatibilityYes
Reason for change

New parameters added for multilevel eSignature approval workflow when the test suite is pending approval.

ChangesParameters added -  "approverLevelID", "approverLevelOrder", "approverLevelName", "approverID" in the API response
Version 8.7.1Version 8.8.0
Response Body
{
    "data": [
        {
            "isAutomatedFlag": false,
            "PlatformId": 2539,
            "Platform": "iOS",
            "approvedBy": "Jatin",
            "approvedByAlias": "jatin (jatin)",
            "approvedDate": "04-21-2021 07:38:46 AM",
            "TestSuiteName": "Test Suite 2 with Approved Test Cases,
            "tsRunID": 161306,
            "tsID": 72166,
             "isTestRun": false,
            "isPlatformArchived": false,
            "isTestSuiteArchived": false,
            "isTSRunArchived": false,
            "cycleName": "Default Cycle",
            "releaseName": "Default Release",
            "cycleID": 4448,
            "releaseID": 3023,
            "entityKey": "FT-TS-14",
            "TestSuitePath": "/Fitness Tracker",
            "Total": 1,
            "isCycleArchived": false,
            "isReleaseArchived": false,
            "state": 1,
            "status_8937": 0,
            "status_8942": 0,
            "status_8941": 0,
            "status_8936": 1,
            "status_8940": 0,
            "status_8939": 0,
            "Status": "Not Run",
            "statusID": 8936,
            "Defects": 0,
            "createdDate": "04-21-2021 07:24:40 AM",
            "createdByAlias": "jatin"
        }
    ],
    "total": 1,
    "isBuildSelectionMandatory": false
}
Response Body
{
    "data": [
        {
            "isAutomatedFlag": false,
            "PlatformId": 2539,
            "Platform": "iOS",
            "TestSuiteName": "Test Suite 2 with Approved Test Cases",
            "tsRunID": 161306,
            "tsID": 72166,
            "isTestRun": false,
            "startTime": "21-Apr-2021 16:55:55",
            "isPlatformArchived": false,
            "isTestSuiteArchived": false,
            "isTSRunArchived": false,
            "cycleName": "Default Cycle",
            "releaseName": "Default Release",
            "cycleID": 4448,
            "releaseID": 3023,
            "entityKey": "FT-TS-14",
            "TestSuitePath": "/Fitness Tracker",
            "totalTCWithExecutionTime": 1,
            "totalExecutionTime": 10,
            "RemainingTime": 10,
            "Total": 1,
            "isCycleArchived": false,
            "isReleaseArchived": false,
            "state": 1,
            "status_8937": 0,
            "status_8942": 0,
            "status_8941": 0,
            "status_8936": 1,
            "status_8940": 0,
            "status_8939": 0,
            "Status": "Not Run",
            "statusID": 8936,
            "Defects": 0,
            "createdDate": "21-Apr-2021 16:55:42",
            "createdByAlias": "jatin",
            "approverID": 1859,
            "approverLevelID": 1655,
            "approverLevelName": "Level2",
            "approverLevelOrder": 2
        }
    ],
    "total": 1,
    "isBuildSelectionMandatory": false
}

Fetch Requirements

API/rest/requirements/list/viewColumns
MethodPOST
Impact of changeLow
Backward CompatibilityYes
Reason for change

New parameters added for multilevel eSignature approval workflow now available for requirements for the requirements that are pending approval.

ChangesParameters added - "approverLevelOrder", "approverID" in the API response.
Version 8.7.1Version 8.8.0
Response Body
{
    "data": [
        {
            "entityKey": "FT-RQ-274",
            "associatedVersion": 1,
            "name": "Requirement with approval workflow",
            "rqVersionList": "[{\"isArchived\":0,\"rqVersion\":1,\"rqVersionId\":1051876,
\"rqVersionName\":\"Version-1\"}]",
            "createdByAlias": "jatin (jatin)",
            "owner": "afjal.ansari (afjal.ansari@qmetry.com)",
            "createdDate": "04-21-2021 08:09:57 AM",
            "createdSystem": "QMetry",
            "requirementStateAlias": "Open",
            "priorityAlias": "Major",
            "attachmentCount": 0,
            "linkedTcCount": 0,
            "linkedDfCount": 0,
            "isWatcher": true,
            "isArchived": false,
            "id": 1242283,
            "componentAlias": [
                "Track"
            ],
            "versionId": 1177748,
            "isCurrentlyConfiguredProject": false
        }
    ],
    "total": 1,
    "viewId": 2398,
    "filter": "[]",
    "sort": "[{\"property\":\"name\",\"direction\":\"ASC\"}]",
    "viewName": "Custom",
    "filterTemplate": [],
    "columns": {
        "visibleColumns": [],
        "hiddenColumns": []
    },
    "udfFilter": "[]",
    "folderSortColumn": "name",
    "folderSortOrder": "ASC",
    "hideEmptyFolders": false,
    "getSubEntities": true,
    "filterType": "QMETRY"
}

Response Body
{
    "data": [
        {
            "entityKey": "FT-RQ-274",
            "associatedVersion": 1,
            "name": "Requirement with approval workflow",
            "rqVersionList": "[{\"isArchived\":0,\"rqVersion\":1,\"rqVersionId\":1177748,
\"rqVersionName\":\"Version-1\"}]",
            "createdByAlias": "jatin (jatin)",
            "owner": "jatin (jatin)",
            "createdDate": "21-Apr-2021 17:35:32",
            "createdSystem": "QMetry",
            "requirementStateAlias": "Open",
            "priorityAlias": "Major",
            "attachmentCount": 0,
            "linkedTcCount": 0,
            "linkedDfCount": 0,
            "isWatcher": true,
            "isArchived": false,
            "id": 1242283,
            "componentAlias": [
                "Track"
            ],
            "versionId": 1177748,
            "folderPath": "/Fitness Tracker/Approved Requirements",
            "reviewStatus": 1,
            "approverID": 1425,
            "approverLevelOrder": 1,
            "isCurrentlyConfiguredProject": false
        }
    ],
    "total": 1,
    "viewId": 2398,
    "jiraFilter": "[]",
    "sort": "[{\"property\":\"name\",\"direction\":\"ASC\"}]",
    "viewName": "Custom",
    "filterTemplate": [],
    "columns": {
        "visibleColumns": [],
        "hiddenColumns": []
    },
    "folderSortColumn": "name",
    "folderSortOrder": "ASC",
    "hideEmptyFolders": false,
    "getSubEntities": true,
    "filterType": "JIRA"
}

Fetch Test Cases

API/rest/testcases/list/viewColumns
MethodPOST
Impact of changeLow
Backward CompatibilityYes
Reason for change

New parameters added for multilevel eSignature approval workflow now available for requirements for the requirements that are pending approval.

ChangesParameters added -  "approverID", "approverLevelOrder" in the API response.
Version 8.7.1Version 8.8.0
Response Body
{
    "data": [
        {
            "entityKey": "FT-TC-165",
            "tcFolderId": 34441,
            "associatedVersion": 1,
            "name": "Test Cases with multiple levels of approval",
            "createdByAlias": "jatin (jatin)",
            "owner": "jatin",
            "createdDate": "04-21-2021 09:08:11 AM",
            "executionMinutes": 10,
            "testCaseStateAlias": "Open",
            "priorityAlias": "Major",
            "testingTypeAlias": "Manual",
            "testCaseTypeAlias": "Functional",
            "isWatcher": true,
            "isArchived": false,
            "folderPath": "/Fitness Tracker/Approved Test Cases",
            "id": 1303132,
            "isShared": false,
            "versionId": 1276321,
            "attachmentCount": 0,
            "linkedDfCount": 0,
            "linkedRqCount": 0,
            "linkedTsCount": 0,
            "approvalStatus": 2,
            "approvedByAlias": "Sahashraanshu (sumi)",
            "isChild": false,
            "componentAlias": [
                "Not Available"
            ]
        }
    ],
    "total": 1,
    "viewId": 2399,
    "filter": "[]",
    "sort": null,
    "viewName": "Custom",
    "filterTemplate": [],
    "columns": {
        "visibleColumns": [],
        "hiddenColumns": []
    },
    "udfFilter": "[]",
    "folderSortColumn": "name",
    "folderSortOrder": "ASC",
    "hideEmptyFolders": false,
    "getSubEntities": true,
    "isParameterized": false,
    "havingSharedTestcases": false
}

Response Body
{
    "data": [
        {
            "entityKey": "FT-TC-165",
            "tcFolderId": 34441,
            "associatedVersion": 1,
            "name": "Test Cases with multiple levels of approval",
            "createdByAlias": "jatin (jatin)",
            "owner": "jatin",
            "createdDate": "21-Apr-2021 18:18:46",
            "executionMinutes": 10,
            "testCaseStateAlias": "Open",
            "priorityAlias": "Major",
            "testingTypeAlias": "Manual",
            "testCaseTypeAlias": "Functional",
            "isWatcher": true,
            "isArchived": false,
            "folderPath": "/Fitness Tracker/Approved Test Cases",
            "id": 1303132,
            "isShared": false,
            "versionId": 1276321,
            "linkedDfCount": 0,
            "linkedRqCount": 0,
            "linkedTsCount": 0,
            "approvalStatus": 1,
            "approverID": 1429,
            "approverLevelOrder": 1,
            "componentAlias": [
                "Track"
            ]
        }
    ],
    "total": 1,
    "viewId": 2399,
    "filter": "[]",
    "sort": "[{\"property\":\"entityKey\",\"direction\":\"ASC\"}]",
    "viewName": "Custom",
    "filterTemplate": [],
    "columns": {
        "visibleColumns": [],
        "hiddenColumns": []
    },
    "udfFilter": "[]",
    "folderSortColumn": "name",
    "folderSortOrder": "ASC",
    "hideEmptyFolders": false,
    "getSubEntities": true,
    "isParameterized": false,
    "havingSharedTestcases": false
}