Skip to content
Download OpenAPI description
Languages
Servers
https://api.kanbert.com/api/v1
Operations
Operations
Operations
Operations
Webhooks
Operations
Webhooks

Request

Required scopes: task-management:write

Security
http or oauth2
Bodyapplication/jsonrequired
external_idstring or null<= 255 characters

Can be used to add an identifier from an external system, must be unique within integration (integration's slug)

external_originstring<= 255 characters

If not set, integration's slug will be used as default

task_idstringrequired
parent_comment_idstring or null
commentstring<= 65535 characters

In HTML use <mention data-id="<UserID>" /> to mention user

is_publicboolean
curl -i -X POST \
  https://api.kanbert.com/api/v1/tasks/comments \
  -H 'Authorization: Bearer <YOUR_TOKEN_HERE>' \
  -H 'Content-Type: application/json' \
  -d '{
    "external_id": "string",
    "external_origin": "string",
    "task_id": "string",
    "parent_comment_id": "string",
    "comment": "string",
    "is_public": true
  }'

Responses

CommentData

Bodyapplication/json
Any of:
idstringrequired
external_idstring or nullrequired
external_originstring or nullrequired

If originated from external system origin is added

parent_comment_idstring or nullrequired
parent_commentCommentData (object) or null
Any of:
object CommentData Recursive
taskTaskData (object) or null
Any of:
sub_commentsArray of objects(CommentData)required
authorobject(UserData)required
author.​idstringrequired
author.​first_namestringrequired
author.​last_namestringrequired
author.​emailstringrequired
author.​typestring(UserType)required
Enum"user""guest""tax_advisor""integration"
author.​spaceobject(SpaceData)required
author.​space.​idstringrequired
author.​space.​namestringrequired
commentstring or nullrequired
attachementsArray of objects(FileData)required
Default []
attachements[].​idstringrequired
attachements[].​file_namestringrequired
attachements[].​mime_typestringrequired
attachements[].​sizeintegerrequired

File size in bytes

attachements[].​entity_idstringrequired

ID of the entity that the file belongs to

attachements[].​entity_typestringrequired

Type of the entity that the file belongs to

attachements[].​created_atstringrequired
is_publicbooleanrequired

If false, the task is only visible to the project team - not guest users

created_atstring or null(date-time)required
updated_atstring or null(date-time)required
Response
application/json
{ "id": "string", "external_id": "string", "external_origin": "string", "parent_comment_id": "string", "parent_comment": { "id": "string", "external_id": "string", "external_origin": "string", "parent_comment_id": "string", "parent_comment": {}, "task": { … }, "sub_comments": [ … ], "author": { … }, "comment": "string", "attachements": [], "is_public": true, "created_at": "2019-08-24T14:15:22Z", "updated_at": "2019-08-24T14:15:22Z" }, "task": { "id": "string", "project_id": "string", "client_id": "string", "parent_task_id": "string", "external_id": "string", "external_origin": "string", "uri": "string", "title": "string", "description": "string", "status": "Backlog", "type": "string", "estimated_hours": 0, "is_onhold": true, "is_public": true, "due_date": "2019-08-24", "due_date_settings": { … }, "assignee": { … }, "priorityOption": { … }, "phase": { … }, "milestone": { … }, "epic": { … }, "parent_task": {}, "attachements": [], "watchers": [ … ], "sub_tasks": [ … ], "completed_at": "2019-08-24T14:15:22Z", "closed_at": "2019-08-24T14:15:22Z", "updated_at": "2019-08-24T14:15:22Z", "created_at": "2019-08-24T14:15:22Z", "list_sorting": 0 }, "sub_comments": [ { … } ], "author": { "id": "string", "first_name": "string", "last_name": "string", "email": "string", "type": "user", "space": { … } }, "comment": "string", "attachements": [], "is_public": true, "created_at": "2019-08-24T14:15:22Z", "updated_at": "2019-08-24T14:15:22Z" }

Request

Required scopes: task-management:write

Comments can only be updated by the author of the comment

Security
http or oauth2
Path
idstringrequired
Query
find_bystring

The field to search by

Default "id"
Enum"id""uri""external_id"
originstring

Used if find_by=external_id by default it will use the integration slug

Bodyapplication/json
commentstring<= 65535 characters

In HTML use <mention data-id="<UserID>" /> to mention user

is_publicboolean
curl -i -X PATCH \
  'https://api.kanbert.com/api/v1/tasks/comments/{id}?find_by=id&origin=string' \
  -H 'Authorization: Bearer <YOUR_TOKEN_HERE>' \
  -H 'Content-Type: application/json' \
  -d '{
    "comment": "string",
    "is_public": true
  }'

Responses

CommentData

Bodyapplication/json
Any of:
idstringrequired
external_idstring or nullrequired
external_originstring or nullrequired

If originated from external system origin is added

parent_comment_idstring or nullrequired
parent_commentCommentData (object) or null
Any of:
object CommentData Recursive
taskTaskData (object) or null
Any of:
sub_commentsArray of objects(CommentData)required
authorobject(UserData)required
author.​idstringrequired
author.​first_namestringrequired
author.​last_namestringrequired
author.​emailstringrequired
author.​typestring(UserType)required
Enum"user""guest""tax_advisor""integration"
author.​spaceobject(SpaceData)required
author.​space.​idstringrequired
author.​space.​namestringrequired
commentstring or nullrequired
attachementsArray of objects(FileData)required
Default []
attachements[].​idstringrequired
attachements[].​file_namestringrequired
attachements[].​mime_typestringrequired
attachements[].​sizeintegerrequired

File size in bytes

attachements[].​entity_idstringrequired

ID of the entity that the file belongs to

attachements[].​entity_typestringrequired

Type of the entity that the file belongs to

attachements[].​created_atstringrequired
is_publicbooleanrequired

If false, the task is only visible to the project team - not guest users

created_atstring or null(date-time)required
updated_atstring or null(date-time)required
Response
application/json
{ "id": "string", "external_id": "string", "external_origin": "string", "parent_comment_id": "string", "parent_comment": { "id": "string", "external_id": "string", "external_origin": "string", "parent_comment_id": "string", "parent_comment": {}, "task": { … }, "sub_comments": [ … ], "author": { … }, "comment": "string", "attachements": [], "is_public": true, "created_at": "2019-08-24T14:15:22Z", "updated_at": "2019-08-24T14:15:22Z" }, "task": { "id": "string", "project_id": "string", "client_id": "string", "parent_task_id": "string", "external_id": "string", "external_origin": "string", "uri": "string", "title": "string", "description": "string", "status": "Backlog", "type": "string", "estimated_hours": 0, "is_onhold": true, "is_public": true, "due_date": "2019-08-24", "due_date_settings": { … }, "assignee": { … }, "priorityOption": { … }, "phase": { … }, "milestone": { … }, "epic": { … }, "parent_task": {}, "attachements": [], "watchers": [ … ], "sub_tasks": [ … ], "completed_at": "2019-08-24T14:15:22Z", "closed_at": "2019-08-24T14:15:22Z", "updated_at": "2019-08-24T14:15:22Z", "created_at": "2019-08-24T14:15:22Z", "list_sorting": 0 }, "sub_comments": [ { … } ], "author": { "id": "string", "first_name": "string", "last_name": "string", "email": "string", "type": "user", "space": { … } }, "comment": "string", "attachements": [], "is_public": true, "created_at": "2019-08-24T14:15:22Z", "updated_at": "2019-08-24T14:15:22Z" }

Request

Required scopes: task-management:read

Security
http or oauth2
Path
idstringrequired
Query
find_bystring

The field to search by

Default "id"
Enum"id""uri""external_id"
originstring

Used if find_by=external_id by default it will use the integration slug

curl -i -X GET \
  'https://api.kanbert.com/api/v1/tasks/comments/{id}?find_by=id&origin=string' \
  -H 'Authorization: Bearer <YOUR_TOKEN_HERE>'

Responses

CommentData

Bodyapplication/json
idstringrequired
external_idstring or nullrequired
external_originstring or nullrequired

If originated from external system origin is added

parent_comment_idstring or nullrequired
parent_commentCommentData (object) or null
Any of:
object CommentData Recursive
taskTaskData (object) or null
Any of:
sub_commentsArray of objects(CommentData)required
authorobject(UserData)required
author.​idstringrequired
author.​first_namestringrequired
author.​last_namestringrequired
author.​emailstringrequired
author.​typestring(UserType)required
Enum"user""guest""tax_advisor""integration"
author.​spaceobject(SpaceData)required
author.​space.​idstringrequired
author.​space.​namestringrequired
commentstring or nullrequired
attachementsArray of objects(FileData)required
Default []
attachements[].​idstringrequired
attachements[].​file_namestringrequired
attachements[].​mime_typestringrequired
attachements[].​sizeintegerrequired

File size in bytes

attachements[].​entity_idstringrequired

ID of the entity that the file belongs to

attachements[].​entity_typestringrequired

Type of the entity that the file belongs to

attachements[].​created_atstringrequired
is_publicbooleanrequired

If false, the task is only visible to the project team - not guest users

created_atstring or null(date-time)required
updated_atstring or null(date-time)required
Response
application/json
{ "id": "string", "external_id": "string", "external_origin": "string", "parent_comment_id": "string", "parent_comment": {}, "task": { "id": "string", "project_id": "string", "client_id": "string", "parent_task_id": "string", "external_id": "string", "external_origin": "string", "uri": "string", "title": "string", "description": "string", "status": "Backlog", "type": "string", "estimated_hours": 0, "is_onhold": true, "is_public": true, "due_date": "2019-08-24", "due_date_settings": { … }, "assignee": { … }, "priorityOption": { … }, "phase": { … }, "milestone": { … }, "epic": { … }, "parent_task": {}, "attachements": [], "watchers": [ … ], "sub_tasks": [ … ], "completed_at": "2019-08-24T14:15:22Z", "closed_at": "2019-08-24T14:15:22Z", "updated_at": "2019-08-24T14:15:22Z", "created_at": "2019-08-24T14:15:22Z", "list_sorting": 0 }, "sub_comments": [ {} ], "author": { "id": "string", "first_name": "string", "last_name": "string", "email": "string", "type": "user", "space": { … } }, "comment": "string", "attachements": [], "is_public": true, "created_at": "2019-08-24T14:15:22Z", "updated_at": "2019-08-24T14:15:22Z" }

Request

Required scopes: task-management:write

Comments can only be deleted by the author of the comment

Security
http or oauth2
Path
idstringrequired
Query
find_bystring

The field to search by

Default "id"
Enum"id""uri""external_id"
originstring

Used if find_by=external_id by default it will use the integration slug

curl -i -X DELETE \
  'https://api.kanbert.com/api/v1/tasks/comments/{id}?find_by=id&origin=string' \
  -H 'Authorization: Bearer <YOUR_TOKEN_HERE>'

Responses

Bodyapplication/json
string
Response
application/json
"string"

Request

Required scopes: task-management:write

Files can only be uploaded by the author of the comment

Security
http or oauth2
Path
idstringrequired
Query
find_bystring

The field to search by

Default "id"
Enum"id""uri""external_id"
originstring

Used if find_by=external_id by default it will use the integration slug

Bodymultipart/form-datarequired
filestring(binary)required

File to upload - Max: 15MB

curl -i -X POST \
  'https://api.kanbert.com/api/v1/tasks/comments/{id}/upload?find_by=id&origin=string' \
  -H 'Authorization: Bearer <YOUR_TOKEN_HERE>' \
  -H 'Content-Type: multipart/form-data' \
  -F file=string

Responses

FileData

Bodyapplication/json
idstringrequired
file_namestringrequired
mime_typestringrequired
sizeintegerrequired

File size in bytes

entity_idstringrequired

ID of the entity that the file belongs to

entity_typestringrequired

Type of the entity that the file belongs to

created_atstringrequired
Response
application/json
{ "id": "string", "file_name": "string", "mime_type": "string", "size": 0, "entity_id": "string", "entity_type": "string", "created_at": "string" }

Request

Required scopes: task-management:read

Security
http or oauth2
Path
idstringrequired
Query
find_bystring

The field to search by

Default "id"
Enum"id""uri""external_id"
originstring

Used if find_by=external_id by default it will use the integration slug

sortstring

Available sorts are created_at, updated_at.
You can sort by multiple options by separating them with a comma. To sort in descending order, use - sign in front of the sort, for example: -title.

Example: sort=sort=-created_at,title
includestring

Available includes are parent_comment, sub_comments. You can include multiple options by separating them with a comma.

page[size]integer

The number of results that will be returned per page.

Default 30
page[cursor]string

The cursor to start the pagination from.

filterstring

Allowed filter fields (with allowed operators):

FieldTypeOperators
sub_comments_in_listenum:with, only, withouteq
is_publicbooleaneq, ne, neq, isnull, isnotnull, notnull
author.idid<UserData>eq, ne, neq, in, nin, notin, isnull, isnotnull, notnull
author.emailstringin, nin, notin, eq, ne, neq, contains, like, startswith, endswith, isnull, isnotnull, notnull
author.typeenum<UserType>eq, ne, neq, in, nin, notin, isnull, isnotnull, notnull
parent_comment.idid<CommentData>eq, ne, neq, in, nin, notin, isnull, isnotnull, notnull
sub_commentsRelation
- title (string)
- uri (string)
- status (enum)
any, none, count, all

Filtering expression. Accepts either JSON (array/tree of conditions) or a readable string DSL.

You can check the full syntax at Docs Filtering section.

Special values:

  • me.id — current authenticated user id (usable on fields of type id). Example: id eq me.id
  • now — current date-time. Example: dueOn lt now
  • sow/eow — start/end of week. Examples: dueOn gt sow, dueOn lt eow
  • som/eom — start/end of month. Examples: dueOn gt som, dueOn lt eom
  • today — special date for today; with eq it expands to the whole day range. Example: dueOn eq today
  • today±Nd — relative day offset. Examples: today-30d, today+5d.
Example: filter=title contains "Acme" and (created_at >= "2024-01-01" or client.name contains "Corp")
curl -i -X GET \
  'https://api.kanbert.com/api/v1/tasks/{id}/comments?find_by=id&origin=string&sort=sort%3D-created_at%2Ctitle&include=string&page%5Bsize%5D=30&page%5Bcursor%5D=string&filter=title+contains+%22Acme%22+and+%28created_at+%3E%3D+%222024-01-01%22+or+client.name+contains+%22Corp%22%29' \
  -H 'Authorization: Bearer <YOUR_TOKEN_HERE>'

Responses

The cursor paginated collection of DWI.Http.Data.Api.V1.CommentData

Bodyapplication/json
dataArray of objects(CommentData)required

The list of items

data[].​idstringrequired
data[].​external_idstring or nullrequired
data[].​external_originstring or nullrequired

If originated from external system origin is added

data[].​parent_comment_idstring or nullrequired
data[].​parent_commentCommentData (object) or null
Any of:
object CommentData Recursive
data[].​taskTaskData (object) or null
Any of:
data[].​sub_commentsArray of objects(CommentData)required
data[].​authorobject(UserData)required
data[].​author.​idstringrequired
data[].​author.​first_namestringrequired
data[].​author.​last_namestringrequired
data[].​author.​emailstringrequired
data[].​author.​typestring(UserType)required
Enum"user""guest""tax_advisor""integration"
data[].​author.​spaceobject(SpaceData)required
data[].​author.​space.​idstringrequired
data[].​author.​space.​namestringrequired
data[].​commentstring or nullrequired
data[].​attachementsArray of objects(FileData)required
Default []
data[].​attachements[].​idstringrequired
data[].​attachements[].​file_namestringrequired
data[].​attachements[].​mime_typestringrequired
data[].​attachements[].​sizeintegerrequired

File size in bytes

data[].​attachements[].​entity_idstringrequired

ID of the entity that the file belongs to

data[].​attachements[].​entity_typestringrequired

Type of the entity that the file belongs to

data[].​attachements[].​created_atstringrequired
data[].​is_publicbooleanrequired

If false, the task is only visible to the project team - not guest users

data[].​created_atstring or null(date-time)required
data[].​updated_atstring or null(date-time)required
linksArray of stringsrequired
metaobjectrequired
meta.​pathstring or nullrequired

Base path for paginator generated URLs.

meta.​per_pageintegerrequired

Number of items shown per page.

meta.​next_cursorstring or nullrequired
meta.​next_cursor_urlstring or nullrequired
meta.​prev_cursorstring or nullrequired
meta.​prev_cursor_urlstring or nullrequired
Response
application/json
{ "data": [ { … } ], "links": [ "string" ], "meta": { "path": "string", "per_page": 0, "next_cursor": "string", "next_cursor_url": "string", "prev_cursor": "string", "prev_cursor_url": "string" } }

Request

comment:create - A new comment was created

Security
http or oauth2
Bodyapplication/json
eventstring

the event identifier

Example: "comment:create"
resourceobject
triggered_byobject(UserData)
dataobject(CommentData)
application/json
{ "event": "comment:create", "resource": { "type": "comment", "id": "string" }, "triggered_by": { "id": "string", "first_name": "string", "last_name": "string", "email": "string", "type": "user", "space": { … } }, "data": { "id": "string", "external_id": "string", "external_origin": "string", "parent_comment_id": "string", "parent_comment": {}, "task": { … }, "sub_comments": [ … ], "author": { … }, "comment": "string", "attachements": [], "is_public": true, "created_at": "2019-08-24T14:15:22Z", "updated_at": "2019-08-24T14:15:22Z" } }

Responses

Return a 200 within 10 seconds to indicate a that the data was received successfully. Otherwise it will try 2 more times.

Request

comment:update A Comment was updated

Security
http or oauth2
Bodyapplication/json
eventstring

the event identifier

Example: "comment:update"
resourceobject
triggered_byobject(UserData)
dataobject(CommentData)
application/json
{ "event": "comment:update", "resource": { "type": "comment", "id": "string" }, "triggered_by": { "id": "string", "first_name": "string", "last_name": "string", "email": "string", "type": "user", "space": { … } }, "data": { "id": "string", "external_id": "string", "external_origin": "string", "parent_comment_id": "string", "parent_comment": {}, "task": { … }, "sub_comments": [ … ], "author": { … }, "comment": "string", "attachements": [], "is_public": true, "created_at": "2019-08-24T14:15:22Z", "updated_at": "2019-08-24T14:15:22Z" } }

Responses

Return a 200 within 10 seconds to indicate a that the data was received successfully. Otherwise it will try 2 more times.

Request

comment:delete - A comment was deleted

Security
http or oauth2
Bodyapplication/json
eventstring

the event identifier

Example: "comment:delete"
resourceobject
triggered_byobject(UserData)
dataobject(CommentData)
application/json
{ "event": "comment:delete", "resource": { "type": "task", "id": "string" }, "triggered_by": { "id": "string", "first_name": "string", "last_name": "string", "email": "string", "type": "user", "space": { … } }, "data": { "id": "string", "external_id": "string", "external_origin": "string", "parent_comment_id": "string", "parent_comment": {}, "task": { … }, "sub_comments": [ … ], "author": { … }, "comment": "string", "attachements": [], "is_public": true, "created_at": "2019-08-24T14:15:22Z", "updated_at": "2019-08-24T14:15:22Z" } }

Responses

Return a 200 within 10 seconds to indicate a that the data was received successfully. Otherwise it will try 2 more times.

Operations
Operations
Webhooks
Operations
Operations
Operations
Operations
Operations
Operations
Operations
Operations
Operations
Schemas