IntelliTasks

REST API

A versioned REST API for building integrations against your IntelliTasks data — projects, work items, comments, sprints, and members.

Authentication

Every request needs an Authorization: Bearer <token> header. Create a personal access token from Settings → Integrations.

Scopes

A token is created with one or more scopes: work_items (work items and comments), sprints, and members. Listing or reading projects needs no scope beyond a valid token. A legacy token with no scopes at all has full access.

Rate limits

120 requests per 60-second sliding window, per token. Every authenticated response carries X-RateLimit-Limit and X-RateLimit-Remaining headers; a 429 response also carries Retry-After (seconds).

Pagination

List endpoints accept limit (1-100, default 50) and an opaque cursor query parameter, and return a nextCursor field (null once there are no more pages).

Errors

Errors are shaped as { "error": { "code", "message", "fieldErrors"? } }. Codes: bad_request (400), unauthorized (401), forbidden / read_only (403), not_found (404), conflict (409), validation_failed (422), rate_limited (429), and internal (500).

Full machine-readable reference: /api/v1/openapi.json (OpenAPI 3.1).

Projects

get/api/v1/projects

List accessible projects.

get/api/v1/projects/{project}

Get a project, including its board columns and labels.

Parameters

  • project (path) — A project's id or key (e.g. "ENG").

Work items

get/api/v1/projects/{project}/work-itemsscope: work_items

List a project's work items.

Parameters

  • project (path) — A project's id or key (e.g. "ENG").
  • assigneeId (query) — Filter by assignee user id.
  • sprintId (query) — Filter by sprint id.
  • columnId (query) — Filter by board column id.
  • type (query) — Filter by work item type.
  • limit (query) — Page size, 1-100 (default 50).
  • cursor (query) — Opaque pagination cursor from a previous response's nextCursor.
post/api/v1/projects/{project}/work-itemsscope: work_items

Create a work item.

Parameters

  • project (path) — A project's id or key (e.g. "ENG").

Request body

FieldTypeRequiredNotes
typestringYes
one of: "epic", "story", "task", "bug"
titlestringYes
min length 2, max length 200
descriptionstringNo
max length 5000
prioritystringNo
one of: "low", "medium", "high", "urgent"
sprintScopestringNo
one of: "commitment", "best_effort"
assigneeIdstring | nullNo
min length 1
labelsstring[]No
max items 10
dueDatestring | nullNo
date
estimateinteger | nullNo
min 0, max 999
estimateUnitstring | nullNo
one of: "hour", "day", "week"
parentIdstring | nullNo
min length 1
goalIdstring | nullNo
min length 1
columnIdstring | nullNo
min length 1
JSON Schema
{
  "type": "object",
  "properties": {
    "type": {
      "type": "string",
      "enum": [
        "epic",
        "story",
        "task",
        "bug"
      ]
    },
    "title": {
      "type": "string",
      "minLength": 2,
      "maxLength": 200
    },
    "description": {
      "type": "string",
      "maxLength": 5000
    },
    "priority": {
      "type": "string",
      "enum": [
        "low",
        "medium",
        "high",
        "urgent"
      ]
    },
    "sprintScope": {
      "type": "string",
      "enum": [
        "commitment",
        "best_effort"
      ]
    },
    "assigneeId": {
      "anyOf": [
        {
          "type": "string",
          "minLength": 1
        },
        {
          "type": "null"
        }
      ]
    },
    "labels": {
      "maxItems": 10,
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "dueDate": {
      "anyOf": [
        {
          "type": "string",
          "format": "date",
          "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
        },
        {
          "type": "null"
        }
      ]
    },
    "estimate": {
      "anyOf": [
        {
          "type": "integer",
          "minimum": 0,
          "maximum": 999
        },
        {
          "type": "null"
        }
      ]
    },
    "estimateUnit": {
      "anyOf": [
        {
          "type": "string",
          "enum": [
            "hour",
            "day",
            "week"
          ]
        },
        {
          "type": "null"
        }
      ]
    },
    "parentId": {
      "anyOf": [
        {
          "type": "string",
          "minLength": 1
        },
        {
          "type": "null"
        }
      ]
    },
    "goalId": {
      "anyOf": [
        {
          "type": "string",
          "minLength": 1
        },
        {
          "type": "null"
        }
      ]
    },
    "columnId": {
      "anyOf": [
        {
          "type": "string",
          "minLength": 1
        },
        {
          "type": "null"
        }
      ]
    }
  },
  "required": [
    "type",
    "title"
  ]
}
get/api/v1/work-items/{workItem}scope: work_items

Get a work item.

Parameters

  • workItem (path) — A work item's id or display id (e.g. "ENG-42").
patch/api/v1/work-items/{workItem}scope: work_items

Update a work item.

Parameters

  • workItem (path) — A work item's id or display id (e.g. "ENG-42").

Request body

FieldTypeRequiredNotes
typestringNo
one of: "epic", "story", "task", "bug"
titlestringNo
min length 2, max length 200
descriptionstringNo
max length 5000
prioritystringNo
one of: "low", "medium", "high", "urgent"
sprintScopestringNo
one of: "commitment", "best_effort"
assigneeIdstring | nullNo
min length 1
labelsstring[]No
max items 10
dueDatestring | nullNo
date
estimateinteger | nullNo
min 0, max 999
estimateUnitstring | nullNo
one of: "hour", "day", "week"
parentIdstring | nullNo
min length 1
goalIdstring | nullNo
min length 1
columnIdstringNo
min length 1
JSON Schema
{
  "type": "object",
  "properties": {
    "type": {
      "type": "string",
      "enum": [
        "epic",
        "story",
        "task",
        "bug"
      ]
    },
    "title": {
      "type": "string",
      "minLength": 2,
      "maxLength": 200
    },
    "description": {
      "type": "string",
      "maxLength": 5000
    },
    "priority": {
      "type": "string",
      "enum": [
        "low",
        "medium",
        "high",
        "urgent"
      ]
    },
    "sprintScope": {
      "type": "string",
      "enum": [
        "commitment",
        "best_effort"
      ]
    },
    "assigneeId": {
      "anyOf": [
        {
          "type": "string",
          "minLength": 1
        },
        {
          "type": "null"
        }
      ]
    },
    "labels": {
      "maxItems": 10,
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "dueDate": {
      "anyOf": [
        {
          "type": "string",
          "format": "date",
          "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
        },
        {
          "type": "null"
        }
      ]
    },
    "estimate": {
      "anyOf": [
        {
          "type": "integer",
          "minimum": 0,
          "maximum": 999
        },
        {
          "type": "null"
        }
      ]
    },
    "estimateUnit": {
      "anyOf": [
        {
          "type": "string",
          "enum": [
            "hour",
            "day",
            "week"
          ]
        },
        {
          "type": "null"
        }
      ]
    },
    "parentId": {
      "anyOf": [
        {
          "type": "string",
          "minLength": 1
        },
        {
          "type": "null"
        }
      ]
    },
    "goalId": {
      "anyOf": [
        {
          "type": "string",
          "minLength": 1
        },
        {
          "type": "null"
        }
      ]
    },
    "columnId": {
      "type": "string",
      "minLength": 1
    }
  }
}
delete/api/v1/work-items/{workItem}scope: work_items

Delete a work item.

Parameters

  • workItem (path) — A work item's id or display id (e.g. "ENG-42").

Comments

get/api/v1/work-items/{workItem}/commentsscope: work_items

List a work item's comments.

Parameters

  • workItem (path) — A work item's id or display id (e.g. "ENG-42").
  • limit (query) — Page size, 1-100 (default 50).
  • cursor (query) — Opaque pagination cursor from a previous response's nextCursor.
post/api/v1/work-items/{workItem}/commentsscope: work_items

Add a comment to a work item.

Parameters

  • workItem (path) — A work item's id or display id (e.g. "ENG-42").

Request body

FieldTypeRequiredNotes
textstringYes
min length 1, max length 2000
JSON Schema
{
  "type": "object",
  "properties": {
    "text": {
      "type": "string",
      "minLength": 1,
      "maxLength": 2000
    }
  },
  "required": [
    "text"
  ]
}
delete/api/v1/comments/{commentId}scope: work_items

Delete a comment (author only).

Parameters

  • commentId (path) — A comment's id.

Sprints

get/api/v1/projects/{project}/sprintsscope: sprints

List a project's sprints.

Parameters

  • project (path) — A project's id or key (e.g. "ENG").
  • status (query) — Filter by sprint status.
post/api/v1/projects/{project}/sprintsscope: sprints

Create a sprint.

Parameters

  • project (path) — A project's id or key (e.g. "ENG").

Request body

FieldTypeRequiredNotes
namestringYes
min length 2, max length 100
startDatestringYes
date
endDatestringYes
date
membersobject[]No
max items 100
JSON Schema
{
  "type": "object",
  "properties": {
    "name": {
      "type": "string",
      "minLength": 2,
      "maxLength": 100
    },
    "startDate": {
      "type": "string",
      "format": "date",
      "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
    },
    "endDate": {
      "type": "string",
      "format": "date",
      "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
    },
    "members": {
      "default": [],
      "maxItems": 100,
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "userId": {
            "type": "string",
            "minLength": 1
          },
          "vacationDays": {
            "type": "integer",
            "minimum": 0,
            "maximum": 9007199254740991
          }
        },
        "required": [
          "userId",
          "vacationDays"
        ]
      }
    }
  },
  "required": [
    "name",
    "startDate",
    "endDate"
  ]
}
get/api/v1/sprints/{sprintId}scope: sprints

Get a sprint, including its work item ids.

Parameters

  • sprintId (path) — A sprint's id.
post/api/v1/sprints/{sprintId}/startscope: sprints

Start a sprint.

Parameters

  • sprintId (path) — A sprint's id.
post/api/v1/sprints/{sprintId}/completescope: sprints

Complete a sprint.

Parameters

  • sprintId (path) — A sprint's id.

Members

get/api/v1/membersscope: members

List the organization's active members.

get/api/v1/projects/{project}/membersscope: members

List a project's members.

Parameters

  • project (path) — A project's id or key (e.g. "ENG").
post/api/v1/projects/{project}/membersscope: members

Add a member to a project.

Parameters

  • project (path) — A project's id or key (e.g. "ENG").

Request body

FieldTypeRequiredNotes
userIdstringYes
min length 1
JSON Schema
{
  "type": "object",
  "properties": {
    "userId": {
      "type": "string",
      "minLength": 1
    }
  },
  "required": [
    "userId"
  ]
}
delete/api/v1/projects/{project}/members/{userId}scope: members

Remove a member from a project.

Parameters

  • project (path) — A project's id or key (e.g. "ENG").
  • userId (path) — The member's user id.