For AI agents: markdown of this page — /docs-content-en/scrum/stages/create.md documentation index — /llms.txt
Create a stage
POST /v1/scrum/sprints/:sprintId/stages
Adds a column to a sprint board. sprintId comes from the path, and sending it in the body is rejected.
Bitrix24 returns only an identifier, so the platform re-reads the created column and returns it in full — including the default values Bitrix24 filled in.
Path parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
ParametersprintId |
Typenumber | Requiredyes | DescriptionSprint ID. Obtain with GET /v1/scrum/sprints?groupId=N |
Request body
| Field | Type | Required | Description |
|---|---|---|---|
Fieldname |
Typestring | Requiredyes | DescriptionColumn name. Up to 255 characters |
Fieldtype |
Typestring | Requiredno | DescriptionNEW, WORK or FINISH. Defaults to WORK |
Fieldsort |
Typenumber | Requiredno | DescriptionColumn order. Defaults to 100 |
Fieldcolor |
Typestring | Requiredno | DescriptionSix hexadecimal characters, e.g. "00C4FB". A leading # is accepted and stripped |
Examples
curl — personal key
curl -X POST https://vibecode.bitrix24.com/v1/scrum/sprints/23/stages \
-H "X-Api-Key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{ "name": "In review", "type": "WORK", "sort": 250 }'
curl — OAuth application
curl -X POST https://vibecode.bitrix24.com/v1/scrum/sprints/23/stages \
-H "X-Api-Key: YOUR_APP_KEY" \
-H "Authorization: Bearer USER_SESSION_TOKEN" \
-H "Content-Type: application/json" \
-d '{ "name": "In review", "type": "WORK", "sort": 250 }'
JavaScript — personal key
const res = await fetch('https://vibecode.bitrix24.com/v1/scrum/sprints/23/stages', {
method: 'POST',
headers: {
'X-Api-Key': 'YOUR_API_KEY',
'Content-Type': 'application/json',
},
body: JSON.stringify({ name: 'In review', type: 'WORK', sort: 250 }),
})
const { data } = await res.json()
console.log('Stage ID:', data.id)
JavaScript — OAuth application
const res = await fetch('https://vibecode.bitrix24.com/v1/scrum/sprints/23/stages', {
method: 'POST',
headers: {
'X-Api-Key': 'YOUR_APP_KEY',
'Authorization': 'Bearer USER_SESSION_TOKEN',
'Content-Type': 'application/json',
},
body: JSON.stringify({ name: 'In review', type: 'WORK', sort: 250 }),
})
const { data } = await res.json()
console.log('Stage ID:', data.id)
Response fields
| Field | Type | Description |
|---|---|---|
Fieldsuccess |
Typeboolean | Descriptiontrue on successful creation, HTTP status 201 |
Fielddata.id |
Typenumber | DescriptionID of the created column |
Fielddata.name |
Typestring | DescriptionColumn name |
Fielddata.sort |
Typenumber | DescriptionColumn order |
Fielddata.type |
Typestring | DescriptionNEW, WORK or FINISH |
Fielddata.sprintId |
Typenumber | DescriptionSprint ID from the request path |
Fielddata.color |
Typestring | DescriptionSix hexadecimal characters without #. Defaults to 00C4FB if color is not sent |
If the column cannot be re-read, data contains only id — the column itself is created either way.
Response example
No color was sent in the request, so the response carries the default value:
{
"success": true,
"data": {
"id": 641,
"name": "In review",
"sort": 250,
"type": "WORK",
"sprintId": 23,
"color": "00C4FB"
}
}
Error response example
404 — no sprint with this ID:
{
"success": false,
"error": {
"code": "ENTITY_NOT_FOUND",
"message": "Sprint not found"
}
}
Errors
| HTTP | Code | Description |
|---|---|---|
| HTTP400 | CodeINVALID_PARAMS |
Descriptionname missing, name longer than 255 characters, type outside the set, color longer than six characters, or sprintId sent in the body |
| HTTP404 | CodeENTITY_NOT_FOUND |
DescriptionNo sprint with this ID exists |
| HTTP422 | CodeBITRIX_ERROR |
DescriptionBitrix24 returned an error the platform could not map to any of the other codes in this table. A permission refusal does not land here — it arrives as 403 BITRIX_ACCESS_DENIED |
| HTTP403 | CodeBITRIX_ACCESS_DENIED |
DescriptionThe Bitrix24 user the key acts as has no access to the sprint's scrum project |
| 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
- Validation is stricter than Bitrix24's, deliberately. Bitrix24 accepts a name longer than 255 characters, a color longer than six characters and any
typevalue, responds with success, and stores a truncated or substituted value. The platform refuses up front so you never get a column you did not ask for. - Adding to a completed sprint is allowed — Bitrix24 does not forbid it.