For AI agents: markdown of this page — /docs-content-en/scrum/sprints/complete.md documentation index — /llms.txt

Complete the active sprint

POST /v1/scrum/groups/:groupId/sprints/active/complete

Completes the current active sprint of a scrum project. No sprint ID is passed: the method finds the active sprint by the group ID.

Parameters

Parameter Type Required Description
ParametergroupId (path) Typenumber Requiredyes DescriptionScrum project ID. List of groups: GET /v1/workgroups

No request body is passed. If the request does send the Content-Type: application/json header, pass an empty object {}.

Examples

curl — personal key

Terminal
curl -X POST https://vibecode.bitrix24.com/v1/scrum/groups/211/sprints/active/complete \
  -H "X-Api-Key: YOUR_API_KEY"

curl — OAuth application

Terminal
curl -X POST https://vibecode.bitrix24.com/v1/scrum/groups/211/sprints/active/complete \
  -H "X-Api-Key: YOUR_APP_KEY" \
  -H "Authorization: Bearer USER_SESSION_TOKEN"

JavaScript — personal key

javascript
const res = await fetch('https://vibecode.bitrix24.com/v1/scrum/groups/211/sprints/active/complete', {
  method: 'POST',
  headers: { 'X-Api-Key': 'YOUR_API_KEY' },
})

const { data: sprint } = await res.json()
console.log(sprint.id, sprint.status)

JavaScript — OAuth application

javascript
const res = await fetch('https://vibecode.bitrix24.com/v1/scrum/groups/211/sprints/active/complete', {
  method: 'POST',
  headers: {
    'X-Api-Key': 'YOUR_APP_KEY',
    'Authorization': 'Bearer USER_SESSION_TOKEN',
  },
})

const { data: sprint } = await res.json()
console.log(sprint.id, sprint.status)

Response fields

Field Type Description
Fieldsuccess Typeboolean Descriptiontrue on successful completion
Fielddata Typeobject DescriptionThe completed sprint
Fielddata.id Typenumber DescriptionSprint ID
Fielddata.groupId Typenumber DescriptionScrum project ID
Fielddata.entityType Typestring DescriptionRecord type, sprint
Fielddata.name Typestring DescriptionSprint name
Fielddata.goal Typestring DescriptionSprint goal
Fielddata.sort Typenumber DescriptionSprint order within the project
Fielddata.createdBy Typenumber DescriptionID of the sprint author
Fielddata.modifiedBy Typenumber DescriptionID of the user who last changed the sprint
Fielddata.dateStart Typestring DescriptionSprint start in ISO 8601 format
Fielddata.dateEnd Typestring DescriptionCompletion time in ISO 8601 format
Fielddata.status Typestring Descriptioncompleted

Response example

JSON
{
  "success": true,
  "data": {
    "id": 45,
    "groupId": 211,
    "entityType": "sprint",
    "name": "Sprint 11",
    "goal": "",
    "sort": 0,
    "createdBy": 1317,
    "modifiedBy": 1317,
    "dateStart": "2026-11-02T00:00:00+00:00",
    "dateEnd": "2026-10-29T14:09:01+00:00",
    "status": "completed"
  }
}

Error response example

404 — the project has no active sprint, including when completion is called again:

JSON
{
  "success": false,
  "error": {
    "code": "ENTITY_NOT_FOUND",
    "message": "Sprint not found"
  }
}

Errors

HTTP Code Description
HTTP400 CodeINVALID_PARAMS DescriptiongroupId is not a positive integer
HTTP400 CodeFST_ERR_CTP_EMPTY_JSON_BODY DescriptionThe Content-Type: application/json header is passed with an empty body
HTTP404 CodeENTITY_NOT_FOUND DescriptionThe project has no active sprint, or no group with this groupId exists
HTTP403 CodeSCOPE_DENIED DescriptionThe key lacks the task scope
HTTP403 CodeWRITE_BLOCKED_READONLY_KEY DescriptionThe key is read-only
HTTP401 CodeTOKEN_MISSING DescriptionThe key has no tokens configured

The full list of common API errors — Errors.

Known specifics

  • Completion rewrites the dates and order. dateEnd is set to the completion time even if the planned end date has not yet arrived, and sort resets to 0.

See also