Developers
API Reference
HacknPlan API Beta
Public API for the HacknPlan service.
Base URL
https://api.hacknplan.com
Boards
11 endpoints
Boards
GET/v0/projects/{projectId}/boards
Gets the list of boards in the project.
/v0/projects/{projectId}/boards
Parameters
projectIdinteger (int32)
path
The unique identifier of the project.
RequiredincludeClosedboolean
query
True to include the closed boards in the result. Defaults to false.
Responses
200
array<board>
A list of board objects.
Example JSON
[ { "projectId": 1, "boardId": 1, "milestoneId": 1, "name": "string", "description": "string", "generalInfo": "string", "startDate": "2026-01-01T00:00:00Z", "dueDate": "2026-01-01T00:00:00Z", "closingDate": "2026-01-01T00:00:00Z", "creationDate": "2026-01-01T00:00:00Z", "creator": { "id": 1, "username": "string", "email": "string", "name": "string", "creationDate": "2026-01-01T00:00:00Z" }, "isDefault": true } ]401
no schema
Unauthorized
403
no schema
Forbidden
404
no schema
NotFound
POST/v0/projects/{projectId}/boards
[ADMIN] Creates a new board.
/v0/projects/{projectId}/boards
Parameters
projectIdinteger (int32)
path
The unique identifier of the project.
RequiredcreateBoardValuescreateBoardValues
body
The board creation values object.
Required
Responses
201
A newly created board object.
Example JSON
{ "projectId": 1, "boardId": 1, "milestoneId": 1, "name": "string", "description": "string", "generalInfo": "string", "startDate": "2026-01-01T00:00:00Z", "dueDate": "2026-01-01T00:00:00Z", "closingDate": "2026-01-01T00:00:00Z", "creationDate": "2026-01-01T00:00:00Z", "creator": { "id": 1, "username": "string", "email": "string", "name": "string", "creationDate": "2026-01-01T00:00:00Z" }, "isDefault": true }400
no schema
Invalid values object.
403
no schema
Forbidden
404
no schema
NotFound
GET/v0/projects/{projectId}/boards/{boardId}
Gets a board.
/v0/projects/{projectId}/boards/{boardId}
Parameters
projectIdinteger (int32)
path
The unique identifier of the project the board belongs to.
RequiredboardIdinteger (int32)
path
The unique identifier of the board.
Required
Responses
200
A board object.
Example JSON
{ "projectId": 1, "boardId": 1, "milestoneId": 1, "name": "string", "description": "string", "generalInfo": "string", "startDate": "2026-01-01T00:00:00Z", "dueDate": "2026-01-01T00:00:00Z", "closingDate": "2026-01-01T00:00:00Z", "creationDate": "2026-01-01T00:00:00Z", "creator": { "id": 1, "username": "string", "email": "string", "name": "string", "creationDate": "2026-01-01T00:00:00Z" }, "isDefault": true }401
no schema
Unauthorized
403
no schema
Forbidden
404
no schema
NotFound
PUT/v0/projects/{projectId}/boards/{boardId}
[ADMIN] Updates the board.
/v0/projects/{projectId}/boards/{boardId}
All the fields will be replaced, and optional values not set in the values object will be set to null. Use this method to remove values from board fields.
Parameters
projectIdinteger (int32)
path
The unique identifier of the project.
RequiredboardIdinteger (int32)
path
The unique identifier of the board.
RequiredupdateBoardValuesupdateBoardValues
body
The board update values object.
Required
Responses
200
The updated board object.
Example JSON
{ "projectId": 1, "boardId": 1, "milestoneId": 1, "name": "string", "description": "string", "generalInfo": "string", "startDate": "2026-01-01T00:00:00Z", "dueDate": "2026-01-01T00:00:00Z", "closingDate": "2026-01-01T00:00:00Z", "creationDate": "2026-01-01T00:00:00Z", "creator": { "id": 1, "username": "string", "email": "string", "name": "string", "creationDate": "2026-01-01T00:00:00Z" }, "isDefault": true }400
no schema
Invalid values object.
401
no schema
Unauthorized
403
no schema
Forbidden
404
no schema
NotFound
PATCH/v0/projects/{projectId}/boards/{boardId}
[ADMIN] Updates the board partially.
/v0/projects/{projectId}/boards/{boardId}
Only fields included in the value object will be updated, the rest will remain untouched.
Parameters
projectIdinteger (int32)
path
The unique identifier of the project.
RequiredboardIdinteger (int32)
path
The unique identifier of the board.
RequiredpatchBoardValuespatchBoardValues
body
The board patch values object.
Required
Responses
200
The updated board object.
Example JSON
{ "projectId": 1, "boardId": 1, "milestoneId": 1, "name": "string", "description": "string", "generalInfo": "string", "startDate": "2026-01-01T00:00:00Z", "dueDate": "2026-01-01T00:00:00Z", "closingDate": "2026-01-01T00:00:00Z", "creationDate": "2026-01-01T00:00:00Z", "creator": { "id": 1, "username": "string", "email": "string", "name": "string", "creationDate": "2026-01-01T00:00:00Z" }, "isDefault": true }400
no schema
Invalid values object.
401
no schema
Unauthorized
403
no schema
Forbidden
404
no schema
NotFound
DELETE/v0/projects/{projectId}/boards/{boardId}
[ADMIN] Deletes the board.
/v0/projects/{projectId}/boards/{boardId}
Parameters
projectIdinteger (int32)
path
The unique identifier of the project.
RequiredboardIdinteger (int32)
path
The unique identifier of the board.
RequiredremoveWorkItemsboolean
query
True to delete the contained work items, false to move them to the backlog. Defaults to false.
Responses
400
no schema
Invalid values object.
401
no schema
Unauthorized
403
no schema
Forbidden
404
no schema
NotFound
POST/v0/projects/{projectId}/boards/{boardId}/closure
[ADMIN] Closes the board.
/v0/projects/{projectId}/boards/{boardId}/closure
Parameters
projectIdinteger (int32)
path
The unique identifier of the project.
RequiredboardIdinteger (int32)
path
The unique identifier of the board.
RequiredcloseBoardValuescloseBoardValues
body
The board closing values object.
Required
Responses
400
no schema
Invalid values object.
401
no schema
Unauthorized
403
no schema
Forbidden
404
no schema
NotFound
409
no schema
The board is already closed.
DELETE/v0/projects/{projectId}/boards/{boardId}/closure
[ADMIN] Reonpens the board.
/v0/projects/{projectId}/boards/{boardId}/closure
Parameters
projectIdinteger (int32)
path
The unique identifier of the project.
RequiredboardIdinteger (int32)
path
The unique identifier of the board.
Required
Responses
401
no schema
Unauthorized
403
no schema
Forbidden
404
no schema
Resource not found.
409
no schema
The board is already open.
GET/v0/projects/{projectId}/boards/{boardId}/metrics
Gets the board metrics.
/v0/projects/{projectId}/boards/{boardId}/metrics
Parameters
projectIdinteger (int32)
path
The unique identifier of the project.
RequiredboardIdinteger (int32)
path
The unique identifier of the board.
RequireduserIdinteger (int32)
query
The unique identifier of the user.
Responses
200
A board metrics object.
Example JSON
{ "categories": [ { "category": { "projectId": 1, "categoryId": 1, "name": "string", "icon": "string", "color": "string", "creationDate": "2026-01-01T00:00:00Z" }, "totalWorkItems": 1, "totalWorkItemsVariation": 1, "openWorkItems": 1, "closedWorkItems": 1, "estimatedCost": 1, "estimatedCostVariation": 1, "loggedCost": 1, "remainingCost": 1 } ], "totalWorkItems": 1, "totalWorkItemsVariation": 1, "openWorkItems": 1, "closedWorkItems": 1, "estimatedCost": 1, "estimatedCostVariation": 1, "loggedCost": 1, "remainingCost": 1 }401
no schema
Unauthorized
403
no schema
Forbidden
404
no schema
NotFound
POST/v0/projects/{projectId}/boards/default
[ADMIN] Sets the default board for the project.
/v0/projects/{projectId}/boards/default
Parameters
projectIdinteger (int32)
path
The unique identifier of the project.
RequiredboardIdinteger (int32)
body
The unique identifier of the board.
Required
Responses
200
no schema
OK
401
no schema
Unauthorized
403
no schema
Forbidden
404
no schema
NotFound
409
no schema
The board is closed.
DELETE/v0/projects/{projectId}/boards/default
[ADMIN] Clears the default board of the project.
/v0/projects/{projectId}/boards/default
Parameters
projectIdinteger (int32)
path
Required
Responses
200
no schema
OK
401
no schema
Unauthorized
403
no schema
Forbidden
404
no schema
NotFound
Design Elements
7 endpoints
Design Elements
GET/v0/projects/{projectId}/designelements
Gets the game design model.
/v0/projects/{projectId}/designelements
Parameters
projectIdinteger (int32)
path
The unique identifier of the project.
Required
Responses
200
array<designElement>
A list of design element objects.
Example JSON
[ { "index": 1, "projectId": 1, "designElementId": 1, "type": { "projectId": 1, "designElementTypeId": 1, "name": "string", "creationDate": "2026-01-01T00:00:00Z" }, "name": "string", "prefix": "string", "parent": {}, "children": [ {} ], "totalWorkItemCount": 1, "closedWorkItemCount": 1, "description": "string", "startDate": "2026-01-01T00:00:00Z", "dueDate": "2026-01-01T00:00:00Z", "creationDate": "2026-01-01T00:00:00Z", "updateDate": "2026-01-01T00:00:00Z", "user": { "projectId": 1, "user": { "id": 1, "username": "string", "email": "string", "name": "string", "creationDate": "2026-01-01T00:00:00Z" }, "isAdmin": true, "isGuest": true, "isActive": true, "creationDate": "2026-01-01T00:00:00Z", "permissions": { "categoryPermissions": [ {} ], "gameDesignModelPermissions": { "id": null, "name": null, "canRead": null, "canWrite": null } }, "role": { "projectId": 1, "roleId": 1, "name": "string", "isAdmin": true, "creationDate": "2026-01-01T00:00:00Z", "permissions": {} } } } ]401
no schema
Unauthorized
403
no schema
Forbidden
404
no schema
NotFound
POST/v0/projects/{projectId}/designelements
Creates a new design element.
/v0/projects/{projectId}/designelements
Parameters
projectIdinteger (int32)
path
RequiredcreateDesignElementValuescreateDesignElementValues
body
Required
Responses
The new game design element object.
Example JSON
{ "index": 1, "projectId": 1, "designElementId": 1, "type": { "projectId": 1, "designElementTypeId": 1, "name": "string", "creationDate": "2026-01-01T00:00:00Z" }, "name": "string", "prefix": "string", "parent": {}, "children": [ {} ], "totalWorkItemCount": 1, "closedWorkItemCount": 1, "description": "string", "startDate": "2026-01-01T00:00:00Z", "dueDate": "2026-01-01T00:00:00Z", "creationDate": "2026-01-01T00:00:00Z", "updateDate": "2026-01-01T00:00:00Z", "user": { "projectId": 1, "user": { "id": 1, "username": "string", "email": "string", "name": "string", "creationDate": "2026-01-01T00:00:00Z" }, "isAdmin": true, "isGuest": true, "isActive": true, "creationDate": "2026-01-01T00:00:00Z", "permissions": { "categoryPermissions": [ { "categoryId": null, "canRead": null, "canWrite": null, "canUpdate": null } ], "gameDesignModelPermissions": { "id": 1, "name": "string", "canRead": true, "canWrite": true } }, "role": { "projectId": 1, "roleId": 1, "name": "string", "isAdmin": true, "creationDate": "2026-01-01T00:00:00Z", "permissions": {} } } }400
no schema
Invalid values object.
401
no schema
Unauthorized
403
no schema
Forbidden
404
no schema
NotFound
GET/v0/projects/{projectId}/designelements/{designElementId}
Gets a design element.
/v0/projects/{projectId}/designelements/{designElementId}
Parameters
projectIdinteger (int32)
path
The unique identifier of the project.
RequireddesignElementIdinteger (int32)
path
The unique identifier of the design element.
RequiredincludeChildrenboolean
query
True to include the whole hierarchy of child elements in the result.
Responses
The game design element object.
Example JSON
{ "index": 1, "projectId": 1, "designElementId": 1, "type": { "projectId": 1, "designElementTypeId": 1, "name": "string", "creationDate": "2026-01-01T00:00:00Z" }, "name": "string", "prefix": "string", "parent": {}, "children": [ {} ], "totalWorkItemCount": 1, "closedWorkItemCount": 1, "description": "string", "startDate": "2026-01-01T00:00:00Z", "dueDate": "2026-01-01T00:00:00Z", "creationDate": "2026-01-01T00:00:00Z", "updateDate": "2026-01-01T00:00:00Z", "user": { "projectId": 1, "user": { "id": 1, "username": "string", "email": "string", "name": "string", "creationDate": "2026-01-01T00:00:00Z" }, "isAdmin": true, "isGuest": true, "isActive": true, "creationDate": "2026-01-01T00:00:00Z", "permissions": { "categoryPermissions": [ { "categoryId": null, "canRead": null, "canWrite": null, "canUpdate": null } ], "gameDesignModelPermissions": { "id": 1, "name": "string", "canRead": true, "canWrite": true } }, "role": { "projectId": 1, "roleId": 1, "name": "string", "isAdmin": true, "creationDate": "2026-01-01T00:00:00Z", "permissions": {} } } }401
no schema
Unauthorized
403
no schema
Forbidden
404
no schema
NotFound
PUT/v0/projects/{projectId}/designelements/{designElementId}
Updates the design element.
/v0/projects/{projectId}/designelements/{designElementId}
All the fields will be replaced, and optional values not set in the values object will be set to null.
Parameters
projectIdinteger (int32)
path
The unique identifier of the project.
RequireddesignElementIdinteger (int32)
path
The unique identifier of the design element.
RequiredupdateDesignElementValuesupdateDesignElementValues
body
The design element update values object.
Required
Responses
200
no schema
OK
400
no schema
Invalid values object.
401
no schema
Unauthorized
403
no schema
Forbidden
404
no schema
NotFound
PATCH/v0/projects/{projectId}/designelements/{designElementId}
Updates the design element partially.
/v0/projects/{projectId}/designelements/{designElementId}
Only fields included in the value object will be updated, the rest will remain untouched.
Parameters
projectIdinteger (int32)
path
The unique identifier of the project.
RequireddesignElementIdinteger (int32)
path
The unique identifier of the design element.
RequiredpatchDesignElementValuespatchDesignElementValues
body
The design element patch values object.
Required
Responses
200
no schema
OK
400
no schema
Invalid values object.
401
no schema
Unauthorized
403
no schema
Forbidden
404
no schema
NotFound
DELETE/v0/projects/{projectId}/designelements/{designElementId}
Deletes the design element.
/v0/projects/{projectId}/designelements/{designElementId}
Parameters
projectIdinteger (int32)
path
The unique identifier of the project.
RequireddesignElementIdinteger (int32)
path
The unique identifier of the design element.
RequireddeleteDesignElementValuesdeleteDesignElementValues
body
The design element deletion values object.
Required
Responses
200
no schema
OK
400
no schema
Invalid values object.
401
no schema
Unauthorized
403
no schema
Forbidden
404
no schema
NotFound
GET/v0/projects/{projectId}/designelements/{designElementId}/metrics
Gets the metrics for the game design element.
/v0/projects/{projectId}/designelements/{designElementId}/metrics
Parameters
projectIdinteger (int32)
path
The unique identifier of the project.
RequireddesignElementIdinteger (int32)
path
The unique identifier of the design element.
RequiredincludeChildrenboolean
query
True if the result should sum up the metrics of the hierarchy of children elements. Defaults to false.
Responses
200
The game design model metrics object.
Example JSON
{ "categories": [ { "category": { "projectId": 1, "categoryId": 1, "name": "string", "icon": "string", "color": "string", "creationDate": "2026-01-01T00:00:00Z" }, "totalWorkItems": 1, "totalWorkItemsVariation": 1, "openWorkItems": 1, "closedWorkItems": 1, "estimatedCost": 1, "estimatedCostVariation": 1, "loggedCost": 1, "remainingCost": 1 } ], "totalWorkItems": 1, "totalWorkItemsVariation": 1, "openWorkItems": 1, "closedWorkItems": 1, "estimatedCost": 1, "estimatedCostVariation": 1, "loggedCost": 1, "remainingCost": 1 }401
no schema
Unauthorized
403
no schema
Forbidden
404
no schema
NotFound
Design Elements / Attachments
4 endpoints
Design Elements / Attachments
GET/v0/projects/{projectId}/designelements/{designElementId}/attachments
Gets a list of design element attachments with pagination.
/v0/projects/{projectId}/designelements/{designElementId}/attachments
Parameters
projectIdinteger (int32)
path
The unique identifier of the project.
RequireddesignElementIdinteger (int32)
path
The unique identifier of the design element.
Requiredoffsetinteger (int32)
query
The number of items skipped from the results. Defaults to 0. Min value 0.
limitinteger (int32)
query
The max number of items included in the results, after the offset. Defaults to 20. Min value 1. Max value 100.
Responses
200
pagedResult<designElementAttachment>
A paged list of design element attachment objects.
Example JSON
{ "totalCount": 1, "offset": 1, "limit": 1, "items": [ { "projectId": 1, "designElementId": 1, "attachmentId": 1, "file": { "projectId": 1, "fileId": 1, "name": "string", "thumbName": "string", "url": "string", "thumbUrl": "string", "size": 1, "isImage": true, "user": { "id": null, "username": null, "email": null, "name": null, "creationDate": null }, "creationDate": "2026-01-01T00:00:00Z" }, "user": {}, "creationDate": "2026-01-01T00:00:00Z" } ] }400
no schema
Invalid offset and limit values.
401
no schema
Unauthorized
403
no schema
Forbidden
404
no schema
NotFound
POST/v0/projects/{projectId}/designelements/{designElementId}/attachments
Creates a design element attachment from MIME multipart content.
/v0/projects/{projectId}/designelements/{designElementId}/attachments
This endpoint requires the Content-type header set to multipart/form-data.
Parameters
projectIdinteger (int32)
path
The unique identifier of the project.
RequireddesignElementIdinteger (int32)
path
The unique identifier of the design element.
Required
Responses
A new design element attachment object.
Example JSON
{ "projectId": 1, "designElementId": 1, "attachmentId": 1, "file": { "projectId": 1, "fileId": 1, "name": "string", "thumbName": "string", "url": "string", "thumbUrl": "string", "size": 1, "isImage": true, "user": { "id": 1, "username": "string", "email": "string", "name": "string", "creationDate": "2026-01-01T00:00:00Z" }, "creationDate": "2026-01-01T00:00:00Z" }, "user": {}, "creationDate": "2026-01-01T00:00:00Z" }400
no schema
File size limit exceeded.
401
no schema
Unauthorized
403
no schema
Forbidden
404
no schema
NotFound
409
no schema
Account storage limit exceeded.
415
no schema
The content is not MIME multipart content.
GET/v0/projects/{projectId}/designelements/{designElementId}/attachments/{attachmentId}
Gets a design element attachment.
/v0/projects/{projectId}/designelements/{designElementId}/attachments/{attachmentId}
Parameters
projectIdinteger (int32)
path
The unique identifier of the project.
RequireddesignElementIdinteger (int32)
path
The unique identifier of the design element.
RequiredattachmentIdinteger (int32)
path
The unique identifier of the attachment
Required
Responses
A design element object.
Example JSON
{ "projectId": 1, "designElementId": 1, "attachmentId": 1, "file": { "projectId": 1, "fileId": 1, "name": "string", "thumbName": "string", "url": "string", "thumbUrl": "string", "size": 1, "isImage": true, "user": { "id": 1, "username": "string", "email": "string", "name": "string", "creationDate": "2026-01-01T00:00:00Z" }, "creationDate": "2026-01-01T00:00:00Z" }, "user": {}, "creationDate": "2026-01-01T00:00:00Z" }401
no schema
Unauthorized
403
no schema
Forbidden
404
no schema
NotFound
DELETE/v0/projects/{projectId}/designelements/{designElementId}/attachments/{attachmentId}
Deletes a design element attachment.
/v0/projects/{projectId}/designelements/{designElementId}/attachments/{attachmentId}
Parameters
projectIdinteger (int32)
path
The unique identifier of the project.
RequireddesignElementIdinteger (int32)
path
The unique identifier of the design element.
RequiredattachmentIdinteger (int32)
path
The unique identifier of the attachment.
Required
Responses
200
no schema
OK
401
no schema
Unauthorized
403
no schema
Forbidden
404
no schema
NotFound
Design Elements / Comments
4 endpoints
Design Elements / Comments
DELETE/v0/projects/{projectId}/designelement/{designElementId}/comments/{commentId}
Deletes the design element comment.
/v0/projects/{projectId}/designelement/{designElementId}/comments/{commentId}
Only the author of the comment and admins can delete it.
Parameters
projectIdinteger (int32)
path
The unique identifier of the project.
RequireddesignElementIdinteger (int32)
path
The unique identifier of the design element.
RequiredcommentIdinteger (int32)
path
The unique identifier of the comment.
Required
Responses
200
no schema
OK
401
no schema
Unauthorized
403
no schema
Forbidden
404
no schema
NotFound
GET/v0/projects/{projectId}/designelements/{designElementId}/comments
Gets a list of design element comments with pagination.
/v0/projects/{projectId}/designelements/{designElementId}/comments
Parameters
projectIdinteger (int32)
path
The unique identifier of the project.
RequireddesignElementIdinteger (int32)
path
The unique identifier of the design element.
Requiredoffsetinteger (int32)
query
The number of items skipped from the results. Defaults to 0. Min value 0.
limitinteger (int32)
query
The max number of items included in the results, after the offset. Defaults to 20. Min value 1. Max value 100.
Responses
200
pagedResult<designElementComment>
A paged list of design element comment objects.
Example JSON
{ "totalCount": 1, "offset": 1, "limit": 1, "items": [ { "projectId": 1, "designElementId": 1, "commentId": 1, "text": "string", "user": { "id": 1, "username": "string", "email": "string", "name": "string", "creationDate": "2026-01-01T00:00:00Z" }, "creationDate": "2026-01-01T00:00:00Z", "updateDate": "2026-01-01T00:00:00Z" } ] }400
no schema
Invalid offset or limit parameters.
401
no schema
Unauthorized
403
no schema
Forbidden
404
no schema
NotFound
POST/v0/projects/{projectId}/designelements/{designElementId}/comments
Creates a new comment in the design element.
/v0/projects/{projectId}/designelements/{designElementId}/comments
Parameters
projectIdinteger (int32)
path
The unique identifier of the project.
RequireddesignElementIdinteger (int32)
path
The unique identifier of the design element.
Requiredtextstring
body
The text content of the comment. Max 5000 chars.
Required
Responses
A new design element comment object.
Example JSON
{ "projectId": 1, "designElementId": 1, "commentId": 1, "text": "string", "user": { "id": 1, "username": "string", "email": "string", "name": "string", "creationDate": "2026-01-01T00:00:00Z" }, "creationDate": "2026-01-01T00:00:00Z", "updateDate": "2026-01-01T00:00:00Z" }400
no schema
Invalid comment text.
401
no schema
Unauthorized
403
no schema
Forbidden
404
no schema
NotFound
PUT/v0/projects/{projectId}/designelements/{designElementId}/comments/{commentId}
Updates the design element comment.
/v0/projects/{projectId}/designelements/{designElementId}/comments/{commentId}
Only the author of the comment can update it.
Parameters
projectIdinteger (int32)
path
The unique identifier of the project.
RequireddesignElementIdinteger (int32)
path
The unique identifier of the design element.
RequiredcommentIdinteger (int32)
path
The unique identifier of the comment.
Requiredtextstring
body
The text content of the comment. Max 5000 chars.
Required
Responses
200
no schema
OK
400
no schema
Invalid comment text.
401
no schema
Unauthorized
403
no schema
Forbidden
404
no schema
NotFound
Milestones
9 endpoints
Milestones
GET/v0/projects/{projectId}/milestones
Gets a list of the milestones in the project.
/v0/projects/{projectId}/milestones
Parameters
projectIdinteger (int32)
path
The unique identifier of the project.
RequiredincludeBoardsboolean
query
True to include the boards in the milestone. Defaults to false.
includeClosedboolean
query
True to include the closed boards in the result. Defaults to false.
Responses
200
array<milestone>
A list of milestone objects.
Example JSON
[ { "projectId": 1, "milestoneId": 1, "name": "string", "generalInfo": "string", "creator": { "id": 1, "username": "string", "email": "string", "name": "string", "creationDate": "2026-01-01T00:00:00Z" }, "startDate": "2026-01-01T00:00:00Z", "dueDate": "2026-01-01T00:00:00Z", "closingDate": "2026-01-01T00:00:00Z", "creationDate": "2026-01-01T00:00:00Z", "boards": [ { "projectId": 1, "boardId": 1, "milestoneId": 1, "name": "string", "description": "string", "generalInfo": "string", "startDate": "2026-01-01T00:00:00Z", "dueDate": "2026-01-01T00:00:00Z", "closingDate": "2026-01-01T00:00:00Z", "creationDate": "2026-01-01T00:00:00Z", "creator": {}, "isDefault": true } ] } ]401
no schema
Unauthorized
403
no schema
Forbidden
404
no schema
NotFound
POST/v0/projects/{projectId}/milestones
[ADMIN] Creates a new milestone.
/v0/projects/{projectId}/milestones
Parameters
projectIdinteger (int32)
path
The unique identifier of the project.
RequiredcreateMilestoneValuescreateMilestoneValues
body
The milestone creation values object.
Required
Responses
201
A newly created milestone object.
Example JSON
{ "projectId": 1, "milestoneId": 1, "name": "string", "generalInfo": "string", "creator": { "id": 1, "username": "string", "email": "string", "name": "string", "creationDate": "2026-01-01T00:00:00Z" }, "startDate": "2026-01-01T00:00:00Z", "dueDate": "2026-01-01T00:00:00Z", "closingDate": "2026-01-01T00:00:00Z", "creationDate": "2026-01-01T00:00:00Z", "boards": [ { "projectId": 1, "boardId": 1, "milestoneId": 1, "name": "string", "description": "string", "generalInfo": "string", "startDate": "2026-01-01T00:00:00Z", "dueDate": "2026-01-01T00:00:00Z", "closingDate": "2026-01-01T00:00:00Z", "creationDate": "2026-01-01T00:00:00Z", "creator": {}, "isDefault": true } ] }400
no schema
Invalid values object.
401
no schema
Unauthorized
403
no schema
Forbidden
404
no schema
NotFound
GET/v0/projects/{projectId}/milestones/{milestoneId}
Gets a milestone.
/v0/projects/{projectId}/milestones/{milestoneId}
Parameters
projectIdinteger (int32)
path
The unique identifier of the project.
RequiredmilestoneIdinteger (int32)
path
The unique identifier of the milestone.
RequiredincludeBoardsboolean
query
True to return the list of boards in the milestones. Defaults to false.
Responses
200
A milestone object.
Example JSON
{ "projectId": 1, "milestoneId": 1, "name": "string", "generalInfo": "string", "creator": { "id": 1, "username": "string", "email": "string", "name": "string", "creationDate": "2026-01-01T00:00:00Z" }, "startDate": "2026-01-01T00:00:00Z", "dueDate": "2026-01-01T00:00:00Z", "closingDate": "2026-01-01T00:00:00Z", "creationDate": "2026-01-01T00:00:00Z", "boards": [ { "projectId": 1, "boardId": 1, "milestoneId": 1, "name": "string", "description": "string", "generalInfo": "string", "startDate": "2026-01-01T00:00:00Z", "dueDate": "2026-01-01T00:00:00Z", "closingDate": "2026-01-01T00:00:00Z", "creationDate": "2026-01-01T00:00:00Z", "creator": {}, "isDefault": true } ] }401
no schema
Unauthorized
403
no schema
Forbidden
404
no schema
NotFound
PUT/v0/projects/{projectId}/milestones/{milestoneId}
[ADMIN] Updates the milestone.
/v0/projects/{projectId}/milestones/{milestoneId}
All the fields will be replaced, and optional values not set in the values object will be set to null. Use this method to remove values from milestone fields.
Parameters
projectIdinteger (int32)
path
The unique identifier of the project the milestone belongs to.
RequiredmilestoneIdinteger (int32)
path
The unique identifier of the milestione within the project.
RequiredupdateMilestoneValuesupdateMilestoneValues
body
The milestone update values object.
Required
Responses
200
array<milestone>
The updated milestone object.
Example JSON
[ { "projectId": 1, "milestoneId": 1, "name": "string", "generalInfo": "string", "creator": { "id": 1, "username": "string", "email": "string", "name": "string", "creationDate": "2026-01-01T00:00:00Z" }, "startDate": "2026-01-01T00:00:00Z", "dueDate": "2026-01-01T00:00:00Z", "closingDate": "2026-01-01T00:00:00Z", "creationDate": "2026-01-01T00:00:00Z", "boards": [ { "projectId": 1, "boardId": 1, "milestoneId": 1, "name": "string", "description": "string", "generalInfo": "string", "startDate": "2026-01-01T00:00:00Z", "dueDate": "2026-01-01T00:00:00Z", "closingDate": "2026-01-01T00:00:00Z", "creationDate": "2026-01-01T00:00:00Z", "creator": {}, "isDefault": true } ] } ]400
no schema
Invalid values object.
401
no schema
Unauthorized
403
no schema
Forbidden
404
no schema
NotFound
PATCH/v0/projects/{projectId}/milestones/{milestoneId}
[ADMIN] Updates the milestone partially.
/v0/projects/{projectId}/milestones/{milestoneId}
Only fields included in the values object will be updated, the rest will remain untouched.
Parameters
projectIdinteger (int32)
path
The unique identifier of the project.
RequiredmilestoneIdinteger (int32)
path
The unique identifier of the milestone.
RequiredpatchMilestoneValuespatchMilestoneValues
body
The milestone patch values object.
Required
Responses
200
array<milestone>
The updated milestone object.
Example JSON
[ { "projectId": 1, "milestoneId": 1, "name": "string", "generalInfo": "string", "creator": { "id": 1, "username": "string", "email": "string", "name": "string", "creationDate": "2026-01-01T00:00:00Z" }, "startDate": "2026-01-01T00:00:00Z", "dueDate": "2026-01-01T00:00:00Z", "closingDate": "2026-01-01T00:00:00Z", "creationDate": "2026-01-01T00:00:00Z", "boards": [ { "projectId": 1, "boardId": 1, "milestoneId": 1, "name": "string", "description": "string", "generalInfo": "string", "startDate": "2026-01-01T00:00:00Z", "dueDate": "2026-01-01T00:00:00Z", "closingDate": "2026-01-01T00:00:00Z", "creationDate": "2026-01-01T00:00:00Z", "creator": {}, "isDefault": true } ] } ]400
no schema
Invalid values object.
401
no schema
Unauthorized
403
no schema
Forbidden
404
no schema
NotFound
DELETE/v0/projects/{projectId}/milestones/{milestoneId}
[ADMIN] Deletes the milestone.
/v0/projects/{projectId}/milestones/{milestoneId}
Parameters
projectIdinteger (int32)
path
The unique identifier of the project.
RequiredmilestoneIdinteger (int32)
path
The unique identifier of the milestone.
RequireddeleteBoardsboolean
query
True to delete all the boards in the milestone, false to keep them without milestone assigned. Defaults to false.
deleteWorkItemsboolean
query
True to delete the work items in boards, if 'deleteBoards' is true. Defaults to false.
Responses
200
no schema
OK
401
no schema
Unauthorized
403
no schema
Forbidden
404
no schema
Resource not found.
POST/v0/projects/{projectId}/milestones/{milestoneId}/closure
[ADMIN] Closes the milestone.
/v0/projects/{projectId}/milestones/{milestoneId}/closure
Parameters
projectIdinteger (int32)
path
The unique identifier of the project.
RequiredmilestoneIdinteger (int32)
path
The unique identifier of the milestone.
RequiredcloseMilestoneValuescloseMilestoneValues
body
The milestone closing value object.
Required
Responses
200
no schema
OK
400
no schema
Invalid values object.
401
no schema
Unauthorized
403
no schema
Forbidden
404
no schema
NotFound
DELETE/v0/projects/{projectId}/milestones/{milestoneId}/closure
[ADMIN] Reopens the milestone.
/v0/projects/{projectId}/milestones/{milestoneId}/closure
Parameters
projectIdinteger (int32)
path
The unique identifier of the project.
RequiredmilestoneIdinteger (int32)
path
The unique identifier of the milestone.
Required
Responses
200
no schema
OK
401
no schema
Unauthorized
403
no schema
Forbidden
404
no schema
Resource not found.
GET/v0/projects/{projectId}/milestones/{milestoneId}/metrics
Gets the milestone metrics.
/v0/projects/{projectId}/milestones/{milestoneId}/metrics
Parameters
projectIdinteger (int32)
path
The unique identifier of the project.
RequiredmilestoneIdinteger (int32)
path
The unique identifier of the milestone.
RequireduserIdinteger (int32)
query
The unique identifier of the user.
Responses
200
A milestone metrics object.
Example JSON
{ "categories": [ { "category": { "projectId": 1, "categoryId": 1, "name": "string", "icon": "string", "color": "string", "creationDate": "2026-01-01T00:00:00Z" }, "totalWorkItems": 1, "totalWorkItemsVariation": 1, "openWorkItems": 1, "closedWorkItems": 1, "estimatedCost": 1, "estimatedCostVariation": 1, "loggedCost": 1, "remainingCost": 1 } ], "totalWorkItems": 1, "totalWorkItemsVariation": 1, "openWorkItems": 1, "closedWorkItems": 1, "estimatedCost": 1, "estimatedCostVariation": 1, "loggedCost": 1, "remainingCost": 1 }401
no schema
Unauthorized
403
no schema
Forbidden
404
no schema
NotFound
Projects
10 endpoints
Projects
GET/v0/projects
Get all the projects the authenticated user is member of.
/v0/projects
Responses
200
array<project>
A list of project objects.
Example JSON
[ { "id": 1, "workspaceId": 1, "name": "string", "description": "string", "generalInfo": "string", "closingDate": "2026-01-01T00:00:00Z", "creationDate": "2026-01-01T00:00:00Z", "owner": { "id": 1, "username": "string", "email": "string", "name": "string", "creationDate": "2026-01-01T00:00:00Z" }, "costMetric": "string", "isDemo": true, "hoursPerDay": 1, "moduleConfig": { "workItems": true, "workItemCategories": true, "workItemDates": true, "workItemCosts": true, "workItemSubTasks": true, "workItemDependencies": true, "workItemAttachments": true, "workItemComments": true, "workItemTags": true, "gameDesignModel": true, "gameDesignModelTypes": true, "gameDesignModelDates": true, "gameDesignModelAttachments": true, "gameDesignModelComments": true, "calendar": true, "burndownChart": true, "ganttChart": true, "metrics": true, "activity": true, "notifications": true, "forceWorkItemDesignElement": true, "forceWorkItemBoard": true, "forceWorkItemEstimatedCost": true, "forceWorkItemDueDate": true, "forceWorkItemDescription": true, "forceWorkItemUser": true, "forceWorkItemTag": true }, "defaultBoardId": 1 } ]401
no schema
Unauthorized
POST/v0/projects
Creates a new project.
/v0/projects
Parameters
createProjectValuescreateProjectValues
body
An object with the values for the new project.
Required
Responses
201
A newly created project object.
Example JSON
{ "id": 1, "workspaceId": 1, "name": "string", "description": "string", "generalInfo": "string", "closingDate": "2026-01-01T00:00:00Z", "creationDate": "2026-01-01T00:00:00Z", "owner": { "id": 1, "username": "string", "email": "string", "name": "string", "creationDate": "2026-01-01T00:00:00Z" }, "costMetric": "string", "isDemo": true, "hoursPerDay": 1, "moduleConfig": { "workItems": true, "workItemCategories": true, "workItemDates": true, "workItemCosts": true, "workItemSubTasks": true, "workItemDependencies": true, "workItemAttachments": true, "workItemComments": true, "workItemTags": true, "gameDesignModel": true, "gameDesignModelTypes": true, "gameDesignModelDates": true, "gameDesignModelAttachments": true, "gameDesignModelComments": true, "calendar": true, "burndownChart": true, "ganttChart": true, "metrics": true, "activity": true, "notifications": true, "forceWorkItemDesignElement": true, "forceWorkItemBoard": true, "forceWorkItemEstimatedCost": true, "forceWorkItemDueDate": true, "forceWorkItemDescription": true, "forceWorkItemUser": true, "forceWorkItemTag": true }, "defaultBoardId": 1 }400
no schema
Invalid values object.
401
no schema
Unauthorized
403
no schema
Forbidden
GET/v0/projects/{projectId}
Gets a project.
/v0/projects/{projectId}
Parameters
projectIdinteger (int32)
path
The unique identifier of the project.
Required
Responses
200
A project object.
Example JSON
{ "id": 1, "workspaceId": 1, "name": "string", "description": "string", "generalInfo": "string", "closingDate": "2026-01-01T00:00:00Z", "creationDate": "2026-01-01T00:00:00Z", "owner": { "id": 1, "username": "string", "email": "string", "name": "string", "creationDate": "2026-01-01T00:00:00Z" }, "costMetric": "string", "isDemo": true, "hoursPerDay": 1, "moduleConfig": { "workItems": true, "workItemCategories": true, "workItemDates": true, "workItemCosts": true, "workItemSubTasks": true, "workItemDependencies": true, "workItemAttachments": true, "workItemComments": true, "workItemTags": true, "gameDesignModel": true, "gameDesignModelTypes": true, "gameDesignModelDates": true, "gameDesignModelAttachments": true, "gameDesignModelComments": true, "calendar": true, "burndownChart": true, "ganttChart": true, "metrics": true, "activity": true, "notifications": true, "forceWorkItemDesignElement": true, "forceWorkItemBoard": true, "forceWorkItemEstimatedCost": true, "forceWorkItemDueDate": true, "forceWorkItemDescription": true, "forceWorkItemUser": true, "forceWorkItemTag": true }, "defaultBoardId": 1 }401
no schema
Unauthorized
403
no schema
Forbidden
404
no schema
NotFound
PUT/v0/projects/{projectId}
[ADMIN] Updates the project.
/v0/projects/{projectId}
All the fields will be replaced, and optional values not set in the values object will be set to null.
Parameters
projectIdinteger (int32)
path
The unique identifier of the project.
RequiredupdateProjectValuesupdateProjectValues
body
An object with the values to update.
Required
Responses
200
The updated project object.
Example JSON
{ "id": 1, "workspaceId": 1, "name": "string", "description": "string", "generalInfo": "string", "closingDate": "2026-01-01T00:00:00Z", "creationDate": "2026-01-01T00:00:00Z", "owner": { "id": 1, "username": "string", "email": "string", "name": "string", "creationDate": "2026-01-01T00:00:00Z" }, "costMetric": "string", "isDemo": true, "hoursPerDay": 1, "moduleConfig": { "workItems": true, "workItemCategories": true, "workItemDates": true, "workItemCosts": true, "workItemSubTasks": true, "workItemDependencies": true, "workItemAttachments": true, "workItemComments": true, "workItemTags": true, "gameDesignModel": true, "gameDesignModelTypes": true, "gameDesignModelDates": true, "gameDesignModelAttachments": true, "gameDesignModelComments": true, "calendar": true, "burndownChart": true, "ganttChart": true, "metrics": true, "activity": true, "notifications": true, "forceWorkItemDesignElement": true, "forceWorkItemBoard": true, "forceWorkItemEstimatedCost": true, "forceWorkItemDueDate": true, "forceWorkItemDescription": true, "forceWorkItemUser": true, "forceWorkItemTag": true }, "defaultBoardId": 1 }400
no schema
Invalid values object.
401
no schema
Unauthorized
403
no schema
Forbidden
404
no schema
NotFound
PATCH/v0/projects/{projectId}
[ADMIN] Updates the project partially.
/v0/projects/{projectId}
Only fields included in the value object will be updated, the rest will remain untouched.
Parameters
projectIdinteger (int32)
path
The unique identifier of the project.
RequiredpatchProjectValuespatchProjectValues
body
An object with the values to update.
Required
Responses
200
The updated project object.
Example JSON
{ "id": 1, "workspaceId": 1, "name": "string", "description": "string", "generalInfo": "string", "closingDate": "2026-01-01T00:00:00Z", "creationDate": "2026-01-01T00:00:00Z", "owner": { "id": 1, "username": "string", "email": "string", "name": "string", "creationDate": "2026-01-01T00:00:00Z" }, "costMetric": "string", "isDemo": true, "hoursPerDay": 1, "moduleConfig": { "workItems": true, "workItemCategories": true, "workItemDates": true, "workItemCosts": true, "workItemSubTasks": true, "workItemDependencies": true, "workItemAttachments": true, "workItemComments": true, "workItemTags": true, "gameDesignModel": true, "gameDesignModelTypes": true, "gameDesignModelDates": true, "gameDesignModelAttachments": true, "gameDesignModelComments": true, "calendar": true, "burndownChart": true, "ganttChart": true, "metrics": true, "activity": true, "notifications": true, "forceWorkItemDesignElement": true, "forceWorkItemBoard": true, "forceWorkItemEstimatedCost": true, "forceWorkItemDueDate": true, "forceWorkItemDescription": true, "forceWorkItemUser": true, "forceWorkItemTag": true }, "defaultBoardId": 1 }400
no schema
Invalid values object.
401
no schema
Unauthorized
403
no schema
Forbidden
404
no schema
NotFound
DELETE/v0/projects/{projectId}
[OWNER] Deletes a project.
/v0/projects/{projectId}
Parameters
projectIdinteger (int32)
path
The unique identifier of the project.
Required
Responses
200
no schema
OK
401
no schema
Unauthorized
403
no schema
Forbidden
404
no schema
Project not found.
POST/v0/projects/{projectId}/closure
[ADMIN] Closes the project.
/v0/projects/{projectId}/closure
Parameters
projectIdinteger (int32)
path
The unique identifier of the project.
Required
Responses
200
no schema
OK
401
no schema
Unauthorized
403
no schema
Forbidden
404
no schema
NotFound
409
no schema
The project is already closed.
DELETE/v0/projects/{projectId}/closure
[ADMIN] Reopens the project.
/v0/projects/{projectId}/closure
Parameters
projectIdinteger (int32)
path
The unique identifier of the project.
Required
Responses
200
no schema
OK
401
no schema
Unauthorized
403
no schema
Forbidden
404
no schema
NotFound
409
no schema
The project is already open.
GET/v0/projects/{projectId}/metrics
Gets the project metrics.
/v0/projects/{projectId}/metrics
Parameters
projectIdinteger (int32)
path
The unique identifier of the project.
Required
Responses
200
A project metrics object.
Example JSON
{ "categories": [ { "category": { "projectId": 1, "categoryId": 1, "name": "string", "icon": "string", "color": "string", "creationDate": "2026-01-01T00:00:00Z" }, "totalWorkItems": 1, "totalWorkItemsVariation": 1, "openWorkItems": 1, "closedWorkItems": 1, "estimatedCost": 1, "estimatedCostVariation": 1, "loggedCost": 1, "remainingCost": 1 } ], "totalWorkItems": 1, "totalWorkItemsVariation": 1, "openWorkItems": 1, "closedWorkItems": 1, "estimatedCost": 1, "estimatedCostVariation": 1, "loggedCost": 1, "remainingCost": 1 }401
no schema
Unauthorized
403
no schema
Forbidden
404
no schema
NotFound
PUT/v0/projects/{projectId}/owner
[OWNER] Transfer the ownership of the project to another user.
/v0/projects/{projectId}/owner
Parameters
projectIdinteger (int32)
path
The unique identifier of the project.
RequiredownerUserIdinteger (int32)
body
The unique identifier of the user who will be the new owner of the project.
Required
Responses
200
no schema
OK
401
no schema
Unauthorized
403
no schema
Forbidden
404
no schema
NotFound
409
no schema
The ownership of projects in a Studio workspace can't be transferred.
Projects / Categories
6 endpoints
Projects / Categories
GET/v0/projects/{projectId}/categories
Gets a list of the categories in the project.
/v0/projects/{projectId}/categories
The categories the authenticated user don't have read access to won't be included in the results.
Parameters
projectIdinteger (int32)
path
The unique identifier of the project.
Required
Responses
200
array<projectCategory>
A list of project category objects.
Example JSON
[ { "projectId": 1, "categoryId": 1, "name": "string", "icon": "string", "color": "string", "creationDate": "2026-01-01T00:00:00Z" } ]401
no schema
Unauthorized
403
no schema
Forbidden
404
no schema
NotFound
POST/v0/projects/{projectId}/categories
[ADMIN] Creates a category.
/v0/projects/{projectId}/categories
Parameters
projectIdinteger (int32)
path
The unique identifier of the project.
RequiredcreateProjectCategoryValuescreateProjectCategoryValues
body
The project category creation values object.
Required
Responses
A new project category object.
Example JSON
{ "projectId": 1, "categoryId": 1, "name": "string", "icon": "string", "color": "string", "creationDate": "2026-01-01T00:00:00Z" }400
no schema
Invalid values object.
401
no schema
Unauthorized
403
no schema
Forbidden
404
no schema
NotFound
GET/v0/projects/{projectId}/categories/{categoryId}
Gets a category.
/v0/projects/{projectId}/categories/{categoryId}
Parameters
projectIdinteger (int32)
path
The unique identifier of the project.
RequiredcategoryIdinteger (int32)
path
The unique identifier of the category.
Required
Responses
A project category object.
Example JSON
{ "projectId": 1, "categoryId": 1, "name": "string", "icon": "string", "color": "string", "creationDate": "2026-01-01T00:00:00Z" }401
no schema
Unauthorized
403
no schema
Forbidden
404
no schema
NotFound
PUT/v0/projects/{projectId}/categories/{categoryId}
[ADMIN] Updates the category.
/v0/projects/{projectId}/categories/{categoryId}
All the fields will be replaced, and optional values not set in the values object will be set to null.
Parameters
projectIdinteger (int32)
path
The unique identifier of the project.
RequiredcategoryIdinteger (int32)
path
The unique identifier of the category.
RequiredupdateProjectCategoryValuesupdateProjectCategoryValues
body
The project category update values object.
Required
Responses
The updated category object.
Example JSON
{ "projectId": 1, "categoryId": 1, "name": "string", "icon": "string", "color": "string", "creationDate": "2026-01-01T00:00:00Z" }400
no schema
Invalid values object.
401
no schema
Unauthorized
403
no schema
Forbidden
404
no schema
NotFound
PATCH/v0/projects/{projectId}/categories/{categoryId}
[ADMIN] Updates the category partially.
/v0/projects/{projectId}/categories/{categoryId}
Only fields included in the value object will be updated, the rest will remain untouched.
Parameters
projectIdinteger (int32)
path
The unique identifier of the project.
RequiredcategoryIdinteger (int32)
path
The unique identifier of the category.
RequiredpatchProjectCategoryValuespatchProjectCategoryValues
body
The project category patch values object.
Required
Responses
The updated category object.
Example JSON
{ "projectId": 1, "categoryId": 1, "name": "string", "icon": "string", "color": "string", "creationDate": "2026-01-01T00:00:00Z" }400
no schema
Invalid values object.
401
no schema
Unauthorized
403
no schema
Forbidden
404
no schema
NotFound
DELETE/v0/projects/{projectId}/categories/{categoryId}
[ADMIN] Deletes the category.
/v0/projects/{projectId}/categories/{categoryId}
Only categories with no tasks assigned can be deleted.
Parameters
projectIdinteger (int32)
path
The unique identifier of the project.
RequiredcategoryIdinteger (int32)
path
The unique identifier of the category.
Required
Responses
200
no schema
OK
400
no schema
You can't delete the last category.
401
no schema
Unauthorized
403
no schema
Forbidden
404
no schema
NotFound
409
no schema
There are tasks assigned to the category, reassing the tasks before deleting it.
Projects / Design Element Types
5 endpoints
Projects / Design Element Types
GET/v0/projects/{projectId}/designelementtypes
Gets the list of design element types of the project.
/v0/projects/{projectId}/designelementtypes
Parameters
projectIdinteger (int32)
path
The unique identifier of the project.
Required
Responses
200
array<projectDesignElementType>
A list of desing element type objects.
Example JSON
[ { "projectId": 1, "designElementTypeId": 1, "name": "string", "creationDate": "2026-01-01T00:00:00Z" } ]401
no schema
Unauthorized
403
no schema
Forbidden
404
no schema
NotFound
POST/v0/projects/{projectId}/designelementtypes
[ADMIN] Creates a design element type.
/v0/projects/{projectId}/designelementtypes
Parameters
projectIdinteger (int32)
path
The unique identifier of the project.
RequiredcreateProjectDesignElementTypeValuescreateProjectDesignElementTypeValues
body
The design element type creation object.
Required
Responses
A newly created design element type.
Example JSON
{ "projectId": 1, "designElementTypeId": 1, "name": "string", "creationDate": "2026-01-01T00:00:00Z" }400
no schema
Invalid values object.
401
no schema
Unauthorized
403
no schema
Forbidden
404
no schema
NotFound
GET/v0/projects/{projectId}/designelementtypes/{designElementTypeId}
Gets a design element type.
/v0/projects/{projectId}/designelementtypes/{designElementTypeId}
Parameters
projectIdinteger (int32)
path
The unique identifier of the project.
RequireddesignElementTypeIdinteger (int32)
path
The unique identifier of the design element type.
Required
Responses
A desing element type object.
Example JSON
{ "projectId": 1, "designElementTypeId": 1, "name": "string", "creationDate": "2026-01-01T00:00:00Z" }401
no schema
Unauthorized
403
no schema
Forbidden
404
no schema
NotFound
PUT/v0/projects/{projectId}/designelementtypes/{designElementTypeId}
[ADMIN] Updates a design element type.
/v0/projects/{projectId}/designelementtypes/{designElementTypeId}
Parameters
projectIdinteger (int32)
path
The unique identifier of the project.
RequireddesignElementTypeIdinteger (int32)
path
The unique identifier of the design element type.
RequiredupdateProjectDesignElementTypeValuesupdateProjectDesignElementTypeValues
body
The design element type update values object.
Required
Responses
The updated design element type.
Example JSON
{ "projectId": 1, "designElementTypeId": 1, "name": "string", "creationDate": "2026-01-01T00:00:00Z" }400
no schema
Invalid values object.
401
no schema
Unauthorized
403
no schema
Forbidden
404
no schema
NotFound
DELETE/v0/projects/{projectId}/designelementtypes/{designElementTypeId}
[ADMIN] Deletes a design element type.
/v0/projects/{projectId}/designelementtypes/{designElementTypeId}
Parameters
projectIdinteger (int32)
path
The unique identifier of the project.
RequireddesignElementTypeIdinteger (int32)
path
The unique identifier of the design element type.
RequiredtargetDesignElementTypeIdinteger (int32)
body
The unique identifier of the design element type the elements assigned to the deleted one will be reassigned to. If not defined, they will be reassigned to the first of the list.
Required
Responses
200
no schema
OK
400
no schema
The target design element type id does not exist.
401
no schema
Unauthorized
403
no schema
Forbidden
404
no schema
NotFound
409
no schema
The design element type is the last one and can't be deleted.
Projects / Events
1 endpoints
Projects / Events
GET/v0/projects/{projectId}/events
Gets a list of project events.
/v0/projects/{projectId}/events
Parameters
projectIdinteger (int32)
path
The unique identifier of the project.
Requiredfromstring (date-time)
query
The minimum date of the events.
Requiredtostring (date-time)
query
The maximum date of the events.
Required
Responses
200
array<projectEvent>
A list of project event objects.
Example JSON
[ { "projectId": 1, "name": "string", "url": "string", "category": { "projectId": 1, "categoryId": 1, "name": "string", "icon": "string", "color": "string", "creationDate": "2026-01-01T00:00:00Z" }, "startDate": "2026-01-01T00:00:00Z", "endDate": "2026-01-01T00:00:00Z", "backgroundColor": "string", "textColor": "string", "isAllDayEvent": true } ]401
no schema
Unauthorized
403
no schema
Forbidden
404
no schema
NotFound
Projects / Files
3 endpoints
Projects / Files
GET/v0/projects/{projectId}/files
[ADMIN] Gets all the files in the project.
/v0/projects/{projectId}/files
Parameters
projectIdinteger (int32)
path
The unique identifier of the project.
Requiredoffsetinteger (int32)
query
The number of items to skip from the result, for pagination. Defaults to 0. Min value 0.
limitinteger (int32)
query
The max number of items to return, for pagination. Defaults to 20. Min value 1. Max value 100.
Responses
200
array<projectFile>
A list of project file objects.
Example JSON
[ { "projectId": 1, "fileId": 1, "name": "string", "thumbName": "string", "url": "string", "thumbUrl": "string", "size": 1, "isImage": true, "user": { "id": 1, "username": "string", "email": "string", "name": "string", "creationDate": "2026-01-01T00:00:00Z" }, "creationDate": "2026-01-01T00:00:00Z" } ]400
no schema
Invalid offset or limit parameters.
401
no schema
Unauthorized
403
no schema
Forbidden
404
no schema
NotFound
DELETE/v0/projects/{projectId}/files/{fileId}
[ADMIN] Remove a file from the project.
/v0/projects/{projectId}/files/{fileId}
Parameters
projectIdinteger (int32)
path
The unique identifier of the project.
RequiredfileIdinteger (int32)
path
The unique identifier of the file.
Required
Responses
200
no schema
OK
401
no schema
Unauthorized
403
no schema
Forbidden
404
no schema
NotFound
GET/v0/projects/{projectId}/storage
Gets storage information about the project.
/v0/projects/{projectId}/storage
Parameters
projectIdinteger (int32)
path
The unique identifier of the project.
Required
Responses
A project storage data object.
Example JSON
{ "projectId": 1, "totalSpace": 1, "totalUsedSpace": 1, "projectUsedSpace": 1, "fileLimit": 1 }401
no schema
Unauthorized
403
no schema
Forbidden
404
no schema
NotFound
Projects / Importance Levels
6 endpoints
Projects / Importance Levels
GET/v0/projects/{projectId}/importancelevels
Gets a list of the importance levels of the project.
/v0/projects/{projectId}/importancelevels
Parameters
projectIdinteger (int32)
path
The unique identifier of the project.
Required
Responses
200
array<projectImportanceLevel>
A list of project importance level objects.
Example JSON
[ { "projectId": 1, "importanceLevelId": 1, "name": "string", "icon": "string", "color": "string", "isDefault": true, "creationDate": "2026-01-01T00:00:00Z" } ]401
no schema
Unauthorized
403
no schema
Forbidden
404
no schema
NotFound
POST/v0/projects/{projectId}/importancelevels
[ADMIN] Creates an importance level.
/v0/projects/{projectId}/importancelevels
Parameters
projectIdinteger (int32)
path
The unique identifier of the project.
RequiredcreateProjectImportanceLevelValuescreateProjectImportanceLevelValues
body
The project importance level creation values object.
Required
Responses
A new project importance level object.
Example JSON
{ "projectId": 1, "importanceLevelId": 1, "name": "string", "icon": "string", "color": "string", "isDefault": true, "creationDate": "2026-01-01T00:00:00Z" }400
no schema
Invalid values object.
401
no schema
Unauthorized
403
no schema
Forbidden
404
no schema
NotFound
GET/v0/projects/{projectId}/importancelevels/{importanceLevelId}
Gets an importance level.
/v0/projects/{projectId}/importancelevels/{importanceLevelId}
Parameters
projectIdinteger (int32)
path
The unique identifier of the project.
RequiredimportanceLevelIdinteger (int32)
path
The unique identifier of the importance level.
Required
Responses
An importance level object.
Example JSON
{ "projectId": 1, "importanceLevelId": 1, "name": "string", "icon": "string", "color": "string", "isDefault": true, "creationDate": "2026-01-01T00:00:00Z" }401
no schema
Unauthorized
403
no schema
Forbidden
404
no schema
NotFound
PUT/v0/projects/{projectId}/importancelevels/{importanceLevelId}
[ADMIN] Updates the importance level.
/v0/projects/{projectId}/importancelevels/{importanceLevelId}
All the fields will be replaced, and optional values not set in the values object will be set to null.
Parameters
projectIdinteger (int32)
path
The unique identifier of the project.
RequiredimportanceLevelIdinteger (int32)
path
The unique identifier of the importance level.
RequiredupdateProjectImportanceLevelValuesupdateProjectImportanceLevelValues
body
The importance level update values object.
Required
Responses
The updated importance level.
Example JSON
{ "projectId": 1, "importanceLevelId": 1, "name": "string", "icon": "string", "color": "string", "isDefault": true, "creationDate": "2026-01-01T00:00:00Z" }400
no schema
Invalid values object.
401
no schema
Unauthorized
403
no schema
Forbidden
404
no schema
NotFound
PATCH/v0/projects/{projectId}/importancelevels/{importanceLevelId}
[ADMIN] Updates the importance level partially.
/v0/projects/{projectId}/importancelevels/{importanceLevelId}
Only fields included in the value object will be updated, the rest will remain untouched.
Parameters
projectIdinteger (int32)
path
The unique identifier of the project.
RequiredimportanceLevelIdinteger (int32)
path
The unique identifier of the importance level.
RequiredpatchProjectImportanceLevelValuespatchProjectImportanceLevelValues
body
The importance level patch values object.
Required
Responses
The updated importance level.
Example JSON
{ "projectId": 1, "importanceLevelId": 1, "name": "string", "icon": "string", "color": "string", "isDefault": true, "creationDate": "2026-01-01T00:00:00Z" }400
no schema
Invalid values object.
401
no schema
Unauthorized
403
no schema
Forbidden
404
no schema
NotFound
DELETE/v0/projects/{projectId}/importancelevels/{importanceLevelId}
[ADMIN] Deletes the importance level.
/v0/projects/{projectId}/importancelevels/{importanceLevelId}
Parameters
projectIdinteger (int32)
path
The unique identifier of the project.
RequiredimportanceLevelIdinteger (int32)
path
The unique identifier of the importance level.
Required
Responses
200
no schema
OK
401
no schema
Unauthorized
403
no schema
Forbidden
404
no schema
NotFound
409
no schema
The default importance level can't be deleted.
Projects / Roles
6 endpoints
Projects / Roles
GET/v0/projects/{projectId}/roles
Gets a list of the roles in the project.
/v0/projects/{projectId}/roles
Parameters
projectIdinteger (int32)
path
The unique identifier of the project.
Required
Responses
200
array<projectRole>
A list of role objects.
Example JSON
[ { "projectId": 1, "roleId": 1, "name": "string", "isAdmin": true, "creationDate": "2026-01-01T00:00:00Z", "permissions": { "categoryPermissions": [ { "categoryId": 1, "canRead": true, "canWrite": true, "canUpdate": true } ], "gameDesignModelPermissions": { "id": 1, "name": "string", "canRead": true, "canWrite": true } } } ]401
no schema
Unauthorized
403
no schema
Forbidden
404
no schema
NotFound
POST/v0/projects/{projectId}/roles
[ADMIN] Creates a project role.
/v0/projects/{projectId}/roles
Parameters
projectIdinteger (int32)
path
The unique id of the project.
RequiredcreateProjectRoleValuescreateProjectRoleValues
body
The project role creation values object.
Required
Responses
201
A new role object.
Example JSON
{ "projectId": 1, "roleId": 1, "name": "string", "isAdmin": true, "creationDate": "2026-01-01T00:00:00Z", "permissions": { "categoryPermissions": [ { "categoryId": 1, "canRead": true, "canWrite": true, "canUpdate": true } ], "gameDesignModelPermissions": { "id": 1, "name": "string", "canRead": true, "canWrite": true } } }400
no schema
Invalid values object.
401
no schema
Unauthorized
403
no schema
Forbidden
404
no schema
NotFound
GET/v0/projects/{projectId}/roles/{roleId}
Gets a project role.
/v0/projects/{projectId}/roles/{roleId}
Parameters
projectIdinteger (int32)
path
The unique identifier of the project.
RequiredroleIdinteger (int32)
path
The unique identifier of the role.
Required
Responses
200
A role object.
Example JSON
{ "projectId": 1, "roleId": 1, "name": "string", "isAdmin": true, "creationDate": "2026-01-01T00:00:00Z", "permissions": { "categoryPermissions": [ { "categoryId": 1, "canRead": true, "canWrite": true, "canUpdate": true } ], "gameDesignModelPermissions": { "id": 1, "name": "string", "canRead": true, "canWrite": true } } }401
no schema
Unauthorized
403
no schema
Forbidden
404
no schema
NotFound
PUT/v0/projects/{projectId}/roles/{roleId}
[ADMIN] Updates the project role.
/v0/projects/{projectId}/roles/{roleId}
All the fields will be replaced, and optional values not set in the values object will be set to null.
Parameters
projectIdinteger (int32)
path
The unique identifier of the project.
RequiredroleIdinteger (int32)
path
The unique identifier of the role.
RequiredupdateProjectRoleValuesupdateProjectRoleValues
body
The project role update values object.
Required
Responses
200
ProjectRole_Internal
The updated role.
Example JSON
{ "projectId": 1, "roleId": 1, "name": "string", "isAdmin": true, "displayOrder": 1, "creationDate": "2026-01-01T00:00:00Z", "categoryAccess": [ { "categoryId": 1, "categoryName": "string", "icon": "string", "color": "string", "canRead": true, "canWrite": true, "canUpdate": true } ], "designAccess": { "id": 1, "name": "string", "canRead": true, "canWrite": true }, "featureAccess": [ {} ] }400
no schema
Invalid values object.
401
no schema
Unauthorized
403
no schema
Forbidden
404
no schema
NotFound
PATCH/v0/projects/{projectId}/roles/{roleId}
[ADMIN] Updates the project role partially.
/v0/projects/{projectId}/roles/{roleId}
Only fields included in the value object will be updated, the rest will remain untouched.
Parameters
projectIdinteger (int32)
path
The unique identifier of the project.
RequiredroleIdinteger (int32)
path
The unique identifier of the role.
RequiredpatchProjectRoleValuespatchProjectRoleValues
body
The project role patch values object.
Required
Responses
200
ProjectRole_Internal
The updated role.
Example JSON
{ "projectId": 1, "roleId": 1, "name": "string", "isAdmin": true, "displayOrder": 1, "creationDate": "2026-01-01T00:00:00Z", "categoryAccess": [ { "categoryId": 1, "categoryName": "string", "icon": "string", "color": "string", "canRead": true, "canWrite": true, "canUpdate": true } ], "designAccess": { "id": 1, "name": "string", "canRead": true, "canWrite": true }, "featureAccess": [ {} ] }400
no schema
Invalid values object.
401
no schema
Unauthorized
403
no schema
Forbidden
404
no schema
NotFound
DELETE/v0/projects/{projectId}/roles/{roleId}
[ADMIN] Deletes the project role.
/v0/projects/{projectId}/roles/{roleId}
Parameters
projectIdinteger (int32)
path
The unique identifier of the project.
RequiredroleIdinteger (int32)
path
The unique identifier of the role.
Required
Responses
200
no schema
OK
401
no schema
Unauthorized
403
no schema
Forbidden
404
no schema
NotFound
Projects / Stages
6 endpoints
Projects / Stages
GET/v0/projects/{projectId}/stages
Gets a list of the stages in the project.
/v0/projects/{projectId}/stages
Parameters
projectIdinteger (int32)
path
The unique identifier of the project.
Required
Responses
200
array<projectStage>
A list of stage objects.
Example JSON
[ { "projectId": 1, "stageId": 1, "name": "string", "icon": "string", "color": "string", "status": "string", "isUnblocker": true, "creationDate": "2026-01-01T00:00:00Z" } ]401
no schema
Unauthorized
403
no schema
Forbidden
404
no schema
NotFound
POST/v0/projects/{projectId}/stages
[ADMIN] Creates a project stage.
/v0/projects/{projectId}/stages
Parameters
projectIdinteger (int32)
path
The unique identifier of the project.
RequiredcreateProjectStageValuescreateProjectStageValues
body
The project stage creation values object.
Required
Responses
201
A new stage object.
Example JSON
{ "projectId": 1, "stageId": 1, "name": "string", "icon": "string", "color": "string", "status": "string", "isUnblocker": true, "creationDate": "2026-01-01T00:00:00Z" }400
no schema
Invalid values object.
401
no schema
Unauthorized
403
no schema
Forbidden
404
no schema
NotFound
GET/v0/projects/{projectId}/stages/{stageId}
Gets a project stage.
/v0/projects/{projectId}/stages/{stageId}
Parameters
projectIdinteger (int32)
path
The unique identifier of the project.
RequiredstageIdinteger (int32)
path
The unique identifier of the stage.
Required
Responses
200
A stage object.
Example JSON
{ "projectId": 1, "stageId": 1, "name": "string", "icon": "string", "color": "string", "status": "string", "isUnblocker": true, "creationDate": "2026-01-01T00:00:00Z" }401
no schema
Unauthorized
403
no schema
Forbidden
404
no schema
NotFound
PUT/v0/projects/{projectId}/stages/{stageId}
[ADMIN] Updates a project stage.
/v0/projects/{projectId}/stages/{stageId}
All the fields will be replaced, and optional values not set in the values object will be set to null.
Parameters
projectIdinteger (int32)
path
The unique identifier of the object.
RequiredstageIdinteger (int32)
path
The unique identifier of the stage.
RequiredupdateProjectStageValuesupdateProjectStageValues
body
The project stage update values object.
Required
Responses
200
ProjectStage_Internal
The updated stage.
Example JSON
{ "projectId": 1, "stageId": 1, "name": "string", "icon": "string", "color": "string", "status": 1, "isUnblocker": true, "displayOrder": 1, "creationDate": "2026-01-01T00:00:00Z" }400
no schema
Invalid values object.
401
no schema
Unauthorized
403
no schema
Forbidden
404
no schema
NotFound
PATCH/v0/projects/{projectId}/stages/{stageId}
[ADMIN] Updates a project stage partially.
/v0/projects/{projectId}/stages/{stageId}
Only fields included in the value object will be updated, the rest will remain untouched.
Parameters
projectIdinteger (int32)
path
The unique identifier of the object.
RequiredstageIdinteger (int32)
path
The unique identifier of the stage.
RequiredpatchProjectStageValuespatchProjectStageValues
body
The project stage patch values object.
Required
Responses
200
The updated stage.
Example JSON
{ "projectId": 1, "stageId": 1, "name": "string", "icon": "string", "color": "string", "status": "string", "isUnblocker": true, "creationDate": "2026-01-01T00:00:00Z" }400
no schema
Invalid values object.
401
no schema
Unauthorized
403
no schema
Forbidden
404
no schema
NotFound
DELETE/v0/projects/{projectId}/stages/{stageId}
[ADMIN] Deletes a project stage.
/v0/projects/{projectId}/stages/{stageId}
Parameters
projectIdinteger (int32)
path
The unique identifier of the project.
RequiredstageIdinteger (int32)
path
The unique identifier of the stage.
Required
Responses
200
no schema
OK
401
no schema
Unauthorized
403
no schema
Forbidden
404
no schema
NotFound
Projects / Tags
5 endpoints
Projects / Tags
GET/v0/projects/{projectId}/tags
Gets a list of the project tags.
/v0/projects/{projectId}/tags
Parameters
projectIdinteger (int32)
path
The unique identifier of the project
Required
Responses
200
array<projectTag>
A list of project tag objects.
Example JSON
[ { "projectId": 1, "tagId": 1, "name": "string", "icon": "string", "color": "string", "displayIconOnly": true, "creationDate": "2026-01-01T00:00:00Z" } ]401
no schema
Unauthorized
403
no schema
Forbidden
404
no schema
NotFound
POST/v0/projects/{projectId}/tags
Creates a project tag.
/v0/projects/{projectId}/tags
Parameters
projectIdinteger (int32)
path
The unique identifier of the project.
RequiredcreateProjectTagValuescreateProjectTagValues
body
The project tag creation values object.
Required
Responses
201
A new project tag object.
Example JSON
{ "projectId": 1, "tagId": 1, "name": "string", "icon": "string", "color": "string", "displayIconOnly": true, "creationDate": "2026-01-01T00:00:00Z" }400
no schema
Invalid values object.
401
no schema
Unauthorized
403
no schema
Forbidden
404
no schema
NotFound
PUT/v0/projects/{projectId}/tags/{tagId}
Updates the tag.
/v0/projects/{projectId}/tags/{tagId}
All the fields will be replaced, and optional values not set in the values object will be set to null.
Parameters
projectIdinteger (int32)
path
The unique identifier of the project.
RequiredtagIdinteger (int32)
path
The unique identifier of the tag.
RequiredupdateProjectTagValuesupdateProjectTagValues
body
The project tag update values object.
Required
Responses
200
The updated tag.
Example JSON
{ "projectId": 1, "tagId": 1, "name": "string", "icon": "string", "color": "string", "displayIconOnly": true, "creationDate": "2026-01-01T00:00:00Z" }400
no schema
Invalid values object.
401
no schema
Unauthorized
403
no schema
Forbidden
404
no schema
NotFound
PATCH/v0/projects/{projectId}/tags/{tagId}
Updates the tag partially.
/v0/projects/{projectId}/tags/{tagId}
Only fields included in the value object will be updated, the rest will remain untouched.
Parameters
projectIdinteger (int32)
path
The unique identifier of the project.
RequiredtagIdinteger (int32)
path
The unique identifier of the tag.
RequiredpatchProjectTagValuespatchProjectTagValues
body
The project tag patch values object.
Required
Responses
200
The updated tag.
Example JSON
{ "projectId": 1, "tagId": 1, "name": "string", "icon": "string", "color": "string", "displayIconOnly": true, "creationDate": "2026-01-01T00:00:00Z" }400
no schema
Invalid values object.
401
no schema
Unauthorized
403
no schema
Forbidden
404
no schema
NotFound
DELETE/v0/projects/{projectId}/tags/{tagId}
[ADMIN] Deletes the tag.
/v0/projects/{projectId}/tags/{tagId}
Parameters
projectIdinteger (int32)
path
The unique identifier of the project.
RequiredtagIdinteger (int32)
path
The unique identifier of the tag.
Required
Responses
200
no schema
OK
401
no schema
Unauthorized
403
no schema
Forbidden
404
no schema
Project or tag not found.
Projects / Users
7 endpoints
Projects / Users
POST/v0/projects/{projectId}/teams
[ADMIN] Adds a team to the project.
/v0/projects/{projectId}/teams
Parameters
projectIdinteger (int32)
path
The unique identifier of the project.
RequiredteamIdinteger (int32)
body
The unique identifier of the team within the workspace the project belongs to.
Required
Responses
201
array<projectUser>
A list of new project user objects.
Example JSON
[ { "projectId": 1, "user": { "id": 1, "username": "string", "email": "string", "name": "string", "creationDate": "2026-01-01T00:00:00Z" }, "isAdmin": true, "isGuest": true, "isActive": true, "creationDate": "2026-01-01T00:00:00Z", "permissions": { "categoryPermissions": [ { "categoryId": 1, "canRead": true, "canWrite": true, "canUpdate": true } ], "gameDesignModelPermissions": { "id": 1, "name": "string", "canRead": true, "canWrite": true } }, "role": { "projectId": 1, "roleId": 1, "name": "string", "isAdmin": true, "creationDate": "2026-01-01T00:00:00Z", "permissions": {} } } ]400
no schema
Invalid values object.
401
no schema
Unauthorized
403
no schema
Forbidden
404
no schema
Project or team not found.
GET/v0/projects/{projectId}/users
Gets the list of users of the project.
/v0/projects/{projectId}/users
Parameters
projectIdinteger (int32)
path
The unique identifier of the project.
RequiredincludeInactiveboolean
query
True to include inactive users, those who were part of the project in the past but were pushed out. Defaults to false.
includeGuestsboolean
query
True to include guest users. Defaults to true.
Responses
200
array<projectUser>
A list of project user objects.
Example JSON
[ { "projectId": 1, "user": { "id": 1, "username": "string", "email": "string", "name": "string", "creationDate": "2026-01-01T00:00:00Z" }, "isAdmin": true, "isGuest": true, "isActive": true, "creationDate": "2026-01-01T00:00:00Z", "permissions": { "categoryPermissions": [ { "categoryId": 1, "canRead": true, "canWrite": true, "canUpdate": true } ], "gameDesignModelPermissions": { "id": 1, "name": "string", "canRead": true, "canWrite": true } }, "role": { "projectId": 1, "roleId": 1, "name": "string", "isAdmin": true, "creationDate": "2026-01-01T00:00:00Z", "permissions": {} } } ]401
no schema
Unauthorized
403
no schema
Forbidden
404
no schema
NotFound
POST/v0/projects/{projectId}/users
[ADMIN] Adds a new user to the project.
/v0/projects/{projectId}/users
Parameters
projectIdinteger (int32)
path
The unique identifier of the project.
RequiredcreateProjectUserValuescreateProjectUserValues
body
The values object.
Required
Responses
200
no schema
An invitation email has been sent.
201
A new project user object.
Example JSON
{ "projectId": 1, "user": { "id": 1, "username": "string", "email": "string", "name": "string", "creationDate": "2026-01-01T00:00:00Z" }, "isAdmin": true, "isGuest": true, "isActive": true, "creationDate": "2026-01-01T00:00:00Z", "permissions": { "categoryPermissions": [ { "categoryId": 1, "canRead": true, "canWrite": true, "canUpdate": true } ], "gameDesignModelPermissions": { "id": 1, "name": "string", "canRead": true, "canWrite": true } }, "role": { "projectId": 1, "roleId": 1, "name": "string", "isAdmin": true, "creationDate": "2026-01-01T00:00:00Z", "permissions": {} } }400
no schema
Invalid values object.
401
no schema
Unauthorized
403
no schema
Forbidden
404
no schema
NotFound
409
no schema
The user is a member of the project already, or the workspace doesn't have free seats (Studio).
GET/v0/projects/{projectId}/users/{userId}
Gets a project user.
/v0/projects/{projectId}/users/{userId}
Parameters
projectIdinteger (int32)
path
The unique identifier of the project.
RequireduserIdinteger (int32)
path
The unique identifier of the user.
Required
Responses
200
The project user object.
Example JSON
{ "projectId": 1, "user": { "id": 1, "username": "string", "email": "string", "name": "string", "creationDate": "2026-01-01T00:00:00Z" }, "isAdmin": true, "isGuest": true, "isActive": true, "creationDate": "2026-01-01T00:00:00Z", "permissions": { "categoryPermissions": [ { "categoryId": 1, "canRead": true, "canWrite": true, "canUpdate": true } ], "gameDesignModelPermissions": { "id": 1, "name": "string", "canRead": true, "canWrite": true } }, "role": { "projectId": 1, "roleId": 1, "name": "string", "isAdmin": true, "creationDate": "2026-01-01T00:00:00Z", "permissions": {} } }401
no schema
Unauthorized
403
no schema
Forbidden
404
no schema
NotFound
PUT/v0/projects/{projectId}/users/{userId}
[ADMIN] Updates the project user.
/v0/projects/{projectId}/users/{userId}
All the fields will be replaced, and optional values not set in the values object will be set to null.
Parameters
projectIdinteger (int32)
path
The unique identifier of the project.
RequireduserIdinteger (int32)
path
The unique identifier of the user.
RequiredupdateProjectUserValuesupdateProjectUserValues
body
The values object.
Required
Responses
200
no schema
OK
400
no schema
Invalid values object.
401
no schema
Unauthorized
403
no schema
Forbidden
404
no schema
NotFound
PATCH/v0/projects/{projectId}/users/{userId}
[ADMIN] Updates the project user partially.
/v0/projects/{projectId}/users/{userId}
Only fields included in the value object will be updated, the rest will remain untouched.
Parameters
projectIdinteger (int32)
path
The unique identifier of the project.
RequireduserIdinteger (int32)
path
The unique identifier of the user.
RequiredpatchProjectUserValuespatchProjectUserValues
body
The values object.
Required
Responses
200
no schema
OK
400
no schema
Invalid values object.
401
no schema
Unauthorized
403
no schema
Forbidden
404
no schema
NotFound
DELETE/v0/projects/{projectId}/users/{userId}
[ADMIN/SELF] Removes a user from the project.
/v0/projects/{projectId}/users/{userId}
The information of the removed users are not erased from the project, they are kept as inactive for historical reasons.
Parameters
projectIdinteger (int32)
path
The unique identifier of the project.
RequireduserIdinteger (int32)
path
The unique identifier of the user.
Required
Responses
200
no schema
OK
401
no schema
Unauthorized
403
no schema
Forbidden
404
no schema
NotFound
Users
1 endpoints
Users
GET/v0/users/me
Returns the information of the authenticated user
/v0/users/me
Responses
200
A existing user object
Example JSON
{ "id": 1, "username": "string", "email": "string", "name": "string", "creationDate": "2026-01-01T00:00:00Z" }401
no schema
Unauthorized
404
no schema
NotFound
Webhook
7 endpoints
Webhook
GET/v0/projects/{projectId}/webhooks
[ADMIN] Gets the list of webhooks in a project.
/v0/projects/{projectId}/webhooks
Parameters
projectIdinteger (int32)
path
The unique identifier of the project.
Required
Responses
200
array<webhook>
A list of webhook objects.
Example JSON
[ { "projectId": 1, "webhookId": 1, "url": "string", "events": [ "string" ], "isEnabled": true, "headers": [ "string" ], "creator": { "projectId": 1, "user": { "id": 1, "username": "string", "email": "string", "name": "string", "creationDate": "2026-01-01T00:00:00Z" }, "isAdmin": true, "isGuest": true, "isActive": true, "creationDate": "2026-01-01T00:00:00Z", "permissions": { "categoryPermissions": [ {} ], "gameDesignModelPermissions": { "id": null, "name": null, "canRead": null, "canWrite": null } }, "role": { "projectId": 1, "roleId": 1, "name": "string", "isAdmin": true, "creationDate": "2026-01-01T00:00:00Z", "permissions": {} } }, "creationDate": "2026-01-01T00:00:00Z" } ]403
no schema
The authorized user does not have permission to execute the action.
404
no schema
Project not found.
POST/v0/projects/{projectId}/webhooks
[ADMIN] Creates a webhook.
/v0/projects/{projectId}/webhooks
Parameters
projectIdinteger (int32)
path
The unique identifier of the project.
RequiredcreateWebhookValuescreateWebhookValues
body
The webhook creation values object.
Required
Responses
201
A new webhook object.
Example JSON
{ "projectId": 1, "webhookId": 1, "url": "string", "events": [ "string" ], "isEnabled": true, "headers": [ "string" ], "creator": { "projectId": 1, "user": { "id": 1, "username": "string", "email": "string", "name": "string", "creationDate": "2026-01-01T00:00:00Z" }, "isAdmin": true, "isGuest": true, "isActive": true, "creationDate": "2026-01-01T00:00:00Z", "permissions": { "categoryPermissions": [ { "categoryId": null, "canRead": null, "canWrite": null, "canUpdate": null } ], "gameDesignModelPermissions": { "id": 1, "name": "string", "canRead": true, "canWrite": true } }, "role": { "projectId": 1, "roleId": 1, "name": "string", "isAdmin": true, "creationDate": "2026-01-01T00:00:00Z", "permissions": {} } }, "creationDate": "2026-01-01T00:00:00Z" }400
no schema
Invalid values object.
403
no schema
The authorized user does not have permission to execute the action.
404
no schema
Project not found.
GET/v0/projects/{projectId}/webhooks/{webhookId}
[ADMIN] Gets a webhook by its id.
/v0/projects/{projectId}/webhooks/{webhookId}
Parameters
projectIdinteger (int32)
path
The unique identifier of the project.
RequiredwebhookIdinteger (int32)
path
The unique identifier of the webhook.
Required
Responses
200
A webhook object.
Example JSON
{ "projectId": 1, "webhookId": 1, "url": "string", "events": [ "string" ], "isEnabled": true, "headers": [ "string" ], "creator": { "projectId": 1, "user": { "id": 1, "username": "string", "email": "string", "name": "string", "creationDate": "2026-01-01T00:00:00Z" }, "isAdmin": true, "isGuest": true, "isActive": true, "creationDate": "2026-01-01T00:00:00Z", "permissions": { "categoryPermissions": [ { "categoryId": null, "canRead": null, "canWrite": null, "canUpdate": null } ], "gameDesignModelPermissions": { "id": 1, "name": "string", "canRead": true, "canWrite": true } }, "role": { "projectId": 1, "roleId": 1, "name": "string", "isAdmin": true, "creationDate": "2026-01-01T00:00:00Z", "permissions": {} } }, "creationDate": "2026-01-01T00:00:00Z" }403
no schema
The authorized user does not have permission to execute the action.
404
no schema
Webhook not found.
PUT/v0/projects/{projectId}/webhooks/{webhookId}
[ADMIN] Updates a webhook.
/v0/projects/{projectId}/webhooks/{webhookId}
All the fields will be replaced, and optional values not set in the values object will be set to null.
Parameters
projectIdinteger (int32)
path
The unique identifier of the project.
RequiredwebhookIdinteger (int32)
path
The unique identifier of the webhook.
RequiredupdateWebhookValuesupdateWebhookValues
body
The webhook update values object.
Required
Responses
200
no schema
OK
400
no schema
Invalid values object.
403
no schema
The authorized user does not have permission to execute the action.
404
no schema
Webhook not found.
PATCH/v0/projects/{projectId}/webhooks/{webhookId}
[ADMIN] Updates a webhook partially.
/v0/projects/{projectId}/webhooks/{webhookId}
Only fields included in the value object will be updated, the rest will remain untouched.
Parameters
projectIdinteger (int32)
path
The unique identifier of the project.
RequiredwebhookIdinteger (int32)
path
The unique identifier of the webhook.
RequiredpatchWebhookValuespatchWebhookValues
body
The webhook patch values object.
Required
Responses
200
no schema
OK
400
no schema
Invalid values object.
403
no schema
The authorized user does not have permission to execute the action.
404
no schema
Webhook not found.
DELETE/v0/projects/{projectId}/webhooks/{webhookId}
[ADMIN] Deletes a webhook.
/v0/projects/{projectId}/webhooks/{webhookId}
Parameters
projectIdinteger (int32)
path
The unique identifier of the project.
RequiredwebhookIdinteger (int32)
path
The unique identifier of the webhook.
Required
Responses
200
no schema
OK
403
no schema
The authorized user does not have permission to execute the action.
404
no schema
Webhook not found.
GET/v0/webhookevents
Gets the list of webhook events.
/v0/webhookevents
Responses
200
array<string>
A list of webhook events.
Example JSON
[ "string" ]
Work Items
7 endpoints
Work Items
GET/v0/projects/{projectId}/workitems
Gets a list of work items based on a search criteria.
/v0/projects/{projectId}/workitems
Parameters
projectIdinteger (int32)
path
The unique identifier of the project.
RequiredboardIdinteger (int32)
query
The unique identifier of the board (0 for the backlog).
milestoneIdinteger (int32)
query
The unique identifier of the milestone.
categoryIdinteger (int32)
query
The unique identifier of the category.
userIdinteger (int32)
query
The unique identifier of the assigned user.
designElementIdinteger (int32)
query
The unique identifier of the design element (0 for items without desing element).
stageIdinteger (int32)
query
The unique identifier of the stage.
importanceLevelIdinteger (int32)
query
The unique identifier of the importance level.
parentStoryIdinteger (int32)
query
The unique identifier of the parent story of the task (0 for items that don't belong to a user story).
searchTermsstring
query
A string that will be used to filter the results by searching the terms in the title and description fields.
offsetinteger (int32)
query
The number of items skipped from the results. Defaults to 0. Min value 0.
limitinteger (int32)
query
The max number of items included in the results, after the offset. Defaults to 20. Min value 1. Max value 100.
sortFieldstring
query
The field used to sort the results. Possible values: - "id" (default) - "name" - "duedate" - "updatedate" - "closingdate" - "board" - "designelement" - "stage" - "category" - "importancelevel"
sortModestring
query
The mode used to sort the results. Possible values: - "asc" (default) - "desc"
Responses
200
pagedResult<workItem>
A paged list of work item objects.
Example JSON
{ "totalCount": 1, "offset": 1, "limit": 1, "items": [ { "projectId": 1, "workItemId": 1, "parentStoryId": 1, "isStory": true, "title": "string", "description": "string", "category": { "projectId": 1, "categoryId": 1, "name": "string", "icon": "string", "color": "string", "creationDate": "2026-01-01T00:00:00Z" }, "stage": { "projectId": 1, "stageId": 1, "name": "string", "icon": "string", "color": "string", "status": "string", "isUnblocker": true, "creationDate": "2026-01-01T00:00:00Z" }, "estimatedCost": 1, "loggedCost": 1, "storyTasksEstimatedCost": 1, "storyTasksLoggedCost": 1, "boardIndex": 1, "designElementIndex": 1, "designElement": { "index": 1, "projectId": 1, "designElementId": 1, "type": { "projectId": null, "designElementTypeId": null, "name": null, "creationDate": null }, "name": "string", "prefix": "string", "parent": {}, "children": [ {} ], "totalWorkItemCount": 1, "closedWorkItemCount": 1, "description": "string", "startDate": "2026-01-01T00:00:00Z", "dueDate": "2026-01-01T00:00:00Z", "creationDate": "2026-01-01T00:00:00Z", "updateDate": "2026-01-01T00:00:00Z", "user": { "projectId": null, "user": null, "isAdmin": null, "isGuest": null, "isActive": null, "creationDate": null, "permissions": null, "role": null } }, "startDate": "2026-01-01T00:00:00Z", "dueDate": "2026-01-01T00:00:00Z", "updateDate": "2026-01-01T00:00:00Z", "closingDate": "2026-01-01T00:00:00Z", "creationDate": "2026-01-01T00:00:00Z", "user": { "id": 1, "username": "string", "email": "string", "name": "string", "creationDate": "2026-01-01T00:00:00Z" }, "board": { "projectId": 1, "boardId": 1, "milestoneId": 1, "name": "string", "description": "string", "generalInfo": "string", "startDate": "2026-01-01T00:00:00Z", "dueDate": "2026-01-01T00:00:00Z", "closingDate": "2026-01-01T00:00:00Z", "creationDate": "2026-01-01T00:00:00Z", "creator": {}, "isDefault": true }, "assignedUsers": [ {} ], "tags": [ { "projectId": 1, "tagId": 1, "name": "string", "icon": "string", "color": "string", "displayIconOnly": true, "creationDate": "2026-01-01T00:00:00Z" } ], "importanceLevel": { "projectId": 1, "importanceLevelId": 1, "name": "string", "icon": "string", "color": "string", "isDefault": true, "creationDate": "2026-01-01T00:00:00Z" }, "picture": { "projectId": 1, "workItemId": 1, "attachmentId": 1, "file": { "projectId": null, "fileId": null, "name": null, "thumbName": null, "url": null, "thumbUrl": null, "size": null, "isImage": null, "user": null, "creationDate": null }, "user": {}, "isCardPicture": true, "creationDate": "2026-01-01T00:00:00Z" }, "hasDependencies": true, "isBlocked": true } ] }400
no schema
Invalid offset and limit values.
401
no schema
Unauthorized
403
no schema
Forbidden
404
no schema
NotFound
POST/v0/projects/{projectId}/workitems
Creates a new work item.
/v0/projects/{projectId}/workitems
Parameters
projectIdinteger (int32)
path
The unique identifier of the project.
RequiredcreateWorkItemValuescreateWorkItemValues
body
The work item creation values object.
Required
Responses
200
A new work item object.
Example JSON
{ "projectId": 1, "workItemId": 1, "parentStoryId": 1, "isStory": true, "title": "string", "description": "string", "category": { "projectId": 1, "categoryId": 1, "name": "string", "icon": "string", "color": "string", "creationDate": "2026-01-01T00:00:00Z" }, "stage": { "projectId": 1, "stageId": 1, "name": "string", "icon": "string", "color": "string", "status": "string", "isUnblocker": true, "creationDate": "2026-01-01T00:00:00Z" }, "estimatedCost": 1, "loggedCost": 1, "storyTasksEstimatedCost": 1, "storyTasksLoggedCost": 1, "boardIndex": 1, "designElementIndex": 1, "designElement": { "index": 1, "projectId": 1, "designElementId": 1, "type": { "projectId": 1, "designElementTypeId": 1, "name": "string", "creationDate": "2026-01-01T00:00:00Z" }, "name": "string", "prefix": "string", "parent": {}, "children": [ {} ], "totalWorkItemCount": 1, "closedWorkItemCount": 1, "description": "string", "startDate": "2026-01-01T00:00:00Z", "dueDate": "2026-01-01T00:00:00Z", "creationDate": "2026-01-01T00:00:00Z", "updateDate": "2026-01-01T00:00:00Z", "user": { "projectId": 1, "user": { "id": 1, "username": "string", "email": "string", "name": "string", "creationDate": "2026-01-01T00:00:00Z" }, "isAdmin": true, "isGuest": true, "isActive": true, "creationDate": "2026-01-01T00:00:00Z", "permissions": { "categoryPermissions": [ {} ], "gameDesignModelPermissions": null }, "role": { "projectId": 1, "roleId": 1, "name": "string", "isAdmin": true, "creationDate": "2026-01-01T00:00:00Z", "permissions": {} } } }, "startDate": "2026-01-01T00:00:00Z", "dueDate": "2026-01-01T00:00:00Z", "updateDate": "2026-01-01T00:00:00Z", "closingDate": "2026-01-01T00:00:00Z", "creationDate": "2026-01-01T00:00:00Z", "user": {}, "board": { "projectId": 1, "boardId": 1, "milestoneId": 1, "name": "string", "description": "string", "generalInfo": "string", "startDate": "2026-01-01T00:00:00Z", "dueDate": "2026-01-01T00:00:00Z", "closingDate": "2026-01-01T00:00:00Z", "creationDate": "2026-01-01T00:00:00Z", "creator": {}, "isDefault": true }, "assignedUsers": [ {} ], "tags": [ { "projectId": 1, "tagId": 1, "name": "string", "icon": "string", "color": "string", "displayIconOnly": true, "creationDate": "2026-01-01T00:00:00Z" } ], "importanceLevel": { "projectId": 1, "importanceLevelId": 1, "name": "string", "icon": "string", "color": "string", "isDefault": true, "creationDate": "2026-01-01T00:00:00Z" }, "picture": { "projectId": 1, "workItemId": 1, "attachmentId": 1, "file": { "projectId": 1, "fileId": 1, "name": "string", "thumbName": "string", "url": "string", "thumbUrl": "string", "size": 1, "isImage": true, "user": {}, "creationDate": "2026-01-01T00:00:00Z" }, "user": {}, "isCardPicture": true, "creationDate": "2026-01-01T00:00:00Z" }, "hasDependencies": true, "isBlocked": true }400
no schema
Invalid values object.
401
no schema
Unauthorized
403
no schema
Forbidden
404
no schema
NotFound
GET/v0/projects/{projectId}/workitems/{workItemId}
Gets a work item.
/v0/projects/{projectId}/workitems/{workItemId}
Parameters
projectIdinteger (int32)
path
The unique identifier of the project.
RequiredworkItemIdinteger (int32)
path
The unique identifier of the work item.
Required
Responses
200
A work item object.
Example JSON
{ "projectId": 1, "workItemId": 1, "parentStoryId": 1, "isStory": true, "title": "string", "description": "string", "category": { "projectId": 1, "categoryId": 1, "name": "string", "icon": "string", "color": "string", "creationDate": "2026-01-01T00:00:00Z" }, "stage": { "projectId": 1, "stageId": 1, "name": "string", "icon": "string", "color": "string", "status": "string", "isUnblocker": true, "creationDate": "2026-01-01T00:00:00Z" }, "estimatedCost": 1, "loggedCost": 1, "storyTasksEstimatedCost": 1, "storyTasksLoggedCost": 1, "boardIndex": 1, "designElementIndex": 1, "designElement": { "index": 1, "projectId": 1, "designElementId": 1, "type": { "projectId": 1, "designElementTypeId": 1, "name": "string", "creationDate": "2026-01-01T00:00:00Z" }, "name": "string", "prefix": "string", "parent": {}, "children": [ {} ], "totalWorkItemCount": 1, "closedWorkItemCount": 1, "description": "string", "startDate": "2026-01-01T00:00:00Z", "dueDate": "2026-01-01T00:00:00Z", "creationDate": "2026-01-01T00:00:00Z", "updateDate": "2026-01-01T00:00:00Z", "user": { "projectId": 1, "user": { "id": 1, "username": "string", "email": "string", "name": "string", "creationDate": "2026-01-01T00:00:00Z" }, "isAdmin": true, "isGuest": true, "isActive": true, "creationDate": "2026-01-01T00:00:00Z", "permissions": { "categoryPermissions": [ {} ], "gameDesignModelPermissions": null }, "role": { "projectId": 1, "roleId": 1, "name": "string", "isAdmin": true, "creationDate": "2026-01-01T00:00:00Z", "permissions": {} } } }, "startDate": "2026-01-01T00:00:00Z", "dueDate": "2026-01-01T00:00:00Z", "updateDate": "2026-01-01T00:00:00Z", "closingDate": "2026-01-01T00:00:00Z", "creationDate": "2026-01-01T00:00:00Z", "user": {}, "board": { "projectId": 1, "boardId": 1, "milestoneId": 1, "name": "string", "description": "string", "generalInfo": "string", "startDate": "2026-01-01T00:00:00Z", "dueDate": "2026-01-01T00:00:00Z", "closingDate": "2026-01-01T00:00:00Z", "creationDate": "2026-01-01T00:00:00Z", "creator": {}, "isDefault": true }, "assignedUsers": [ {} ], "tags": [ { "projectId": 1, "tagId": 1, "name": "string", "icon": "string", "color": "string", "displayIconOnly": true, "creationDate": "2026-01-01T00:00:00Z" } ], "importanceLevel": { "projectId": 1, "importanceLevelId": 1, "name": "string", "icon": "string", "color": "string", "isDefault": true, "creationDate": "2026-01-01T00:00:00Z" }, "picture": { "projectId": 1, "workItemId": 1, "attachmentId": 1, "file": { "projectId": 1, "fileId": 1, "name": "string", "thumbName": "string", "url": "string", "thumbUrl": "string", "size": 1, "isImage": true, "user": {}, "creationDate": "2026-01-01T00:00:00Z" }, "user": {}, "isCardPicture": true, "creationDate": "2026-01-01T00:00:00Z" }, "hasDependencies": true, "isBlocked": true }401
no schema
Unauthorized
403
no schema
Forbidden
404
no schema
NotFound
POST/v0/projects/{projectId}/workitems/{workItemId}
Clones an existing work item.
/v0/projects/{projectId}/workitems/{workItemId}
Parameters
projectIdinteger (int32)
path
The unique identifier of the project.
RequiredworkItemIdinteger (int32)
path
The unique identifier of the work item.
Required
Responses
200
no schema
OK
401
no schema
Unauthorized
403
no schema
Forbidden
404
no schema
NotFound
PUT/v0/projects/{projectId}/workitems/{workItemId}
Updates the work item.
/v0/projects/{projectId}/workitems/{workItemId}
All the fields will be replaced, and optional values not set in the values object will be set to null.
Parameters
projectIdinteger (int32)
path
The unique identifier of the project.
RequiredworkItemIdinteger (int32)
path
The unique identifier of the work item.
RequiredupdateWorkItemValuesupdateWorkItemValues
body
The work item update values object.
Required
Responses
200
no schema
OK
400
no schema
Invalid values object.
401
no schema
Unauthorized
403
no schema
Forbidden
404
no schema
NotFound
PATCH/v0/projects/{projectId}/workitems/{workItemId}
Updates the work item partially
/v0/projects/{projectId}/workitems/{workItemId}
Only fields included in the value object will be updated, the rest will remain untouched.
Parameters
projectIdinteger (int32)
path
The unique identifier of the project.
RequiredworkItemIdinteger (int32)
path
The unique identifier of the work item.
RequiredpatchWorkItemValuespatchWorkItemValues
body
The work item patch values object.
Required
Responses
200
no schema
OK
400
no schema
Invalid values object.
401
no schema
Unauthorized
403
no schema
Forbidden
404
no schema
NotFound
DELETE/v0/projects/{projectId}/workitems/{workItemId}
Deletes a work item.
/v0/projects/{projectId}/workitems/{workItemId}
Parameters
projectIdinteger (int32)
path
The unique identifier of the project.
RequiredworkItemIdinteger (int32)
path
The unique identifier of the work item.
Required
Responses
200
no schema
OK
401
no schema
Unauthorized
403
no schema
Forbidden
404
no schema
NotFound
Work Items / Attachments
5 endpoints
Work Items / Attachments
GET/v0/projects/{projectId}/workitems/{workItemId}/attachments
Gets the list of attachments of the work item.
/v0/projects/{projectId}/workitems/{workItemId}/attachments
Parameters
projectIdinteger (int32)
path
The unique identifier of the project.
RequiredworkItemIdinteger (int32)
path
The unique identifier of the work item.
Requiredoffsetinteger (int32)
query
The number of items skipped from the results. Defaults to 0. Min value 0.
limitinteger (int32)
query
The max number of items included in the results, after the offset. Defaults to 20. Min value 1. Max value 100.
Responses
200
pagedResult<workItemAttachment>
A list of work item attachment objects.
Example JSON
{ "totalCount": 1, "offset": 1, "limit": 1, "items": [ { "projectId": 1, "workItemId": 1, "attachmentId": 1, "file": { "projectId": 1, "fileId": 1, "name": "string", "thumbName": "string", "url": "string", "thumbUrl": "string", "size": 1, "isImage": true, "user": { "id": null, "username": null, "email": null, "name": null, "creationDate": null }, "creationDate": "2026-01-01T00:00:00Z" }, "user": {}, "isCardPicture": true, "creationDate": "2026-01-01T00:00:00Z" } ] }400
no schema
Invalid offset and limit values.
401
no schema
Unauthorized
403
no schema
Forbidden
404
no schema
NotFound
POST/v0/projects/{projectId}/workitems/{workItemId}/attachments
Creates a new work item attachment from MIME multipart content.
/v0/projects/{projectId}/workitems/{workItemId}/attachments
Parameters
projectIdinteger (int32)
path
The unique identifier of the project.
RequiredworkItemIdinteger (int32)
path
The unique identifier of the work item.
Required
Responses
A new work item attachment object.
Example JSON
{ "projectId": 1, "workItemId": 1, "attachmentId": 1, "file": { "projectId": 1, "fileId": 1, "name": "string", "thumbName": "string", "url": "string", "thumbUrl": "string", "size": 1, "isImage": true, "user": { "id": 1, "username": "string", "email": "string", "name": "string", "creationDate": "2026-01-01T00:00:00Z" }, "creationDate": "2026-01-01T00:00:00Z" }, "user": {}, "isCardPicture": true, "creationDate": "2026-01-01T00:00:00Z" }400
no schema
File size limit exceeded.
401
no schema
Unauthorized
403
no schema
Forbidden
404
no schema
NotFound
409
no schema
Account storage limit exceeded.
415
no schema
The content is not MIME multipart content.
GET/v0/projects/{projectId}/workitems/{workItemId}/attachments/{attachmentId}
Gets a work item attachment.
/v0/projects/{projectId}/workitems/{workItemId}/attachments/{attachmentId}
Parameters
projectIdinteger (int32)
path
The unique identifier of the project.
RequiredworkItemIdinteger (int32)
path
The unique identifier of the work item.
RequiredattachmentIdinteger (int32)
path
The unique identifier of the attachment.
Required
Responses
A work item attachment object.
Example JSON
{ "projectId": 1, "workItemId": 1, "attachmentId": 1, "file": { "projectId": 1, "fileId": 1, "name": "string", "thumbName": "string", "url": "string", "thumbUrl": "string", "size": 1, "isImage": true, "user": { "id": 1, "username": "string", "email": "string", "name": "string", "creationDate": "2026-01-01T00:00:00Z" }, "creationDate": "2026-01-01T00:00:00Z" }, "user": {}, "isCardPicture": true, "creationDate": "2026-01-01T00:00:00Z" }401
no schema
Unauthorized
403
no schema
Forbidden
404
no schema
NotFound
PUT/v0/projects/{projectId}/workitems/{workItemId}/attachments/{attachmentId}
Sets / unsets a work item attachment as the card picture.
/v0/projects/{projectId}/workitems/{workItemId}/attachments/{attachmentId}
Parameters
projectIdinteger (int32)
path
The unique identifier of the project.
RequiredworkItemIdinteger (int32)
path
The unique identifier of the work item.
RequiredattachmentIdinteger (int32)
path
The unique identifier of the attachment.
Required
Responses
200
no schema
OK
401
no schema
Unauthorized
403
no schema
Forbidden
404
no schema
NotFound
DELETE/v0/projects/{projectId}/workitems/{workItemId}/attachments/{attachmentId}
Deletes a work item attachment.
/v0/projects/{projectId}/workitems/{workItemId}/attachments/{attachmentId}
Parameters
projectIdinteger (int32)
path
The unique identifier of the project.
RequiredworkItemIdinteger (int32)
path
The unique identifier of the work item.
RequiredattachmentIdinteger (int32)
path
The unique identifier of the attachment.
Required
Responses
200
no schema
OK
401
no schema
Unauthorized
403
no schema
Forbidden
404
no schema
NotFound
Work Items / Comments
5 endpoints
Work Items / Comments
GET/v0/projects/{projectId}/workitems/{workItemId}/comments
Gets a paged list of comments from a work item.
/v0/projects/{projectId}/workitems/{workItemId}/comments
Parameters
projectIdinteger (int32)
path
The unique identifier of the project.
RequiredworkItemIdinteger (int32)
path
The unique identifier of the work item.
Requiredoffsetinteger (int32)
query
The number of items skipped from the results. Defaults to 0. Min value 0.
limitinteger (int32)
query
The max number of items included in the results, after the offset. Defaults to 20. Min value 1. Max value 100.
Responses
200
pagedResult<workItemComment>
A paged list of work item comment objects.
Example JSON
{ "totalCount": 1, "offset": 1, "limit": 1, "items": [ { "projectId": 1, "workItemId": 1, "commentId": 1, "text": "string", "user": { "id": 1, "username": "string", "email": "string", "name": "string", "creationDate": "2026-01-01T00:00:00Z" }, "workLog": { "projectId": 1, "workItemId": 1, "workLogId": 1, "user": {}, "value": 1, "comment": "string", "creationDate": "2026-01-01T00:00:00Z" }, "creationDate": "2026-01-01T00:00:00Z", "updateDate": "2026-01-01T00:00:00Z" } ] }400
no schema
Invalid offset and limit values.
401
no schema
Unauthorized
403
no schema
Forbidden
404
no schema
NotFound
POST/v0/projects/{projectId}/workitems/{workItemId}/comments
Creates a new comment for the work item.
/v0/projects/{projectId}/workitems/{workItemId}/comments
Parameters
projectIdinteger (int32)
path
The unique identifier of the project.
RequiredworkItemIdinteger (int32)
path
The unique identifier of the work item.
Requiredtextstring
body
The text of the message. Max 5000 chars.
Required
Responses
A new work item comment object.
Example JSON
{ "projectId": 1, "workItemId": 1, "commentId": 1, "text": "string", "user": { "id": 1, "username": "string", "email": "string", "name": "string", "creationDate": "2026-01-01T00:00:00Z" }, "workLog": { "projectId": 1, "workItemId": 1, "workLogId": 1, "user": {}, "value": 1, "comment": "string", "creationDate": "2026-01-01T00:00:00Z" }, "creationDate": "2026-01-01T00:00:00Z", "updateDate": "2026-01-01T00:00:00Z" }400
no schema
Invalid comment text.
401
no schema
Unauthorized
403
no schema
Forbidden
404
no schema
NotFound
GET/v0/projects/{projectId}/workitems/{workItemId}/comments/{commentId}
Gets a work item comment.
/v0/projects/{projectId}/workitems/{workItemId}/comments/{commentId}
Parameters
projectIdinteger (int32)
path
The unique identifier of the project.
RequiredworkItemIdinteger (int32)
path
The unique identifier of the work item.
RequiredcommentIdinteger (int32)
path
The unique identifier of the comment.
Required
Responses
A work item comment object.
Example JSON
{ "projectId": 1, "workItemId": 1, "commentId": 1, "text": "string", "user": { "id": 1, "username": "string", "email": "string", "name": "string", "creationDate": "2026-01-01T00:00:00Z" }, "workLog": { "projectId": 1, "workItemId": 1, "workLogId": 1, "user": {}, "value": 1, "comment": "string", "creationDate": "2026-01-01T00:00:00Z" }, "creationDate": "2026-01-01T00:00:00Z", "updateDate": "2026-01-01T00:00:00Z" }401
no schema
Unauthorized
403
no schema
Forbidden
404
no schema
NotFound
PUT/v0/projects/{projectId}/workitems/{workItemId}/comments/{commentId}
Updates a work item comment.
/v0/projects/{projectId}/workitems/{workItemId}/comments/{commentId}
Only the author of the comment can update it.
Parameters
projectIdinteger (int32)
path
The unique identifier of the project.
RequiredworkItemIdinteger (int32)
path
The unique identifier of the work item.
RequiredcommentIdinteger (int32)
path
The unique identifier of the comment.
Requiredtextstring
body
The text of the comment. Max 5000 chars.
Required
Responses
A new work item comment object.
Example JSON
{ "projectId": 1, "workItemId": 1, "commentId": 1, "text": "string", "user": { "id": 1, "username": "string", "email": "string", "name": "string", "creationDate": "2026-01-01T00:00:00Z" }, "workLog": { "projectId": 1, "workItemId": 1, "workLogId": 1, "user": {}, "value": 1, "comment": "string", "creationDate": "2026-01-01T00:00:00Z" }, "creationDate": "2026-01-01T00:00:00Z", "updateDate": "2026-01-01T00:00:00Z" }400
no schema
Invalid comment text.
401
no schema
Unauthorized
403
no schema
Forbidden
404
no schema
NotFound
DELETE/v0/projects/{projectId}/workitems/{workItemId}/comments/{commentId}
Deletes a work item comment.
/v0/projects/{projectId}/workitems/{workItemId}/comments/{commentId}
Only the author of the comment and admins can delete it.
Parameters
projectIdinteger (int32)
path
The unique identifier of the project.
RequiredworkItemIdinteger (int32)
path
The unique identifier of the work item.
RequiredcommentIdinteger (int32)
path
The unique identifier of the comment.
Required
Responses
200
no schema
OK
401
no schema
Unauthorized
403
no schema
Forbidden
404
no schema
NotFound
Work Items / Dependencies
4 endpoints
Work Items / Dependencies
GET/v0/projects/{projectId}/workitems/{workItemId}/dependencies
Gets the list of dependencies of the work items.
/v0/projects/{projectId}/workitems/{workItemId}/dependencies
Parameters
projectIdinteger (int32)
path
The unique identifier of the project.
RequiredworkItemIdinteger (int32)
path
The unique identifier of the work item.
Required
Responses
200
array<workItemDependency>
A list of work item dependency objects.
Example JSON
[ { "workItem": { "projectId": 1, "workItemId": 1, "parentStoryId": 1, "isStory": true, "title": "string", "description": "string", "category": { "projectId": 1, "categoryId": 1, "name": "string", "icon": "string", "color": "string", "creationDate": "2026-01-01T00:00:00Z" }, "stage": { "projectId": 1, "stageId": 1, "name": "string", "icon": "string", "color": "string", "status": "string", "isUnblocker": true, "creationDate": "2026-01-01T00:00:00Z" }, "estimatedCost": 1, "loggedCost": 1, "storyTasksEstimatedCost": 1, "storyTasksLoggedCost": 1, "boardIndex": 1, "designElementIndex": 1, "designElement": { "index": 1, "projectId": 1, "designElementId": 1, "type": { "projectId": null, "designElementTypeId": null, "name": null, "creationDate": null }, "name": "string", "prefix": "string", "parent": {}, "children": [ {} ], "totalWorkItemCount": 1, "closedWorkItemCount": 1, "description": "string", "startDate": "2026-01-01T00:00:00Z", "dueDate": "2026-01-01T00:00:00Z", "creationDate": "2026-01-01T00:00:00Z", "updateDate": "2026-01-01T00:00:00Z", "user": { "projectId": null, "user": null, "isAdmin": null, "isGuest": null, "isActive": null, "creationDate": null, "permissions": null, "role": null } }, "startDate": "2026-01-01T00:00:00Z", "dueDate": "2026-01-01T00:00:00Z", "updateDate": "2026-01-01T00:00:00Z", "closingDate": "2026-01-01T00:00:00Z", "creationDate": "2026-01-01T00:00:00Z", "user": { "id": 1, "username": "string", "email": "string", "name": "string", "creationDate": "2026-01-01T00:00:00Z" }, "board": { "projectId": 1, "boardId": 1, "milestoneId": 1, "name": "string", "description": "string", "generalInfo": "string", "startDate": "2026-01-01T00:00:00Z", "dueDate": "2026-01-01T00:00:00Z", "closingDate": "2026-01-01T00:00:00Z", "creationDate": "2026-01-01T00:00:00Z", "creator": {}, "isDefault": true }, "assignedUsers": [ {} ], "tags": [ { "projectId": 1, "tagId": 1, "name": "string", "icon": "string", "color": "string", "displayIconOnly": true, "creationDate": "2026-01-01T00:00:00Z" } ], "importanceLevel": { "projectId": 1, "importanceLevelId": 1, "name": "string", "icon": "string", "color": "string", "isDefault": true, "creationDate": "2026-01-01T00:00:00Z" }, "picture": { "projectId": 1, "workItemId": 1, "attachmentId": 1, "file": { "projectId": null, "fileId": null, "name": null, "thumbName": null, "url": null, "thumbUrl": null, "size": null, "isImage": null, "user": null, "creationDate": null }, "user": {}, "isCardPicture": true, "creationDate": "2026-01-01T00:00:00Z" }, "hasDependencies": true, "isBlocked": true }, "isResolved": true } ]401
no schema
Unauthorized
403
no schema
Forbidden
404
no schema
NotFound
POST/v0/projects/{projectId}/workitems/{workItemId}/dependencies
Creates a new dependency for the work item.
/v0/projects/{projectId}/workitems/{workItemId}/dependencies
Parameters
projectIdinteger (int32)
path
The unique identifier of the project.
RequiredworkItemIdinteger (int32)
path
The unique identifier of the work item.
RequireddependencyIdinteger (int32)
body
The unique identifier of the dependency (work item).
Required
Responses
201
no schema
Created
400
no schema
Invalid dependency.
401
no schema
Unauthorized
403
no schema
Forbidden
404
no schema
NotFound
GET/v0/projects/{projectId}/workitems/{workItemId}/dependencies/{dependencyId}
Gets a work item dependency.
/v0/projects/{projectId}/workitems/{workItemId}/dependencies/{dependencyId}
Parameters
projectIdinteger (int32)
path
The unique identifier of the project.
RequiredworkItemIdinteger (int32)
path
The unique identifier of the work item.
RequireddependencyIdinteger (int32)
path
The unique identifier of the dependency (work item).
Required
Responses
A work item dependency object.
Example JSON
{ "workItem": { "projectId": 1, "workItemId": 1, "parentStoryId": 1, "isStory": true, "title": "string", "description": "string", "category": { "projectId": 1, "categoryId": 1, "name": "string", "icon": "string", "color": "string", "creationDate": "2026-01-01T00:00:00Z" }, "stage": { "projectId": 1, "stageId": 1, "name": "string", "icon": "string", "color": "string", "status": "string", "isUnblocker": true, "creationDate": "2026-01-01T00:00:00Z" }, "estimatedCost": 1, "loggedCost": 1, "storyTasksEstimatedCost": 1, "storyTasksLoggedCost": 1, "boardIndex": 1, "designElementIndex": 1, "designElement": { "index": 1, "projectId": 1, "designElementId": 1, "type": { "projectId": 1, "designElementTypeId": 1, "name": "string", "creationDate": "2026-01-01T00:00:00Z" }, "name": "string", "prefix": "string", "parent": {}, "children": [ {} ], "totalWorkItemCount": 1, "closedWorkItemCount": 1, "description": "string", "startDate": "2026-01-01T00:00:00Z", "dueDate": "2026-01-01T00:00:00Z", "creationDate": "2026-01-01T00:00:00Z", "updateDate": "2026-01-01T00:00:00Z", "user": { "projectId": 1, "user": null, "isAdmin": true, "isGuest": true, "isActive": true, "creationDate": "2026-01-01T00:00:00Z", "permissions": null, "role": null } }, "startDate": "2026-01-01T00:00:00Z", "dueDate": "2026-01-01T00:00:00Z", "updateDate": "2026-01-01T00:00:00Z", "closingDate": "2026-01-01T00:00:00Z", "creationDate": "2026-01-01T00:00:00Z", "user": {}, "board": { "projectId": 1, "boardId": 1, "milestoneId": 1, "name": "string", "description": "string", "generalInfo": "string", "startDate": "2026-01-01T00:00:00Z", "dueDate": "2026-01-01T00:00:00Z", "closingDate": "2026-01-01T00:00:00Z", "creationDate": "2026-01-01T00:00:00Z", "creator": {}, "isDefault": true }, "assignedUsers": [ {} ], "tags": [ { "projectId": 1, "tagId": 1, "name": "string", "icon": "string", "color": "string", "displayIconOnly": true, "creationDate": "2026-01-01T00:00:00Z" } ], "importanceLevel": { "projectId": 1, "importanceLevelId": 1, "name": "string", "icon": "string", "color": "string", "isDefault": true, "creationDate": "2026-01-01T00:00:00Z" }, "picture": { "projectId": 1, "workItemId": 1, "attachmentId": 1, "file": { "projectId": 1, "fileId": 1, "name": "string", "thumbName": "string", "url": "string", "thumbUrl": "string", "size": 1, "isImage": true, "user": {}, "creationDate": "2026-01-01T00:00:00Z" }, "user": {}, "isCardPicture": true, "creationDate": "2026-01-01T00:00:00Z" }, "hasDependencies": true, "isBlocked": true }, "isResolved": true }401
no schema
Unauthorized
403
no schema
Forbidden
404
no schema
NotFound
DELETE/v0/projects/{projectId}/workitems/{workItemId}/dependencies/{dependencyId}
Removes a work item dependency.
/v0/projects/{projectId}/workitems/{workItemId}/dependencies/{dependencyId}
Parameters
projectIdinteger (int32)
path
The unique identifier of the project.
RequiredworkItemIdinteger (int32)
path
The unique identifier of the work item.
RequireddependencyIdinteger (int32)
path
The unique identifier of the dependency (work item).
Required
Responses
201
no schema
Created
401
no schema
Unauthorized
403
no schema
Forbidden
404
no schema
NotFound
Work Items / Subtasks
6 endpoints
Work Items / Subtasks
GET/v0/projects/{projectId}/workitems/{workItemId}/subtasks
Gets the list of subtasks of the work item.
/v0/projects/{projectId}/workitems/{workItemId}/subtasks
Parameters
projectIdinteger (int32)
path
The unique identifier of the project.
RequiredworkItemIdinteger (int32)
path
The unique identifier of the work item.
Required
Responses
200
array<workItemSubTask>
A list of work item subtask objects.
Example JSON
[ { "projectId": 1, "workItemId": 1, "subTaskId": 1, "title": "string", "isCompleted": true, "index": 1, "creationDate": "2026-01-01T00:00:00Z" } ]401
no schema
Unauthorized
403
no schema
Forbidden
404
no schema
NotFound
POST/v0/projects/{projectId}/workitems/{workItemId}/subtasks
Creates a new work item subtask.
/v0/projects/{projectId}/workitems/{workItemId}/subtasks
Parameters
projectIdinteger (int32)
path
The unique identifier of the project.
RequiredworkItemIdinteger (int32)
path
The unique identifier of the work item.
Requiredtitlestring
body
The title of the subtask.
Required
Responses
200
array<workItemSubTask>
A list of work item subtask objects.
Example JSON
[ { "projectId": 1, "workItemId": 1, "subTaskId": 1, "title": "string", "isCompleted": true, "index": 1, "creationDate": "2026-01-01T00:00:00Z" } ]400
no schema
Invalid subtask title.
401
no schema
Unauthorized
403
no schema
Forbidden
404
no schema
NotFound
GET/v0/projects/{projectId}/workitems/{workItemId}/subtasks/{subTaskId}
Gets a work item subtask.
/v0/projects/{projectId}/workitems/{workItemId}/subtasks/{subTaskId}
Parameters
projectIdinteger (int32)
path
The unique identifier of the project.
RequiredworkItemIdinteger (int32)
path
The unique identifier of the work item.
RequiredsubTaskIdinteger (int32)
path
The unique identifier of the subtask.
Required
Responses
A work item comment object.
Example JSON
{ "projectId": 1, "workItemId": 1, "commentId": 1, "text": "string", "user": { "id": 1, "username": "string", "email": "string", "name": "string", "creationDate": "2026-01-01T00:00:00Z" }, "workLog": { "projectId": 1, "workItemId": 1, "workLogId": 1, "user": {}, "value": 1, "comment": "string", "creationDate": "2026-01-01T00:00:00Z" }, "creationDate": "2026-01-01T00:00:00Z", "updateDate": "2026-01-01T00:00:00Z" }401
no schema
Unauthorized
403
no schema
Forbidden
404
no schema
NotFound
PUT/v0/projects/{projectId}/workitems/{workItemId}/subtasks/{subTaskId}
Updates a work item subtask.
/v0/projects/{projectId}/workitems/{workItemId}/subtasks/{subTaskId}
All the fields will be replaced, and optional values not set in the values object will be set to null.
Parameters
projectIdinteger (int32)
path
The unique identifier of the project.
RequiredworkItemIdinteger (int32)
path
The unique identifier of the work item.
RequiredsubTaskIdinteger (int32)
path
The unique identifier of the subtask.
RequiredupdateWorkItemSubTaskValuesupdateWorkItemSubTaskValues
body
The work item subtask update values object.
Required
Responses
200
no schema
OK
400
no schema
Invalid subtask title.
401
no schema
Unauthorized
403
no schema
Forbidden
404
no schema
NotFound
PATCH/v0/projects/{projectId}/workitems/{workItemId}/subtasks/{subTaskId}
Updates a work item subtask partially.
/v0/projects/{projectId}/workitems/{workItemId}/subtasks/{subTaskId}
Only fields included in the value object will be updated, the rest will remain untouched.
Parameters
projectIdinteger (int32)
path
The unique identifier of the project.
RequiredworkItemIdinteger (int32)
path
The unique identifier of the work item.
RequiredsubTaskIdinteger (int32)
path
The unique identifier of the subtask.
RequiredpatchWorkItemSubTaskValuespatchWorkItemSubTaskValues
body
The work item subtask update values object.
Required
Responses
200
no schema
OK
400
no schema
Invalid subtask title.
401
no schema
Unauthorized
403
no schema
Forbidden
404
no schema
NotFound
DELETE/v0/projects/{projectId}/workitems/{workItemId}/subtasks/{subTaskId}
Deletes a work item.
/v0/projects/{projectId}/workitems/{workItemId}/subtasks/{subTaskId}
Parameters
projectIdinteger (int32)
path
The unique identifier of the project.
RequiredworkItemIdinteger (int32)
path
The unique identifier of the work item.
RequiredsubTaskIdinteger (int32)
path
The unique identifier of the subtask.
Required
Responses
200
no schema
OK
401
no schema
Unauthorized
403
no schema
Forbidden
404
no schema
NotFound
Work Items / Tags
3 endpoints
Work Items / Tags
GET/v0/projects/{projectId}/workitems/{workItemId}/tags
Gets the list of tags of the work item.
/v0/projects/{projectId}/workitems/{workItemId}/tags
Parameters
projectIdinteger (int32)
path
The unique identifier of the project.
RequiredworkItemIdinteger (int32)
path
The unique identifier of the work item.
Required
Responses
200
array<ProjectTag_Internal>
A list of tag objects.
Example JSON
[ { "projectId": 1, "tagId": 1, "displayOrder": 1, "name": "string", "groupName": "string", "color": "string", "icon": "string", "displayIconOnly": true, "creationDate": "2026-01-01T00:00:00Z" } ]401
no schema
Unauthorized
403
no schema
Forbidden
404
no schema
NotFound
POST/v0/projects/{projectId}/workitems/{workItemId}/tags
Assigns a project tag to a work item.
/v0/projects/{projectId}/workitems/{workItemId}/tags
Parameters
projectIdinteger (int32)
path
The unique identifier of the project.
RequiredworkItemIdinteger (int32)
path
The unique identifier of the work item.
RequiredtagIdinteger (int32)
body
The unique identifier of the tag.
Required
Responses
201
no schema
Created
401
no schema
Unauthorized
403
no schema
Forbidden
404
no schema
NotFound
409
no schema
The tag is already assigned to the work item.
DELETE/v0/projects/{projectId}/workitems/{workItemId}/tags/{tagId}
Removes a tag from a work item.
/v0/projects/{projectId}/workitems/{workItemId}/tags/{tagId}
Parameters
projectIdinteger (int32)
path
The unique identifier of the project.
RequiredworkItemIdinteger (int32)
path
The unique identifier of a work item.
RequiredtagIdinteger (int32)
path
The unique identifier of the tag.
Required
Responses
200
no schema
OK
401
no schema
Unauthorized
403
no schema
Forbidden
404
no schema
NotFound
Work Items / Users
2 endpoints
Work Items / Users
POST/v0/projects/{projectId}/workitems/{workItemId}/users
Assigns a user to a work item
/v0/projects/{projectId}/workitems/{workItemId}/users
Parameters
projectIdinteger (int32)
path
The unique identifier of the project.
RequiredworkItemIdinteger (int32)
path
The unique identifier of the work item.
RequireduserIdinteger (int32)
body
The unique identifier of the user.
Required
Responses
200
no schema
OK
401
no schema
Unauthorized
403
no schema
Forbidden
404
no schema
NotFound
409
no schema
The user is inactive
DELETE/v0/projects/{projectId}/workitems/{workItemId}/users/{userId}
Unassigns a user from a work item.
/v0/projects/{projectId}/workitems/{workItemId}/users/{userId}
Parameters
projectIdinteger (int32)
path
The unique identifier of the project.
RequiredworkItemIdinteger (int32)
path
The unique identifier of the work item.
RequireduserIdinteger (int32)
path
The unique identifier of the user.
Required
Responses
200
no schema
OK
401
no schema
Unauthorized
403
no schema
Forbidden
404
no schema
NotFound
Work Items / Work Logs
5 endpoints
Work Items / Work Logs
GET/v0/projects/{projectId}/workitems/{workItemId}/worklogs
Gets the list of logs of the work item.
/v0/projects/{projectId}/workitems/{workItemId}/worklogs
Parameters
projectIdinteger (int32)
path
The unique identifier of the project.
RequiredworkItemIdinteger (int32)
path
The unique identifier of the work item.
Required
Responses
200
array<workLog>
A list of work log objects.
Example JSON
[ { "projectId": 1, "workItemId": 1, "workLogId": 1, "user": { "id": 1, "username": "string", "email": "string", "name": "string", "creationDate": "2026-01-01T00:00:00Z" }, "value": 1, "comment": "string", "creationDate": "2026-01-01T00:00:00Z" } ]401
no schema
Unauthorized
403
no schema
Forbidden
404
no schema
NotFound
POST/v0/projects/{projectId}/workitems/{workItemId}/worklogs
Creates a new work log.
/v0/projects/{projectId}/workitems/{workItemId}/worklogs
Parameters
projectIdinteger (int32)
path
The unique identifier of the project.
RequiredworkItemIdinteger (int32)
path
The unique identifier of the work item.
RequiredcreateWorkLogValuescreateWorkLogValues
body
The work log creation values object.
Required
Responses
201
A new work log object.
Example JSON
{ "projectId": 1, "workItemId": 1, "workLogId": 1, "user": { "id": 1, "username": "string", "email": "string", "name": "string", "creationDate": "2026-01-01T00:00:00Z" }, "value": 1, "comment": "string", "creationDate": "2026-01-01T00:00:00Z" }400
no schema
Invalid values object.
401
no schema
Unauthorized
403
no schema
Forbidden
404
no schema
NotFound
GET/v0/projects/{projectId}/workitems/{workItemId}/worklogs/{workLogId}
Gets a worklog by its id.
/v0/projects/{projectId}/workitems/{workItemId}/worklogs/{workLogId}
Parameters
projectIdinteger (int32)
path
The unique identifier of the project.
RequiredworkItemIdinteger (int32)
path
The unique identifier of the work item.
RequiredworkLogIdinteger (int32)
path
The unique identifier of the work log.
Required
Responses
200
A work log object.
Example JSON
{ "projectId": 1, "workItemId": 1, "workLogId": 1, "user": { "id": 1, "username": "string", "email": "string", "name": "string", "creationDate": "2026-01-01T00:00:00Z" }, "value": 1, "comment": "string", "creationDate": "2026-01-01T00:00:00Z" }401
no schema
Unauthorized
403
no schema
Forbidden
404
no schema
NotFound
PUT/v0/projects/{projectId}/workitems/{workItemId}/worklogs/{workLogId}
Updates a work log.
/v0/projects/{projectId}/workitems/{workItemId}/worklogs/{workLogId}
Parameters
projectIdinteger (int32)
path
The unique identifier of the project.
RequiredworkItemIdinteger (int32)
path
The unique identifier of the work item.
RequiredworkLogIdinteger (int32)
path
The unique identifier of the work log.
Requiredvaluenumber (float)
body
The value of the work log.
Required
Responses
201
A new work log object.
Example JSON
{ "projectId": 1, "workItemId": 1, "workLogId": 1, "user": { "id": 1, "username": "string", "email": "string", "name": "string", "creationDate": "2026-01-01T00:00:00Z" }, "value": 1, "comment": "string", "creationDate": "2026-01-01T00:00:00Z" }400
no schema
Invalid log value.
401
no schema
Unauthorized
403
no schema
Forbidden
404
no schema
NotFound
DELETE/v0/projects/{projectId}/workitems/{workItemId}/worklogs/{workLogId}
Deletes the work log.
/v0/projects/{projectId}/workitems/{workItemId}/worklogs/{workLogId}
Parameters
projectIdinteger (int32)
path
The unique identifier of the project.
RequiredworkItemIdinteger (int32)
path
The unique identifier of the work item.
RequiredworkLogIdinteger (int32)
path
The unique identifier of the work log.
Required
Responses
200
no schema
OK
401
no schema
Unauthorized
403
no schema
Forbidden
404
no schema
NotFound
Workspaces
2 endpoints
Workspaces
GET/v0/workspaces
Gets the list of workspaces the user belongs to.
/v0/workspaces
Parameters
includeProjectsboolean
query
True to include the list of workspace projects in the result. Defaults to false.
onlyAdminboolean
query
True to only return workspaces the user is admin of. Defaults to false.
onlyOwnerboolean
query
True to only return the workspace the user owns, if any. Defaults to false.
Responses
200
array<workspace>
A list of workspace objects.
Example JSON
[ { "id": 1, "name": "string", "owner": { "id": 1, "username": "string", "email": "string", "name": "string", "creationDate": "2026-01-01T00:00:00Z" }, "generalInfo": "string", "totalSeats": 1, "usedSeats": 1, "creationDate": "2026-01-01T00:00:00Z", "projects": [ { "id": 1, "workspaceId": 1, "name": "string", "description": "string", "generalInfo": "string", "closingDate": "2026-01-01T00:00:00Z", "creationDate": "2026-01-01T00:00:00Z", "owner": {}, "costMetric": "string", "isDemo": true, "hoursPerDay": 1, "moduleConfig": { "workItems": true, "workItemCategories": true, "workItemDates": true, "workItemCosts": true, "workItemSubTasks": true, "workItemDependencies": true, "workItemAttachments": true, "workItemComments": true, "workItemTags": true, "gameDesignModel": true, "gameDesignModelTypes": true, "gameDesignModelDates": true, "gameDesignModelAttachments": true, "gameDesignModelComments": true, "calendar": true, "burndownChart": true, "ganttChart": true, "metrics": true, "activity": true, "notifications": true, "forceWorkItemDesignElement": true, "forceWorkItemBoard": true, "forceWorkItemEstimatedCost": true, "forceWorkItemDueDate": true, "forceWorkItemDescription": true, "forceWorkItemUser": true, "forceWorkItemTag": true }, "defaultBoardId": 1 } ] } ]401
no schema
Unauthorized
GET/v0/workspaces/{workspaceId}
Gets a workspace object.
/v0/workspaces/{workspaceId}
Parameters
workspaceIdinteger (int32)
path
The unique id of the workspace.
RequiredincludeProjectsboolean
query
True if the workspace should include a list of the contained projects. Defaults to false.
Responses
200
A workspace object.
Example JSON
{ "id": 1, "name": "string", "owner": { "id": 1, "username": "string", "email": "string", "name": "string", "creationDate": "2026-01-01T00:00:00Z" }, "generalInfo": "string", "totalSeats": 1, "usedSeats": 1, "creationDate": "2026-01-01T00:00:00Z", "projects": [ { "id": 1, "workspaceId": 1, "name": "string", "description": "string", "generalInfo": "string", "closingDate": "2026-01-01T00:00:00Z", "creationDate": "2026-01-01T00:00:00Z", "owner": {}, "costMetric": "string", "isDemo": true, "hoursPerDay": 1, "moduleConfig": { "workItems": true, "workItemCategories": true, "workItemDates": true, "workItemCosts": true, "workItemSubTasks": true, "workItemDependencies": true, "workItemAttachments": true, "workItemComments": true, "workItemTags": true, "gameDesignModel": true, "gameDesignModelTypes": true, "gameDesignModelDates": true, "gameDesignModelAttachments": true, "gameDesignModelComments": true, "calendar": true, "burndownChart": true, "ganttChart": true, "metrics": true, "activity": true, "notifications": true, "forceWorkItemDesignElement": true, "forceWorkItemBoard": true, "forceWorkItemEstimatedCost": true, "forceWorkItemDueDate": true, "forceWorkItemDescription": true, "forceWorkItemUser": true, "forceWorkItemTag": true }, "defaultBoardId": 1 } ] }401
no schema
Unauthorized
403
no schema
Forbidden
404
no schema
NotFound
Workspaces / Teams
2 endpoints
Workspaces / Teams
GET/v0/workspaces/{workspaceId}/teams
Gets a list of the teams in the workspace.
/v0/workspaces/{workspaceId}/teams
Parameters
workspaceIdinteger (int32)
path
The unique identifier of the workspace.
Required
Responses
200
array<workspaceTeam>
A list of workspace team objects.
Example JSON
[ { "workspaceId": 1, "teamId": 1, "name": "string", "users": [ { "workspaceId": 1, "user": { "id": 1, "username": "string", "email": "string", "name": "string", "creationDate": "2026-01-01T00:00:00Z" }, "teamId": 1, "isAdmin": true, "isGuest": true, "isActive": true, "creationDate": "2026-01-01T00:00:00Z" } ], "creator": {}, "creationDate": "2026-01-01T00:00:00Z" } ]401
no schema
Unauthorized
403
no schema
Forbidden
404
no schema
NotFound
GET/v0/workspaces/{workspaceId}/teams/{teamId}
Get a workspace team by id.
/v0/workspaces/{workspaceId}/teams/{teamId}
Parameters
workspaceIdinteger (int32)
path
The unique identifier of the workspace.
RequiredteamIdinteger (int32)
path
The unique identifier of the team within the workspace.
Required
Responses
A workspace team object.
Example JSON
{ "workspaceId": 1, "teamId": 1, "name": "string", "users": [ { "workspaceId": 1, "user": { "id": 1, "username": "string", "email": "string", "name": "string", "creationDate": "2026-01-01T00:00:00Z" }, "teamId": 1, "isAdmin": true, "isGuest": true, "isActive": true, "creationDate": "2026-01-01T00:00:00Z" } ], "creator": {}, "creationDate": "2026-01-01T00:00:00Z" }401
no schema
Unauthorized
403
no schema
Forbidden
404
no schema
NotFound
Workspaces / Users
2 endpoints
Workspaces / Users
GET/v0/workspaces/{workspaceId}/users
Gets a list of the users of the workspace.
/v0/workspaces/{workspaceId}/users
Parameters
workspaceIdinteger (int32)
path
The unique identifier of the workspace.
RequiredincludeInactiveboolean
query
True to include the users that were part of the workspace but are currently inactive. Defaults to false.
Responses
200
array<workspaceUser>
A list of workspace user objects.
Example JSON
[ { "workspaceId": 1, "user": { "id": 1, "username": "string", "email": "string", "name": "string", "creationDate": "2026-01-01T00:00:00Z" }, "teamId": 1, "isAdmin": true, "isGuest": true, "isActive": true, "creationDate": "2026-01-01T00:00:00Z" } ]401
no schema
Unauthorized
403
no schema
Forbidden
404
no schema
NotFound
GET/v0/workspaces/{workspaceId}/users/{userId}
Gets a workspace user.
/v0/workspaces/{workspaceId}/users/{userId}
Parameters
workspaceIdinteger (int32)
path
The unique identifier of the workspace.
RequireduserIdinteger (int32)
path
The unique identifier of the user.
Required
Responses
A workspace user object.
Example JSON
{ "workspaceId": 1, "user": { "id": 1, "username": "string", "email": "string", "name": "string", "creationDate": "2026-01-01T00:00:00Z" }, "teamId": 1, "isAdmin": true, "isGuest": true, "isActive": true, "creationDate": "2026-01-01T00:00:00Z" }401
no schema
Unauthorized
403
no schema
Forbidden
404
no schema
NotFound