GitScrum / Docs

Tasks

Create, update, filter, complete, and manage tasks. The core resource for project work items.

REST API — All endpoints require authentication via Bearer token. Include Authorization: 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

ParameterTypeRequiredDescription
company_slugstringYesWorkspace identifier
project_slugstringYesProject identifier
statusstringNoFilter by status: todo, in-progress, done
sprintstringNoSprint slug
user_storystringNoUser story slug
usersstringNoComma-separated usernames
labelsstringNoComma-separated label titles
typestringNoTask type title
effortstringNoEffort level title
workflowstringNoKanban column title
is_blockerbooleanNoFilter blocker tasks
is_archivedbooleanNoFilter archived tasks
unassignedbooleanNoOnly unassigned tasks
created_atstringNoDate range YYYY-MM-DD=YYYY-MM-DD
closed_atstringNoDate range YYYY-MM-DD=YYYY-MM-DD
per_pageintegerNoResults 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

ParameterTypeDescription
uuidstringTask 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

ParameterTypeDescription
codestringTask code (e.g., PROJ-123)

My Tasks

Returns tasks assigned to the authenticated user across all workspaces.

GET /tasks/all-workspaces

Today's Tasks

Returns tasks assigned to the authenticated user that are due today.

GET /tasks/my-today

Create Task

Creates a new task in the specified project.

POST /tasks

Request Body

FieldTypeRequiredDescription
titlestringYesTask title
company_slugstringYesWorkspace identifier
project_slugstringYesProject identifier
descriptionstringNoTask description (markdown)
columnstringNoKanban column name (e.g., "In Progress")
workflow_idintegerNoKanban column ID (alternative to column)
type_idintegerNoTask type ID
effort_idintegerNoEffort/priority level ID
sprint_slugstringNoSprint to assign the task to
userstoryslugstringNoUser story to link
usernamesarrayNoUsernames to assign
label_idsarrayNoLabel IDs to attach
due_datestringNoDeadline (YYYY-MM-DD)
start_datestringNoStart date (YYYY-MM-DD)
estimated_minutesintegerNoTime estimate in minutes
is_blockerbooleanNoMark as blocker
is_bugbooleanNoMark as bug
parent_idstringNoParent 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

ParameterTypeDescription
uuidstringTask 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

ParameterTypeDescription
uuidstringTask UUID

Update Estimate

Updates the story points or estimate for a task.

PUT /tasks/{uuid}/estimative?company_slug={slug}&project_slug={slug}

Path Parameters

ParameterTypeDescription
uuidstringTask UUID

Request Body

FieldTypeRequiredDescription
estimativestringYesStory 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

ParameterTypeDescription
uuidstringTask UUID

Request Body

FieldTypeRequiredDescription
board_uuidstringYesTarget 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

FieldTypeRequiredDescription
newprojectslugstringYesTarget project slug
newworkflowidintegerYesTarget Kanban column ID

Subtasks

List Subtasks

Returns subtasks of a parent task.

GET /tasks/{uuid}/sub-tasks?company_slug={slug}&project_slug={slug}

Links an existing task as a subtask.

POST /tasks/{uuid}/sub-tasks/{subtask_uuid}?company_slug={slug}&project_slug={slug}

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}

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-assignees

Request Body

FieldTypeRequiredDescription
task_uuidstringYesTask UUID
usernamestringYesUsername to assign
company_slugstringYesWorkspace identifier
project_slugstringYesProject identifier

Unassign Member

Removes a user from a task.

DELETE /task-assignees

Request Body

FieldTypeRequiredDescription
task_uuidstringYesTask UUID
usernamestringYesUsername to unassign
company_slugstringYesWorkspace identifier
project_slugstringYesProject 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-checklists

Request Body

FieldTypeRequiredDescription
titlestringYesItem text
task_uuidstringYesTask UUID
company_slugstringYesWorkspace identifier
project_slugstringYesProject identifier
parent_idintegerNoParent checklist item ID (for sub-items)

Update Checklist Item

Updates the title of a checklist item.

PUT /task-checklists/{id}

Request Body

FieldTypeRequiredDescription
titlestringYesUpdated text
company_slugstringYesWorkspace identifier

Toggle Checklist Item

Marks a checklist item as done or undone.

PUT /task-checklists/{id}/toggle

Delete 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-labels

Request Body

FieldTypeRequiredDescription
titlestringYesLabel name
colorstringYesHex color without #
task_uuidstringYesTask UUID
company_slugstringYesWorkspace identifier
project_slugstringYesProject identifier

Attach Label

Attaches an existing label to a task.

POST /task-labels/{label_id}/attach

Request Body

FieldTypeRequiredDescription
task_uuidstringYesTask UUID
company_slugstringYesWorkspace identifier
project_slugstringYesProject identifier

Detach Label

Removes a label from a task.

DELETE /task-labels/{label_id}/detach

Request Body

FieldTypeRequiredDescription
task_uuidstringYesTask UUID
company_slugstringYesWorkspace identifier
project_slugstringYesProject identifier

Import Tasks

Preview Import

Uploads a CSV file and returns a preview of the data to import.

POST /tasks/import/preview

Request Body (multipart/form-data)

FieldTypeRequiredDescription
filefileYesCSV file
company_slugstringYesWorkspace identifier
project_slugstringYesProject identifier

Confirm Import

Confirms the import and creates tasks from the previewed data.

POST /tasks/import/confirm

Request Body

FieldTypeRequiredDescription
company_slugstringYesWorkspace identifier
project_slugstringYesProject identifier
dataarrayYesMapped import data from preview

Export Tasks

Task Count

Returns the total count of tasks for export.

GET /{company_slug}/{project_slug}/tasks/count

Export as Excel

Downloads tasks as an Excel file.

GET /{company_slug}/{project_slug}/tasks/excel

Favorites

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

FieldTypeRequiredDescription
company_slugstringYesWorkspace identifier
project_slugstringYesProject identifier

Notifications

Returns task-related notifications for the authenticated user.

GET /tasks/notifications

Field Reference

FieldTypeDescription
uuidstringUnique identifier
codestringHuman-readable code (e.g., WEB-42)
titlestringTask title
slugstringURL-friendly identifier
descriptionstringTask description (markdown)
stateinteger0 = open, 1 = closed
estimativestringStory points or estimate label
estimated_minutesintegerTime estimate in minutes
totaltrackedminutesintegerTotal tracked time in minutes
parent_idstringParent task UUID (if subtask)
typeobjectTask type (id, title, color)
effortobjectEffort level (id, title)
workflowobjectKanban column (id, title)
labelsarrayAttached labels
userobjectCreator
usersarrayAssigned users
settingsobjectisblocker, isbug, isdraft, isarchived
statsobjectTask statistics
companyobjectWorkspace reference
projectobjectProject reference
boardobjectBoard reference
sprintobjectSprint reference
user_storyobjectLinked user story
start_datestringStart date
due_datestringDue date
created_atstringCreation timestamp