curl --request POST \
--url https://davinci-app.com/api/v2/orgs/{orgId}/teams/{teamId}/sprints/{sprintId}/complete \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"moveToSprintId": null,
"expectedHistoryHeadIds": {}
}
'import requests
url = "https://davinci-app.com/api/v2/orgs/{orgId}/teams/{teamId}/sprints/{sprintId}/complete"
payload = {
"moveToSprintId": None,
"expectedHistoryHeadIds": {}
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({moveToSprintId: null, expectedHistoryHeadIds: {}})
};
fetch('https://davinci-app.com/api/v2/orgs/{orgId}/teams/{teamId}/sprints/{sprintId}/complete', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({moveToSprintId: null, expectedHistoryHeadIds: {}})
};
fetch('https://davinci-app.com/api/v2/orgs/{orgId}/teams/{teamId}/sprints/{sprintId}/complete', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));{
"sprint": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"name": "<string>",
"description": "<string>",
"status": "planned",
"created_at": "2023-11-07T05:31:56Z",
"start_date": "2023-11-07T05:31:56Z",
"end_date": "2023-11-07T05:31:56Z",
"team_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}
}{
"success": false,
"error": {
"code": "<string>",
"message": "<string>",
"details": {}
}
}{
"success": false,
"error": {
"code": "<string>",
"message": "<string>",
"details": {}
}
}{
"success": false,
"error": {
"code": "<string>",
"message": "<string>",
"details": {}
}
}{
"success": false,
"error": {
"code": "<string>",
"message": "<string>",
"details": {}
}
}{
"success": false,
"error": {
"code": "<string>",
"message": "<string>",
"details": {}
}
}{
"success": false,
"error": {
"code": "<string>",
"message": "<string>",
"details": {}
}
}{
"success": false,
"error": {
"code": "<string>",
"message": "<string>",
"details": {}
}
}Complete an active sprint
Marks an active sprint completed. Finished cards stay attached for reporting; unfinished cards move to the backlog or to the specified planned sprint. Each movement is recorded in card and sprint history.
curl --request POST \
--url https://davinci-app.com/api/v2/orgs/{orgId}/teams/{teamId}/sprints/{sprintId}/complete \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"moveToSprintId": null,
"expectedHistoryHeadIds": {}
}
'import requests
url = "https://davinci-app.com/api/v2/orgs/{orgId}/teams/{teamId}/sprints/{sprintId}/complete"
payload = {
"moveToSprintId": None,
"expectedHistoryHeadIds": {}
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({moveToSprintId: null, expectedHistoryHeadIds: {}})
};
fetch('https://davinci-app.com/api/v2/orgs/{orgId}/teams/{teamId}/sprints/{sprintId}/complete', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({moveToSprintId: null, expectedHistoryHeadIds: {}})
};
fetch('https://davinci-app.com/api/v2/orgs/{orgId}/teams/{teamId}/sprints/{sprintId}/complete', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));{
"sprint": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"name": "<string>",
"description": "<string>",
"status": "planned",
"created_at": "2023-11-07T05:31:56Z",
"start_date": "2023-11-07T05:31:56Z",
"end_date": "2023-11-07T05:31:56Z",
"team_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}
}{
"success": false,
"error": {
"code": "<string>",
"message": "<string>",
"details": {}
}
}{
"success": false,
"error": {
"code": "<string>",
"message": "<string>",
"details": {}
}
}{
"success": false,
"error": {
"code": "<string>",
"message": "<string>",
"details": {}
}
}{
"success": false,
"error": {
"code": "<string>",
"message": "<string>",
"details": {}
}
}{
"success": false,
"error": {
"code": "<string>",
"message": "<string>",
"details": {}
}
}{
"success": false,
"error": {
"code": "<string>",
"message": "<string>",
"details": {}
}
}{
"success": false,
"error": {
"code": "<string>",
"message": "<string>",
"details": {}
}
}Authorizations
Personal access token. The scopes granted at issuance determine both which
operations the key may call and the ceiling on the resource permissions it
can exercise. Each scope family is a ladder: projects:manage implies
projects:write and projects:read; cards:manage implies cards:write
and cards:read; and teams:manage implies teams:write and teams:read.
These are named API capability bundles, not blanket domain roles:
manage exposes only the permissions enumerated for that scope and never
bypasses the acting user's current role-based access.
Path Parameters
Organization id.
Agile team id.
Team sprint id.
Body
Response
Completed sprint.
Hide child attributes
Hide child attributes
planned, active, completed