New API Migration Guide
Welcome to the API migration guide.
Â
Document scope
Â
Who Should Use This Guide
Â
If you're using our API directly via tools like Postman or through scripts, this guide is essential to ensure a smooth transition to the updated API. This migration guide is designed for developers and technical teams who are using our API directly, whether through tools like Postman, custom scripts, or integrated applications.
Â
For QAlity Plus Cloud users
Swagger API documentation is now available here: link.
In order to prepare for the upcoming changes, please use the migration guide exclusively.
Â
The user interface will not be affected by these changes. You can ignore this guide if you interact with our app primarily through the UI.
Â
List of Deprecated Endpoints
Â
Â
Detailed Comparison of Old and New Endpoints
Old Endpoint | New Endpoint | Change Description |
---|---|---|
PUT /testExecutions/{testExecutionId} | PATCH /testExecutions/{testExecutionId} | MODIFIED Request JSON payload: The Include only the fields you want to update(partial updates). Fields not included in the JSON will remain unchanged. {
comment: string
executionAssignee: string
statusId: integer(>0)
} Request example: curl -X 'PATCH' \
'https://example.com/testExecutions/123?jwt=<your_jwt_token>' \
-H 'accept: */*' \
-H 'Content-Type: application/json' \
-d '{
"fields": {
"comment": "my updated comment",
"executionAssignee": "345",
"statusId": 1 /
}
}' |
- | PATCH /testExecutionSteps/bulk | NEW A new endpoint that will update test execution steps. Request example: curl -X 'PUT' \
'https://example.com/testExecutionSteps/bulk?jwt=<your_jwt_token>' \
-H 'accept: */*' \
-H 'Content-Type: application/json' \
-d '[
{
"id": 123,
"fields": {
"statusId": 2,
"comment": "Updated comment",
"attachments": "[{\"id\":\"101\"},{\"id\":\"102\"}]"
}
},
{
"id": 124,
"fields": {
"statusId": 1,
"comment": "Another updated comment",
"attachments": "[{\"id\":\"103\"},{\"id\":\"104\"}]"
}
}
]' Attachments information: Attachments must match the following regular expression:
Examples: |
PUT /testExecution/executionAssignee | - |
|
GET /testExecution | GET /testExecutions | |
GET /testExecution/{testExecutionId} | GET /testExecutions/{testExecutionId} | |
DELETE | DELETE /testExecutions/{testExecutionId} | |
GET /testExecution/history/{testExecutionId} | GET /testExecutions/{testExecutionId}/history | |
PUT /testStep | PATCH /testCases/{testCaseId}/testSteps/bulk | Request JSON payload: The Include only the fields you want to update(partial updates). Fields not included in the JSON will remain unchanged. Attachments information: Attachments must match the following regular expression:
Examples: Request example: |
GET /testStep/{testCaseId} | GET /testCases/{testCaseId}/testSteps | CLOUD Content type: Previously, the API endpoint returned a Content-Type of SERVER Request example: |
POST /testStep | POST /testSteps | CLOUD SERVER Content type: Previously, the API endpoint returned a Content-Type of |
PUT /testStep/{testStepId} | PATCH /testSteps/{testStepId} | CLOUD: The Include only the fields you want to update(partial updates). Fields not included in the JSON will remain unchanged. SERVER: Request JSON payload: The Include only the fields you want to update(partial updates). Fields not included in the JSON will remain unchanged. Content type: Previously, the API endpoint returned a Content-Type of Attachments information: Attachments must match the following regular expression: Examples: Request example: |
DELETE /testStep/{testStepId} | DELETE /testSteps/{testStepId} | |
POST /bulkTestSteps | POST /testSteps/bulk | |
POST /testExecution | POST /testExecutions | CLOUD: SERVER: Content type: Previously, the API endpoint returned a Content-Type of |
GET /testExecution/failedSteps/{testCaseId} | GET /testExecutionInsights/failedSteps?testCaseId=123 | Query parameter: Now accepts |
GET /testExecution/bugsReported/{testCaseId} | GET /testExecutionInsights/reportedBugs?testCaseId=123 | Query parameter: Now accepts |
DELETE /testExecutionIssue | DELETE /testExecutionSteps/{stepId}/linkedIssues/{linkedIssueId} | Query parameter: Now instead of a JSON payload it accepts Request example: |
POST /testExecutionIssue | POST /testExecutionSteps/{stepId}/linkedIssues/{linkedIssueId} | Query parameter: Now instead of a JSON payload it accepts Request example: |
PUT /folders | PATCH /folders/{folderId} | Request JSON payload: The Include only the fields you want to update(partial updates). Fields not included in the JSON will remain unchanged. Request example: |
POST /folders/testCases | POST /folders/{folderId}/folderAssignments | Request JSON payload: The Request example: |
DELETE /folders/testCases | DELETE /folders/{folderId}/folderAssignments | Request JSON payload: The Request example: |
GET /folders/search | - |
|
GET /folders | GET /folders?name=example&parentId=123 | Query parameters: New query parameters If a If no parameters are provided, the endpoint behaves as before, fetching all folders with no parent. Request example: |
PUT /statuses | PATCH /statuses/{statusId} | Request JSON payload: The Include only the fields you want to update(partial updates). Fields not included in the JSON will remain unchanged. Request example: |
POST /importTestCases | POST /testCases/import | |
GET /testExecutionReport | GET /reports/testExecution/table | |
GET /testExecutionReportCharts | GET /reports/testExecution/chart | |
GET /traceabilityReport | GET /reports/traceability/table | |
POST /testCasesInCycle | POST /testCycles/{testCycleId}/testCycleAssignments | Request JSON payload: The Request example: |
DELETE /testCasesInCycle/{testCaseInCycleId} | DELETE /testCycles/{testCycleId}/testCycleAssignments/{testCaseInCycleId} | |
GET /testCasesInCycle/{testCaseInCycleId} | GET /testCycles/{testCycleId}/testCycleAssignments/{testCaseInCycleId} | |
GET /testCyclesForExecution/{testCaseId}/{testCycleId} | - | Deprecated Notice: |
GET /testCyclesForExecution | - | This endpoint retrieves a paginated list of test cycles that include the specified test case. If this test case execution has already been created (someone was assigned, the execution was opened, etc), the cycle will not be included in the returned list. You need to have browse issue permission in the project that test cycle belongs to. |
GET /testCycles | - | Query parameter: The Request example: |
PUT /testCycles/{testCycleId} | PATCH /testCycles/{testCycleId} | Request JSON payload: The Include only the fields you want to update(partial updates). Fields not included in the JSON will remain unchanged. Request example: |
POST /testCycleClones | POST /testCycles/{testCycleId}/clone | Query parameter: The Request example: |
DELETE /deleteTestCycle/{testCycleId} | DELETE testCycles/{testCycleId} | |
POST /testExecutions/latest | POST /history/testExecutions/latest | CLOUD No changes. SERVER Â |
PUT /testExecutions/status/bulk | PUT /premium/testExecutions/status/bulk | CLOUD No changes. SERVER |
PUT /testExecutions/assignee/bulk | PUT /premium/testExecutions/assignee/bulk | CLOUD No changes. SERVER |
POST /testExecutions/bulk | POST /premium/testExecutions/bulk | CLOUD No changes. SERVER |