Tasks
Create, update, filter, complete, and manage tasks. The core resource for project work items.
REST API — All endpoints require authentication via Bearer token. IncludeAuthorization: Bearer {token}in every request. Tokens are managed in GitScrum Settings → API. Base URL:https://services.gitscrum.com— All request paths in this documentation are relative to this base URL.
Tasks are the core work items in GitScrum. Each task belongs to a project and can be assigned to users, organized into sprints, linked to user stories, labeled, and tracked through Kanban columns.
List Tasks (Filter)
Returns a paginated list of tasks matching the specified filters.
GET /tasks?company_slug={slug}&project_slug={slug}Query Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
company_slug | string | Yes | Workspace identifier |
project_slug | string | Yes | Project identifier |
status | string | No | Filter by status: todo, in-progress, done |
sprint | string | No | Sprint slug |
user_story | string | No | User story slug |
users | string | No | Comma-separated usernames |
labels | string | No | Comma-separated label titles |
type | string | No | Task type title |
effort | string | No | Effort level title |
workflow | string | No | Kanban column title |
is_blocker | boolean | No | Filter blocker tasks |
is_archived | boolean | No | Filter archived tasks |
unassigned | boolean | No | Only unassigned tasks |
created_at | string | No | Date range YYYY-MM-DD=YYYY-MM-DD |
closed_at | string | No | Date range YYYY-MM-DD=YYYY-MM-DD |
per_page | integer | No | Results per page (1–100, default 50) |
Example Request
curl -X GET "https://services.gitscrum.com/tasks?company_slug=acme&project_slug=web-app&status=in-progress&per_page=10" \
-H "Authorization: Bearer {token}"Example Response
{
"data": [
{
"uuid": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"code": "WEB-42",
"title": "Implement user authentication",
"slug": "implement-user-authentication",
"description": "Add JWT-based authentication flow",
"state": 0,
"workflow": {
"id": 2,
"title": "In Progress"
},
"type": {
"id": 1,
"title": "Feature",
"color": "4A90D9"
},
"effort": {
"id": 3,
"title": "High"
},
"users": [
{
"username": "johndoe",
"name": "John Doe"
}
],
"labels": [],
"settings": {
"is_blocker": false,
"is_bug": false,
"is_draft": false,
"is_archived": false
},
"due_date": "2026-02-15",
"created_at": "2026-01-20T10:30:00Z"
}
],
"meta": {
"current_page": 1,
"per_page": 10,
"total": 42
}
}Get Task
Returns full details for a single task.
GET /tasks/{uuid}?company_slug={slug}&project_slug={slug}Path Parameters
| Parameter | Type | Description |
|---|---|---|
uuid | string | Task UUID |
Get Task by Code
Retrieves a task using its human-readable code.
GET /tasks/by-code/{code}?company_slug={slug}&project_slug={slug}Path Parameters
| Parameter | Type | Description |
|---|---|---|
code | string | Task code (e.g., PROJ-123) |
My Tasks
Returns tasks assigned to the authenticated user across all workspaces.
GET /tasks/all-workspacesToday's Tasks
Returns tasks assigned to the authenticated user that are due today.
GET /tasks/my-todayCreate Task
Creates a new task in the specified project.
POST /tasksRequest Body
| Field | Type | Required | Description |
|---|---|---|---|
title | string | Yes | Task title |
company_slug | string | Yes | Workspace identifier |
project_slug | string | Yes | Project identifier |
description | string | No | Task description (markdown) |
column | string | No | Kanban column name (e.g., "In Progress") |
workflow_id | integer | No | Kanban column ID (alternative to column) |
type_id | integer | No | Task type ID |
effort_id | integer | No | Effort/priority level ID |
sprint_slug | string | No | Sprint to assign the task to |
userstoryslug | string | No | User story to link |
usernames | array | No | Usernames to assign |
label_ids | array | No | Label IDs to attach |
due_date | string | No | Deadline (YYYY-MM-DD) |
start_date | string | No | Start date (YYYY-MM-DD) |
estimated_minutes | integer | No | Time estimate in minutes |
is_blocker | boolean | No | Mark as blocker |
is_bug | boolean | No | Mark as bug |
parent_id | string | No | Parent task UUID (creates subtask) |
Example Request
curl -X POST "https://services.gitscrum.com/tasks" \
-H "Authorization: Bearer {token}" \
-H "Content-Type: application/json" \
-d '{
"title": "Add password reset flow",
"company_slug": "acme",
"project_slug": "web-app",
"column": "To Do",
"type_id": 1,
"usernames": ["johndoe"],
"due_date": "2026-02-28",
"estimated_minutes": 120
}'Example Response
{
"data": {
"uuid": "b2c3d4e5-f6a7-8901-bcde-f12345678901",
"code": "WEB-43",
"title": "Add password reset flow",
"state": 0,
"workflow": {
"id": 1,
"title": "To Do"
},
"due_date": "2026-02-28",
"estimated_minutes": 120,
"created_at": "2026-02-07T14:00:00Z"
}
}Update Task
Updates an existing task. Supports updating title, description, dates, workflow, type, effort, sprint, user story, blocker, bug, draft, archived, and time estimate fields.
PUT /tasks/{uuid}Request Body
Accepts the same optional fields as Create Task, plus companyslug and projectslug.
Example Request
curl -X PUT "https://services.gitscrum.com/tasks/b2c3d4e5-f6a7-8901-bcde-f12345678901" \
-H "Authorization: Bearer {token}" \
-H "Content-Type: application/json" \
-d '{
"company_slug": "acme",
"project_slug": "web-app",
"column": "In Progress",
"is_blocker": true
}'Delete Task
Permanently deletes a task. This action cannot be undone.
DELETE /tasks/{uuid}?company_slug={slug}&project_slug={slug}Path Parameters
| Parameter | Type | Description |
|---|---|---|
uuid | string | Task UUID |
curl -X DELETE "https://services.gitscrum.com/tasks/b2c3d4e5-f6a7-8901-bcde-f12345678901?company_slug=acme&project_slug=web-app" \
-H "Authorization: Bearer {token}"Mark Task as Done
Toggles the done state of a task.
PUT /tasks/{uuid}/done?company_slug={slug}&project_slug={slug}Path Parameters
| Parameter | Type | Description |
|---|---|---|
uuid | string | Task UUID |
Update Estimate
Updates the story points or estimate for a task.
PUT /tasks/{uuid}/estimative?company_slug={slug}&project_slug={slug}Path Parameters
| Parameter | Type | Description |
|---|---|---|
uuid | string | Task UUID |
Request Body
| Field | Type | Required | Description |
|---|---|---|---|
estimative | string | Yes | Story points or estimate value |
Move to Board
Moves a task to a different project board.
PUT /tasks/{uuid}/project_board?company_slug={slug}&project_slug={slug}Path Parameters
| Parameter | Type | Description |
|---|---|---|
uuid | string | Task UUID |
Request Body
| Field | Type | Required | Description |
|---|---|---|---|
board_uuid | string | Yes | Target board UUID |
Duplicate Task
Creates a copy of the specified task.
POST /tasks/{uuid}/duplicate?company_slug={slug}&project_slug={slug}Move Task to Project
Moves a task to a different project.
POST /tasks/{uuid}/move?company_slug={slug}&project_slug={slug}Request Body
| Field | Type | Required | Description |
|---|---|---|---|
newprojectslug | string | Yes | Target project slug |
newworkflowid | integer | Yes | Target Kanban column ID |
Subtasks
List Subtasks
Returns subtasks of a parent task.
GET /tasks/{uuid}/sub-tasks?company_slug={slug}&project_slug={slug}Link Subtask
Links an existing task as a subtask.
POST /tasks/{uuid}/sub-tasks/{subtask_uuid}?company_slug={slug}&project_slug={slug}Unlink Subtask
Removes the subtask relationship without deleting the task.
DELETE /tasks/{uuid}/sub-tasks/{subtask_uuid}?company_slug={slug}&project_slug={slug}Available Subtasks
Searches for tasks that can be linked as subtasks.
GET /tasks/{uuid}/available-subtasks?company_slug={slug}&project_slug={slug}Related Tasks
Returns tasks related to the specified task.
GET /tasks/{uuid}/related-tasks?company_slug={slug}&project_slug={slug}Assignees
Assign Member
Assigns a user to a task.
POST /task-assigneesRequest Body
| Field | Type | Required | Description |
|---|---|---|---|
task_uuid | string | Yes | Task UUID |
username | string | Yes | Username to assign |
company_slug | string | Yes | Workspace identifier |
project_slug | string | Yes | Project identifier |
Unassign Member
Removes a user from a task.
DELETE /task-assigneesRequest Body
| Field | Type | Required | Description |
|---|---|---|---|
task_uuid | string | Yes | Task UUID |
username | string | Yes | Username to unassign |
company_slug | string | Yes | Workspace identifier |
project_slug | string | Yes | Project identifier |
Checklists
List Checklists
Returns checklists for a task.
GET /task-checklists?task_uuid={uuid}&company_slug={slug}&project_slug={slug}Create Checklist Item
Creates a new checklist item. Include parent_id to create a sub-item.
POST /task-checklistsRequest Body
| Field | Type | Required | Description |
|---|---|---|---|
title | string | Yes | Item text |
task_uuid | string | Yes | Task UUID |
company_slug | string | Yes | Workspace identifier |
project_slug | string | Yes | Project identifier |
parent_id | integer | No | Parent checklist item ID (for sub-items) |
Update Checklist Item
Updates the title of a checklist item.
PUT /task-checklists/{id}Request Body
| Field | Type | Required | Description |
|---|---|---|---|
title | string | Yes | Updated text |
company_slug | string | Yes | Workspace identifier |
Toggle Checklist Item
Marks a checklist item as done or undone.
PUT /task-checklists/{id}/toggleDelete Checklist Item
Removes a checklist item.
DELETE /task-checklists/{id}?company_slug={slug}&project_slug={slug}Task Labels
List Task Labels
Returns labels attached to a task.
GET /task-labels?task_uuid={uuid}&company_slug={slug}&project_slug={slug}List Available Labels
Returns labels not yet assigned to the task.
GET /task-labels/not-added?task_uuid={uuid}&company_slug={slug}&project_slug={slug}Create and Attach Label
Creates a new label and attaches it to the task.
POST /task-labelsRequest Body
| Field | Type | Required | Description |
|---|---|---|---|
title | string | Yes | Label name |
color | string | Yes | Hex color without # |
task_uuid | string | Yes | Task UUID |
company_slug | string | Yes | Workspace identifier |
project_slug | string | Yes | Project identifier |
Attach Label
Attaches an existing label to a task.
POST /task-labels/{label_id}/attachRequest Body
| Field | Type | Required | Description |
|---|---|---|---|
task_uuid | string | Yes | Task UUID |
company_slug | string | Yes | Workspace identifier |
project_slug | string | Yes | Project identifier |
Detach Label
Removes a label from a task.
DELETE /task-labels/{label_id}/detachRequest Body
| Field | Type | Required | Description |
|---|---|---|---|
task_uuid | string | Yes | Task UUID |
company_slug | string | Yes | Workspace identifier |
project_slug | string | Yes | Project identifier |
Import Tasks
Preview Import
Uploads a CSV file and returns a preview of the data to import.
POST /tasks/import/previewRequest Body (multipart/form-data)
| Field | Type | Required | Description |
|---|---|---|---|
file | file | Yes | CSV file |
company_slug | string | Yes | Workspace identifier |
project_slug | string | Yes | Project identifier |
Confirm Import
Confirms the import and creates tasks from the previewed data.
POST /tasks/import/confirmRequest Body
| Field | Type | Required | Description |
|---|---|---|---|
company_slug | string | Yes | Workspace identifier |
project_slug | string | Yes | Project identifier |
data | array | Yes | Mapped import data from preview |
Export Tasks
Task Count
Returns the total count of tasks for export.
GET /{company_slug}/{project_slug}/tasks/countExport as Excel
Downloads tasks as an Excel file.
GET /{company_slug}/{project_slug}/tasks/excelFavorites
List Favorites
Returns all tasks favorited by the authenticated user.
GET /favorites?company_slug={slug}Toggle Favorite
Adds or removes a task from favorites.
POST /favorites/{task_uuid}Request Body
| Field | Type | Required | Description |
|---|---|---|---|
company_slug | string | Yes | Workspace identifier |
project_slug | string | Yes | Project identifier |
Notifications
Returns task-related notifications for the authenticated user.
GET /tasks/notificationsField Reference
| Field | Type | Description |
|---|---|---|
uuid | string | Unique identifier |
code | string | Human-readable code (e.g., WEB-42) |
title | string | Task title |
slug | string | URL-friendly identifier |
description | string | Task description (markdown) |
state | integer | 0 = open, 1 = closed |
estimative | string | Story points or estimate label |
estimated_minutes | integer | Time estimate in minutes |
totaltrackedminutes | integer | Total tracked time in minutes |
parent_id | string | Parent task UUID (if subtask) |
type | object | Task type (id, title, color) |
effort | object | Effort level (id, title) |
workflow | object | Kanban column (id, title) |
labels | array | Attached labels |
user | object | Creator |
users | array | Assigned users |
settings | object | isblocker, isbug, isdraft, isarchived |
stats | object | Task statistics |
company | object | Workspace reference |
project | object | Project reference |
board | object | Board reference |
sprint | object | Sprint reference |
user_story | object | Linked user story |
start_date | string | Start date |
due_date | string | Due date |
created_at | string | Creation timestamp |