Skip to content

Instantly share code, notes, and snippets.

@fcbry
Created September 12, 2024 16:08
Show Gist options
  • Save fcbry/465e767f059504c05717fc715345bf22 to your computer and use it in GitHub Desktop.
Save fcbry/465e767f059504c05717fc715345bf22 to your computer and use it in GitHub Desktop.
teamwork.com api-object-reference nil->0
swagger: '2.0'
definitions:
active.ProjectMetricActive:
description: ProjectMetricActive contains all the information returned from a active.
properties:
value:
type: integer
title: ProjectMetricActive
type: object
active.Response:
description: Response contains information about a specific active.
properties:
data:
$ref: '#/definitions/active.ProjectMetricActive'
title: Response
type: object
activity.ActivitiesResponse:
description: |-
ActivitiesResponse contains all the information returned when sending a GET
request to the activity endpoint.
properties:
activities:
items:
$ref: '#/definitions/activity.Activity'
type: array
included:
properties:
companies:
additionalProperties:
$ref: '#/definitions/view.Company'
type: object
projects:
additionalProperties:
$ref: '#/definitions/view.ProjectV205'
type: object
users:
additionalProperties:
$ref: '#/definitions/view.User'
type: object
type: object
meta:
$ref: '#/definitions/view.Meta'
title: ActivitiesResponse
type: object
activity.Activity:
description: Activity represents a view of activity.
properties:
activityType:
type: string
company:
$ref: '#/definitions/view.Relationship'
companyId:
type: integer
dateTime:
type: string
description:
type: string
dueDate:
type: string
extraDescription:
type: string
forUser:
$ref: '#/definitions/view.Relationship'
forUserId:
type: integer
forUserName:
type: string
id:
type: integer
isPrivate:
type: integer
item:
$ref: '#/definitions/view.Relationship'
itemId:
type: integer
itemLink:
type: string
latestActivityType:
type: string
link:
type: string
lockdown:
$ref: '#/definitions/view.Relationship'
lockdownId:
type: integer
project:
$ref: '#/definitions/view.Relationship'
projectId:
type: integer
publicInfo:
type: string
type:
type: string
user:
$ref: '#/definitions/view.Relationship'
userId:
type: integer
title: Activity
type: object
billable.ProjectMetricBillable:
description: ProjectMetricBillable contains all the information returned from a billable.
properties:
name:
type: string
value:
type: integer
title: ProjectMetricBillable
type: object
billable.ProjectMetricBillablesResponse:
description: ProjectMetricBillablesResponse contains information about a group of billables.
properties:
data:
items:
$ref: '#/definitions/billable.ProjectMetricBillable'
type: array
title: ProjectMetricBillablesResponse
type: object
category.CategoriesResponse:
description: CategoriesResponse contains information about a group of categories.
properties:
projectCategories:
items:
$ref: '#/definitions/view.ProjectCategory'
type: array
projectCategoryTotals:
$ref: '#/definitions/view.CategoryTotals'
title: CategoriesResponse
type: object
comment.CommentsResponse:
description: CommentsResponse contains information about a group of comments.
properties:
comments:
items:
$ref: '#/definitions/comment.FullComment'
type: array
included:
properties:
companies:
additionalProperties:
$ref: '#/definitions/view.Company'
type: object
files:
additionalProperties:
$ref: '#/definitions/view.ProjectFileV205'
type: object
fileversions:
additionalProperties:
$ref: '#/definitions/view.FileversionV205'
type: object
links:
additionalProperties:
$ref: '#/definitions/view.LinkItem'
type: object
milestones:
additionalProperties:
$ref: '#/definitions/view.Milestone'
type: object
notebooks:
additionalProperties:
$ref: '#/definitions/view.Notebook'
type: object
projects:
additionalProperties:
$ref: '#/definitions/view.ProjectV205'
type: object
tasks:
additionalProperties:
$ref: '#/definitions/view.TaskV205'
type: object
users:
additionalProperties:
$ref: '#/definitions/view.User'
type: object
type: object
meta:
$ref: '#/definitions/view.Meta'
title: CommentsResponse
type: object
comment.FullComment:
description: FullComment contains the full information for a comment
properties:
body:
type: string
commentLink:
type: string
contentType:
type: string
dateDeleted:
type: string
dateLastEdited:
type: string
deleted:
type: boolean
deletedBy:
type: integer
deletedByUserId:
type: integer
fileCount:
type: integer
fileIds:
items:
type: integer
type: array
files:
items:
$ref: '#/definitions/view.Relationship'
type: array
htmlBody:
type: string
id:
type: integer
installation:
$ref: '#/definitions/view.Relationship'
installationId:
type: integer
isPrivate:
type: integer
lastEditedBy:
type: integer
lastEditedByUserId:
type: integer
lockdownID:
type: integer
meta:
$ref: '#/definitions/comment.Meta'
object:
$ref: '#/definitions/view.Relationship'
objectId:
type: integer
objectType:
type: string
peopleNotifiedCount:
type: integer
postedBy:
type: integer
postedByUserId:
type: integer
postedDateTime:
type: string
project:
$ref: '#/definitions/view.Relationship'
projectId:
type: integer
reactions:
items:
$ref: '#/definitions/view.Reaction'
type: array
reactionsCount:
type: integer
title: FullComment
type: object
comment.Meta:
description: Meta contains metadata for a comment, such as permissions
properties:
isRead:
type: boolean
permissions:
$ref: '#/definitions/comment.Permissions'
title: Meta
type: object
comment.Permissions:
description: Permissions are the permissions the user has for the comment
properties:
canDelete:
type: boolean
canEdit:
type: boolean
title: Permissions
type: object
company.CompaniesResponse:
description: CompaniesResponse contains information about a group of companies.
properties:
companies:
items:
$ref: '#/definitions/view.Company'
type: array
included:
properties:
countries:
additionalProperties:
$ref: '#/definitions/view.Country'
type: object
customfieldCompanies:
additionalProperties:
$ref: '#/definitions/view.CustomFieldValueCompany'
type: object
customfields:
additionalProperties:
$ref: '#/definitions/view.CustomField'
type: object
industries:
additionalProperties:
$ref: '#/definitions/view.Industry'
type: object
tags:
additionalProperties:
$ref: '#/definitions/view.Tag'
type: object
updates:
additionalProperties:
$ref: '#/definitions/view.CompanyUpdate'
type: object
users:
additionalProperties:
$ref: '#/definitions/view.User'
type: object
type: object
letters:
items:
type: string
type: array
meta:
$ref: '#/definitions/view.Meta'
title: CompaniesResponse
type: object
company.Company:
description: Company contains all the information returned from a company.
properties:
addressOne:
type: string
addressTwo:
type: string
cid:
type: string
city:
type: string
clientManagedBy:
type: integer
countrycode:
type: string
customFields:
$ref: '#/definitions/company.CustomFields'
emailOne:
type: string
emailThree:
type: string
emailTwo:
type: string
fax:
type: string
industryCatId:
type: integer
logoPendingFileRef:
type: string
name:
type: string
phone:
type: string
privateNotes:
type: string
profile:
type: string
state:
type: string
tagIds:
items:
type: integer
type: array
website:
type: string
zip:
type: string
title: Company
type: object
company.CustomFields:
description: CustomFields is the custom fields type.
properties:
Values:
items:
$ref: '#/definitions/value.CustomFieldValue'
type: array
title: CustomFields
type: object
company.Request:
description: Request contains information of a company to be created or updated.
properties:
company:
$ref: '#/definitions/company.Company'
companyOptions:
properties:
fireWebhook:
type: boolean
logActivity:
type: boolean
useNotifyViaTWIM:
type: boolean
type: object
tags:
items:
$ref: '#/definitions/tag.Tag'
type: array
title: Request
type: object
company.Response:
description: Response contains information about a specific company.
properties:
company:
$ref: '#/definitions/view.Company'
included:
properties:
countries:
additionalProperties:
$ref: '#/definitions/view.Country'
type: object
customfieldCompanies:
additionalProperties:
$ref: '#/definitions/view.CustomFieldValueCompany'
type: object
customfields:
additionalProperties:
$ref: '#/definitions/view.CustomField'
type: object
industries:
additionalProperties:
$ref: '#/definitions/view.Industry'
type: object
tags:
additionalProperties:
$ref: '#/definitions/view.Tag'
type: object
updates:
additionalProperties:
$ref: '#/definitions/view.CompanyUpdate'
type: object
users:
additionalProperties:
$ref: '#/definitions/view.User'
type: object
type: object
title: Response
type: object
complete.Response:
description: Response contains information about a specific complete.
properties:
data:
$ref: '#/definitions/complete.TaskMetricComplete'
title: Response
type: object
complete.TaskMetricComplete:
description: TaskMetricComplete contains all the information returned from a complete.
properties:
value:
type: integer
title: TaskMetricComplete
type: object
customfield.BulkDeleteRequest:
description: |-
BulkDeleteRequest contains the ids of the custom fields that should be
removed.
properties:
customfieldIds:
items:
type: integer
type: array
title: BulkDeleteRequest
type: object
customfield.CustomField:
description: CustomField contains all the information returned from a custom field.
properties:
currencyCode:
type: string
description:
type: string
entity:
description: using a verbose name to avoid conflict
type: string
formula:
type: string
groupId:
type: integer
isPrivate:
type: boolean
name:
type: string
options: {}
privacy:
$ref: '#/definitions/payload.UserGroups'
projectId:
type: integer
required:
type: boolean
type:
type: string
visibilities:
items:
type: string
type: array
title: CustomField
type: object
customfield.CustomFieldsResponse:
description: CustomFieldsResponse contains information about a group of custom fields.
properties:
customfields:
items:
$ref: '#/definitions/view.CustomField'
type: array
included:
properties:
projects:
additionalProperties:
$ref: '#/definitions/view.ProjectV205'
type: object
users:
additionalProperties:
$ref: '#/definitions/view.User'
type: object
type: object
meta:
$ref: '#/definitions/view.Meta'
title: CustomFieldsResponse
type: object
customfield.Request:
description: Request contains information of a custom field to be created or updated.
properties:
customfield:
$ref: '#/definitions/customfield.CustomField'
title: Request
type: object
customfield.Response:
description: Response contains information about a specific customfield.
properties:
count:
type: integer
customfield:
$ref: '#/definitions/view.CustomField'
title: Response
type: object
dashboard.UserDashboardsResponse:
description: UserDashboardsResponse contains information about a group of dashboards.
properties:
dashboards:
items:
$ref: '#/definitions/view.UserDashboard'
type: array
included:
properties:
dashboardPanelSettings:
additionalProperties:
$ref: '#/definitions/view.UserDashboardPanelSetting'
type: object
dashboardPanels:
additionalProperties:
$ref: '#/definitions/view.UserDashboardPanel'
type: object
dashboardSettings:
additionalProperties:
$ref: '#/definitions/view.UserDashboardSetting'
type: object
projects:
additionalProperties:
$ref: '#/definitions/view.ProjectV205'
type: object
users:
additionalProperties:
$ref: '#/definitions/view.User'
type: object
type: object
meta:
$ref: '#/definitions/view.Meta'
title: UserDashboardsResponse
type: object
deadline.MilestoneMetricDeadline:
description: MilestoneMetricDeadline contains all the information returned from a deadline.
properties:
date:
type: string
value:
type: integer
title: MilestoneMetricDeadline
type: object
deadline.MilestoneMetricDeadlinesResponse:
description: MilestoneMetricDeadlinesResponse contains information about a group of deadlines.
properties:
data:
items:
$ref: '#/definitions/deadline.MilestoneMetricDeadline'
type: array
title: MilestoneMetricDeadlinesResponse
type: object
entity.ProjectBudgetRange:
description: ProjectBudgetRange is a distribution item type.
properties:
companyId:
type: integer
count:
type: integer
from:
type: integer
to:
type: integer
title: ProjectBudgetRange
type: object
form.Banner:
description: Banner contains information of a form banner to be created or updated.
properties:
accentColor:
type: string
primaryColor:
type: string
url:
type: string
x:
type: number
'y':
type: number
title: Banner
type: object
form.Content:
description: Content contains information of a form content to be created or updated.
properties:
banner:
$ref: '#/definitions/form.Banner'
definition:
type: string
description:
type: string
logo:
$ref: '#/definitions/form.Logo'
name:
type: string
pendingLogoId:
type: string
state:
type: string
title: Content
type: object
form.CopyForm:
description: CopyForm contains information on where and what to copy from a form
properties:
copyAssignees:
type: boolean
generateToken:
type: boolean
hostObject:
$ref: '#/definitions/form.HostObject'
title:
type: string
title: CopyForm
type: object
form.CopyRequest:
description: CopyRequest outter request for copying a form
properties:
form:
$ref: '#/definitions/form.CopyForm'
title: CopyRequest
type: object
form.DestinationObject:
description: DestinationObject contains information of a form destination object to be created or updated.
properties:
id:
type: integer
type:
type: string
title: DestinationObject
type: object
form.Form:
description: Form contains information of a form to be created or updated.
properties:
allowTeamworkBranding:
type: boolean
confirmationMessage:
type: string
content:
$ref: '#/definitions/form.Content'
destinationObject:
$ref: '#/definitions/form.DestinationObject'
hostObject:
$ref: '#/definitions/form.HostObject'
promptAdditionalSubmissions:
type: boolean
redirectUrl:
type: string
taskTitleFieldId:
type: string
title: Form
type: object
form.FormsResponse:
description: FormsResponse contains information about a group of forms.
properties:
forms:
items:
$ref: '#/definitions/view.Form'
type: array
included:
properties:
companies:
additionalProperties:
$ref: '#/definitions/view.Company'
type: object
projects:
additionalProperties:
$ref: '#/definitions/view.ProjectV205'
type: object
tasklists:
additionalProperties:
$ref: '#/definitions/view.Tasklist'
type: object
users:
additionalProperties:
$ref: '#/definitions/view.User'
type: object
type: object
meta:
$ref: '#/definitions/view.Meta'
title: FormsResponse
type: object
form.HostObject:
description: HostObject contains information of a form host object to be created or updated.
properties:
id:
type: integer
meta:
$ref: '#/definitions/form.HostObjectMeta'
type:
type: string
title: HostObject
type: object
form.HostObjectMeta:
description: HostObjectMeta contains information of a form host object meta to be created or updated.
properties:
tasklistId:
type: integer
title: HostObjectMeta
type: object
form.Logo:
description: Logo contains information of a form custom logo to be created or updated.
properties:
url:
type: string
title: Logo
type: object
form.PublicResponse:
description: PublicResponse contains information about a specific public form.
properties:
form:
$ref: '#/definitions/view.PublicForm'
title: PublicResponse
type: object
form.Request:
description: Request contains information of a form to be created or updated.
properties:
form:
$ref: '#/definitions/form.Form'
title: Request
type: object
form.Response:
description: Response contains information about a specific form.
properties:
form:
$ref: '#/definitions/view.Form'
included:
properties:
companies:
additionalProperties:
$ref: '#/definitions/view.Company'
type: object
projects:
additionalProperties:
$ref: '#/definitions/view.ProjectV205'
type: object
tasklists:
additionalProperties:
$ref: '#/definitions/view.Tasklist'
type: object
users:
additionalProperties:
$ref: '#/definitions/view.User'
type: object
type: object
title: Response
type: object
health.ProjectMetricHealth:
description: ProjectMetricHealth stores a specific health counter.
properties:
name:
type: string
value:
type: integer
title: ProjectMetricHealth
type: object
health.ProjectMetricHealthsResponse:
description: |-
ProjectMetricHealthsResponse contains information about a group of healths.
Following this format to satisfy the Numerics integration.
properties:
data:
items:
$ref: '#/definitions/health.ProjectMetricHealth'
type: array
title: ProjectMetricHealthsResponse
type: object
importer.Importer:
description: Importer single importer for response.
properties:
name:
type: string
running:
type: boolean
status:
type: string
title: Importer
type: object
importer.ImportersResponse:
description: ImportersResponse contains information about a group of importers.
properties:
importers:
items:
$ref: '#/definitions/importer.Importer'
type: array
isImporting:
type: boolean
title: ImportersResponse
type: object
invoice.ProjectMetricInvoicesResponse:
description: ProjectMetricInvoicesResponse contains information about a group of invoices.
properties:
data:
properties:
value:
type: integer
type: object
title: ProjectMetricInvoicesResponse
type: object
late.Response:
description: |-
Response contains the count of late tasks.
Following this format to satisfy the Numerics integration.
properties:
data:
$ref: '#/definitions/late.TaskMetricLate'
title: Response
type: object
late.TaskMetricLate:
description: TaskMetricLate contains count information about late tasks.
properties:
value:
type: integer
title: TaskMetricLate
type: object
message.MessagesResponse:
description: |-
MessagesResponse contains all the information returned when sending a GET
request to the message endpoint.
properties:
included:
properties:
Included:
$ref: '#/definitions/messagereply.Included'
companies:
additionalProperties:
$ref: '#/definitions/view.Company'
type: object
messageReplies:
additionalProperties:
$ref: '#/definitions/view.MessageReply'
type: object
projects:
additionalProperties:
$ref: '#/definitions/view.ProjectV205'
type: object
users:
additionalProperties:
$ref: '#/definitions/view.User'
type: object
type: object
messages:
items:
$ref: '#/definitions/view.Message'
type: array
meta:
$ref: '#/definitions/view.Meta'
title: MessagesResponse
type: object
message.Request:
description: Request contains information of a message to be created or updated.
properties:
read:
type: boolean
title: Request
type: object
message.Response:
description: Response contains information about a specific message.
properties:
included:
properties:
Included:
$ref: '#/definitions/messagereply.Included'
companies:
additionalProperties:
$ref: '#/definitions/view.Company'
type: object
messageReplies:
additionalProperties:
$ref: '#/definitions/view.MessageReply'
type: object
projects:
additionalProperties:
$ref: '#/definitions/view.ProjectV205'
type: object
users:
additionalProperties:
$ref: '#/definitions/view.User'
type: object
type: object
message:
$ref: '#/definitions/view.Message'
title: Response
type: object
messagereply.Included:
description: Included contains sideloadable stuff for message replies.
properties:
messages:
additionalProperties:
$ref: '#/definitions/view.Message'
type: object
tags:
additionalProperties:
$ref: '#/definitions/view.Tag'
type: object
users:
additionalProperties:
$ref: '#/definitions/view.User'
type: object
title: Included
type: object
milestone.MilestonesResponse:
description: MilestonesResponse contains information about a group of milestones.
properties:
included:
properties:
companies:
additionalProperties:
$ref: '#/definitions/view.Company'
type: object
projectCategories:
additionalProperties:
$ref: '#/definitions/view.ProjectCategory'
type: object
projects:
additionalProperties:
$ref: '#/definitions/view.ProjectV205'
type: object
tags:
additionalProperties:
$ref: '#/definitions/view.Tag'
type: object
tasklistTaskStats:
additionalProperties:
$ref: '#/definitions/view.TaskStats'
type: object
tasklists:
additionalProperties:
$ref: '#/definitions/view.Tasklist'
type: object
tasks:
additionalProperties:
$ref: '#/definitions/view.TaskV205'
type: object
teams:
additionalProperties:
$ref: '#/definitions/view.Team'
type: object
users:
additionalProperties:
$ref: '#/definitions/view.User'
type: object
type: object
meta:
$ref: '#/definitions/view.Meta'
milestones:
items:
$ref: '#/definitions/view.Milestone'
type: array
title: MilestonesResponse
type: object
milestone.Response:
description: Response contains information about a milestone.
properties:
included:
properties:
companies:
additionalProperties:
$ref: '#/definitions/view.Company'
type: object
projectCategories:
additionalProperties:
$ref: '#/definitions/view.ProjectCategory'
type: object
projects:
additionalProperties:
$ref: '#/definitions/view.ProjectV205'
type: object
tags:
additionalProperties:
$ref: '#/definitions/view.Tag'
type: object
tasklistTaskStats:
additionalProperties:
$ref: '#/definitions/view.TaskStats'
type: object
tasklists:
additionalProperties:
$ref: '#/definitions/view.Tasklist'
type: object
tasks:
additionalProperties:
$ref: '#/definitions/view.TaskV205'
type: object
teams:
additionalProperties:
$ref: '#/definitions/view.Team'
type: object
users:
additionalProperties:
$ref: '#/definitions/view.User'
type: object
type: object
milestone:
$ref: '#/definitions/view.Milestone'
title: Response
type: object
notebook.Notebook:
description: Notebook contains all the information returned from a notebook.
properties:
categoryId:
type: integer
contents:
type: string
description:
type: string
isFullWidth:
type: boolean
isPrivate:
type: boolean
locked:
type: boolean
name:
type: string
newVersion:
type: boolean
notify:
$ref: '#/definitions/payload.Notify'
notifyCurrentUser:
type: boolean
privacy:
$ref: '#/definitions/payload.UserGroups'
secureContent:
type: boolean
sendDiff:
type: boolean
tagIds:
items:
type: integer
type: array
type:
type: string
title: Notebook
type: object
notebook.NotebooksResponse:
description: NotebooksResponse contains information about a group of notebooks.
properties:
included:
properties:
companies:
additionalProperties:
$ref: '#/definitions/view.Company'
type: object
notebookCategories:
additionalProperties:
$ref: '#/definitions/view.NotebookCategory'
type: object
projects:
additionalProperties:
$ref: '#/definitions/view.ProjectV205'
type: object
tags:
additionalProperties:
$ref: '#/definitions/view.Tag'
type: object
teams:
additionalProperties:
$ref: '#/definitions/view.Team'
type: object
users:
additionalProperties:
$ref: '#/definitions/view.User'
type: object
type: object
meta:
$ref: '#/definitions/view.Meta'
notebooks:
items:
$ref: '#/definitions/view.Notebook'
type: array
title: NotebooksResponse
type: object
notebook.Request:
description: Request contains information of a notebook to be created or updated.
properties:
notebook:
$ref: '#/definitions/notebook.Notebook'
title: Request
type: object
notebook.Response:
description: Response contains information about a specific notebook.
properties:
included:
properties:
companies:
additionalProperties:
$ref: '#/definitions/view.Company'
type: object
notebookCategories:
additionalProperties:
$ref: '#/definitions/view.NotebookCategory'
type: object
projects:
additionalProperties:
$ref: '#/definitions/view.ProjectV205'
type: object
tags:
additionalProperties:
$ref: '#/definitions/view.Tag'
type: object
teams:
additionalProperties:
$ref: '#/definitions/view.Team'
type: object
users:
additionalProperties:
$ref: '#/definitions/view.User'
type: object
type: object
notebook:
$ref: '#/definitions/view.Notebook'
title: Response
type: object
notebook.VersionResponse:
description: VersionResponse contains information about a specifc notebook version
properties:
included:
properties:
users:
additionalProperties:
$ref: '#/definitions/view.User'
type: object
type: object
version:
$ref: '#/definitions/view.NotebookVersion'
title: VersionResponse
type: object
notebook.VersionsResponse:
description: VersionsResponse contains information about a group of notebook versions
properties:
included:
properties:
users:
additionalProperties:
$ref: '#/definitions/view.User'
type: object
type: object
versions:
items:
$ref: '#/definitions/view.NotebookVersion'
type: array
title: VersionsResponse
type: object
notification.ProjectBudgetNotification:
description: ProjectBudgetNotification contains all the information returned from a notification.
properties:
budgetId:
type: integer
capacityThreshold:
type: number
companyIds:
items:
type: integer
type: array
id:
type: integer
notificationMedium:
type: string
projectId:
type: integer
teamIds:
items:
type: integer
type: array
userIds:
items:
type: integer
type: array
title: ProjectBudgetNotification
type: object
notification.ProjectBudgetRequest:
description: ProjectBudgetRequest contains information of a notification to be created or updated.
properties:
notification:
$ref: '#/definitions/notification.ProjectBudgetNotification'
title: ProjectBudgetRequest
type: object
notification.Response:
description: Response contains information about a specific notification.
properties:
notification:
$ref: '#/definitions/view.Notification'
title: Response
type: object
owner.ProjectMetricOwner:
description: ProjectMetricOwner contains information about a specific owner.
properties:
name:
type: string
value:
type: integer
title: ProjectMetricOwner
type: object
owner.ProjectMetricOwnersResponse:
description: ProjectMetricOwnersResponse contains information about a group of owners.
properties:
data:
items:
$ref: '#/definitions/owner.ProjectMetricOwner'
type: array
meta:
$ref: '#/definitions/view.Meta'
title: ProjectMetricOwnersResponse
type: object
payload.Date:
description: 'Date unmarshals represents a Unified API Spec date format.<br /> Format: yyyy-mm-dd'
title: Date
type: object
payload.Notify:
description: Notify defines the access lists.
properties:
ids:
$ref: '#/definitions/payload.UserGroups'
type:
$ref: '#/definitions/payload.NotifyType'
title: Notify
type: object
payload.NotifyType:
description: |-
NotifyType implements json.Unmarshaler to allow testing between a value
that explicitly set to null or omitted.
properties:
'Null':
type: boolean
Set:
type: boolean
Value:
type: string
title: NotifyType
type: object
payload.NullableBool:
description: |-
NullableBool implements json.Unmarshaler to allow testing between a value
that explicitly set to null or omitted.
properties:
'Null':
type: boolean
Set:
type: boolean
Value:
type: boolean
title: NullableBool
type: object
payload.NullableDate:
description: |-
NullableDate implements json.Unmarshaler to allow testing between a value
that explicitly set to null or omitted.
Date format "2006-01-02"
properties:
'Null':
type: boolean
Set:
type: boolean
Value:
$ref: '#/definitions/payload.Date'
title: NullableDate
type: object
payload.NullableHexColor:
description: |-
NullableHexColor implements json.Unmarshaler to allow testing between a value
that explicitly set to null or omitted.
properties:
'Null':
type: boolean
Set:
type: boolean
Value:
type: string
title: NullableHexColor
type: object
payload.NullableInt64Slice:
description: |-
NullableInt64Slice implements json.Unmarshaler to allow testing between a
value that explicitly set to null or omitted.
properties:
'Null':
type: boolean
Set:
type: boolean
Value:
items:
type: integer
type: array
title: NullableInt64Slice
type: object
payload.NullableTaskPriority:
description: |-
NullableTaskPriority implements json.Unmarshaler to allow testing
between a value that explicitly set to null or omitted.
properties:
'Null':
type: boolean
Set:
type: boolean
Value:
type: string
title: NullableTaskPriority
type: object
payload.NullableTaskRepeatFrequency:
description: |-
NullableTaskRepeatFrequency implements json.Unmarshaler to allow testing
between a value that explicitly set to null or omitted.
properties:
'Null':
type: boolean
Set:
type: boolean
Value:
type: string
title: NullableTaskRepeatFrequency
type: object
payload.NullableTaskRepeatMonthlyType:
description: |-
NullableTaskRepeatMonthlyType implements json.Unmarshaler to allow testing
between a value that explicitly set to null or omitted.
properties:
'Null':
type: boolean
Set:
type: boolean
Value:
type: string
title: NullableTaskRepeatMonthlyType
type: object
payload.NullableWorkingHourEntryWeekdays:
description: |-
NullableWorkingHourEntryWeekdays implements json.Unmarshaler to allow testing
between a value that explicitly set to null or omitted.
properties:
'Null':
type: boolean
Set:
type: boolean
Value:
items:
type: string
type: array
title: NullableWorkingHourEntryWeekdays
type: object
payload.Time:
description: 'Time unmarshals represents a Unified API Spec date. <br />Format: HH:MM:SS'
title: Time
type: object
payload.UserGroups:
description: |-
UserGroups are common lists for storing users, companies and teams ids
together.
properties:
companyIds:
$ref: '#/definitions/payload.NullableInt64Slice'
teamIds:
$ref: '#/definitions/payload.NullableInt64Slice'
userIds:
$ref: '#/definitions/payload.NullableInt64Slice'
title: UserGroups
type: object
people.AddPeopleToProjectResponse:
description: |-
AddPeopleToProjectResponse contains information about which users were and weren't add to the project as well
as why the users were not able to be added
properties:
info:
items:
type: string
type: array
teamIds:
items:
type: integer
type: array
usersAdded:
items:
type: integer
type: array
usersAlreadyInProject:
items:
type: integer
type: array
usersNotAdded:
items:
type: integer
type: array
title: AddPeopleToProjectResponse
type: object
people.MultiResponse:
description: MultiResponse contains information about a group of users.
properties:
included:
properties:
ProjectPermissions:
additionalProperties:
$ref: '#/definitions/view.ProjectPermissions'
type: object
companies:
additionalProperties:
$ref: '#/definitions/view.Company'
type: object
teams:
additionalProperties:
$ref: '#/definitions/view.Team'
type: object
workingHours:
additionalProperties:
$ref: '#/definitions/view.WorkingHour'
type: object
type: object
meta:
$ref: '#/definitions/view.Meta'
people:
items:
$ref: '#/definitions/view.User'
type: array
title: MultiResponse
type: object
people.Response:
description: Response contains information about a user.
properties:
included:
properties:
ProjectPermissions:
additionalProperties:
$ref: '#/definitions/view.ProjectPermissions'
type: object
companies:
additionalProperties:
$ref: '#/definitions/view.Company'
type: object
teams:
additionalProperties:
$ref: '#/definitions/view.Team'
type: object
workingHours:
additionalProperties:
$ref: '#/definitions/view.WorkingHour'
type: object
type: object
person:
$ref: '#/definitions/view.User'
title: Response
type: object
people.TaskCompletion:
description: TaskCompletion contains information about tasks completed by a user.
properties:
activeProjects:
type: integer
assignedTasks:
type: integer
completedTasks:
type: integer
overdueTasks:
type: integer
userId:
type: integer
title: TaskCompletion
type: object
people.TaskCompletionResponse:
description: TaskCompletionResponse contains information about tasks completed by a user.
properties:
included:
properties:
users:
additionalProperties:
$ref: '#/definitions/view.User'
type: object
type: object
meta:
$ref: '#/definitions/view.Meta'
taskCompletions:
$ref: '#/definitions/people.TaskCompletions'
title: TaskCompletionResponse
type: object
people.TaskCompletions:
description: |-
TaskCompletions represents a summary row of total computed counts of, plus individual user data
/reporting/precanned/usertaskcompletions.json endpoint
properties:
totalActiveProjects:
type: integer
totalAssignedTasks:
type: integer
totalCompletedTasks:
type: integer
totalOverdueTasks:
type: integer
users:
items:
$ref: '#/definitions/people.TaskCompletion'
type: array
title: TaskCompletions
type: object
people.UsersPayload:
description: UsersPayload consists of userIDs
properties:
checkTeamIds:
items:
type: integer
type: array
userIds:
items:
type: integer
type: array
title: UsersPayload
type: object
performance.PeopleMetricPerformance:
description: PeopleMetricPerformance contains all the information returned from a performance.
properties:
name:
type: string
value:
type: integer
title: PeopleMetricPerformance
type: object
performance.PeopleMetricPerformancesResponse:
description: PeopleMetricPerformancesResponse contains information about a group of performances.
properties:
data:
items:
$ref: '#/definitions/performance.PeopleMetricPerformance'
type: array
title: PeopleMetricPerformancesResponse
type: object
planner.WorkloadPlanner:
description: WorkloadPlanner contains all the information returned from a planner.
properties:
capacities:
additionalProperties:
$ref: '#/definitions/planner.WorkloadPlannerCapacity'
type: object
user:
$ref: '#/definitions/view.Relationship'
userId:
type: integer
title: WorkloadPlanner
type: object
planner.WorkloadPlannerCapacity:
description: |-
WorkloadPlannerCapacity contains the information regarding an user on a
specific date.
properties:
capacity:
description: percentage
type: number
estimateMinutesTotal:
type: number
lengthOfDayMinutes:
type: number
tasks:
items:
$ref: '#/definitions/planner.WorkloadPlannerCapacityTask'
type: array
title: WorkloadPlannerCapacity
type: object
planner.WorkloadPlannerCapacityTask:
description: |-
WorkloadPlannerCapacityTask provides how many minutes should a user work in a
task for a specific date.
properties:
estimateMinutes:
type: number
taskId:
type: integer
title: WorkloadPlannerCapacityTask
type: object
planner.WorkloadPlannersResponse:
description: WorkloadPlannersResponse contains information about a group of planners.
properties:
included:
properties:
calendarEvents:
additionalProperties:
$ref: '#/definitions/view.LegacyCalendarEvent'
type: object
companies:
additionalProperties:
$ref: '#/definitions/view.Company'
type: object
milestones:
additionalProperties:
$ref: '#/definitions/view.Milestone'
type: object
tasklists:
additionalProperties:
$ref: '#/definitions/view.Tasklist'
type: object
tasks:
additionalProperties:
$ref: '#/definitions/view.TaskV205'
type: object
timelogs:
additionalProperties:
$ref: '#/definitions/view.Timelog'
type: object
users:
additionalProperties:
$ref: '#/definitions/view.User'
type: object
workingHourEntries:
additionalProperties:
$ref: '#/definitions/view.WorkingHourEntry'
type: object
workingHours:
additionalProperties:
$ref: '#/definitions/view.WorkingHour'
type: object
type: object
meta:
$ref: '#/definitions/view.Meta'
planners:
items:
$ref: '#/definitions/planner.WorkloadPlanner'
type: array
title: WorkloadPlannersResponse
type: object
priceplan.FeaturesResponse:
description: |-
FeaturesResponse contains all the information returned when sending a GET
request to the features endpoint.
properties:
features:
items:
$ref: '#/definitions/view.Feature'
type: array
meta:
$ref: '#/definitions/view.Meta'
title: FeaturesResponse
type: object
project.FeatureOrder:
description: |-
FeatureOrder contains the information of the feature
order to display in the UI for a project.
properties:
billing:
type: integer
board:
type: integer
comments:
type: integer
dashboard:
type: integer
files:
type: integer
finance:
type: integer
forms:
type: integer
gantt:
type: integer
id:
type: integer
installationId:
type: integer
links:
type: integer
list:
type: integer
messages:
type: integer
milestones:
type: integer
notebooks:
type: integer
numVisibleTabs:
type: integer
people:
type: integer
projectId:
type: integer
proofs:
type: integer
risks:
type: integer
settings:
type: integer
table:
type: integer
time:
type: integer
title: FeatureOrder
type: object
project.FeatureOrderDefaults:
description: |-
FeatureOrderDefaults is the payload used to set
the defaults for all projects feature order, and
allows to also update the projects that have
an explicitly set defaults
properties:
billing:
type: integer
board:
type: integer
comments:
type: integer
dashboard:
type: integer
files:
type: integer
finance:
type: integer
forms:
type: integer
gantt:
type: integer
links:
type: integer
list:
type: integer
messages:
type: integer
milestones:
type: integer
notebooks:
type: integer
numVisibleTabs:
type: integer
people:
type: integer
proofs:
type: integer
risks:
type: integer
settings:
type: integer
table:
type: integer
time:
type: integer
title: FeatureOrderDefaults
type: object
project.FeatureOrderRequest:
description: |-
FeatureOrderRequest is the payload used to set
the project features order as we want to appear
in the UI tabs selection
properties:
featureOrder:
$ref: '#/definitions/project.FeatureOrder'
featureOrderOptions:
properties:
useNotifyViaTWIM:
type: boolean
type: object
title: FeatureOrderRequest
type: object
project.FeatureOrderResponse:
description: |-
FeatureOrderResponse is the api response containing
information about the order to display the featues in the UI.
properties:
featureOrder:
$ref: '#/definitions/project.FeatureOrder'
title: FeatureOrderResponse
type: object
project.Included:
description: Included is the task sideloads
properties:
activities:
additionalProperties:
$ref: '#/definitions/view.ActivityLog'
type: object
companies:
additionalProperties:
$ref: '#/definitions/view.Company'
type: object
countries:
additionalProperties:
$ref: '#/definitions/view.Country'
type: object
customfieldProjects:
additionalProperties:
$ref: '#/definitions/view.CustomFieldValueProject'
type: object
customfields:
additionalProperties:
$ref: '#/definitions/view.CustomField'
type: object
industries:
additionalProperties:
$ref: '#/definitions/view.Industry'
type: object
portfolioBoards:
additionalProperties:
$ref: '#/definitions/view.PortfolioBoard'
type: object
portfolioCards:
additionalProperties:
$ref: '#/definitions/view.PortfolioCard'
type: object
portfolioColumns:
additionalProperties:
$ref: '#/definitions/view.PortfolioColumn'
type: object
projectBudgets:
additionalProperties:
$ref: '#/definitions/view.ProjectBudget'
type: object
projectCategories:
additionalProperties:
$ref: '#/definitions/view.ProjectCategory'
type: object
projectEmailDropboxes:
additionalProperties:
$ref: '#/definitions/view.ProjectEmailDropbox'
type: object
projectTaskStats:
additionalProperties:
$ref: '#/definitions/view.TaskStats'
type: object
projectUpdates:
additionalProperties:
$ref: '#/definitions/view.ProjectUpdate'
type: object
stages:
additionalProperties:
$ref: '#/definitions/view.Stage'
type: object
tags:
additionalProperties:
$ref: '#/definitions/view.Tag'
type: object
users:
additionalProperties:
$ref: '#/definitions/view.User'
type: object
workflows:
additionalProperties:
$ref: '#/definitions/view.Workflow'
type: object
title: Included
type: object
project.SampleProjectsResponse:
description: SampleProjectsResponse contains information about a group of sample projects.
properties:
included:
properties:
projectCategories:
additionalProperties:
$ref: '#/definitions/view.ProjectCategory'
type: object
type: object
meta:
$ref: '#/definitions/view.Meta'
projects:
items:
$ref: '#/definitions/view.SampleProject'
type: array
title: SampleProjectsResponse
type: object
project.projectsResponseV205:
description: projectsResponseV205 contains information about a group of projects.
properties:
included:
$ref: '#/definitions/project.Included'
meta:
$ref: '#/definitions/view.Meta'
projects:
items:
$ref: '#/definitions/view.ProjectV205'
type: array
title: projectsResponseV205
type: object
project.responseV205:
description: responseV205 contains information about a project.
properties:
included:
$ref: '#/definitions/project.Included'
meta:
$ref: '#/definitions/view.Meta'
project:
$ref: '#/definitions/view.ProjectV205'
title: responseV205
type: object
risk.RisksResponse:
description: |-
RisksResponse contains all the information returned when sending a GET
request to the risk endpoint.
properties:
included:
properties:
companies:
additionalProperties:
$ref: '#/definitions/view.Company'
type: object
projects:
additionalProperties:
$ref: '#/definitions/view.ProjectV205'
type: object
users:
additionalProperties:
$ref: '#/definitions/view.User'
type: object
type: object
meta:
$ref: '#/definitions/view.Meta'
risks:
items:
$ref: '#/definitions/view.Risk'
type: array
title: RisksResponse
type: object
stage.BulkAddTasksRequest:
description: |-
BulkAddTasksRequest contains the ids of the tasks that should be added to the
stage.
properties:
options:
properties:
fireWebhook:
type: boolean
logActivity:
type: boolean
useNotifyViaTWIM:
type: boolean
type: object
taskIds:
items:
type: integer
type: array
title: BulkAddTasksRequest
type: object
stage.MoveTaskRequest:
description: |-
MoveTaskRequest contains the id of the task to be moved and the id of the task after
to calculate the position
positionAfterTask: top of list = -1, other = taskId
properties:
positionAfterTask:
type: integer
stageId:
type: integer
taskId:
type: integer
workflowId:
type: integer
title: MoveTaskRequest
type: object
stage.Request:
description: Request contains information of a stage to be created or updated.
properties:
stage:
$ref: '#/definitions/stage.Stage'
stageOptions:
properties:
fireWebhook:
type: boolean
logActivity:
type: boolean
useNotifyViaTWIM:
type: boolean
type: object
title: Request
type: object
stage.Response:
description: Response contains information about a specific stage.
properties:
included:
properties:
users:
additionalProperties:
$ref: '#/definitions/view.User'
type: object
workflows:
additionalProperties:
$ref: '#/definitions/view.Workflow'
type: object
type: object
stage:
$ref: '#/definitions/view.Stage'
title: Response
type: object
stage.Stage:
description: Stage contains all the information returned from a stage.
properties:
color:
$ref: '#/definitions/payload.NullableHexColor'
displayOrder:
type: number
id:
type: integer
name:
type: string
positionAfterStage:
type: integer
showCompletedTasks:
$ref: '#/definitions/payload.NullableBool'
workflowId:
type: integer
title: Stage
type: object
stage.StagesResponse:
description: StagesResponse contains information about a group of stages.
properties:
included:
properties:
users:
additionalProperties:
$ref: '#/definitions/view.User'
type: object
workflows:
additionalProperties:
$ref: '#/definitions/view.Workflow'
type: object
type: object
meta:
$ref: '#/definitions/view.Meta'
stages:
items:
$ref: '#/definitions/view.Stage'
type: array
title: StagesResponse
type: object
status.TimelineResponse:
description: TimelineResponse contains information about a group of statuses.
properties:
included:
properties:
userEvents:
additionalProperties:
$ref: '#/definitions/view.UserEvents'
type: object
users:
additionalProperties:
$ref: '#/definitions/view.User'
type: object
type: object
meta:
$ref: '#/definitions/view.Meta'
statuses:
items:
$ref: '#/definitions/view.Status'
type: array
title: TimelineResponse
type: object
summary.ColumnCardResponse:
description: ColumnCardResponse contains counters from column's cards.
properties:
active:
type: integer
archived:
type: integer
completed:
type: integer
count:
type: integer
title: ColumnCardResponse
type: object
summary.ColumnDataResponse:
description: ColumnDataResponse contains information of a specific column.
properties:
cards:
$ref: '#/definitions/summary.ColumnCardResponse'
color:
type: string
estimatedTime:
$ref: '#/definitions/summary.ColumnEstimatedResponse'
id:
type: integer
name:
type: string
title: ColumnDataResponse
type: object
summary.ColumnEstimatedResponse:
description: |-
ColumnEstimatedResponse contains estimated counters about the
columns's state.
properties:
active:
type: integer
archived:
type: integer
completed:
type: integer
total:
type: integer
title: ColumnEstimatedResponse
type: object
summary.ColumnResponse:
description: ColumnResponse contains counters for columns.
properties:
count:
type: integer
data:
items:
$ref: '#/definitions/summary.ColumnDataResponse'
type: array
title: ColumnResponse
type: object
summary.EventResponse:
description: EventResponse contains counters for events.
properties:
today:
type: integer
upcoming:
type: integer
title: EventResponse
type: object
summary.HealthResponse:
description: HealthResponse contains counters for health.
properties:
'0':
type: integer
'1':
type: integer
'2':
type: integer
'3':
type: integer
title: HealthResponse
type: object
summary.MilestoneCountsResponse:
description: MilestoneCountsResponse contains counters for milestones.
properties:
active:
type: integer
complete:
type: integer
late:
type: integer
today:
type: integer
upcoming:
type: integer
title: MilestoneCountsResponse
type: object
summary.MilestoneResponse:
description: MilestoneResponse contains groups of counter for milestones.
properties:
everyone:
$ref: '#/definitions/summary.MilestoneCountsResponse'
mine:
$ref: '#/definitions/summary.MilestoneCountsResponse'
title: MilestoneResponse
type: object
summary.ProjectResponse:
description: |-
ProjectResponse contains all the information returned when sending
a GET request to the summary endpoint (project).
properties:
columns:
$ref: '#/definitions/summary.ColumnResponse'
events:
$ref: '#/definitions/summary.EventResponse'
health:
$ref: '#/definitions/summary.HealthResponse'
milestones:
$ref: '#/definitions/summary.MilestoneResponse'
risks:
$ref: '#/definitions/summary.RiskResponse'
since:
$ref: '#/definitions/summary.SinceResponse'
tasks:
$ref: '#/definitions/summary.ProjectTasksResponse'
time:
$ref: '#/definitions/summary.TimeResponse'
unread:
$ref: '#/definitions/summary.UnreadResponse'
title: ProjectResponse
type: object
summary.ProjectTasksResponse:
description: ProjectTasksResponse contains groups of counters tasks.
properties:
everyone:
$ref: '#/definitions/summary.TaskResponse'
mine:
$ref: '#/definitions/summary.TaskResponse'
user:
$ref: '#/definitions/summary.TaskResponse'
title: ProjectTasksResponse
type: object
summary.Response:
description: |-
Response contains all the information returned when sending a GET
request to the summary endpoint (dashboard).
properties:
columns:
$ref: '#/definitions/summary.ColumnResponse'
events:
$ref: '#/definitions/summary.EventResponse'
health:
$ref: '#/definitions/summary.HealthResponse'
milestones:
$ref: '#/definitions/summary.MilestoneCountsResponse'
risks:
$ref: '#/definitions/summary.RiskResponse'
since:
$ref: '#/definitions/summary.SinceResponse'
tasks:
$ref: '#/definitions/summary.TaskResponse'
time:
$ref: '#/definitions/summary.TimeCounterResponse'
unread:
$ref: '#/definitions/summary.UnreadResponse'
title: Response
type: object
summary.RiskResponse:
description: RiskResponse contains counters for risks.
properties:
closed:
type: integer
open:
type: integer
pending:
type: integer
total:
type: integer
title: RiskResponse
type: object
summary.SinceResponse:
description: SinceResponse contains counters for since.
properties:
dateTime:
type: string
events:
type: integer
tasksComplete:
type: integer
tasksCreated:
type: integer
title: SinceResponse
type: object
summary.TaskResponse:
description: TaskResponse contains counters for tasks.
properties:
active:
type: integer
complete:
type: integer
late:
type: integer
nodate:
type: integer
started:
type: integer
today:
type: integer
upcoming:
type: integer
title: TaskResponse
type: object
summary.TimeCounterEstimateResponse:
description: TimeCounterEstimateResponse contains estimate counters for times.
properties:
activeMinsEstimated:
type: integer
completedMinsEstimated:
type: integer
totalMinsEstimated:
type: integer
totalWithTimeLoggedEstimatedMins:
type: integer
title: TimeCounterEstimateResponse
type: object
summary.TimeCounterResponse:
description: TimeCounterResponse contains counters for times.
properties:
estimates:
$ref: '#/definitions/summary.TimeCounterEstimateResponse'
totals:
$ref: '#/definitions/summary.TimeCounterTotalResponse'
title: TimeCounterResponse
type: object
summary.TimeCounterTotalResponse:
description: TimeCounterTotalResponse contains total counters for times.
properties:
billableMinsSum:
type: integer
billedMinsSum:
type: integer
nonBillableMinsSum:
type: integer
nonBilledMinsSum:
type: integer
totalMinsSum:
type: integer
title: TimeCounterTotalResponse
type: object
summary.TimeResponse:
description: TimeResponse contains counters for times' groups.
properties:
all:
$ref: '#/definitions/summary.TimeCounterResponse'
mine:
$ref: '#/definitions/summary.TimeCounterResponse'
title: TimeResponse
type: object
summary.UnreadResponse:
description: UnreadResponse contains counters for unread objects.
properties:
comments:
type: integer
messages:
type: integer
title: UnreadResponse
type: object
tag.BulkDeleteRequest:
description: BulkDeleteRequest contains the ids of the tags that should be removed.
properties:
tagIds:
items:
type: integer
type: array
tagNames:
items:
type: string
type: array
title: BulkDeleteRequest
type: object
tag.Request:
description: Request contains information of a tag to be created or updated.
properties:
tag:
$ref: '#/definitions/tag.Tag'
title: Request
type: object
tag.Response:
description: Response contains information about a specific tag.
properties:
tag:
$ref: '#/definitions/view.Tag'
title: Response
type: object
tag.Tag:
description: Tag contains all the information returned from a tag.
properties:
color:
type: string
name:
type: string
projectId:
type: integer
title: Tag
type: object
tag.TagsResponse:
description: TagsResponse contains information about a group of tags.
properties:
included:
properties:
cards:
additionalProperties:
$ref: '#/definitions/view.TaskCard'
type: object
columns:
additionalProperties:
$ref: '#/definitions/view.BoardColumn'
type: object
tasks:
additionalProperties:
$ref: '#/definitions/view.TaskV205'
type: object
type: object
meta:
$ref: '#/definitions/view.Meta'
tags:
items:
$ref: '#/definitions/view.Tag'
type: array
title: TagsResponse
type: object
task.Card:
description: Card stores information about the card created with the task.
properties:
columnId:
type: integer
title: Card
type: object
task.CustomFields:
description: CustomFields is the custom fields type.
properties:
Values:
items:
$ref: '#/definitions/value.CustomFieldValue'
type: array
title: CustomFields
type: object
task.File:
description: File stores information about a uploaded file.
properties:
categoryId:
type: integer
id:
type: integer
title: File
type: object
task.Included:
description: Included is the task sideloads
properties:
cards:
additionalProperties:
$ref: '#/definitions/view.TaskCard'
type: object
columns:
additionalProperties:
$ref: '#/definitions/view.BoardColumn'
type: object
comments:
additionalProperties:
$ref: '#/definitions/view.Comment'
type: object
companies:
additionalProperties:
$ref: '#/definitions/view.Company'
type: object
customfieldTasks:
additionalProperties:
$ref: '#/definitions/view.CustomFieldValueTask'
type: object
customfields:
additionalProperties:
$ref: '#/definitions/view.CustomField'
type: object
files:
additionalProperties:
$ref: '#/definitions/view.ProjectFileV205'
type: object
lockdowns:
additionalProperties:
$ref: '#/definitions/view.Lockdown'
type: object
milestones:
additionalProperties:
$ref: '#/definitions/view.Milestone'
type: object
projectCategories:
additionalProperties:
$ref: '#/definitions/view.ProjectCategory'
type: object
projectPermissions:
additionalProperties:
$ref: '#/definitions/view.ProjectPermissions'
type: object
projects:
additionalProperties:
$ref: '#/definitions/view.ProjectV205'
type: object
proofs:
additionalProperties:
$ref: '#/definitions/view.Proof'
type: object
stages:
additionalProperties:
$ref: '#/definitions/view.Stage'
type: object
subtaskStats:
additionalProperties:
$ref: '#/definitions/view.TaskStats'
type: object
tags:
additionalProperties:
$ref: '#/definitions/view.Tag'
type: object
taskSequences:
additionalProperties:
$ref: '#/definitions/view.TaskSequence'
type: object
taskgroups:
additionalProperties:
$ref: '#/definitions/view.Taskgroup'
type: object
tasklists:
additionalProperties:
$ref: '#/definitions/view.Tasklist'
type: object
tasks:
additionalProperties:
$ref: '#/definitions/view.TaskV205'
type: object
teams:
additionalProperties:
$ref: '#/definitions/view.Team'
type: object
timeTotals:
additionalProperties:
$ref: '#/definitions/view.TaskTimeTotals'
type: object
timers:
additionalProperties:
$ref: '#/definitions/view.Timer'
type: object
users:
additionalProperties:
$ref: '#/definitions/view.User'
type: object
workflows:
additionalProperties:
$ref: '#/definitions/view.Workflow'
type: object
title: Included
type: object
task.Options:
description: |-
Options contains any options which can be set
for the task request
properties:
appendAssignees:
type: boolean
checkInvalidusers:
type: boolean
everyoneMustDo:
type: boolean
fireWebhook:
type: boolean
isTemplate:
type: boolean
logActivity:
type: boolean
notify:
type: boolean
parseInlineTags:
type: boolean
positionAfterTaskId:
type: integer
pushDependents:
type: boolean
pushSubtasks:
type: boolean
shiftProjectDates:
type: boolean
useDefaults:
type: boolean
useNotifyViaTWIM:
type: boolean
title: Options
type: object
task.PendingFile:
description: PendingFile stores information about a file uploaded on-the-fly.
properties:
categoryId:
type: integer
reference:
type: string
title: PendingFile
type: object
task.Predecessor:
description: Predecessor stores information about task predecessors.
properties:
id:
type: integer
type:
type: string
title: Predecessor
type: object
task.Reminder:
description: Reminder stores all necessary information to create a task reminder.
properties:
isRelative:
type: boolean
note:
type: string
relativeNumberDays:
type: integer
remindAt:
type: string
type:
type: string
userId:
type: integer
title: Reminder
type: object
task.RepeatOptions:
description: RepeatOptions stores recurring information for the task.
properties:
duration:
type: integer
editOption:
type: string
endsAt:
$ref: '#/definitions/payload.NullableDate'
frequency:
$ref: '#/definitions/payload.NullableTaskRepeatFrequency'
monthlyRepeatType:
$ref: '#/definitions/payload.NullableTaskRepeatMonthlyType'
rrule:
description: Adds the RRule definition for repeating tasks. It replaces all other repeating fields.
title: RRule
type: string
selectedDays:
$ref: '#/definitions/payload.NullableWorkingHourEntryWeekdays'
title: RepeatOptions
type: object
task.Request:
description: Request contains information of a task to be created or updated.
properties:
attachmentOptions:
properties:
removeOtherFiles:
type: boolean
type: object
attachments:
properties:
files:
items:
$ref: '#/definitions/task.File'
type: array
pendingFiles:
items:
$ref: '#/definitions/task.PendingFile'
type: array
type: object
card:
$ref: '#/definitions/task.Card'
predecessors:
items:
$ref: '#/definitions/task.Predecessor'
type: array
tags:
items:
$ref: '#/definitions/tag.Tag'
type: array
task:
$ref: '#/definitions/task.Task'
taskOptions:
$ref: '#/definitions/task.Options'
workflows:
$ref: '#/definitions/task.Workflows'
title: Request
type: object
task.Task:
description: Task contains all the information returned from a task.
properties:
assignees:
$ref: '#/definitions/payload.UserGroups'
attachmentIds:
items:
type: integer
type: array
changeFollowers:
$ref: '#/definitions/payload.UserGroups'
commentFollowers:
$ref: '#/definitions/payload.UserGroups'
completedAt:
type: string
completedBy:
type: integer
createdAt:
type: string
createdBy:
type: integer
crmDealIds:
items:
type: integer
type: array
customFields:
$ref: '#/definitions/task.CustomFields'
description:
type: string
descriptionContentType:
type: string
dueAt:
$ref: '#/definitions/payload.NullableDate'
estimatedMinutes:
type: integer
grantAccessTo:
$ref: '#/definitions/payload.UserGroups'
hasDeskTickets:
type: boolean
name:
type: string
originalDueDate:
$ref: '#/definitions/payload.NullableDate'
parentTaskId:
type: integer
priority:
$ref: '#/definitions/payload.NullableTaskPriority'
private:
type: boolean
progress:
type: integer
reminders:
items:
$ref: '#/definitions/task.Reminder'
type: array
repeatOptions:
$ref: '#/definitions/task.RepeatOptions'
startAt:
$ref: '#/definitions/payload.NullableDate'
status:
type: string
tagIds:
items:
type: integer
type: array
taskgroupId:
type: integer
tasklistId:
type: integer
templateRoleName:
type: string
ticketId:
type: integer
title: Task
type: object
task.Workflows:
description: Workflows stores information about where the task lives in the workflow
properties:
positionAfterTask:
type: integer
stageId:
type: integer
workflowId:
type: integer
title: Workflows
type: object
task.responseV205:
properties:
affected:
$ref: '#/definitions/view.TaskAffectedV205'
included:
$ref: '#/definitions/task.Included'
meta:
$ref: '#/definitions/view.Meta'
task:
$ref: '#/definitions/view.TaskV205'
title: responseV205
type: object
task.tasksResponseV205:
properties:
included:
$ref: '#/definitions/task.Included'
meta:
$ref: '#/definitions/view.Meta'
tasks:
items:
$ref: '#/definitions/view.TaskV205'
type: array
title: tasksResponseV205
type: object
tasklist.Response:
description: Response contains information about a specific tasklist.
properties:
included:
properties:
columns:
additionalProperties:
$ref: '#/definitions/view.BoardColumn'
type: object
companies:
additionalProperties:
$ref: '#/definitions/view.Company'
type: object
customfieldTasks:
additionalProperties:
$ref: '#/definitions/view.CustomFieldValueTask'
type: object
customfields:
additionalProperties:
$ref: '#/definitions/view.CustomField'
type: object
defaultTaskReminders:
additionalProperties:
$ref: '#/definitions/view.TaskReminder'
type: object
lockdowns:
additionalProperties:
$ref: '#/definitions/view.Lockdown'
type: object
milestones:
additionalProperties:
$ref: '#/definitions/view.Milestone'
type: object
notifications:
additionalProperties:
$ref: '#/definitions/view.TasklistBudgetNotification'
type: object
projects:
additionalProperties:
$ref: '#/definitions/view.IncludedProject'
type: object
tasklistBudgets:
additionalProperties:
$ref: '#/definitions/view.TasklistBudget'
type: object
tasklistTaskStats:
additionalProperties:
$ref: '#/definitions/view.TaskStats'
type: object
tasks:
additionalProperties:
$ref: '#/definitions/view.IncludedTask'
type: object
teams:
additionalProperties:
$ref: '#/definitions/view.Team'
type: object
users:
additionalProperties:
$ref: '#/definitions/view.User'
type: object
workflowStages:
additionalProperties:
$ref: '#/definitions/view.Stage'
type: object
type: object
tasklist:
$ref: '#/definitions/view.Tasklist'
title: Response
type: object
tasklist.TasklistsResponse:
description: TasklistsResponse contains information about a group of tasklists.
properties:
included:
properties:
columns:
additionalProperties:
$ref: '#/definitions/view.BoardColumn'
type: object
companies:
additionalProperties:
$ref: '#/definitions/view.Company'
type: object
customfieldTasks:
additionalProperties:
$ref: '#/definitions/view.CustomFieldValueTask'
type: object
customfields:
additionalProperties:
$ref: '#/definitions/view.CustomField'
type: object
defaultTaskReminders:
additionalProperties:
$ref: '#/definitions/view.TaskReminder'
type: object
lockdowns:
additionalProperties:
$ref: '#/definitions/view.Lockdown'
type: object
milestones:
additionalProperties:
$ref: '#/definitions/view.Milestone'
type: object
notifications:
additionalProperties:
$ref: '#/definitions/view.TasklistBudgetNotification'
type: object
projects:
additionalProperties:
$ref: '#/definitions/view.IncludedProject'
type: object
tasklistBudgets:
additionalProperties:
$ref: '#/definitions/view.TasklistBudget'
type: object
tasklistTaskStats:
additionalProperties:
$ref: '#/definitions/view.TaskStats'
type: object
tasks:
additionalProperties:
$ref: '#/definitions/view.IncludedTask'
type: object
teams:
additionalProperties:
$ref: '#/definitions/view.Team'
type: object
users:
additionalProperties:
$ref: '#/definitions/view.User'
type: object
workflowStages:
additionalProperties:
$ref: '#/definitions/view.Stage'
type: object
type: object
meta:
$ref: '#/definitions/view.Meta'
tasklists:
items:
$ref: '#/definitions/view.Tasklist'
type: array
title: TasklistsResponse
type: object
tasklistbudget.Budget:
description: Budget contains all the information returned from a budget.
properties:
capacity:
type: integer
id:
type: integer
notifications:
items:
$ref: '#/definitions/tasklistbudget.notification'
type: array
tasklist:
$ref: '#/definitions/tasklistbudget.tasklist'
title: Budget
type: object
tasklistbudget.BudgetResponse:
description: BudgetResponse contains information about a group of budgets.
properties:
meta:
$ref: '#/definitions/view.Meta'
tasklistBudget:
$ref: '#/definitions/view.TasklistBudget'
title: BudgetResponse
type: object
tasklistbudget.BudgetsResponse:
description: BudgetsResponse contains information about a group of budgets.
properties:
included:
properties:
companies:
additionalProperties:
$ref: '#/definitions/view.Company'
type: object
notifications:
additionalProperties:
$ref: '#/definitions/view.TasklistBudgetNotification'
type: object
projectBudgets:
additionalProperties:
$ref: '#/definitions/view.ProjectBudget'
type: object
tasklists:
additionalProperties:
$ref: '#/definitions/view.Tasklist'
type: object
teams:
additionalProperties:
$ref: '#/definitions/view.Team'
type: object
users:
additionalProperties:
$ref: '#/definitions/view.User'
type: object
type: object
meta:
$ref: '#/definitions/view.Meta'
tasklistBudgets:
items:
$ref: '#/definitions/view.TasklistBudget'
type: array
title: BudgetsResponse
type: object
tasklistbudget.BulkAddBudgetRequest:
description: |-
BulkAddBudgetRequest structure hold information needed to add
or update task list budgets along with request options
properties:
tasklistBudgets:
items:
$ref: '#/definitions/tasklistbudget.Budget'
type: array
tasklistBudgetsOptions:
$ref: '#/definitions/tasklistbudget.RequestOptions'
title: BulkAddBudgetRequest
type: object
tasklistbudget.PatchBudgetRequest:
description: PatchBudgetRequest Structure for the edit budget PATCH request
properties:
tasklistBudget:
$ref: '#/definitions/tasklistbudget.Budget'
tasklistBudgetOptions:
$ref: '#/definitions/tasklistbudget.RequestOptions'
title: PatchBudgetRequest
type: object
tasklistbudget.RequestOptions:
description: RequestOptions has options for events related to requests
properties:
fireWebhook:
type: boolean
logActivity:
type: boolean
useNotifyViaTWIM:
type: boolean
title: RequestOptions
type: object
tasklistbudget.company:
properties:
id:
type: integer
type:
type: string
title: company
type: object
tasklistbudget.notification:
properties:
capacityThreshold:
type: number
companies:
items:
$ref: '#/definitions/tasklistbudget.company'
type: array
id:
type: integer
notificationMedium:
type: string
teams:
items:
$ref: '#/definitions/tasklistbudget.team'
type: array
users:
items:
$ref: '#/definitions/tasklistbudget.user'
type: array
title: notification
type: object
tasklistbudget.tasklist:
properties:
id:
type: integer
type:
type: string
title: tasklist
type: object
tasklistbudget.team:
properties:
id:
type: integer
type:
type: string
title: team
type: object
tasklistbudget.user:
properties:
id:
type: integer
type:
type: string
title: user
type: object
timelog.CompanyTimelogsResponse:
description: CompanyTimelogsResponse contains information about a group of timelogs, grouped by company ID.
properties:
included:
properties:
companies:
additionalProperties:
$ref: '#/definitions/view.Company'
type: object
projects:
additionalProperties:
$ref: '#/definitions/view.ProjectV205'
type: object
tags:
additionalProperties:
$ref: '#/definitions/view.Tag'
type: object
tasklists:
additionalProperties:
$ref: '#/definitions/view.Tasklist'
type: object
tasks:
additionalProperties:
$ref: '#/definitions/view.TaskV205'
type: object
userRates:
additionalProperties:
$ref: '#/definitions/view.EffectiveUserRate'
type: object
users:
additionalProperties:
$ref: '#/definitions/view.User'
type: object
type: object
meta:
$ref: '#/definitions/view.Meta'
timelogs:
type: object
title: CompanyTimelogsResponse
type: object
timelog.Request:
description: Request contains information of a timelog to be created or updated.
properties:
tags:
items:
$ref: '#/definitions/tag.Tag'
type: array
timelog:
$ref: '#/definitions/timelog.Timelog'
timelogOptions:
properties:
fireWebhook:
type: boolean
logActivity:
type: boolean
markTaskComplete:
type: boolean
parseInlineTags:
type: boolean
useNotifyViaTWIM:
type: boolean
type: object
title: Request
type: object
timelog.Response:
description: Response contains information about a specific timelog.
properties:
included:
properties:
companies:
additionalProperties:
$ref: '#/definitions/view.Company'
type: object
projects:
additionalProperties:
$ref: '#/definitions/view.ProjectV205'
type: object
tags:
additionalProperties:
$ref: '#/definitions/view.Tag'
type: object
tasklists:
additionalProperties:
$ref: '#/definitions/view.Tasklist'
type: object
tasks:
additionalProperties:
$ref: '#/definitions/view.TaskV205'
type: object
userRates:
additionalProperties:
$ref: '#/definitions/view.EffectiveUserRate'
type: object
users:
additionalProperties:
$ref: '#/definitions/view.User'
type: object
type: object
timelog:
$ref: '#/definitions/view.Timelog'
title: Response
type: object
timelog.Timelog:
description: Timelog contains all the information returned from a timelog.
properties:
date:
$ref: '#/definitions/payload.Date'
description:
type: string
hasStartTime:
type: boolean
hours:
type: integer
invoiceId:
type: integer
isBillable:
type: boolean
isUtc:
type: boolean
minutes:
type: integer
projectId:
type: integer
tagIds:
items:
type: integer
type: array
taskId:
type: integer
ticketId:
type: integer
time:
$ref: '#/definitions/payload.Time'
userId:
type: integer
title: Timelog
type: object
timelog.TimelogsResponse:
description: TimelogsResponse contains information about a group of timelogs.
properties:
included:
properties:
companies:
additionalProperties:
$ref: '#/definitions/view.Company'
type: object
projects:
additionalProperties:
$ref: '#/definitions/view.ProjectV205'
type: object
tags:
additionalProperties:
$ref: '#/definitions/view.Tag'
type: object
tasklists:
additionalProperties:
$ref: '#/definitions/view.Tasklist'
type: object
tasks:
additionalProperties:
$ref: '#/definitions/view.TaskV205'
type: object
userRates:
additionalProperties:
$ref: '#/definitions/view.EffectiveUserRate'
type: object
users:
additionalProperties:
$ref: '#/definitions/view.User'
type: object
type: object
meta:
$ref: '#/definitions/view.Meta'
timelogs:
items:
$ref: '#/definitions/view.Timelog'
type: array
title: TimelogsResponse
type: object
timelog.TotalsResponse:
description: TotalsResponse contains information about timelog totals.
properties:
subTasks:
$ref: '#/definitions/view.TimelogTotalsSubtasks'
time-totals:
$ref: '#/definitions/view.TimelogTotals'
title: TotalsResponse
type: object
timer.DeleteRequest:
description: |-
DeleteRequest contains the whether or not a timer should be hard deleted
or soft deleted. Hard delete will remove the timer row from the DB and
remove its timer intervals. Soft delete will just mark it as deleted.
properties:
hardDelete:
type: boolean
title: DeleteRequest
type: object
timer.Request:
description: Request contains information of a timer to be created or updated.
properties:
timer:
$ref: '#/definitions/timer.Timer'
title: Request
type: object
timer.Response:
description: |-
Response contains the information returned when sending a PUT/POST
request to the timers endpoint, or GET request for a single item by ID
properties:
included:
properties:
projects:
additionalProperties:
$ref: '#/definitions/view.ProjectV205'
type: object
tasklists:
additionalProperties:
$ref: '#/definitions/view.Tasklist'
type: object
tasks:
additionalProperties:
$ref: '#/definitions/view.TaskV205'
type: object
users:
additionalProperties:
$ref: '#/definitions/view.User'
type: object
type: object
timer:
$ref: '#/definitions/view.Timer'
title: Response
type: object
timer.Timer:
description: Timer contains all the information returned from a timer.
properties:
description:
type: string
isBillable:
type: boolean
isRunning:
type: boolean
projectId:
type: integer
seconds:
description: only valid for POST requests
type: integer
stopRunningTimers:
type: boolean
taskId:
type: integer
title: Timer
type: object
timer.TimersResponse:
description: |-
TimersResponse contains all the information returned when sending a GET
request to the timers endpoint.
properties:
included:
properties:
projects:
additionalProperties:
$ref: '#/definitions/view.ProjectV205'
type: object
tasklists:
additionalProperties:
$ref: '#/definitions/view.Tasklist'
type: object
tasks:
additionalProperties:
$ref: '#/definitions/view.TaskV205'
type: object
users:
additionalProperties:
$ref: '#/definitions/view.User'
type: object
type: object
meta:
$ref: '#/definitions/view.Meta'
timers:
items:
$ref: '#/definitions/view.Timer'
type: array
title: TimersResponse
type: object
timesheet.MyTimesheetsResponse:
description: MyTimesheetsResponse contains timesheets list, includes and metadata.
properties:
included:
properties:
companies:
additionalProperties:
$ref: '#/definitions/view.Company'
type: object
eventTypes:
additionalProperties:
$ref: '#/definitions/view.LegacyCalendarEventType'
type: object
projectPermissions:
additionalProperties:
$ref: '#/definitions/view.ProjectPermissions'
type: object
projects:
additionalProperties:
$ref: '#/definitions/view.ProjectV205'
type: object
subtaskStats:
additionalProperties:
$ref: '#/definitions/view.TaskStats'
type: object
tasklists:
additionalProperties:
$ref: '#/definitions/view.Tasklist'
type: object
tasks:
additionalProperties:
$ref: '#/definitions/view.TaskV205'
type: object
timesheetCustomRows:
additionalProperties:
$ref: '#/definitions/view.TimesheetCustomRow'
type: object
unavailableTimes:
additionalProperties:
$ref: '#/definitions/view.LegacyUnavailableTime'
type: object
users:
additionalProperties:
$ref: '#/definitions/view.User'
type: object
workingHourEntries:
additionalProperties:
$ref: '#/definitions/view.WorkingHourEntry'
type: object
workingHours:
additionalProperties:
$ref: '#/definitions/view.WorkingHour'
type: object
type: object
meta:
$ref: '#/definitions/view.Meta'
timesheets:
items:
$ref: '#/definitions/view.MyTimesheet'
type: array
unavailableTimes:
$ref: '#/definitions/view.UnavailableTimes'
title: MyTimesheetsResponse
type: object
timesheet.MyTimesheetsTotals:
description: MyTimesheetsTotals contains the daily totals and total minutes
properties:
dailyTotals:
type: object
total:
type: integer
title: MyTimesheetsTotals
type: object
timesheet.MyTimesheetsTotalsResponse:
description: MyTimesheetsTotalsResponse contains timesheets list, includes and metadata.
properties:
myTimesheetsTotals:
$ref: '#/definitions/timesheet.MyTimesheetsTotals'
title: MyTimesheetsTotalsResponse
type: object
unbilled.ProjectMetricUnbilledResponse:
description: |-
ProjectMetricUnbilledResponse contains information about a group of unbilled
invoices.
properties:
data:
properties:
value:
type: integer
type: object
title: ProjectMetricUnbilledResponse
type: object
update.ProjectUpdatesResponse:
description: ProjectUpdatesResponse contains information about a group of updates.
properties:
included:
properties:
projects:
additionalProperties:
$ref: '#/definitions/view.ProjectV205'
type: object
users:
additionalProperties:
$ref: '#/definitions/view.User'
type: object
type: object
meta:
$ref: '#/definitions/view.Meta'
projectUpdates:
items:
$ref: '#/definitions/view.ProjectUpdate'
type: array
title: ProjectUpdatesResponse
type: object
utilization.Response:
description: Response contains information about a specific availability.
properties:
included:
properties:
users:
additionalProperties:
$ref: '#/definitions/view.User'
type: object
type: object
meta:
$ref: '#/definitions/view.Meta'
utilization:
items:
$ref: '#/definitions/view.UserUtilization'
type: array
title: Response
type: object
value.CustomFieldValue:
description: CustomFieldValue contains all the information returned from a customfield.
properties:
countryCode:
type: string
currencySymbol:
type: string
customfieldId:
type: integer
urlTextToDisplay:
type: string
value: {}
title: CustomFieldValue
type: object
value.EditCustomFieldValue:
description: |-
EditCustomFieldValue contains all the information to update a project
custom field value.
properties:
countryCode:
type: string
currencySymbol:
type: string
customfieldId:
type: integer
id:
type: integer
urlTextToDisplay:
type: string
value: {}
title: EditCustomFieldValue
type: object
value.ResponseIncluded:
description: ResponseIncluded is included in the response.
properties:
companies:
additionalProperties:
$ref: '#/definitions/view.Company'
type: object
customfields:
additionalProperties:
$ref: '#/definitions/view.CustomField'
type: object
projects:
additionalProperties:
$ref: '#/definitions/view.ProjectV205'
type: object
tasks:
additionalProperties:
$ref: '#/definitions/view.TaskV205'
type: object
title: ResponseIncluded
type: object
value.bulkDeleteRequestCompany:
properties:
customfieldCompanyIds:
items:
type: integer
type: array
title: bulkDeleteRequestCompany
type: object
value.bulkDeleteRequestProject:
properties:
customfieldProjectIds:
items:
type: integer
type: array
title: bulkDeleteRequestProject
type: object
value.bulkDeleteRequestTask:
properties:
customfieldTaskIds:
items:
type: integer
type: array
title: bulkDeleteRequestTask
type: object
value.bulkUpdateRequestCompany:
properties:
customfieldCompanies:
items:
$ref: '#/definitions/value.EditCustomFieldValue'
type: array
title: bulkUpdateRequestCompany
type: object
value.bulkUpdateRequestProject:
properties:
customfieldProjects:
items:
$ref: '#/definitions/value.EditCustomFieldValue'
type: array
title: bulkUpdateRequestProject
type: object
value.bulkUpdateRequestTask:
properties:
customfieldTasks:
items:
$ref: '#/definitions/value.EditCustomFieldValue'
type: array
title: bulkUpdateRequestTask
type: object
value.requestCompany:
properties:
customfieldCompany:
$ref: '#/definitions/value.CustomFieldValue'
title: requestCompany
type: object
value.requestProject:
properties:
customfieldProject:
$ref: '#/definitions/value.CustomFieldValue'
title: requestProject
type: object
value.requestTask:
properties:
customfieldTask:
$ref: '#/definitions/value.CustomFieldValue'
title: requestTask
type: object
value.responseCompany:
properties:
customfieldCompany:
$ref: '#/definitions/view.CustomFieldValueCompany'
included:
$ref: '#/definitions/value.ResponseIncluded'
meta:
$ref: '#/definitions/view.Meta'
title: responseCompany
type: object
value.responseProject:
properties:
customfieldProject:
$ref: '#/definitions/view.CustomFieldValueProject'
included:
$ref: '#/definitions/value.ResponseIncluded'
meta:
$ref: '#/definitions/view.Meta'
title: responseProject
type: object
value.responseTask:
properties:
customfieldTask:
$ref: '#/definitions/view.CustomFieldValueTask'
included:
$ref: '#/definitions/value.ResponseIncluded'
meta:
$ref: '#/definitions/view.Meta'
title: responseTask
type: object
value.valuesResponseCompany:
properties:
customfieldCompanies:
items:
$ref: '#/definitions/view.CustomFieldValueCompany'
type: array
included:
$ref: '#/definitions/value.ResponseIncluded'
meta:
$ref: '#/definitions/view.Meta'
title: valuesResponseCompany
type: object
value.valuesResponseProject:
properties:
customfieldProjects:
items:
$ref: '#/definitions/view.CustomFieldValueProject'
type: array
included:
$ref: '#/definitions/value.ResponseIncluded'
meta:
$ref: '#/definitions/view.Meta'
title: valuesResponseProject
type: object
value.valuesResponseTask:
properties:
customfieldTasks:
items:
$ref: '#/definitions/view.CustomFieldValueTask'
type: array
included:
$ref: '#/definitions/value.ResponseIncluded'
meta:
$ref: '#/definitions/view.Meta'
title: valuesResponseTask
type: object
view.ActivityLog:
description: ActivityLog contains all the information returned from a activityLog.
properties:
datetime:
type: string
description:
type: string
extraDescription:
type: string
id:
type: integer
itemLink:
type: string
itemType:
type: string
latestType:
type: string
link:
type: string
user:
$ref: '#/definitions/view.Relationship'
title: ActivityLog
type: object
view.Assignee:
description: Assignee contains assignee information.
properties:
decision:
type: string
id:
type: integer
isExternal:
type: boolean
role:
type: string
user:
$ref: '#/definitions/view.Relationship'
title: Assignee
type: object
view.Audit:
description: Audit represents the changes of a field.
properties:
after: {}
before: {}
field:
type: string
title: Audit
type: object
view.Banner:
description: Banner contains all the information returned from a form banner.
properties:
accentColor:
type: string
primaryColor:
type: string
url:
type: string
x:
type: number
'y':
type: number
title: Banner
type: object
view.BoardColumn:
description: BoardColumn contains all the information returned from a column.
properties:
color:
type: string
createdAt:
type: string
defaultTasklist:
$ref: '#/definitions/view.Relationship'
deleted:
type: boolean
deletedAt:
type: string
displayOrder:
type: integer
hasTriggers:
type: boolean
id:
type: integer
name:
type: string
project:
$ref: '#/definitions/view.Relationship'
settings:
$ref: '#/definitions/view.BoardColumnSettings'
sort:
type: string
sortOrder:
type: string
stats:
$ref: '#/definitions/view.ColumnStats'
updatedAt:
type: string
title: BoardColumn
type: object
view.BoardColumnSettings:
description: BoardColumnSettings contains all the settings for a column.
properties:
assignee:
type: boolean
avatar:
type: boolean
comments:
type: boolean
dependencies:
type: boolean
endAt:
type: boolean
estimatedtime:
type: boolean
files:
type: boolean
followers:
type: boolean
name:
type: boolean
priority:
type: boolean
private:
type: boolean
progress:
type: boolean
recurring:
type: boolean
reminders:
type: boolean
startAt:
type: boolean
subtasklabel:
type: boolean
subtasktext:
type: boolean
tags:
type: boolean
tasklist:
type: boolean
tickets:
type: boolean
time:
type: boolean
title: BoardColumnSettings
type: object
view.CategoryTotals:
description: CategoryTotals contains all the category totals.
properties:
categorizedItems:
type: integer
uncategorizedItems:
type: integer
title: CategoryTotals
type: object
view.ColumnStats:
description: ColumnStats contains stats about a column
properties:
active:
type: integer
completed:
type: integer
estimatedTime:
type: integer
total:
type: integer
title: ColumnStats
type: object
view.Comment:
description: Comment contains all the information returned from a comment.
properties:
id:
type: integer
object:
$ref: '#/definitions/view.Relationship'
objectId:
type: integer
objectType:
type: string
title:
type: string
title: Comment
type: object
view.Company:
description: Company contains all the information returned from a company.
properties:
accounts:
type: integer
addressOne:
type: string
addressTwo:
type: string
budgetDistribution:
items:
$ref: '#/definitions/entity.ProjectBudgetRange'
type: array
canSeePrivate:
type: boolean
cid:
type: string
city:
type: string
clientManagedBy:
$ref: '#/definitions/view.Relationship'
clients:
type: integer
collaborators:
type: integer
companyNameUrl:
type: string
companyUpdate:
$ref: '#/definitions/view.Relationship'
contacts:
type: integer
countryCode:
type: string
createdAt:
type: string
emailOne:
type: string
emailThree:
type: string
emailTwo:
type: string
fax:
type: string
id:
type: integer
industry:
$ref: '#/definitions/view.Relationship'
industryId:
type: integer
isOwner:
type: boolean
logoUrl:
type: string
name:
type: string
phone:
type: string
privateNotes:
type: string
privateNotesText:
type: string
profileText:
type: string
profitability:
$ref: '#/definitions/view.ProfitDetails'
state:
type: string
stats:
$ref: '#/definitions/view.CompanyStats'
status:
type: string
tags:
items:
$ref: '#/definitions/view.Relationship'
type: array
updatedAt:
type: string
website:
type: string
zip:
type: string
title: Company
type: object
view.CompanyStats:
description: CompanyStats tracks a companies project and task counts
properties:
projectCount:
type: integer
taskCompleteCount:
type: integer
taskCount:
type: integer
unreadEmailCount:
type: integer
title: CompanyStats
type: object
view.CompanyUpdate:
description: CompanyUpdate represents a company update
properties:
active:
type: boolean
company:
$ref: '#/definitions/view.Relationship'
health:
type: integer
id:
type: integer
text:
type: string
title: CompanyUpdate
type: object
view.Content:
description: Content contains all the information returned from a form token.
properties:
banner:
$ref: '#/definitions/view.Banner'
definition:
type: string
description:
type: string
logo:
$ref: '#/definitions/view.Logo'
name:
type: string
state:
type: string
version:
type: integer
title: Content
type: object
view.Country:
description: Country represents all the information returned from a country.
properties:
code:
type: string
country:
type: string
eu:
type: boolean
phoneCode:
type: string
vatName:
type: string
vatPercent:
type: integer
title: Country
type: object
view.CustomField:
description: CustomField contains all the information returned from a custom field.
properties:
createdAt:
type: string
createdBy:
type: integer
createdByUserId:
type: integer
currencyCode:
type: string
deleted:
type: boolean
deletedAt:
type: string
deletedBy:
type: integer
deletedByUserId:
type: integer
description:
type: string
entity:
type: string
formula:
type: string
groupId:
type: integer
id:
type: integer
isPrivate:
type: boolean
name:
type: string
options: {}
project:
$ref: '#/definitions/view.Relationship'
projectId:
type: integer
required:
type: boolean
type:
type: string
updatedAt:
type: string
updatedBy:
type: integer
updatedByUserId:
type: integer
visibilities:
items:
type: string
type: array
title: CustomField
type: object
view.CustomFieldValueCompany:
description: CustomFieldValueCompany is a company custom field value.
properties:
company:
$ref: '#/definitions/view.Relationship'
companyId:
type: integer
countryCode:
type: string
createdAt:
type: string
createdBy:
type: integer
currencySymbol:
type: string
customfield:
$ref: '#/definitions/view.Relationship'
customfieldId:
type: integer
id:
type: integer
urlTextToDisplay:
type: string
value: {}
title: CustomFieldValueCompany
type: object
view.CustomFieldValueProject:
description: CustomFieldValueProject is a project custom field value.
properties:
countryCode:
type: string
createdAt:
type: string
createdBy:
type: integer
currencySymbol:
type: string
customfield:
$ref: '#/definitions/view.Relationship'
customfieldId:
type: integer
id:
type: integer
project:
$ref: '#/definitions/view.Relationship'
projectId:
type: integer
urlTextToDisplay:
type: string
value: {}
title: CustomFieldValueProject
type: object
view.CustomFieldValueTask:
description: CustomFieldValueTask is a task custom field value.
properties:
countryCode:
type: string
createdAt:
type: string
createdBy:
type: integer
currencySymbol:
type: string
customfield:
$ref: '#/definitions/view.Relationship'
customfieldId:
type: integer
id:
type: integer
task:
$ref: '#/definitions/view.Relationship'
taskId:
type: integer
urlTextToDisplay:
type: string
value: {}
title: CustomFieldValueTask
type: object
view.Date:
description: Date represents a Unified API Spec date format.
title: Date
type: object
view.EffectiveUserRate:
description: EffectiveUserRate is the users effective rate
properties:
effectiveRate:
type: integer
user:
$ref: '#/definitions/view.Relationship'
title: EffectiveUserRate
type: object
view.Error:
description: Error describes an API error.
properties:
code:
description: Code is an application-specific error code.
type: string
detail:
description: |-
Detail is a human-readable explanation specific to this occurrence of the
problem.
type: string
id:
description: ID is a reference for this exact instance of the error.
type: string
meta:
description: Meta contains tags that are useful to detect specific issues.
type: object
title:
description: Title is a short, human-readable summary of the problem.
type: string
title: Error
type: object
view.ErrorResponse:
description: ErrorResponse defines how []Error should be marshaled to JSON.
properties:
errors:
items:
$ref: '#/definitions/view.Error'
type: array
title: ErrorResponse
type: object
view.Feature:
description: Feature contains all the information returned from a feature.
properties:
endAt:
type: string
isBeta:
type: boolean
key:
type: string
scope:
type: string
source:
type: string
startAt:
type: string
value:
type: string
title: Feature
type: object
view.FileversionV205:
description: FileversionV205 contains all the information returned from a fileversion.
properties:
commentsCount:
type: integer
commentsCountRead:
type: integer
description:
type: string
displayName:
type: string
file:
$ref: '#/definitions/view.Relationship'
fileId:
type: integer
fileVersionId:
type: integer
name:
type: string
originalName:
type: string
project:
$ref: '#/definitions/view.Relationship'
projectId:
type: integer
reactions:
$ref: '#/definitions/view.ReactionsForObject'
size:
type: integer
status:
type: string
uploadedAt:
type: string
uploadedBy:
type: integer
versionNo:
type: integer
title: FileversionV205
type: object
view.Form:
description: Form contains all the information returned from a form.
properties:
allowTeamworkBranding:
type: boolean
confirmationMessage:
type: string
content:
$ref: '#/definitions/view.Content'
createdAt:
type: string
createdBy:
$ref: '#/definitions/view.Relationship'
deletedAt:
type: string
deletedBy:
$ref: '#/definitions/view.Relationship'
destinationObject:
$ref: '#/definitions/view.Relationship'
hostObject:
$ref: '#/definitions/view.Relationship'
id:
type: integer
installation:
$ref: '#/definitions/view.Relationship'
isShared:
type: boolean
promptAdditionalSubmissions:
type: boolean
redirectUrl:
type: string
state:
type: string
taskTitleFieldId:
type: string
token:
$ref: '#/definitions/view.Token'
totalSubmissions:
type: integer
updatedAt:
type: string
updatedBy:
$ref: '#/definitions/view.Relationship'
title: Form
type: object
view.IncludedProject:
description: IncludedProject is a sideloaded project
title: IncludedProject
type: object
view.IncludedTask:
description: IncludedTask is a sideloaded task.
title: IncludedTask
type: object
view.Industry:
description: Industry contains all the information returned from an industry.
properties:
displayOrder:
type: integer
id:
type: integer
industryCategory:
$ref: '#/definitions/view.Relationship'
industryCategoryId:
type: integer
isActive:
type: boolean
isPublished:
type: boolean
name:
type: string
title: Industry
type: object
view.LegacyCalendarEvent:
description: LegacyCalendarEvent contains all the information returned from a calendar event.
properties:
additionalProperties:
type: string
allDay:
type: boolean
attendeesCanEdit:
type: boolean
attendingUserIds:
items:
type: integer
type: array
attendingUsers:
items:
$ref: '#/definitions/view.Relationship'
type: array
createdAt:
type: string
createdBy:
type: integer
createdByUserId:
type: integer
createdDateTime:
type: string
currentUserAssociationType:
type: string
dateDeleted:
type: string
dateLastUpdated:
type: string
deleted:
type: boolean
deletedAt:
type: string
deletedBy:
type: integer
deletedByUserId:
type: integer
description:
type: string
endDate:
type: string
id:
type: integer
location:
type: string
monthlyRepeatType:
type: string
ownedBy:
type: integer
ownerUserId:
type: integer
privacyType:
type: string
project:
$ref: '#/definitions/view.Relationship'
projectId:
type: integer
projectUsersCanEdit:
type: boolean
sequence:
$ref: '#/definitions/view.Relationship'
sequenceId:
type: integer
showAsBusy:
type: boolean
startDate:
type: string
title:
type: string
type:
$ref: '#/definitions/view.Relationship'
typeId:
type: integer
updatedAt:
type: string
updatedBy:
type: integer
updatedByUserId:
type: integer
title: LegacyCalendarEvent
type: object
view.LegacyCalendarEventType:
description: |-
LegacyCalendarEventType contains all the information returned from a calendar event
type.
properties:
color:
type: string
id:
type: integer
name:
type: string
unavailable:
type: boolean
title: LegacyCalendarEventType
type: object
view.LegacyUnavailableTime:
description: |-
LegacyUnavailableTime contains all the information returned for an unavailable
time.
properties:
allDay:
type: boolean
attendingUsers:
items:
$ref: '#/definitions/view.Relationship'
type: array
createdAt:
type: string
createdBy:
type: integer
deleted:
type: boolean
deletedAt:
type: string
deletedBy:
type: integer
description:
type: string
durationMinutes:
type: integer
endDate:
$ref: '#/definitions/view.Date'
hoursPerDay:
type: number
id:
type: integer
meta:
type: object
ownedBy:
type: integer
startDate:
$ref: '#/definitions/view.Date'
title:
type: string
type:
$ref: '#/definitions/view.Relationship'
updatedAt:
type: string
updatedBy:
type: integer
title: LegacyUnavailableTime
type: object
view.LinkItem:
description: LinkItem contains all the information returned from a link item.
properties:
category:
$ref: '#/definitions/view.Relationship'
categoryId:
type: integer
code:
type: string
createdAt:
type: string
createdBy:
type: integer
deleted:
type: boolean
deletedAt:
type: string
deletedBy:
type: integer
description:
type: string
forceNewWindow:
type: integer
height:
type: integer
id:
type: integer
isPrivate:
type: boolean
project:
$ref: '#/definitions/view.Relationship'
projectId:
type: integer
provider:
type: string
title:
type: string
updatedAt:
type: string
updatedBy:
type: integer
width:
type: integer
title: LinkItem
type: object
view.Lockdown:
description: Lockdown contains all the information returned from a lockdown.
properties:
grantAccessTo:
$ref: '#/definitions/view.UserGroupsDeprecated'
id:
type: integer
items:
items:
$ref: '#/definitions/view.Relationship'
type: array
updatedAt:
type: string
user:
$ref: '#/definitions/view.Relationship'
userID:
type: integer
title: Lockdown
type: object
view.Logo:
description: Logo contains all the information returned from a form custom logo.
properties:
url:
type: string
title: Logo
type: object
view.Message:
description: Message contains all the information returned from a project message.
properties:
attachments:
items:
$ref: '#/definitions/view.Relationship'
type: array
author:
$ref: '#/definitions/view.Relationship'
body:
type: string
createdAt:
type: string
id:
type: integer
lockdown:
$ref: '#/definitions/view.Relationship'
message:
$ref: '#/definitions/view.Relationship'
meta:
$ref: '#/definitions/view.MessageReplyMeta'
peopleNotifiedCount:
type: integer
projectId:
type: integer
status:
type: string
title:
type: string
updatedAt:
type: string
title: Message
type: object
view.MessageReply:
description: MessageReply contains all the information returned from a project message.
properties:
attachments:
items:
$ref: '#/definitions/view.Relationship'
type: array
author:
$ref: '#/definitions/view.Relationship'
body:
type: string
createdAt:
type: string
id:
type: integer
message:
$ref: '#/definitions/view.Relationship'
meta:
$ref: '#/definitions/view.MessageReplyMeta'
peopleNotifiedCount:
type: integer
status:
type: string
updatedAt:
type: string
title: MessageReply
type: object
view.MessageReplyMeta:
description: MessageReplyMeta is the message reply meta.
properties:
isRead:
type: boolean
permissions:
properties:
canEdit:
type: boolean
type: object
title: MessageReplyMeta
type: object
view.Meta:
description: Meta represents the Unified API meta object.
properties:
averageSpend:
type: integer
limit:
type: integer
nextCursor:
type: string
page:
$ref: '#/definitions/view.MetaPage'
prevCursor:
type: string
totalCapacity:
type: integer
title: Meta
type: object
view.MetaPage:
description: MetaPage represents the Unified API page meta object.
properties:
count:
type: integer
hasMore:
type: boolean
pageOffset:
type: integer
pageSize:
type: integer
title: MetaPage
type: object
view.Milestone:
description: Milestone contains all the information returned from a milestone.
properties:
canComplete:
type: boolean
canEdit:
description: permissions
type: boolean
changeFollowerIds:
items:
type: integer
type: array
changeFollowers:
items:
$ref: '#/definitions/view.Relationship'
type: array
commentFollowerIds:
items:
type: integer
type: array
commentFollowers:
items:
$ref: '#/definitions/view.Relationship'
type: array
commentsCount:
type: integer
completed:
type: boolean
completedBy:
type: integer
completedOn:
type: string
completerId:
type: integer
createdBy:
type: integer
createdOn:
type: string
creatorUserId:
type: integer
deadline:
type: string
description:
type: string
descriptionHTML:
type: string
id:
type: integer
isDeleted:
type: boolean
lastChangedOn:
type: string
latestUpdates:
items:
$ref: '#/definitions/view.Audit'
type: array
lockdown:
$ref: '#/definitions/view.Relationship'
lockdownId:
type: integer
name:
type: string
numCommentsRead:
type: integer
originalDueDate:
type: string
percentageComplete:
type: integer
percentageTasksCompleted:
type: integer
private:
type: boolean
project:
$ref: '#/definitions/view.Relationship'
projectId:
type: integer
reminder:
type: boolean
responsibleParties:
items:
$ref: '#/definitions/view.Relationship'
type: array
responsiblePartyIds:
description: optional fields that are returned only when querying a milestone endpoint
items:
type: integer
type: array
status:
type: string
tagIds:
items:
type: integer
type: array
tags:
items:
$ref: '#/definitions/view.Relationship'
type: array
tasklistIds:
items:
type: integer
type: array
tasklists:
items:
$ref: '#/definitions/view.Relationship'
type: array
updatedBy:
type: integer
userFollowingChanges:
type: boolean
userFollowingComments:
type: boolean
title: Milestone
type: object
view.MyTimesheet:
description: MyTimesheet contains api response information for a timesheet
properties:
customRow:
$ref: '#/definitions/view.Relationship'
dates:
additionalProperties:
$ref: '#/definitions/view.MyTimesheetDateSummary'
type: object
entity:
$ref: '#/definitions/view.Relationship'
isCustomRow:
type: boolean
total:
type: integer
title: MyTimesheet
type: object
view.MyTimesheetDateSummary:
description: MyTimesheetDateSummary contains total minutes and timelog ids for a date
properties:
timelogs:
items:
$ref: '#/definitions/view.Relationship'
type: array
totalMinutes:
type: integer
title: MyTimesheetDateSummary
type: object
view.Notebook:
description: Notebook contains all the information returned from a notebook.
properties:
category:
$ref: '#/definitions/view.Relationship'
categoryId:
type: integer
changeFollowers:
$ref: '#/definitions/view.UserGroupsDeprecated'
commentFollowers:
$ref: '#/definitions/view.UserGroupsDeprecated'
commentsCount:
type: integer
contentHTML:
type: string
contents:
description: can be optionally hidden on lists
type: string
createdAt:
type: string
createdBy:
type: integer
createdByUserID:
type: integer
dateCreated:
type: string
dateDeleted:
type: string
dateUpdated:
type: string
deleted:
type: boolean
deletedAt:
type: string
deletedBy:
type: integer
deletedByUserID:
type: integer
description:
type: string
id:
type: integer
isFullWidth:
type: boolean
isPrivate:
type: boolean
latestVersionNo:
type: integer
lockdown:
$ref: '#/definitions/view.Relationship'
lockdownId:
type: integer
locked:
type: boolean
lockedAt:
type: string
lockedBy:
type: integer
name:
type: string
notebookVersion:
$ref: '#/definitions/view.Relationship'
notebookVersionCreatedDateTime:
type: string
notebookVersionID:
type: integer
notebookVersionUpdatedDateTime:
type: string
privacy:
$ref: '#/definitions/view.UserGroupsDeprecated'
project:
$ref: '#/definitions/view.Relationship'
projectId:
type: integer
readCommentsCount:
type: integer
secureContent:
type: boolean
tagIds:
items:
type: integer
type: array
tags:
items:
$ref: '#/definitions/view.Relationship'
type: array
type:
type: string
updatedAt:
type: string
updatedBy:
type: integer
updatedByUserID:
type: integer
userFollowingChanges:
type: boolean
userFollowingComments:
type: boolean
versionCount:
type: integer
title: Notebook
type: object
view.NotebookCategory:
description: NotebookCategory contains all the information returned from a notebook category.
properties:
color:
type: string
elementsCount:
type: integer
id:
type: integer
name:
type: string
parent:
$ref: '#/definitions/view.Relationship'
parentId:
type: integer
project:
$ref: '#/definitions/view.Relationship'
projectId:
type: integer
title: NotebookCategory
type: object
view.NotebookVersion:
description: NotebookVersion contains all the information returned from a notebook version.
properties:
contentHTML:
type: string
contents:
type: string
createdAt:
type: string
createdBy:
type: integer
createdByUserID:
type: integer
dateCreated:
type: string
dateUpdated:
type: string
notebook:
$ref: '#/definitions/view.Relationship'
notebookId:
type: integer
updatedAt:
type: string
versionId:
type: integer
versionNumber:
type: integer
title: NotebookVersion
type: object
view.Notification:
description: Notification contains all the information returned from a notification.
properties:
action:
type: string
command:
type: string
date:
type: string
description:
type: string
event:
type: string
extraDescription:
type: string
extraInfo:
type: string
extraLink:
type: string
id:
type: integer
installation:
$ref: '#/definitions/view.Relationship'
item:
$ref: '#/definitions/view.NotificationItem'
link:
type: string
popUp:
type: boolean
privacy:
$ref: '#/definitions/view.NotificationPrivacy'
project:
$ref: '#/definitions/view.NotificationProject'
read:
type: boolean
user:
$ref: '#/definitions/view.NotificationUser'
title: Notification
type: object
view.NotificationItem:
description: NotificationItem contains the id and type being of what is being notified
properties:
id:
type: integer
type:
type: string
title: NotificationItem
type: object
view.NotificationPrivacy:
description: NotificationPrivacy contains if the notification links to a private item
properties:
lockdownId:
type: integer
private:
type: boolean
title: NotificationPrivacy
type: object
view.NotificationProject:
description: NotificationProject contains the project ID & and name of the associated notification
properties:
id:
type: integer
name:
type: string
title: NotificationProject
type: object
view.NotificationUser:
description: NotificationUser contains the user information for the notification
properties:
avatar_url:
type: string
firstname:
type: string
id:
type: integer
lastname:
type: string
title: NotificationUser
type: object
view.PortfolioBoard:
description: PortfolioBoard contains all the information returned from a portfolio board.
properties:
color:
type: string
id:
type: integer
name:
type: string
title: PortfolioBoard
type: object
view.PortfolioCard:
description: |-
PortfolioCard contains all the information returned from a portfolio
column.
properties:
board:
$ref: '#/definitions/view.Relationship'
boardId:
type: integer
column:
$ref: '#/definitions/view.Relationship'
columnId:
type: integer
id:
type: integer
project:
$ref: '#/definitions/view.Relationship'
projectId:
type: integer
title: PortfolioCard
type: object
view.PortfolioColumn:
description: |-
PortfolioColumn contains all the information returned from a portfolio
column.
properties:
color:
type: string
id:
type: integer
name:
type: string
title: PortfolioColumn
type: object
view.ProfitDetails:
description: ProfitDetails represents the totals.
properties:
billable:
type: number
billableTime:
type: integer
cost:
type: number
expenses:
type: number
loggedTime:
type: integer
nonBillableTime:
type: integer
profit:
type: number
title: ProfitDetails
type: object
view.ProjectBudget:
description: ProjectBudget contains all the information returned from a budget.
properties:
baselineCapacity:
type: integer
budgetCategory:
type: string
budgetExpectedCost:
type: integer
budgetExpectedProfit:
type: integer
budgetProfitMargin:
type: number
capacity:
type: integer
capacityUsed:
type: integer
carryCapacity:
type: integer
carryOverspend:
type: boolean
carryUnderspend:
type: boolean
completedAt:
type: string
completedBy:
type: integer
completedByUserId:
type: integer
createdAt:
type: string
createdBy:
type: integer
createdByUserId:
type: integer
currencyCode:
type: string
dateCompleted:
type: string
dateCreated:
type: string
dateDeleted:
type: string
dateUpdated:
type: string
defaultRate:
type: number
deletedAt:
type: string
deletedBy:
type: integer
deletedByUserId:
type: integer
endDateTime:
type: string
expenseType:
type: string
id:
type: integer
isRepeating:
type: boolean
isRetainer:
type: boolean
notificationIds:
items:
type: integer
type: array
notifications:
items:
$ref: '#/definitions/view.Relationship'
type: array
originatorBudget:
$ref: '#/definitions/view.Relationship'
originatorBudgetId:
type: integer
originatorStartDateTime:
type: string
overspendAt:
type: string
project:
$ref: '#/definitions/view.Relationship'
projectId:
type: integer
repeatPeriod:
type: integer
repeatUnit:
type: string
repeatsRemaining:
type: integer
sequenceNumber:
type: integer
startDateTime:
type: string
status:
type: string
timelogType:
type: string
type:
type: string
updatedAt:
type: string
updatedBy:
type: integer
updatedByUserId:
type: integer
title: ProjectBudget
type: object
view.ProjectCategory:
description: |-
ProjectCategory contains all the information returned from a project
category.
properties:
color:
type: string
count:
type: integer
id:
type: integer
name:
type: string
parent:
$ref: '#/definitions/view.Relationship'
parentId:
type: integer
title: ProjectCategory
type: object
view.ProjectEmailDropbox:
description: |-
ProjectEmailDropbox contains all the information returned from a file
category.
properties:
id:
type: integer
itemCode:
type: string
itemEmail:
type: string
itemType:
type: string
parent:
$ref: '#/definitions/view.Relationship'
project:
$ref: '#/definitions/view.Relationship'
projectCode:
type: string
projectEmails:
$ref: '#/definitions/view.ProjectEmails'
title: ProjectEmailDropbox
type: object
view.ProjectEmails:
description: ProjectEmails is the project emails.
properties:
files:
type: string
links:
type: string
messages:
type: string
notebooks:
type: string
tasks:
type: string
title: ProjectEmails
type: object
view.ProjectFileV205:
description: ProjectFileV205 contains all the information returned from a file.
properties:
category:
$ref: '#/definitions/view.Relationship'
categoryId:
type: integer
changeFollowers:
$ref: '#/definitions/view.UserGroupsDeprecated'
commentFollowers:
$ref: '#/definitions/view.UserGroupsDeprecated'
commentsCount:
type: integer
commentsCountRead:
type: integer
deletedAt:
type: string
deletedBy:
type: integer
description:
type: string
displayName:
type: string
downloadURL:
type: string
extraData:
type: string
fileSource:
type: string
filenameOnDisk:
type: string
id:
type: integer
isLocked:
type: boolean
isPrivate:
description: |-
IsPrivate can have the values 0 for public, 1 for private and 2 for
inherited.
enum:
- '0'
- '1'
- '2'
type: integer
latestFileVersionNo:
type: integer
lockdown:
$ref: '#/definitions/view.Relationship'
lockdownId:
type: integer
lockedAt:
type: string
lockedBy:
type: integer
lockedByUserId:
type: integer
lockedDate:
type: string
meta:
type: object
numLikes:
type: integer
originalName:
type: string
previewURL:
type: string
project:
$ref: '#/definitions/view.Relationship'
projectId:
type: integer
reactions:
$ref: '#/definitions/view.ReactionsForObject'
relatedItems:
$ref: '#/definitions/view.RelatedItems'
size:
type: integer
status:
type: string
tagIds:
items:
type: integer
type: array
tags:
items:
$ref: '#/definitions/view.Relationship'
type: array
thumbURL:
type: string
updatedAt:
type: string
uploadedAt:
type: string
uploadedBy:
type: integer
uploadedByUserID:
type: integer
uploadedDate:
type: string
version:
$ref: '#/definitions/view.Relationship'
versionId:
type: integer
versions:
items:
$ref: '#/definitions/view.FileversionV205'
type: array
title: ProjectFileV205
type: object
view.ProjectMinMaxAvailableDates:
description: |-
ProjectMinMaxAvailableDates shows suggested start and
end dates for a project.
properties:
deadlinesFound:
type: boolean
maxEndDate:
type: string
minStartDate:
type: string
suggestedEndDate:
type: string
suggestedStartDate:
type: string
title: ProjectMinMaxAvailableDates
type: object
view.ProjectPermissions:
description: ProjectPermissions determines the user permissions associated with a project.
properties:
active:
type: boolean
addExpenses:
type: boolean
addFiles:
type: boolean
addForms:
type: boolean
addLinks:
type: boolean
addMessages:
type: boolean
addMilestones:
type: boolean
addNotebooks:
type: boolean
addProjectUpdate:
type: boolean
addRisks:
type: boolean
addTaskLists:
type: boolean
addTasks:
type: boolean
addTime:
type: boolean
canAccess:
type: boolean
canEditWorkflows:
type: boolean
canManagePeople:
type: boolean
canManageProjectBudget:
type: boolean
canManageProjectMembership:
type: boolean
canManageProjectTemplates:
type: boolean
canManageRates:
type: boolean
canManageSchedule:
type: boolean
canViewForms:
type: boolean
canViewProjectBudget:
type: boolean
canViewProjectMembers:
type: boolean
canViewProjectTemplates:
type: boolean
canViewRates:
type: boolean
canViewSchedule:
type: boolean
canViewWorkflows:
type: boolean
editAllTasks:
type: boolean
inOwnerCompany:
type: boolean
isArchived:
type: boolean
isObserving:
type: boolean
manageCustomFields:
type: boolean
projectAdministrator:
type: boolean
receiveEmailNotifications:
type: boolean
setPrivacy:
type: boolean
viewAllTimeLogs:
type: boolean
viewEstimatedTime:
type: boolean
viewInvoices:
type: boolean
viewLinks:
type: boolean
viewMessagesAndFiles:
type: boolean
viewNotebooks:
type: boolean
viewProjectUpdate:
type: boolean
viewRiskRegister:
type: boolean
viewTasksAndMilestones:
type: boolean
viewTime:
type: boolean
title: ProjectPermissions
type: object
view.ProjectUpdate:
description: ProjectUpdate contains all the information returned from a update.
properties:
color:
type: string
createdAt:
type: string
createdBy:
type: integer
deleted:
type: boolean
deletedAt:
type: string
deletedBy:
type: integer
health:
type: integer
healthLabel:
type: string
id:
type: integer
isActive:
type: boolean
likeFromUserIDs:
items:
type: integer
type: array
likeFromUsers:
items:
$ref: '#/definitions/view.Relationship'
type: array
project:
$ref: '#/definitions/view.Relationship'
projectId:
type: integer
reactions:
$ref: '#/definitions/view.ReactionsForObject'
text:
type: string
updatedAt:
type: string
title: ProjectUpdate
type: object
view.ProjectV205:
description: ProjectV205 contains all the information returned from a project.
properties:
activePages:
properties:
billing:
type: boolean
board:
type: boolean
comments:
type: boolean
files:
type: boolean
finance:
type: boolean
forms:
type: boolean
gantt:
type: boolean
links:
type: boolean
list:
type: boolean
messages:
type: boolean
milestones:
type: boolean
notebooks:
type: boolean
proofs:
type: boolean
riskRegister:
type: boolean
table:
type: boolean
tasks:
type: boolean
time:
type: boolean
type: object
allowNotifyAnyone:
type: boolean
announcement:
type: string
category:
$ref: '#/definitions/view.Relationship'
categoryId:
type: integer
company:
$ref: '#/definitions/view.Relationship'
companyId:
type: integer
createdAt:
type: string
createdBy:
type: integer
customFieldValueIds:
items:
type: integer
type: array
customFieldValues:
items:
$ref: '#/definitions/view.Relationship'
type: array
customfieldValues:
items:
$ref: '#/definitions/view.Relationship'
type: array
defaultPrivacy:
type: string
description:
type: string
directFileUploadsEnabled:
type: boolean
endAt:
type: string
endDate:
type: string
financialBudget:
$ref: '#/definitions/view.Relationship'
financialBudgetId:
type: integer
harvestTimersEnabled:
type: boolean
id:
type: integer
integrations:
properties:
googleDrive:
properties:
access:
type: string
enabled:
type: boolean
folder:
type: string
folderName:
type: string
type: object
oneDriveBusiness:
properties:
account:
type: string
enabled:
type: boolean
folder:
type: string
folderName:
type: string
type: object
sharepoint:
properties:
account:
type: string
enabled:
type: boolean
folder:
type: string
folderName:
type: string
type: object
xero:
properties:
baseCurrency:
type: string
connected:
type: boolean
countryCode:
type: string
enabled:
type: boolean
organisation:
type: string
type: object
type: object
isBillable:
type: boolean
isOnBoardingProject:
type: boolean
isProjectAdmin:
type: boolean
isSampleProject:
type: boolean
isStarred:
type: boolean
lastWorkedOn:
type: string
latestActivity:
$ref: '#/definitions/view.Relationship'
logo:
type: string
minMaxAvailableDates:
$ref: '#/definitions/view.ProjectMinMaxAvailableDates'
name:
type: string
notifyCommentIncludeCreator:
type: boolean
notifyEveryone:
type: boolean
notifyTaskAssignee:
type: boolean
overviewStartPage:
type: string
ownedBy:
type: integer
ownerId:
type: integer
portfolioCards:
items:
$ref: '#/definitions/view.Relationship'
type: array
privacyEnabled:
type: boolean
projectOwner:
$ref: '#/definitions/view.Relationship'
projectOwnerId:
type: integer
replyByEmailEnabled:
type: boolean
showAnnouncement:
type: boolean
skipWeekends:
type: boolean
startAt:
type: string
startDate:
type: string
startPage:
type: string
status:
type: string
subStatus:
type: string
tagIds:
items:
type: integer
type: array
tags:
items:
$ref: '#/definitions/view.Relationship'
type: array
tasksStartPage:
type: string
timeBudget:
$ref: '#/definitions/view.Relationship'
timeBudgetId:
type: integer
type:
type: string
update:
$ref: '#/definitions/view.Relationship'
updateId:
type: integer
updatedAt:
type: string
updatedBy:
type: integer
users:
items:
$ref: '#/definitions/view.Relationship'
type: array
workflows:
items:
$ref: '#/definitions/view.Relationship'
type: array
title: ProjectV205
type: object
view.Proof:
description: Proof contains all the information returned from a proof.
properties:
assignees:
items:
$ref: '#/definitions/view.Assignee'
type: array
company:
$ref: '#/definitions/view.Relationship'
createdAt:
type: string
createdBy:
$ref: '#/definitions/view.Relationship'
deletedAt:
type: string
deletedBy:
$ref: '#/definitions/view.Relationship'
due:
$ref: '#/definitions/view.Date'
entity:
$ref: '#/definitions/view.Relationship'
errorObjectIdxs:
items:
type: integer
type: array
feedbackCount:
type: integer
id:
type: integer
installationId:
$ref: '#/definitions/view.Relationship'
objects:
items:
$ref: '#/definitions/view.ProofObject'
type: array
parent:
$ref: '#/definitions/view.Relationship'
product:
type: string
state:
type: string
status:
type: string
title:
type: string
updatedAt:
type: string
updatedBy:
$ref: '#/definitions/view.Relationship'
title: Proof
type: object
view.ProofObject:
description: ProofObject is a proof object item type.
properties:
URL:
type: string
approvalStatus:
type: string
createdAt:
type: string
createdBy:
$ref: '#/definitions/view.Relationship'
deletedAt:
type: string
deletedBy:
$ref: '#/definitions/view.Relationship'
due:
type: string
format:
type: string
id:
type: integer
installationId:
$ref: '#/definitions/view.Relationship'
size:
type: integer
sourceFormat:
type: string
state:
type: string
stateMessage:
type: string
thumbnail:
type: string
title:
type: string
totalChunks:
type: integer
type:
type: string
updatedAt:
type: string
updatedBy:
$ref: '#/definitions/view.Relationship'
version:
type: integer
title: ProofObject
type: object
view.PublicForm:
description: PublicForm is a publically viewable version of Form
properties:
allowFileUpload:
type: boolean
allowTeamworkBranding:
type: boolean
confirmationMessage:
type: string
content:
$ref: '#/definitions/view.Content'
promptAdditionalSubmissions:
type: boolean
redirectUrl:
type: string
token:
$ref: '#/definitions/view.Token'
title: PublicForm
type: object
view.Reaction:
description: Reaction is a reaction item type.
properties:
installation:
$ref: '#/definitions/view.Relationship'
installationId:
type: integer
object:
$ref: '#/definitions/view.Relationship'
objectId:
type: integer
objectType:
type: string
postedDateTime:
type: string
type:
type: string
user:
$ref: '#/definitions/view.Relationship'
userId:
type: integer
title: Reaction
type: object
view.ReactionsForObject:
description: ReactionsForObject contains all reactions information of a specific object.
properties:
counts:
$ref: '#/definitions/view.ReactionsForObjectCounter'
mine:
items:
type: string
type: array
title: ReactionsForObject
type: object
view.ReactionsForObjectCounter:
description: |-
ReactionsForObjectCounter contains the reactions counter of a specific
object.
properties:
dislike:
type: integer
frown:
type: integer
heart:
type: integer
joy:
type: integer
like:
type: integer
title: ReactionsForObjectCounter
type: object
view.RelatedItems:
description: RelatedItems represents the items a file can be related to.
properties:
comments:
items:
type: integer
type: array
messages:
items:
type: integer
type: array
tasks:
items:
type: integer
type: array
title: RelatedItems
type: object
view.Relationship:
description: Relationship describes the relation between the main entity and a sideload type.
properties:
id:
type: integer
meta:
type: object
type:
type: string
title: Relationship
type: object
view.Risk:
description: Risk represents a view of a risk.
properties:
canEdit:
type: boolean
createdAt:
type: string
createdBy:
type: integer
createdByUserId:
type: integer
createdOn:
type: string
deleted:
type: boolean
id:
type: integer
impact:
type: string
impactCost:
type: boolean
impactPerformance:
type: boolean
impactSchedule:
type: boolean
impactValue:
type: integer
lastChangedByUserId:
type: integer
lastChangedOn:
type: string
mitigationPlan:
type: string
probability:
type: string
probabilityValue:
type: integer
project:
$ref: '#/definitions/view.Relationship'
projectId:
type: integer
result:
type: integer
source:
type: string
status:
type: string
updatedAt:
type: string
updatedBy:
type: integer
title: Risk
type: object
view.SampleProject:
description: SampleProject contains all the sample project information.
properties:
categoryId:
type: integer
code:
type: string
content: {}
description:
type: string
icon:
type: string
id:
type: integer
imagePreview:
type: string
name:
type: string
title: SampleProject
type: object
view.Stage:
description: Stage contains all the information returned from a stage.
properties:
color:
type: string
createdAt:
type: string
createdBy:
type: integer
deletedAt:
type: string
deletedBy:
type: integer
displayOrder:
type: number
id:
type: integer
name:
type: string
showCompletedTasks:
type: boolean
taskIds:
items:
type: integer
type: array
updatedAt:
type: string
updatedBy:
type: integer
workflow:
$ref: '#/definitions/view.Relationship'
title: Stage
type: object
view.Status:
description: Status contains all the information returned from a status.
properties:
dateLastUpdated:
type: string
dateTime:
type: string
deleted:
type: boolean
emoji:
type: string
id:
type: integer
ipAddress:
type: string
text:
type: string
updatedAt:
type: string
user:
$ref: '#/definitions/view.Relationship'
userId:
type: integer
title: Status
type: object
view.Tag:
description: Tag contains all the information returned from a tag.
properties:
color:
type: string
count:
type: integer
id:
type: integer
name:
type: string
project:
$ref: '#/definitions/view.Relationship'
projectId:
type: integer
title: Tag
type: object
view.TaskAffectedV205:
description: TaskAffectedV205 contains the affected tasks, for real-time updates
properties:
linkedCardId:
type: integer
linkedColumnId:
type: integer
linkedColumnName:
type: string
taskIds:
items:
type: integer
type: array
title: TaskAffectedV205
type: object
view.TaskCard:
description: TaskCard contains all the information returned from a card.
properties:
archived:
type: boolean
archivedAt:
type: string
archivedBy:
$ref: '#/definitions/view.Relationship'
column:
$ref: '#/definitions/view.Relationship'
createBy:
$ref: '#/definitions/view.Relationship'
createdAt:
type: string
deleteBy:
$ref: '#/definitions/view.Relationship'
deletedAt:
type: string
displayOrder:
type: integer
id:
type: integer
status:
type: string
updatedAt:
type: string
visible:
type: boolean
title: TaskCard
type: object
view.TaskPermissions:
description: TaskPermissions is a user specific set of task permissions
properties:
canAddSubtasks:
type: boolean
canComplete:
type: boolean
canEdit:
type: boolean
canLogTime:
type: boolean
canViewEstTime:
type: boolean
title: TaskPermissions
type: object
view.TaskReminder:
description: TaskReminder contains all the information returned from a reminder.
properties:
createdAt:
type: string
createdBy:
$ref: '#/definitions/view.Relationship'
id:
type: integer
isRelative:
type: boolean
note:
type: string
relativeNumberDays:
type: integer
remindAt:
type: string
task:
$ref: '#/definitions/view.Relationship'
type:
type: string
user:
$ref: '#/definitions/view.Relationship'
wasSent:
type: boolean
title: TaskReminder
type: object
view.TaskSequence:
description: TaskSequence defines how entity.TaskSequence should be rendered.
properties:
dates:
items:
$ref: '#/definitions/view.Date'
type: array
duration:
type: integer
endDate:
type: string
frequency:
type: string
id:
type: integer
installationId:
type: integer
monthlyRepeatType:
type: string
rrule:
type: string
selectedWeekDays:
items:
type: string
type: array
tasks:
items:
$ref: '#/definitions/view.Relationship'
type: array
title: TaskSequence
type: object
view.TaskStats:
description: TaskStats shows basic task stats
properties:
active:
type: integer
complete:
type: integer
id:
type: integer
late:
type: integer
title: TaskStats
type: object
view.TaskTimeTotals:
description: TaskTimeTotals contains time total info for a task
properties:
billableLoggedMinutes:
type: integer
billedloggedMinutes:
type: integer
loggedMinutes:
type: integer
title: TaskTimeTotals
type: object
view.TaskV205:
description: TaskV205 defines how entity.Task should be rendered.
properties:
accumulatedEstimatedMinutes:
type: integer
assigneeCompanies:
items:
$ref: '#/definitions/view.Relationship'
type: array
assigneeCompanyIds:
items:
type: integer
type: array
assigneeTeamIds:
items:
type: integer
type: array
assigneeTeams:
items:
$ref: '#/definitions/view.Relationship'
type: array
assigneeUserIds:
items:
type: integer
type: array
assigneeUsers:
items:
$ref: '#/definitions/view.Relationship'
type: array
assignees:
items:
$ref: '#/definitions/view.Relationship'
type: array
attachments:
items:
$ref: '#/definitions/view.Relationship'
type: array
capacities:
items:
$ref: '#/definitions/view.Relationship'
type: array
card:
$ref: '#/definitions/view.Relationship'
changeFollowers:
items:
$ref: '#/definitions/view.Relationship'
type: array
column:
$ref: '#/definitions/view.Relationship'
commentFollowers:
items:
$ref: '#/definitions/view.Relationship'
type: array
completedAt:
type: string
completedBy:
type: integer
completedOn:
type: string
createdAt:
type: string
createdBy:
type: integer
createdByUserId:
type: integer
crmDealIds:
items:
type: integer
type: array
dateUpdated:
type: string
decimalDisplayOrder:
type: number
dependencyIds:
items:
type: integer
type: array
description:
type: string
descriptionContentType:
type: string
displayOrder:
type: integer
dueDate:
type: string
dueDateOffset:
type: integer
estimateMinutes:
type: integer
hasDeskTickets:
type: boolean
hasReminders:
type: boolean
id:
type: integer
isArchived:
type: boolean
isBlocked:
type: boolean
isPrivate:
type: integer
latestUpdates:
items:
$ref: '#/definitions/view.Audit'
type: array
lockdown:
$ref: '#/definitions/view.Relationship'
meta:
type: object
name:
type: string
originalDueDate:
$ref: '#/definitions/view.Date'
outOfSequence:
type: boolean
parentTask:
$ref: '#/definitions/view.Relationship'
parentTaskId:
type: integer
predecessorIds:
items:
type: integer
type: array
predecessors:
items:
$ref: '#/definitions/view.Relationship'
type: array
priority:
type: string
progress:
type: integer
proofs:
items:
$ref: '#/definitions/view.Relationship'
type: array
sequence:
$ref: '#/definitions/view.Relationship'
sequenceDueDate:
$ref: '#/definitions/view.Date'
sequenceId:
type: integer
sequenceRootTask:
type: boolean
sequenceStartDate:
$ref: '#/definitions/view.Date'
startDate:
type: string
startDateOffset:
type: integer
status:
type: string
subTaskIds:
items:
type: integer
type: array
tagIds:
items:
type: integer
type: array
tasklist:
$ref: '#/definitions/view.Relationship'
tasklistId:
type: integer
templateRoleName:
type: string
timer:
$ref: '#/definitions/view.Relationship'
updatedAt:
type: string
updatedBy:
type: integer
userPermissions:
$ref: '#/definitions/view.TaskPermissions'
workflowStages:
items:
$ref: '#/definitions/view.TaskWorkflowStageData'
type: array
title: TaskV205
type: object
view.TaskWorkflowStageData:
description: TaskWorkflowStageData contains the workflow data for a task
properties:
stageId:
type: integer
stageTaskDisplayOrder:
type: number
workflowId:
type: integer
title: TaskWorkflowStageData
type: object
view.Taskgroup:
description: Taskgroup contains all the information returned from a Taskgroup.
properties:
createdAt:
type: string
createdBy:
type: integer
description:
type: string
displayOrder:
type: number
id:
type: integer
name:
type: string
status:
type: string
taskIds:
items:
type: integer
type: array
updatedAt:
type: string
updatedBy:
type: integer
title: Taskgroup
type: object
view.Tasklist:
description: Tasklist contains all the information returned from a tasklist.
properties:
createdAt:
type: string
defaultTask:
$ref: '#/definitions/view.Relationship'
defaultTaskId:
type: integer
description:
type: string
displayOrder:
type: integer
icon:
type: string
id:
type: integer
isBillable:
type: boolean
isPinned:
type: boolean
isPrivate:
type: boolean
lockdownId:
type: integer
milestone:
$ref: '#/definitions/view.Relationship'
milestoneId:
type: integer
name:
type: string
project:
$ref: '#/definitions/view.Relationship'
projectId:
type: integer
status:
type: string
tasklistBudget:
$ref: '#/definitions/view.Relationship'
updatedAt:
type: string
title: Tasklist
type: object
view.TasklistBudget:
description: TasklistBudget is a budget item type.
properties:
capacity:
type: integer
capacityUsed:
type: integer
createdAt:
type: string
createdBy:
type: integer
deletedAt:
type: string
deletedBy:
type: integer
id:
type: integer
installationId:
type: integer
notificationIds:
items:
type: integer
type: array
notifications:
items:
$ref: '#/definitions/view.Relationship'
type: array
projectBudgetId:
type: integer
projectId:
type: integer
projectbudget:
$ref: '#/definitions/view.Relationship'
tasklist:
$ref: '#/definitions/view.Relationship'
tasklistId:
type: integer
type:
type: string
updatedAt:
type: string
updatedBy:
type: integer
title: TasklistBudget
type: object
view.TasklistBudgetNotification:
description: TasklistBudgetNotification contains all the information returned from a notification.
properties:
budgetId:
type: integer
capacityThreshold:
type: number
companyId:
type: integer
id:
type: integer
notificationMedium:
type: string
teamId:
type: integer
userId:
type: integer
title: TasklistBudgetNotification
type: object
view.Team:
description: Team contains all the information returned from a team.
properties:
id:
type: integer
name:
type: string
teamLogo:
type: string
teamLogoColor:
type: string
teamLogoIcon:
type: string
title: Team
type: object
view.Timelog:
description: Timelog contains all the information returned from a timelog.
properties:
assignedTeamIds:
items:
type: integer
type: array
billable:
type: boolean
createdAt:
type: string
dateCreated:
type: string
dateDeleted:
type: string
dateEdited:
type: string
deleted:
type: boolean
deletedAt:
type: string
deletedBy:
type: integer
deletedByUserId:
type: integer
description:
type: string
deskTicketId:
type: integer
editedByUserId:
type: integer
hasStartTime:
type: boolean
id:
type: integer
isBillable:
type: boolean
loggedBy:
type: integer
loggedByUserId:
type: integer
minutes:
type: integer
project:
$ref: '#/definitions/view.Relationship'
projectBillingInvoice:
$ref: '#/definitions/view.Relationship'
projectBillingInvoiceId:
type: integer
projectId:
type: integer
tagIds:
items:
type: integer
type: array
tags:
items:
$ref: '#/definitions/view.Relationship'
type: array
task:
$ref: '#/definitions/view.Relationship'
taskId:
type: integer
taskIdPreMove:
type: integer
taskPreMove:
$ref: '#/definitions/view.Relationship'
timeLogged:
type: string
updatedAt:
type: string
updatedBy:
type: integer
user:
$ref: '#/definitions/view.Relationship'
userId:
type: integer
title: Timelog
type: object
view.TimelogTotals:
description: TimelogTotals contains all the information returned for timelog totals.
properties:
estimatedMinutes:
type: integer
estimatedMinutesActive:
type: integer
estimatedMinutesCompleted:
type: integer
estimatedMinutesFiltered:
type: integer
estimatedMinutesWithLoggedTime:
type: integer
minutes:
type: integer
minutesBillable:
type: integer
minutesBilled:
type: integer
minutesNonBillable:
type: integer
minutesNonBilled:
type: integer
title: TimelogTotals
type: object
view.TimelogTotalsSubtasks:
description: TimelogTotalsSubtasks contains all the information returned for timelog totals for subtasks.
properties:
estimatedMinutes:
type: integer
minutes:
type: integer
minutesBillable:
type: integer
title: TimelogTotalsSubtasks
type: object
view.Timer:
description: Timer contains all the information returned from a timer.
properties:
billable:
type: boolean
createdAt:
type: string
deleted:
type: boolean
deletedAt:
type: string
description:
type: string
duration:
type: integer
id:
type: integer
intervals:
items:
$ref: '#/definitions/view.TimerInterval'
type: array
lastStartedAt:
type: string
project:
$ref: '#/definitions/view.Relationship'
projectId:
type: integer
running:
type: boolean
serverTime:
type: string
task:
$ref: '#/definitions/view.Relationship'
taskId:
type: integer
timeLogId:
type: integer
timelog:
$ref: '#/definitions/view.Relationship'
timerLastIntervalEnd:
type: string
updatedAt:
type: string
user:
$ref: '#/definitions/view.Relationship'
userId:
type: integer
title: Timer
type: object
view.TimerInterval:
description: |-
TimerInterval contains all the information returned from a timer
interval.
properties:
duration:
type: integer
from:
type: string
id:
type: integer
to:
type: string
title: TimerInterval
type: object
view.TimesheetCustomRow:
description: TimesheetCustomRow represents a custom row for a timesheet
properties:
entityId:
type: integer
entityType:
type: string
id:
type: integer
title: TimesheetCustomRow
type: object
view.Token:
description: Token contains all the information returned from a form token.
properties:
canonicalURL:
type: string
value:
type: string
title: Token
type: object
view.UnavailableTimes:
description: UnavailableTimes contains date summary and total Unavailable minutes
properties:
dates:
additionalProperties:
$ref: '#/definitions/view.UnavailableTimesDateSummary'
type: object
totalUnavailableMinutes:
type: integer
title: UnavailableTimes
type: object
view.UnavailableTimesDateSummary:
description: UnavailableTimesDateSummary contains total minutes and event ids for a date
properties:
totalUnavailableMinutes:
type: integer
unavailableTimes:
items:
$ref: '#/definitions/view.Relationship'
type: array
title: UnavailableTimesDateSummary
type: object
view.User:
description: User contains all the information returned from an user.
properties:
avatarUrl:
type: string
canAddProjects:
type: boolean
company:
$ref: '#/definitions/view.Relationship'
companyId:
type: integer
companyRoleId:
type: integer
deleted:
type: boolean
email:
type: string
firstName:
type: string
id:
type: integer
isAdmin:
type: boolean
isClientUser:
type: boolean
isServiceAccount:
type: boolean
lastName:
type: string
lengthOfDay:
type: number
meta:
type: object
teams:
items:
$ref: '#/definitions/view.Relationship'
type: array
timezone:
type: string
title:
type: string
type:
type: string
userCost:
type: integer
userRate:
type: integer
workingHour:
$ref: '#/definitions/view.Relationship'
workingHoursId:
type: integer
title: User
type: object
view.UserDashboard:
description: UserDashboard contains all the information returned from a dashboard.
properties:
color:
type: string
createdAt:
type: string
dashboardPanelIds:
items:
type: integer
type: array
dashboardPanels:
items:
$ref: '#/definitions/view.Relationship'
type: array
dashboardSettingIds:
items:
type: integer
type: array
dashboardSettings:
items:
$ref: '#/definitions/view.Relationship'
type: array
deleted:
type: boolean
deletedAt:
type: string
description:
type: string
displayOrder:
type: integer
id:
type: integer
isDefault:
type: boolean
project:
$ref: '#/definitions/view.Relationship'
projectId:
type: integer
title:
type: string
updatedAt:
type: string
user:
$ref: '#/definitions/view.Relationship'
userId:
type: integer
title: UserDashboard
type: object
view.UserDashboardPanel:
description: |-
UserDashboardPanel contains all the information returned from a dashboard
panel.
properties:
dashboardId:
type: integer
dashboardPanelSettingIds:
items:
type: integer
type: array
displayOrder:
type: integer
id:
type: integer
name:
type: string
type:
type: string
title: UserDashboardPanel
type: object
view.UserDashboardPanelSetting:
description: |-
UserDashboardPanelSetting contains all the information returned from a dashboard
panel.
properties:
dashboardId:
type: integer
dashboardPanelId:
type: integer
id:
type: integer
name:
type: string
value:
type: string
title: UserDashboardPanelSetting
type: object
view.UserDashboardSetting:
description: |-
UserDashboardSetting contains all the information returned from a dashboard
setting.
properties:
dashboardId:
type: integer
id:
type: integer
name:
type: string
value:
type: string
title: UserDashboardSetting
type: object
view.UserEvents:
description: |-
UserEvents contains status details from other project
features related with a user.
properties:
clockedIn:
type: boolean
title: UserEvents
type: object
view.UserGroupsDeprecated:
description: |-
UserGroupsDeprecated are common lists
for storing users, companies and teams ids
together.
Use []Relationship instead
properties:
companies:
items:
$ref: '#/definitions/view.Relationship'
type: array
companyIds:
items:
type: integer
type: array
teamIds:
items:
type: integer
type: array
teams:
items:
$ref: '#/definitions/view.Relationship'
type: array
userIds:
items:
type: integer
type: array
users:
items:
$ref: '#/definitions/view.Relationship'
type: array
title: UserGroupsDeprecated
type: object
view.UserUtilization:
description: UserUtilization contains all the information returned from a utilization.
properties:
data:
items:
$ref: '#/definitions/view.UserUtilizationData'
type: array
user:
$ref: '#/definitions/view.Relationship'
userId:
type: integer
title: UserUtilization
type: object
view.UserUtilizationData:
description: UserUtilizationData stores the user utilization on a specific period.
properties:
allocatedMinutes:
type: integer
availableMinutes:
type: integer
billableMinutes:
type: integer
endDate:
$ref: '#/definitions/view.Date'
estimatedMinutes:
type: integer
loggedMinutes:
type: integer
startDate:
$ref: '#/definitions/view.Date'
unavailableMinutes:
type: integer
unbillableMinutes:
type: integer
title: UserUtilizationData
type: object
view.Workflow:
description: Workflow contains all the information returned from a workflow.
properties:
createdAt:
type: string
createdBy:
type: integer
defaultWorkflow:
type: boolean
id:
type: integer
lockdown:
$ref: '#/definitions/view.Relationship'
name:
type: string
projectIds:
items:
type: integer
type: array
projectSpecific:
type: boolean
stages:
items:
$ref: '#/definitions/view.Relationship'
type: array
status:
type: string
updatedAt:
type: string
updatedBy:
type: integer
title: Workflow
type: object
view.WorkingHour:
description: WorkingHour stores the the working hours of an entity (user, team, etc).
properties:
createdAt:
type: string
dateCreated:
type: string
dateUpdated:
type: string
description:
type: string
entries:
items:
$ref: '#/definitions/view.Relationship'
type: array
entryIds:
items:
type: integer
type: array
id:
type: integer
name:
type: string
object:
$ref: '#/definitions/view.Relationship'
objectId:
type: integer
objectType:
type: string
updatedAt:
type: string
title: WorkingHour
type: object
view.WorkingHourEntry:
description: WorkingHourEntry stores weekday working hour data.
properties:
endTime:
type: string
id:
type: integer
startTime:
type: string
taskHours:
type: number
timezone:
type: string
weekday:
type: string
workingHour:
$ref: '#/definitions/view.Relationship'
workingHourId:
type: integer
title: WorkingHourEntry
type: object
workflow.BulkProjectRequest:
description: |-
BulkProjectRequest contains the information for applying a workflow to
many projects
properties:
id:
type: integer
projects:
items:
$ref: '#/definitions/workflow.ProjectMapping'
type: array
workflowOptions:
properties:
fireWebhook:
type: boolean
logActivity:
type: boolean
useNotifyViaTWIM:
type: boolean
type: object
title: BulkProjectRequest
type: object
workflow.ProjectMapping:
description: ProjectMapping contains the info for the project to be mapped
properties:
currentWorkflowId:
type: integer
projectId:
type: integer
stages:
items:
$ref: '#/definitions/workflow.StageMapping'
type: array
title: ProjectMapping
type: object
workflow.StageMapping:
description: StageMapping contains the ids of the stages to map
properties:
from:
type: integer
to:
type: integer
title: StageMapping
type: object
workflow.Workflow:
description: Workflow contains all the information returned from a workflow.
properties:
defaultWorkflow:
type: boolean
grantAccessTo:
$ref: '#/definitions/payload.UserGroups'
name:
type: string
projectId:
type: integer
projectSpecific:
type: boolean
sort:
type: string
sortOrder:
type: string
status:
type: string
title: Workflow
type: object
workflow.WorkflowsResponse:
description: WorkflowsResponse contains information about a group of workflows.
properties:
included:
properties:
companies:
additionalProperties:
$ref: '#/definitions/view.Company'
type: object
projects:
additionalProperties:
$ref: '#/definitions/view.IncludedProject'
type: object
stages:
additionalProperties:
$ref: '#/definitions/view.Stage'
type: object
teams:
additionalProperties:
$ref: '#/definitions/view.Team'
type: object
users:
additionalProperties:
$ref: '#/definitions/view.User'
type: object
type: object
meta:
$ref: '#/definitions/view.Meta'
workflows:
items:
$ref: '#/definitions/view.Workflow'
type: array
title: WorkflowsResponse
type: object
workflow.Request:
description: Request contains information of a workflow to be created or updated.
properties:
workflow:
$ref: '#/definitions/workflow.Workflow'
workflowOptions:
properties:
fireWebhook:
type: boolean
logActivity:
type: boolean
useNotifyViaTWIM:
type: boolean
type: object
title: Request
type: object
workflow.Response:
description: Response contains information about a specific workflow.
properties:
included:
properties:
companies:
additionalProperties:
$ref: '#/definitions/view.Company'
type: object
projects:
additionalProperties:
$ref: '#/definitions/view.IncludedProject'
type: object
stages:
additionalProperties:
$ref: '#/definitions/view.Stage'
type: object
teams:
additionalProperties:
$ref: '#/definitions/view.Team'
type: object
users:
additionalProperties:
$ref: '#/definitions/view.User'
type: object
type: object
meta:
$ref: '#/definitions/view.Meta'
workflow:
$ref: '#/definitions/view.Workflow'
title: Response
type: object
info:
version: v1
title: Teamwork.com API
description: ''
schemes:
- https
consumes:
- application/json
produces:
- application/json
tags:
- name: Projects
- name: Tasks
paths:
/projects/api/v3/projects.json:
get:
description: |-
Retrieve all projects for the provided filters. Only the projects that the
logged-in user can access will be returned.
On this endpoint you can filter by project custom fields. The syntax for the
query parameter is the following:
projectCustomField[id][op]=value
Where:
- [id] is the custom field ID
- [op] is the operator to apply when filtering, different operators are
allowed according to the custom field type
- [value] is the value to apply when filtering
For example, if I want to filter a dropdown custom field with ID 10 to only return entries that have the value "Option1" we would do the following:
projectCustomField[10][eq]=Option1
The allowed operators are:
- like
- not-like
- eq
- not
- lt
- gt
- any
The **like** and **not-like** operators use the **%25** wildcard character.
ie: To filter a dropdown custom field with ID 10 to return entries that contain the value "ption" we would do the following
projectCustomField[10][like]=%25ption%25
operationId: GET_projects_api_v3_projects.json
parameters:
- description: |-
updated after
<br/>(Format: yyyy-mm-dd or yyyy-mm-ddThh:mm:ssZ)
format: date-time
in: query
name: updatedAfter
type: string
default: "2024-06-21"
- description: filter by project name
in: query
name: searchTerm
type: string
default: My first Project
- default: project
description: define the type of the report
enum:
- project
- health
in: query
name: reportType
type: string
- description: Optional to configure the report dates displayed in a timezone
in: query
name: reportTimezone
type: string
- default: pdf
description: define the format of the report
enum:
- csv
- html
- pdf
- xls
in: query
name: reportFormat
type: string
- description: filter by project type
in: query
name: projectType
type: string
- default: asc
description: order mode
enum:
- asc
- desc
in: query
name: orderMode
type: string
- default: name
description: order by
enum:
- companyname
- datecreated
- duedate
- lastactivity
- name
- namecaseinsensitive
- ownercompany
- starred
- categoryname
in: query
name: orderBy
type: string
- description: |-
filter by projects that have not been completed before the given date
(Format: yyyy-mm-dd or yyyy-mm-ddThh:mm:ssZ)
format: date
in: query
name: notCompletedBefore
type: string
- description: |-
filter by min last activity date
(Format: yyyy-mm-dd or yyyy-mm-ddThh:mm:ssZ)
format: date
in: query
name: minLastActivityDate
type: string
- description: |-
filter by max last activity date
(Format: yyyy-mm-dd or yyyy-mm-ddThh:mm:ssZ)
format: date
in: query
name: maxLastActivityDate
type: string
- description: currency symbol for report export
in: query
name: currencySymbol
type: string
- description: filter by user id
in: query
name: userId
type: integer
- default: '50'
description: |-
Number of items in a page (not used when generating reports)
See [How does paging work](https://apidocs.teamwork.com/guides/teamwork/how-does-paging-work) for more detailed documentation on pagination.
Minimum: 1
Maximum: 500
in: query
name: pageSize
type: integer
- default: '1'
description: |-
Page number, this is usually used in conjunction with the parameter pageSize. (not used when generating reports)
See [How does paging work](https://apidocs.teamwork.com/guides/teamwork/how-does-paging-work) for more detailed documentation on pagination.
in: query
name: page
type: integer
- description: order by custom field id when orderBy is equal to customfield
in: query
name: orderByCustomFieldId
type: integer
- description: filter by minimum budget capacity used
in: query
name: minBudgetCapacityUsedPercent
type: integer
- description: filter by maximum budget capacity used
in: query
name: maxBudgetCapacityUsedPercent
type: integer
- description: use formula fields
in: query
name: useFormulaFields
type: boolean
default: 'false'
- description: 'SkipCounts allows you to skip doing counts on a list API endpoint for performance reasons.'
in: query
name: skipCounts
type: boolean
default: 'false'
- description: include companies in the search
in: query
name: searchCompanies
type: boolean
default: 'false'
- description: search projects beginning with the search term character only when it contains a single character.
in: query
name: searchByLetter
type: boolean
default: 'false'
- description: filter by starred projects only
in: query
name: onlyStarredProjects
type: boolean
default: 'false'
- default: 'false'
description: only show projects with explicit membership
in: query
name: onlyProjectsWithExplicitMembership
type: boolean
- default: 'false'
description: can log time on projects
in: query
name: onlyProjectsThatCanLogTime
type: boolean
- default: 'false'
description: return only archived projects
in: query
name: onlyArchivedProjects
type: boolean
- description: match all project tags (used when filtering with tags)
in: query
name: matchAllProjectTags
type: boolean
default: 'false'
- description: match all excluded project tags (used when filtering with tags)
in: query
name: matchAllExcludedTags
type: boolean
default: 'false'
- default: 'false'
description: generate a report document
in: query
name: isReportDownload
type: boolean
- description: include alongside normal projects, tentative ones
in: query
name: includeTentativeProjects
type: boolean
default: 'false'
- description: include sub categories when filtering by ids
in: query
name: includeSubCategories
type: boolean
default: 'false'
- description: include project status counts for tasks columns billing events milestones
in: query
name: includeStats
type: boolean
default: 'false'
- default: 'false'
description: fetch user-specific data such as isStarred
in: query
name: includeProjectUserInfo
type: boolean
- description: include project profitability in response
in: query
name: includeProjectProfitability
type: boolean
default: 'false'
- description: include minimum and maximum start/end dates for projects
in: query
name: includeProjectDates
type: boolean
default: 'false'
- default: 'false'
description: include custom fields
in: query
name: includeCustomFields
type: boolean
- description: include project related counts
in: query
name: includeCounts
type: boolean
default: 'false'
- description: optional to include completed projects when filtering by project statuses "current,late".
in: query
name: includeCompletedStatus
type: boolean
default: 'false'
- default: 'false'
description: include archived projects
in: query
name: includeArchivedProjects
type: boolean
- default: 'false'
description: hide projects where the logged-in user is just an observer
in: query
name: hideObservedProjects
type: boolean
- description: includes filters when project ids are provided
in: query
name: alwaysIncludeFiltering
type: boolean
default: 'false'
- description: filter by projects that contain users associated with the team ids
in: query
items:
type: integer
name: teamIds
type: array
- description: select the columns to use in exports.
in: query
items:
type: string
name: selectedColumns
type: array
- description: filter by project tag ids
in: query
items:
type: integer
name: projectTagIds
type: array
- description: filter by project status
in: query
items:
enum:
- active
- current
- late
- upcoming
- completed
- deleted
type: string
name: projectStatuses
type: array
default: 'active'
- description: filter by project owner ids
in: query
items:
type: integer
name: projectOwnerIds
type: array
- description: filter by project ids
in: query
items:
type: integer
name: projectIds
type: array
- description: |-
filter by project healths
0: not set
1: bad
2: ok
3: good
in: query
items:
enum:
- '0'
- '1'
- '2'
- '3'
type: integer
name: projectHealths
type: array
- description: filter by company ids
in: query
items:
type: integer
name: projectCompanyIds
type: array
- description: filter by project category ids
in: query
items:
type: integer
name: projectCategoryIds
type: array
- description: include specific custom fields
in: query
items:
type: integer
name: includeCustomFieldIds
type: array
- description: include (not used when generating reports)
in: query
items:
enum:
- projectOwners
- projectUpdates
- companies
- companies.countries
- companies.industries
- projectCategories
- portfolioCards
- portfolioBoards
- portfolioColumns
- tags
- customfields
- customfieldProjects
- projectBudgets
- activities.latest
- users
- createdBy
- updatedBy
- completedBy
- deletedBy
type: string
name: include
type: array
- in: query
items:
enum:
- id
- name
- statusId
type: string
name: fields[workflows]
type: array
- in: query
items:
enum:
- id
- firstName
- lastName
- title
- email
- companyId
- company
- isAdmin
- isClientUser
- isServiceAccount
- type
- deleted
- avatarUrl
- lengthOfDay
- workingHoursId
- workingHour
- userRate
- userCost
- canAddProjects
type: string
name: fields[users]
type: array
- in: query
items:
enum:
- id
- name
- color
- count
type: string
name: fields[tags]
type: array
- in: query
items:
enum:
- id
- name
- stage
type: string
name: fields[stages]
type: array
- in: query
items:
enum:
- id
- name
type: string
name: fields[projects]
type: array
- in: query
items:
enum:
- id
- name
- color
- count
- parent
- parentId
type: string
name: fields[projectcategories]
type: array
- in: query
items:
enum:
- id
- projectId
- text
- isActive
- health
- color
- dateCreated
- deleted
- deletedDate
- numLikes
- reactions
type: string
name: fields[projectUpdates]
type: array
- in: query
items:
enum:
- id
- projectId
- type
- status
- capacityUsed
- capacity
- originatorBudgetId
- isRepeating
- repeatPeriod
- repeatUnit
- repeatsRemaining
- sequenceNumber
- startDateTime
- endDateTime
- currencyCode
- timelogType
- expenseType
- defaultRate
- notificationIds
- createdByUserId
- dateCreated
- updatedUserId
- dateUpdated
- completedByUserId
- dateCompleted
- deletedByUserId
- dateDeleted
type: string
name: fields[projectBudgets]
type: array
- in: query
items:
enum:
- id
- name
- color
type: string
name: fields[portfolioColumns]
type: array
- in: query
items:
enum:
- id
- columnId
- projectId
type: string
name: fields[portfolioCards]
type: array
- in: query
items:
enum:
- id
- name
- color
type: string
name: fields[portfolioBoards]
type: array
- in: query
items:
type: string
name: fields[industries]
type: array
- in: query
items:
enum:
- id
- projectId
- entity
- name
- description
- type
- options
- visibilities
- isPrivate
- required
- createdAt
- createdByUserId
- updatedAt
- updatedByUserId
- deleted
- deletedAt
- deletedByUserId
type: string
name: fields[customfields]
type: array
- in: query
items:
enum:
- id
- customfieldId
- value
- createdAt
- createdBy
type: string
name: fields[customfieldProjects]
type: array
- in: query
items:
type: string
name: fields[countries]
type: array
- in: query
items:
enum:
- id
- name
- logoUploadedToServer
- logoImage
type: string
name: fields[companies]
type: array
- description: filter by projects that have features enabled
in: query
items:
enum:
- list
- board
- gantt
- table
- dashboard
- milestones
- messages
- files
- time
- notebooks
- risks
- links
- billing
- comments
- people
- settings
type: string
name: featuresEnabled
type: array
- description: exclude by project tag ids
in: query
items:
type: integer
name: excludeTagIds
type: array
produces:
- application/json
responses:
'200':
description: 200 OK
schema:
$ref: '#/definitions/project.projectsResponseV205'
'400':
description: 400 Bad Request
schema:
$ref: '#/definitions/view.ErrorResponse'
'403':
description: 403 Forbidden
schema:
$ref: '#/definitions/view.ErrorResponse'
summary: Returns a list of projects - V3
tags:
- Projects
'/projects/api/v3/projects/{projectId}.json':
get:
description: |-
On this endpoint you can filter by project custom fields. The syntax for the
query parameter is the following:
projectCustomField[id][op]=value
Where:
- [id] is the custom field ID
- [op] is the operator to apply when filtering, different operators are
allowed according to the custom field type
- [value] is the value to apply when filtering
For example, if I want to filter a dropdown custom field with ID 10 to only return entries that have the value "Option1" we would do the following:
projectCustomField[10][eq]=Option1
The allowed operators are:
- like
- not-like
- eq
- not
- lt
- gt
- any
The **like** and **not-like** operators use the **%25** wildcard character.
ie: To filter a dropdown custom field with ID 10 to return entries that contain the value "ption" we would do the following
projectCustomField[10][like]=%25ption%25
operationId: 'GET_projects_api_v3_projects_{projectId}.json'
parameters:
- description: |-
updated after
(Format: yyyy-mm-dd or yyyy-mm-ddThh:mm:ssZ)
format: date-time
in: query
name: updatedAfter
type: string
default: 20240621
- description: filter by project name
in: query
name: searchTerm
type: string
default: 'project'
- default: project
description: define the type of the report
enum:
- project
- health
in: query
name: reportType
type: string
- description: Optional to configure the report dates displayed in a timezone
in: query
name: reportTimezone
type: string
- default: pdf
description: define the format of the report
enum:
- csv
- html
- pdf
- xls
in: query
name: reportFormat
type: string
- description: filter by project type
in: query
name: projectType
type: string
- default: asc
description: order mode
enum:
- asc
- desc
in: query
name: orderMode
type: string
- default: name
description: order by
enum:
- companyname
- datecreated
- duedate
- lastactivity
- name
- namecaseinsensitive
- ownercompany
- starred
- categoryname
in: query
name: orderBy
type: string
- description: |-
filter by projects that have not been completed before the given date
(Format: yyyy-mm-dd or yyyy-mm-ddThh:mm:ssZ)
format: date
in: query
name: notCompletedBefore
type: string
- description: |-
filter by min last activity date
(Format: yyyy-mm-dd or yyyy-mm-ddThh:mm:ssZ)
format: date
in: query
name: minLastActivityDate
type: string
- description: |-
filter by max last activity date
(Format: yyyy-mm-dd or yyyy-mm-ddThh:mm:ssZ)
format: date
in: query
name: maxLastActivityDate
type: string
- description: currency symbol for report export
in: query
name: currencySymbol
type: string
- description: filter by user id
in: query
name: userId
type: integer
- in: path
name: projectId
required: true
type: integer
- default: '50'
description: |-
Number of items in a page (not used when generating reports)
See [How does paging work](https://apidocs.teamwork.com/guides/teamwork/how-does-paging-work) for more detailed documentation on pagination.
Minimum: 1
Maximum: 500
in: query
name: pageSize
type: integer
- default: '1'
description: |-
Page number, this is usually used in conjunction with the parameter pageSize. (not used when generating reports)
See [How does paging work](https://apidocs.teamwork.com/guides/teamwork/how-does-paging-work) for more detailed documentation on pagination.
in: query
name: page
type: integer
- description: order by custom field id when orderBy is equal to customfield
in: query
name: orderByCustomFieldId
type: integer
- description: filter by minimum budget capacity used
in: query
name: minBudgetCapacityUsedPercent
type: integer
- description: filter by maximum budget capacity used
in: query
name: maxBudgetCapacityUsedPercent
type: integer
- description: 'SkipCounts allows you to skip doing counts on a list API endpoint for performance reasons.'
in: query
name: skipCounts
type: boolean
default: 'false'
- description: include companies in the search
in: query
name: searchCompanies
type: boolean
default: 'false'
- description: search projects beginning with the search term character only when it contains a single character.
in: query
name: searchByLetter
type: boolean
default: 'false'
- description: filter by starred projects only
in: query
name: onlyStarredProjects
type: boolean
default: 'false'
- default: 'false'
description: only show projects with explicit membership
in: query
name: onlyProjectsWithExplicitMembership
type: boolean
- default: 'false'
description: can log time on projects
in: query
name: onlyProjectsThatCanLogTime
type: boolean
- default: 'false'
description: return only archived projects
in: query
name: onlyArchivedProjects
type: boolean
- description: match all project tags
in: query
name: matchAllProjectTags
type: boolean
default: 'false'
- description: match all excluded project tags
in: query
name: matchAllExcludedTags
type: boolean
- default: 'false'
description: generate a report document
in: query
name: isReportDownload
type: boolean
- description: 'include alongside normal projects, tentative ones'
in: query
name: includeTentativeProjects
type: boolean
default: 'false'
- description: include sub categories when filtering by ids
in: query
name: includeSubCategories
type: boolean
default: 'false'
- description: include project status counts for tasks columns billing events milestones
in: query
name: includeStats
type: boolean
- default: 'false'
description: fetch user-specific data such as isStarred
in: query
name: includeProjectUserInfo
type: boolean
- default: 'false'
description: include custom fields
in: query
name: includeCustomFields
type: boolean
- description: include project related counts
in: query
name: includeCounts
type: boolean
default: 'false'
- description: 'optional to include completed projects when filtering by project statuses "current,late".'
in: query
name: includeCompletedStatus
type: boolean
- default: 'false'
description: include archived projects
in: query
name: includeArchivedProjects
type: boolean
- default: 'false'
description: hide projects where the logged-in user is just an observer
in: query
name: hideObservedProjects
type: boolean
- description: includes filters when project ids are provided
in: query
name: alwaysIncludeFiltering
type: boolean
default: 'false'
- description: filter by projects that contain users associated with the team ids
in: query
items:
type: integer
name: teamIds
type: array
- description: select the columns to use in exports.
in: query
items:
type: string
name: selectedColumns
type: array
- description: filter by project tag ids
in: query
items:
type: integer
name: projectTagIds
type: array
- description: filter by project status
in: query
items:
enum:
- active
- current
- late
- upcoming
- completed
- deleted
type: string
name: projectStatuses
type: array
- description: filter by project owner ids
in: query
items:
type: integer
name: projectOwnerIds
type: array
- description: filter by project ids
in: query
items:
type: integer
name: projectIds
type: array
- description: |-
filter by project healths
0: not set
1: bad
2: ok
3: good
in: query
items:
enum:
- '0'
- '1'
- '2'
- '3'
type: integer
name: projectHealths
type: array
- description: filter by company ids
in: query
items:
type: integer
name: projectCompanyIds
type: array
- description: filter by project category ids
in: query
items:
type: integer
name: projectCategoryIds
type: array
- description: include specific custom fields
in: query
items:
type: integer
name: includeCustomFieldIds
type: array
- description: include (not used when generating reports)
in: query
items:
enum:
- projectOwners
- projectUpdates
- companies
- companies.countries
- companies.industries
- projectCategories
- portfolioCards
- portfolioBoards
- portfolioColumns
- tags
- customfields
- customfieldProjects
- projectBudgets
- activities.latest
- users
- createdBy
- updatedBy
- completedBy
- deletedBy
type: string
name: include
type: array
- in: query
items:
enum:
- id
- name
- statusId
type: string
name: 'fields[workflows]'
type: array
- in: query
items:
enum:
- id
- firstName
- lastName
- title
- email
- companyId
- company
- isAdmin
- isClientUser
- isServiceAccount
- type
- deleted
- avatarUrl
- lengthOfDay
- workingHoursId
- workingHour
- userRate
- userCost
- canAddProjects
type: string
name: 'fields[users]'
type: array
- in: query
items:
enum:
- id
- name
- color
- count
type: string
name: 'fields[tags]'
type: array
- in: query
items:
enum:
- id
- name
- stage
type: string
name: 'fields[stages]'
type: array
- in: query
items:
enum:
- id
- name
type: string
name: 'fields[projects]'
type: array
- in: query
items:
enum:
- id
- name
- color
- count
- parent
- parentId
type: string
name: 'fields[projectcategories]'
type: array
- in: query
items:
enum:
- id
- projectId
- text
- isActive
- health
- color
- dateCreated
- deleted
- deletedDate
- numLikes
- reactions
type: string
name: 'fields[projectUpdates]'
type: array
- in: query
items:
enum:
- id
- projectId
- type
- status
- capacityUsed
- capacity
- originatorBudgetId
- isRepeating
- repeatPeriod
- repeatUnit
- repeatsRemaining
- sequenceNumber
- startDateTime
- endDateTime
- currencyCode
- timelogType
- expenseType
- defaultRate
- notificationIds
- createdByUserId
- dateCreated
- updatedUserId
- dateUpdated
- completedByUserId
- dateCompleted
- deletedByUserId
- dateDeleted
type: string
name: 'fields[projectBudgets]'
type: array
- in: query
items:
enum:
- id
- name
- color
type: string
name: 'fields[portfolioColumns]'
type: array
- in: query
items:
enum:
- id
- columnId
- projectId
type: string
name: 'fields[portfolioCards]'
type: array
- in: query
items:
enum:
- id
- name
- color
type: string
name: 'fields[portfolioBoards]'
type: array
- in: query
items:
type: string
name: 'fields[industries]'
type: array
- in: query
items:
enum:
- id
- projectId
- entity
- name
- description
- type
- options
- visibilities
- isPrivate
- required
- createdAt
- createdByUserId
- updatedAt
- updatedByUserId
- deleted
- deletedAt
- deletedByUserId
type: string
name: 'fields[customfields]'
type: array
- in: query
items:
enum:
- id
- customfieldId
- value
- createdAt
- createdBy
type: string
name: 'fields[customfieldProjects]'
type: array
- in: query
items:
type: string
name: 'fields[countries]'
type: array
- in: query
items:
enum:
- id
- name
- logoUploadedToServer
- logoImage
type: string
name: 'fields[companies]'
type: array
- description: filter by projects that have features enabled
in: query
items:
enum:
- list
- board
- gantt
- table
- dashboard
- milestones
- messages
- files
- time
- notebooks
- risks
- links
- billing
- comments
- people
- settings
type: string
name: featuresEnabled
type: array
- description: exclude by project tag ids
in: query
items:
type: integer
name: excludeTagIds
type: array
produces:
- application/json
responses:
'200':
description: 200 OK
schema:
$ref: '#/definitions/project.responseV205'
'400':
description: 400 Bad Request
schema:
$ref: '#/definitions/view.ErrorResponse'
'403':
description: 403 Forbidden
schema:
$ref: '#/definitions/view.ErrorResponse'
'404':
description: 404 Not Found (no data)
summary: Returns a project - V3
tags:
- Projects
/projects.json:
post:
operationId: POST_projects-json
summary: Create Project - V1
tags:
- Projects
description: |-
To create a project, use this endpoint.
---
To add a custom field to a project, you pass in the custom field object to this endpoint. The custom field must already be created, you can do that by using [V3 Custom Fields](/guides/teamwork/custom-fields). Once the custom field is created, it’s available to attach a project. See sample payload below.
- **Add custom fields on a project**:
To add the custom fields, pass in the values of the custom fields with this endpoint. Eg:
```
{
"project": {
"customFields": [
{
"customFieldId": 68,
"value": "Jane Doe"
},
{
"customFieldId": 75,
"value": "Finance"
}
]
}
}
```
To update or delete custom fields from a project pass an empty array for the customFields param. Example on [Updating a project](docs/teamwork/v1/projects/put-projects-id-json).
- **To delete custom fields from a project**:
Pass an empty array for the customFields param. Eg:
```
{
"project": {
"customFields": []
}
}
```
To test that the custom field was added, you need to use the [V2 projects](/docs/teamwork/v2/custom-fields/get-projects-api-v2-projects-json) endpoint with **"includeCustomFields=true"** to return the custom fields and their values.
---
parameters:
- name: body
in: body
schema:
type: object
properties:
project:
type: object
properties:
name:
type: string
example: My First Project
description:
type: string
example: Project description here
use-tasks:
type: boolean
use-milestones:
type: boolean
use-messages:
type: boolean
use-files:
type: boolean
use-time:
type: boolean
use-notebook:
type: boolean
use-riskregister:
type: boolean
use-links:
type: boolean
use-billing:
type: boolean
use-comments:
type: boolean
category-id:
type: integer
default: 0
start-date:
type: string
default: YYYYMMDD
example: 20240621
description: 'Date format: yyyymmdd'
end-date:
type: string
default: YYYYMMDD
example: 20240628
description: 'Date format: yyyymmdd'
tagIds:
type: string
example: 102860,102864
description: 'List of Ids (comman separated) - Leave blank for no tags'
onboarding:
type: boolean
grant-access-to:
type: string
private:
type: boolean
customFields:
type: array
items:
type: object
properties:
customFieldId:
type: integer
value:
type: string
people:
type: integer
description: List of Ids (comman separated)
projectOwnerId:
type: integer
default: 0
companyId:
type: integer
default: 0
responses:
'201':
description: ''
schema:
type: object
properties:
id:
type: string
STATUS:
type: string
examples:
application/json:
id: '323605'
STATUS: Created
new:
project:
name: nisi
description: sed exercitation
use-tasks: false
use-milestones: true
use-messages: true
use-files: false
use-time: false
use-notebook: true
use-riskregister: true
use-links: false
use-billing: false
use-comments: false
category-id: -61196040
start-date: ea es
end-date: labore sunt
tagIds: dolore minim
onboarding: true
templateDateTargetDefault: occaecat
grant-access-to: in
private: false
customFields:
- customFieldId: -46820729
value: eiusmod
- customFieldId: 43281463
value: do velit cupidatat ut
- customFieldId: -26453277
value: Excepteur eu dolor est
- customFieldId: -85072601
value: veniam dolore mollit incididunt
people: irure officia commodo tempor ex
projectOwnerId: quis d
companyId: 90304027
'/projects/{id}.json':
parameters:
- name: id
in: path
required: true
type: string
put:
operationId: PUT_projects-id-json
summary: Update Project - V1
tags:
- Projects
description: |-
Modifies a single project.
Use this endpoint to:
- **Enable and Disable Projects Features**: All features in Projects such as Tasks, Messages, Time, Billing and more can be enabled and disabled via the API.
```
{
"project": {
"use-tasks": "1",
"use-messages": "1",
"use-time": "1",
"use-riskregister": "1",
"use-billing": "1",
"use-milestones": "1",
"use-files": "1",
"use-notebook": "1",
"use-links": "1"
}
}
```
- **Set/Remove a Project Owner**: This allows you to set a project owner by using in the project id in the path and sending in the id of the owner in the body of the request.
Please note:
If the project is inside a portfolio board, you will also recieve the column and the card that project is associated with. This affects the board because you can filter by project owner.
Your response will look like this:
```
{
"linkedColumnId": "12345",
"STATUS": "OK",
"linkedCardId": "12345"
}
```
- **Update a Project Status**: Modifies a single project status. Inactive to archive project, active to unarchive project.
```
{
"project": {
"status": "inactive"
}
}
```
- **Add or update the Project logo**: This will add an image to become a Project logo. It will replace the existing logo if there is one in place. First, use the file upload API call to upload a file and receive back a file reference string. Then, perform the following to update a project.
```
{
"project": {
"logoPendingFileRef": "{your_uploaded_file_reference}"
}
}
```
- **Update or remove custom fields on a project**:
To update the custom fields, pass in the updated values of the custom fields this endpoint. Eg:
```
{
"project": {
"customFields": [
{
"customFieldId": 68,
"value": "Jane Doe"
},
{
"customFieldId": 75,
"value": "Finance"
}
]
}
}
```
To delete custom fields from a project pass an empty array for the customFields param. Eg:
```
{
"todo-item": {
"customFields": []
}
}
```
---
parameters:
- name: body
in: body
schema:
type: object
properties:
project:
type: object
properties:
name:
type: string
description:
type: string
use-tasks:
type: boolean
use-milestones:
type: boolean
use-messages:
type: boolean
use-files:
type: boolean
use-time:
type: boolean
use-notebook:
type: boolean
use-riskregister:
type: boolean
use-links:
type: boolean
use-billing:
type: boolean
use-comments:
type: boolean
category-id:
type: integer
start-date:
type: string
description: 'Passed in as string format: yyyymmdd'
example: '20210101'
end-date:
type: string
description: 'Passed in as string format: yyyymmdd'
example: '20211212'
tagIds:
type: string
onboarding:
type: boolean
templateDateTargetDefault:
type: string
grant-access-to:
type: string
private:
type: boolean
customFields:
type: array
items:
type: object
properties:
customFieldId:
type: integer
value:
type: string
people:
type: string
projectOwnerId:
type: string
companyId:
type: integer
responses:
'200':
description: ''
schema:
type: object
properties:
STATUS:
type: string
examples:
application/json:
STATUS: OK
delete:
operationId: DELETE_projects-id-json
summary: Delete Project - V1
tags:
- Projects
description: |-
Deletes a single project.
---
responses:
'200':
description: ''
schema:
type: object
properties:
STATUS:
type: string
examples:
application/json:
STATUS: OK
/projects/api/v3/tasks.json:
get:
description: Return multiple tasks according to the provided filter.
operationId: GET_projects_api_v3_tasks.json
parameters:
- description: |-
filter by updated before date
(Format: yyyy-mm-dd or yyyy-mm-ddThh:mm:ssZ)
format: date-time
in: query
name: updatedBefore
type: string
- description: |-
filter by updated after date
(Format: yyyy-mm-dd or yyyy-mm-ddThh:mm:ssZ)
format: date-time
in: query
name: updatedAfter
type: string
- description: |-
filter by today
(Format: yyyy-mm-dd or yyyy-mm-ddThh:mm:ssZ)
format: date-time
in: query
name: today
type: string
- description: filter by a taskFilter
enum:
- all
- anytime
- completed
- created
- overdue
- today
- yesterday
- started
- tomorrow
- thisweek
- within7
- within14
- within30
- within365
- nodate
- noduedate
- nostartdate
- newTaskDefaults
- hasDate
in: query
name: taskFilter
type: string
- description: |-
filter on start date
(Format: yyyy-mm-dd or yyyy-mm-ddThh:mm:ssZ)
format: date
in: query
name: startDate
type: string
- description: filter by search term
in: query
name: searchTerm
type: string
- default: task
description: define the type of the report
enum:
- plannedvsactual
- task
- tasktime
in: query
name: reportType
type: string
- default: pdf
description: define the format of the report
enum:
- html
- pdf
in: query
name: reportFormat
type: string
- description: filter by task priority
in: query
name: priority
type: string
enum:
- any
- none
- low
- medium
- high
default: any
- default: asc
description: order mode
enum:
- asc
- desc
in: query
name: orderMode
type: string
- default: duedate
description: order by
enum:
- startdate
- createdat
- priority
- project
- flattenedtasklist
- company
- manual
- active
- completedat
- duestartdate
- alldates
- tasklistname
- tasklistdisplayorder
- tasklistid
- duedate
- updatedat
- taskname
- createdby
- completedby
- assignedto
- taskstatus
- taskduedate
- customfield
- estimatedtime
- boardcolumn
- taskgroupid
- taskgroupname
- taskgroup
- displayorder
- projectmanual
- stagedisplayorder
in: query
name: orderBy
type: string
- description: |-
filter by projects that have not been completed before the given date
(Format: yyyy-mm-dd or yyyy-mm-ddThh:mm:ssZ)
format: date
in: query
name: notCompletedBefore
type: string
- description: |-
filter on end date
(Format: yyyy-mm-dd or yyyy-mm-ddThh:mm:ssZ)
format: date
in: query
name: endDate
type: string
- description: |-
filter on deleted after date
(Format: yyyy-mm-dd or yyyy-mm-ddThh:mm:ssZ)
format: date-time
in: query
name: deletedAfter
type: string
- description: filter by created filter
enum:
- anytime
- today
- yesterday
- custom
in: query
name: createdFilter
type: string
- description: filter by created date code
in: query
name: createdDateCode
type: string
- description: |-
filter by created before date
(Format: yyyy-mm-dd or yyyy-mm-ddThh:mm:ssZ)
format: date-time
in: query
name: createdBefore
type: string
- description: |-
filter by created after date
(Format: yyyy-mm-dd or yyyy-mm-ddThh:mm:ssZ)
format: date-time
in: query
name: createdAfter
type: string
- description: |-
filter by completed before date
(Format: yyyy-mm-dd or yyyy-mm-ddThh:mm:ssZ)
format: date-time
in: query
name: completedBefore
type: string
- description: |-
filter by completed after date
(Format: yyyy-mm-dd or yyyy-mm-ddThh:mm:ssZ)
format: date-time
in: query
name: completedAfter
type: string
- description: filter by parent task ids
in: query
name: parentTaskId
type: integer
- default: '50'
description: |-
Number of items in a page
See [How does paging work](https://apidocs.teamwork.com/guides/teamwork/how-does-paging-work) for more detailed documentation on pagination.
Minimum: 1
Maximum: 500
in: query
name: pageSize
type: integer
- default: '1'
description: |-
Page number, this is usually used in conjunction with the parameter pageSize.
See [How does paging work](https://apidocs.teamwork.com/guides/teamwork/how-does-paging-work) for more detailed documentation on pagination.
in: query
name: page
type: integer
- description: order by custom field id when orderBy is equal to customfield
in: query
name: orderByCustomFieldId
type: integer
- description: include task id
in: query
name: includeTaskId
type: integer
- description: provide a user saved filter ID
in: query
name: filterId
type: integer
- description: filter by completer user id
in: query
name: completedByUserId
type: integer
- description: use start dates for todays tasks
in: query
name: useStartDatesForTodaysTasks
type: boolean
- description: filter on all projects
in: query
name: useAllProjects
type: boolean
- default: 'false'
description: include deleted items
in: query
name: showDeleted
type: boolean
- description: include tasks from completed lists
in: query
name: showCompletedLists
type: boolean
- description: include companies and teams in the search term
in: query
name: searchCompaniesTeams
type: boolean
- description: include assignees in the search
in: query
name: searchAssignees
type: boolean
- description: only untagged tasks
in: query
name: onlyUntaggedTasks
type: boolean
- default: 'false'
description: |-
only return tasks that are unplanned. Not assigned, no due date or
missing estimated time.
in: query
name: onlyUnplanned
type: boolean
- description: filter by only tasks with unread comments
in: query
name: onlyTasksWithUnreadComments
type: boolean
- description: filter by only tasks with tickets
in: query
name: onlyTasksWithTickets
type: boolean
- description: only return tasks with estimated time
in: query
name: onlyTasksWithEstimatedTime
type: boolean
- description: filter by starred projects only
in: query
name: onlyStarredProjects
type: boolean
- description: |-
only include tasks from projects where the user is strictly a project admin.
site admins have visibility to all projects.
in: query
name: onlyAdminProjects
type: boolean
- description: nest sub tasks
in: query
name: nestSubTasks
type: boolean
- description: match all tags
in: query
name: matchAllTags
type: boolean
- description: match all project tags
in: query
name: matchAllProjectTags
type: boolean
- description: match all exclude tags
in: query
name: matchAllExcludedTags
type: boolean
- default: 'false'
description: generate a report export.
in: query
name: isReportDownload
type: boolean
- description: include tasks latest update action
in: query
name: includeUpdate
type: boolean
- description: include untagged tasks
in: query
name: includeUntaggedTasks
type: boolean
- description: filter by include today
in: query
name: includeToday
type: boolean
- description: include members of the given teams
in: query
name: includeTeamUserIds
type: boolean
- description: include tasks without due dates
in: query
name: includeTasksWithoutDueDates
type: boolean
- default: 'true'
description: include tasks with cards
in: query
name: includeTasksWithCards
type: boolean
- description: include tasks from deleted lists
in: query
name: includeTasksFromDeletedLists
type: boolean
- description: 'include ids of completed and active subtasks, dependencies, predecessors'
in: query
name: includeRelatedTasks
type: boolean
- description: include private items
in: query
name: includePrivateItems
type: boolean
- description: include overdue tasks
in: query
name: includeOverdueTasks
type: boolean
- description: include original due date of a task
in: query
name: includeOriginalDueDate
type: boolean
- default: 'false'
description: include custom fields
in: query
name: includeCustomFields
type: boolean
- description: include completed tasks
in: query
name: includeCompletedTasks
type: boolean
- description: include members of the given companies
in: query
name: includeCompanyUserIds
type: boolean
- default: 'false'
description: include number of unread and read comments for each task
in: query
name: includeCommentStats
type: boolean
- description: filter by include blocked
in: query
name: includeBlocked
type: boolean
- default: 'false'
description: include number of unread and read comments for each file attachment
in: query
name: includeAttachmentCommentStats
type: boolean
- description: include teams related to the responsible user ids
in: query
name: includeAssigneeTeams
type: boolean
- description: include companies related to the responsible user ids
in: query
name: includeAssigneeCompanies
type: boolean
- description: include archived projects
in: query
name: includeArchivedProjects
type: boolean
- description: include all comments
in: query
name: includeAllComments
type: boolean
- description: group by tasklist
in: query
name: groupByTasklist
type: boolean
- description: group by taskgroup
in: query
name: groupByTaskgroup
type: boolean
- description: get sub tasks
in: query
name: getSubTasks
type: boolean
- description: get files
in: query
name: getFiles
type: boolean
- description: set due date as milestone due date if due date is null and there's a related milestone
in: query
name: fallbackToMilestoneDueDate
type: boolean
- description: |-
For tasks created in a project template it's possible to assign a role instead of people, companies or teams.
This role is then stored with the task name as a prefix. When this flag is enabled it will extract the role name
and return it inside a special field.
in: query
name: extractTemplateRoleName
type: boolean
- description: exclude assignee not on project teams
in: query
name: excludeAssigneeNotOnProjectTeams
type: boolean
- default: 'false'
description: only completed tasks
in: query
name: completedOnly
type: boolean
- description: check if task has reminders
in: query
name: checkForReminders
type: boolean
- default: 'true'
description: |-
when filtering by assigned or unassagned tasks, include assignees that
are not in the project.
in: query
name: allowAssigneesOutsideProject
type: boolean
- description: customise the report by selecting columns to be displayed for tasks report
in: query
items:
type: string
name: tasksSelectedColumns
type: array
- description: filter by tasklist ids
in: query
items:
type: integer
name: tasklistIds
type: array
- description: filter by taskgroup ids
in: query
items:
type: integer
name: taskgroupIds
type: array
- description: filter by task included set
in: query
items:
enum:
- overdue
- nodate
- nostartdate
- noduedate
- nostartwithfutureduedate
- taskListNames
- projectNames
type: string
name: taskIncludedSet
type: array
- description: filter by tag values
in: query
items:
type: string
name: tags
type: array
- description: filter by tag ids
in: query
items:
type: integer
name: tagIds
type: array
- description: filter by list of task status
in: query
items:
enum:
- upcoming
- late
- all
type: string
name: status
type: array
- description: skip crm deal ids
in: query
items:
type: integer
name: skipCRMDealIds
type: array
- description: customise the report by selecting columns to be displayed for planned vs actual.
in: query
items:
type: string
name: selectedColumns
type: array
- description: filter by responsible party ids
in: query
items:
type: integer
name: responsiblePartyIds
type: array
- description: filter by project tag ids
in: query
items:
type: integer
name: projectTagIds
type: array
- description: filter by project status
in: query
items:
enum:
- active
- current
- late
- upcoming
- completed
- deleted
type: string
name: projectStatuses
type: array
- description: filter by project owner ids
in: query
items:
type: integer
name: projectOwnerIds
type: array
- description: filter by project ids
in: query
items:
type: integer
name: projectIds
type: array
- description: |-
filter by project healths
0: not set
1: bad
2: ok
3: good
in: query
items:
enum:
- '0'
- '1'
- '2'
- '3'
type: integer
name: projectHealths
type: array
- description: filter by projects that have features enabled
in: query
items:
enum:
- list
- board
- gantt
- table
- dashboard
- milestones
- messages
- files
- time
- notebooks
- risks
- links
- billing
- comments
- people
- settings
type: string
name: projectFeaturesEnabled
type: array
- description: filter by company ids
in: query
items:
type: integer
name: projectCompanyIds
type: array
- description: filter by project category ids
in: query
items:
type: integer
name: projectCategoryIds
type: array
- description: include
in: query
items:
enum:
- projects
- projects.companies
- projects.categories
- tasklists
- parentTasks
- companies
- teams
- users
- milestones
- comments
- comments.users
- tags
- cards
- cards.columns
- timeTotals
- taskSequences
- commentFollowers
- changeFollowers
- lockdowns
- lockdowns.users
- lockdowns.companies
- lockdowns.teams
- lockdowns.users.companies
- lockdowns.companies.users
- lockdowns.teams.users
- attachments
- attachments.users
- subtaskStats
- timers
- predecessors
- permissions
type: string
name: include
type: array
- description: filter by task ids
in: query
items:
type: integer
name: ids
type: array
- description: filter by followed by user ids
in: query
items:
type: integer
name: followedByUserIds
type: array
- description: filter by board column ids
in: query
items:
type: integer
name: filterBoardColumnIds
type: array
- in: query
items:
enum:
- id
- firstName
- lastName
- title
- email
- companyId
- company
- isAdmin
- isClientUser
- isServiceAccount
- type
- deleted
- avatarUrl
- lengthOfDay
- workingHoursId
- workingHour
- userRate
- userCost
- canAddProjects
type: string
name: 'fields[users]'
type: array
- in: query
items:
enum:
- id
- userId
- taskId
- projectId
- description
- running
- billable
- deleted
- dateCreated
- dateDeleted
- duration
- lastStartedAt
- serverTime
- intervals
type: string
name: 'fields[timers]'
type: array
- in: query
items:
enum:
- id
- name
- teamLogo
- teamLogoIcon
- teamLogoColor
type: string
name: 'fields[teams]'
type: array
- in: query
items:
enum:
- id
- name
- dateUpdated
- parentTaskId
- isPrivate
- status
- tasklistId
- startDate
- dueDate
type: string
name: 'fields[tasks]'
type: array
- in: query
items:
enum:
- id
- name
- projectId
- milestoneId
type: string
name: 'fields[tasklists]'
type: array
- in: query
items:
enum:
- id
- name
- description
- displayOrder
- projectId
- status
type: string
name: 'fields[taskgroups]'
type: array
- in: query
items:
enum:
- id
- installationId
- frequency
- selectedWeekDays
- endDate
- monthlyRepeatType
- duration
- rrule
type: string
name: 'fields[taskSequences]'
type: array
- in: query
items:
enum:
- id
- name
- color
- count
type: string
name: 'fields[tags]'
type: array
- in: query
items:
enum:
- id
- name
type: string
name: 'fields[projects]'
type: array
- in: query
items:
enum:
- id
- name
- description
- deadline
- completed
- projectId
- createdOn
- lastChangedOn
- creatorUserId
- reminder
- private
- lockdownId
- status
- completedOn
- completerId
- percentageComplete
type: string
name: 'fields[milestones]'
type: array
- in: query
items:
enum:
- id
- userID
- updatedAt
- itemType
- itemID
- grantAccessTo
type: string
name: 'fields[lockdowns]'
type: array
- in: query
items:
enum:
- isPrivate
- latestFileVersionNo
- versionId
- status
- description
- lockdownId
- tagIds
- changeFollowers
- commentFollowers
- originalName
- displayName
- isLocked
- lockedByUserId
- lockedDate
- size
- uploadedDate
- uploadedByUserID
- updatedAt
- deletedAt
- deletedBy
- fileSource
- projectId
- numLikes
- reactions
- versions
- downloadURL
- previewURL
- thumbURL
- relatedItems
- commentsCount
- commentsCountRead
- categoryId
type: string
name: 'fields[files]'
type: array
- in: query
items:
enum:
- id
- name
- logoUploadedToServer
- logoImage
type: string
name: 'fields[companies]'
type: array
- in: query
items:
enum:
- id
- objectType
- objectId
- title
type: string
name: 'fields[comments]'
type: array
- in: query
items:
enum:
- id
- name
- color
- displayOrder
- createdAt
- updatedAt
- settings
- sort
- sortOrder
- deletedAt
- project
- hasTriggers
- deleted
- stats
- defaultTasklist
type: string
name: 'fields[columns]'
type: array
- in: query
items:
enum:
- id
- displayOrder
- archived
- archivedAt
- archivedBy
- createdAt
- createBy
- updatedAt
- visible
- status
- deleteBy
- deletedAt
type: string
name: 'fields[cards]'
type: array
- in: query
items:
enum:
- viewMessagesAndFiles
- viewTasksAndMilestones
- viewTime
- viewNotebooks
- viewRiskRegister
- viewEstimatedTime
- viewInvoices
- addTasks
- addRisks
- manageCustomFields
- addExpenses
- editAllTasks
- addMilestones
- addTaskLists
- addMessages
- addFiles
- addTime
- addNotebooks
- viewLinks
- addLinks
- canViewForms
- addForms
- viewAllTimeLogs
- setPrivacy
- projectAdministrator
- viewProjectUpdate
- addProjectUpdate
- canViewProjectMembers
- canViewProjectBudget
- canManageProjectBudget
- canViewRates
- canManageRates
- canViewSchedule
- canManageSchedule
- receiveEmailNotifications
- isObserving
- isArchived
- active
- canAccess
- inOwnerCompany
- canManagePeople
- canViewProjectTemplates
- canManageProjectTemplates
type: string
name: 'fields[ProjectPermissions]'
type: array
- description: the ids of the expanded tasks
in: query
items:
type: integer
name: expandedIds
type: array
- description: filter by excluded tag ids
in: query
items:
type: integer
name: excludeTagIds
type: array
- description: filter by crm deal ids
in: query
items:
type: integer
name: crmDealIds
type: array
- description: filter by creator user ids
in: query
items:
type: integer
name: createdByUserIds
type: array
- description: filter by assignee team ids
in: query
items:
type: integer
name: assigneeTeamIds
type: array
- description: filter by assignee company ids
in: query
items:
type: integer
name: assigneeCompanyIds
type: array
- description: filter by custom fields
in: query
items:
type: string
name: CustomFields
type: array
produces:
- application/json
responses:
'200':
description: 200 OK
schema:
$ref: '#/definitions/task.tasksResponseV205'
'400':
description: 400 Bad Request
schema:
$ref: '#/definitions/view.ErrorResponse'
summary: Get all tasks.
tags:
- Tasks
/projects/api/v3/tasklists/{tasklistId}/tasks.json:
post:
consumes:
- application/json
description: Create a new task in the provided task list.
operationId: POST_projects_api_v3_tasklists_{tasklistId}_tasks.json
parameters:
- in: body
name: task.Request
required: true
schema:
$ref: '#/definitions/task.Request'
- in: path
name: tasklistId
required: true
type: integer
produces:
- application/json
responses:
'201':
description: 201 Created
schema:
$ref: '#/definitions/task.responseV205'
'400':
description: 400 Bad Request
schema:
$ref: '#/definitions/view.ErrorResponse'
'403':
description: 403 Forbidden
schema:
$ref: '#/definitions/view.ErrorResponse'
summary: Creates a task.
tags:
- Tasks
x-private: true
'/projects/api/v3/tasks/{taskId}.json':
get:
description: Returns the information about a specific task.
operationId: 'GET_projects_api_v3_tasks_{taskId}.json'
parameters:
- in: path
name: taskId
required: true
type: integer
produces:
- application/json
responses:
'200':
description: 200 OK
schema:
$ref: '#/definitions/task.responseV205'
'400':
description: 400 Bad Request
schema:
$ref: '#/definitions/view.ErrorResponse'
'404':
description: 404 Not Found (no data)
summary: Get a specific task. - V3
tags:
- Tasks
delete:
description: Delete a task and its subtasks.
operationId: 'DELETE_projects_api_v3_tasks_{taskId}.json'
parameters:
- in: path
name: taskId
required: true
type: integer
produces:
- application/json
responses:
'204':
description: 204 No Content (no data)
'400':
description: 400 Bad Request
schema:
$ref: '#/definitions/view.ErrorResponse'
'403':
description: 403 Forbidden
schema:
$ref: '#/definitions/view.ErrorResponse'
'404':
description: 404 Not Found (no data)
summary: Delete an existing task. - V3
tags:
- Tasks
x-private: true
patch:
consumes:
- application/json
description: Modify the properties of an existing task.
operationId: 'PATCH_projects_api_v3_tasks_{taskId}.json'
parameters:
- in: body
name: task.Request
required: true
schema:
$ref: '#/definitions/task.Request'
- in: path
name: taskId
required: true
type: integer
produces:
- application/json
responses:
'200':
description: 200 OK
schema:
$ref: '#/definitions/task.responseV205'
'400':
description: 400 Bad Request
schema:
$ref: '#/definitions/view.ErrorResponse'
'403':
description: 403 Forbidden
schema:
$ref: '#/definitions/view.ErrorResponse'
'404':
description: 404 Not Found (no data)
'409':
description: 409 Conflict
schema:
$ref: '#/definitions/view.ErrorResponse'
summary: Update an existing task. - V3
tags:
- Tasks
x-private: true
/projects/api/v3/tasklists:
get:
operationId: GET_projects_api_v3_tasklists
parameters:
- description: filter by updated after date
format: date-time
in: query
name: updatedAfter
type: string
- description: filter by search term
in: query
name: searchTerm
type: string
- description: filter by project type
in: query
name: projectType
type: string
- default: asc
description: order mode
enum:
- asc
- desc
in: query
name: orderMode
type: string
- default: displayorder
description: order by
enum:
- displayorder
- name
- status
- createdat
- updatedat
- project
in: query
name: orderBy
type: string
- default: 0
description: |-
filter the task list budget by its parent project budget id, if none
is provided it weill default to the current active budget.
in: query
name: projectBudgetId
type: integer
- default: '50'
description: |-
Number of items in a page
See [How does paging work](https://apidocs.teamwork.com/guides/teamwork/how-does-paging-work) for more detailed documentation on pagination.
Minimum: 1
Maximum: 500
in: query
name: pageSize
type: integer
- default: '1'
description: |-
Page number, this is usually used in conjunction with the parameter pageSize.
See [How does paging work](https://apidocs.teamwork.com/guides/teamwork/how-does-paging-work) for more detailed documentation on pagination.
in: query
name: page
type: integer
- description: use formula fields
in: query
name: useFormulaFields
type: boolean
- default: 'false'
description: sort active lists first
in: query
name: sortActiveListsFirst
type: boolean
- description: |-
SkipCounts allows you to skip doing counts on a list API endpoint for
performance reasons.
in: query
name: skipCounts
type: boolean
- default: 'true'
description: include private items
in: query
name: showPrivate
type: boolean
- default: 'false'
description: include deleted items
in: query
name: showDeleted
type: boolean
- default: 'false'
description: include completed items
in: query
name: showCompleted
type: boolean
- default: 'false'
description: this means use the tasklist report endpoint, which has totally different query params
in: query
name: isReportDownload
type: boolean
- description: include archived projects
in: query
name: includeArchivedProjects
type: boolean
- default: 'true'
description: include empty lists
in: query
name: getEmptyLists
type: boolean
- default: 'false'
description: include only completed items
in: query
name: completedOnly
type: boolean
- description: filter by project ids
in: query
items:
type: integer
name: projectIds
type: array
- description: filter by project company ids
in: query
items:
type: integer
name: projectCompanyIds
type: array
- description: include
in: query
items:
enum:
- defaultTasks
- defaultTasks.users
- defaultTasks.teams
- defaultTasks.reminders
- defaultTasks.customfields
- defaultTasks.companies
- createdBy
- updatedBy
- companies
- projects
- milestones
- defaultCustomfields
- defaultCustomfieldTasks
- defaultColumns
- defaultWorkflowStage
- lockdowns
- lockdowns.users
- lockdowns.companies
- lockdowns.teams
- lockdowns.users.companies
- lockdowns.companies.users
- lockdowns.teams.users
type: string
name: include
type: array
- description: filter by ids
in: query
items:
type: integer
name: ids
type: array
- in: query
items:
enum:
- id
- firstName
- lastName
- title
- email
- companyId
- company
- isAdmin
- isClientUser
- isServiceAccount
- type
- deleted
- avatarUrl
- lengthOfDay
- workingHoursId
- workingHour
- userRate
- userCost
- canAddProjects
type: string
name: fields[users]
type: array
- in: query
items:
enum:
- id
- name
- teamLogo
- teamLogoIcon
- teamLogoColor
type: string
name: fields[teams]
type: array
- in: query
items:
enum:
- id
- name
- color
- count
type: string
name: fields[tags]
type: array
- in: query
items:
enum:
- id
- name
type: string
name: fields[projects]
type: array
- in: query
items:
enum:
- id
- name
- description
- deadline
- completed
- projectId
- createdOn
- lastChangedOn
- creatorUserId
- reminder
- private
- lockdownId
- status
- completedOn
- completerId
- percentageComplete
type: string
name: fields[milestones]
type: array
- in: query
items:
enum:
- id
- userID
- updatedAt
- itemType
- itemID
- grantAccessTo
type: string
name: fields[lockdowns]
type: array
- in: query
items:
enum:
- id
- name
- logoUploadedToServer
- logoImage
type: string
name: fields[companies]
type: array
produces:
- application/json
responses:
'200':
description: 200 OK
schema:
$ref: '#/definitions/tasklist.TasklistsResponse'
'400':
description: 400 Bad Request
schema:
$ref: '#/definitions/view.ErrorResponse'
summary: Get all tasklists
tags:
- Task lists
/projects/api/v3/tasklists/{tasklistId}:
get:
operationId: GET_projects_api_v3_tasklists_{tasklistId}
parameters:
- description: filter by updated after date
format: date-time
in: query
name: updatedAfter
type: string
- description: filter by search term
in: query
name: searchTerm
type: string
- description: filter by project type
in: query
name: projectType
type: string
- default: asc
description: order mode
enum:
- asc
- desc
in: query
name: orderMode
type: string
- default: displayorder
description: order by
enum:
- displayorder
- name
- status
- createdat
- updatedat
- project
in: query
name: orderBy
type: string
- in: path
name: tasklistId
required: true
type: integer
- default: 0
description: |-
filter the task list budget by its parent project budget id, if none
is provided it weill default to the current active budget.
in: query
name: projectBudgetId
type: integer
- default: '50'
description: |-
Number of items in a page
See [How does paging work](https://apidocs.teamwork.com/guides/teamwork/how-does-paging-work) for more detailed documentation on pagination.
Minimum: 1
Maximum: 500
in: query
name: pageSize
type: integer
- default: '1'
description: |-
Page number, this is usually used in conjunction with the parameter pageSize.
See [How does paging work](https://apidocs.teamwork.com/guides/teamwork/how-does-paging-work) for more detailed documentation on pagination.
in: query
name: page
type: integer
- description: use formula fields
in: query
name: useFormulaFields
type: boolean
- default: 'false'
description: sort active lists first
in: query
name: sortActiveListsFirst
type: boolean
- description: |-
SkipCounts allows you to skip doing counts on a list API endpoint for
performance reasons.
in: query
name: skipCounts
type: boolean
- default: 'true'
description: include private items
in: query
name: showPrivate
type: boolean
- default: 'false'
description: include deleted items
in: query
name: showDeleted
type: boolean
- default: 'false'
description: include completed items
in: query
name: showCompleted
type: boolean
- default: 'false'
description: this means use the tasklist report endpoint, which has totally different query params
in: query
name: isReportDownload
type: boolean
- description: include archived projects
in: query
name: includeArchivedProjects
type: boolean
- default: 'true'
description: include empty lists
in: query
name: getEmptyLists
type: boolean
- default: 'false'
description: include only completed items
in: query
name: completedOnly
type: boolean
- description: filter by project ids
in: query
items:
type: integer
name: projectIds
type: array
- description: filter by project company ids
in: query
items:
type: integer
name: projectCompanyIds
type: array
- description: include
in: query
items:
enum:
- defaultTasks
- defaultTasks.users
- defaultTasks.teams
- defaultTasks.reminders
- defaultTasks.customfields
- defaultTasks.companies
- createdBy
- updatedBy
- companies
- projects
- milestones
- defaultCustomfields
- defaultCustomfieldTasks
- defaultColumns
- defaultWorkflowStage
- lockdowns
- lockdowns.users
- lockdowns.companies
- lockdowns.teams
- lockdowns.users.companies
- lockdowns.companies.users
- lockdowns.teams.users
type: string
name: include
type: array
- description: filter by ids
in: query
items:
type: integer
name: ids
type: array
- in: query
items:
enum:
- id
- firstName
- lastName
- title
- email
- companyId
- company
- isAdmin
- isClientUser
- isServiceAccount
- type
- deleted
- avatarUrl
- lengthOfDay
- workingHoursId
- workingHour
- userRate
- userCost
- canAddProjects
type: string
name: fields[users]
type: array
- in: query
items:
enum:
- id
- name
- teamLogo
- teamLogoIcon
- teamLogoColor
type: string
name: fields[teams]
type: array
- in: query
items:
enum:
- id
- name
- color
- count
type: string
name: fields[tags]
type: array
- in: query
items:
enum:
- id
- name
type: string
name: fields[projects]
type: array
- in: query
items:
enum:
- id
- name
- description
- deadline
- completed
- projectId
- createdOn
- lastChangedOn
- creatorUserId
- reminder
- private
- lockdownId
- status
- completedOn
- completerId
- percentageComplete
type: string
name: fields[milestones]
type: array
- in: query
items:
enum:
- id
- userID
- updatedAt
- itemType
- itemID
- grantAccessTo
type: string
name: fields[lockdowns]
type: array
- in: query
items:
enum:
- id
- name
- logoUploadedToServer
- logoImage
type: string
name: fields[companies]
type: array
produces:
- application/json
responses:
'200':
description: 200 OK
schema:
$ref: '#/definitions/tasklist.Response'
'400':
description: 400 Bad Request
schema:
$ref: '#/definitions/view.ErrorResponse'
summary: Get specific tasklist
tags:
- Task lists
/projects/api/v3/projects/{projectId}/tasklists:
get:
operationId: GET_projects_api_v3_projects_{projectId}_tasklists
parameters:
- description: filter by updated after date
format: date-time
in: query
name: updatedAfter
type: string
- description: filter by search term
in: query
name: searchTerm
type: string
- description: filter by project type
in: query
name: projectType
type: string
- default: asc
description: order mode
enum:
- asc
- desc
in: query
name: orderMode
type: string
- default: displayorder
description: order by
enum:
- displayorder
- name
- status
- createdat
- updatedat
- project
in: query
name: orderBy
type: string
- in: path
name: projectId
required: true
type: integer
- default: 0
description: |-
filter the task list budget by its parent project budget id, if none
is provided it weill default to the current active budget.
in: query
name: projectBudgetId
type: integer
- default: '50'
description: |-
Number of items in a page
See [How does paging work](https://apidocs.teamwork.com/guides/teamwork/how-does-paging-work) for more detailed documentation on pagination.
Minimum: 1
Maximum: 500
in: query
name: pageSize
type: integer
- default: '1'
description: |-
Page number, this is usually used in conjunction with the parameter pageSize.
See [How does paging work](https://apidocs.teamwork.com/guides/teamwork/how-does-paging-work) for more detailed documentation on pagination.
in: query
name: page
type: integer
- description: use formula fields
in: query
name: useFormulaFields
type: boolean
- default: 'false'
description: sort active lists first
in: query
name: sortActiveListsFirst
type: boolean
- description: |-
SkipCounts allows you to skip doing counts on a list API endpoint for
performance reasons.
in: query
name: skipCounts
type: boolean
- default: 'true'
description: include private items
in: query
name: showPrivate
type: boolean
- default: 'false'
description: include deleted items
in: query
name: showDeleted
type: boolean
- default: 'false'
description: include completed items
in: query
name: showCompleted
type: boolean
- default: 'false'
description: this means use the tasklist report endpoint, which has totally different query params
in: query
name: isReportDownload
type: boolean
- description: include archived projects
in: query
name: includeArchivedProjects
type: boolean
- default: 'true'
description: include empty lists
in: query
name: getEmptyLists
type: boolean
- default: 'false'
description: include only completed items
in: query
name: completedOnly
type: boolean
- description: filter by project ids
in: query
items:
type: integer
name: projectIds
type: array
- description: filter by project company ids
in: query
items:
type: integer
name: projectCompanyIds
type: array
- description: include
in: query
items:
enum:
- defaultTasks
- defaultTasks.users
- defaultTasks.teams
- defaultTasks.reminders
- defaultTasks.customfields
- defaultTasks.companies
- createdBy
- updatedBy
- companies
- projects
- milestones
- defaultCustomfields
- defaultCustomfieldTasks
- defaultColumns
- defaultWorkflowStage
- lockdowns
- lockdowns.users
- lockdowns.companies
- lockdowns.teams
- lockdowns.users.companies
- lockdowns.companies.users
- lockdowns.teams.users
type: string
name: include
type: array
- description: filter by ids
in: query
items:
type: integer
name: ids
type: array
- in: query
items:
enum:
- id
- firstName
- lastName
- title
- email
- companyId
- company
- isAdmin
- isClientUser
- isServiceAccount
- type
- deleted
- avatarUrl
- lengthOfDay
- workingHoursId
- workingHour
- userRate
- userCost
- canAddProjects
type: string
name: fields[users]
type: array
- in: query
items:
enum:
- id
- name
- teamLogo
- teamLogoIcon
- teamLogoColor
type: string
name: fields[teams]
type: array
- in: query
items:
enum:
- id
- name
- color
- count
type: string
name: fields[tags]
type: array
- in: query
items:
enum:
- id
- name
type: string
name: fields[projects]
type: array
- in: query
items:
enum:
- id
- name
- description
- deadline
- completed
- projectId
- createdOn
- lastChangedOn
- creatorUserId
- reminder
- private
- lockdownId
- status
- completedOn
- completerId
- percentageComplete
type: string
name: fields[milestones]
type: array
- in: query
items:
enum:
- id
- userID
- updatedAt
- itemType
- itemID
- grantAccessTo
type: string
name: fields[lockdowns]
type: array
- in: query
items:
enum:
- id
- name
- logoUploadedToServer
- logoImage
type: string
name: fields[companies]
type: array
produces:
- application/json
responses:
'200':
description: 200 OK
schema:
$ref: '#/definitions/tasklist.TasklistsResponse'
'400':
description: 400 Bad Request
schema:
$ref: '#/definitions/view.ErrorResponse'
'403':
description: 403 Forbidden
schema:
$ref: '#/definitions/view.ErrorResponse'
summary: Get tasklists in a project
tags:
- Task lists
/projects/{id}/tasklists.json:
parameters:
- name: id
in: path
required: true
type: string
post:
operationId: POST_projects-id-tasklists-json
summary: Create Task List
tags:
- Task lists
description: |-
Creates a new task list based on the submitted JSON or XML data. If you wish to base the new list on a task list template that you’ve created previously, you can specify the todo-list-template-id field in the data, and the new list will default to the name, description, and tasks indicated by that template.
<h4>Additional notes:</h4>
<h4>Task List Template Options</h4>
When you're creating the tasklist using a todo-list-template-id you can pass the following:
- todo-list-template-id
- todo-list-template-start-date (Blank or YYYYMMDD format e.g: 20150314)
- todo-list-template-keep-off-weekends (Boolean: default false)
- todo-list-template-assignments (Blank or struct): The format of the todo-list-template-assignments struct should be the defined role name in creation of the Task List Template, and the value being a comma separated list of user-ids to assign the task to.
<h4>Additonal Options</h4>
You can pass 'addToTop:true' to force the new item to the top of the tasklists list. The default is false which adds the item to the bottom of the list of tasklists.
---
parameters:
- name: body
in: body
schema:
type: object
properties:
applyDefaultsToExistingTasks:
type: boolean
description: 'Will over ride existing tasks in the task list with these new defaults. '
default: false
todo-list:
type: object
properties:
new-task-defaults:
type: object
description: The defaults you choose will apply to the individual tasks added to the task list.
properties:
description:
type: string
description: 'Default description on all tasks created in this task list. '
start-date-offset:
type: string
example: '1'
description: Start date - Day 1 (Today), Day 2 (Tomorrow), through to day 365.
due-date-offset:
type: string
description: Due date - Day 1 (Today), Day 2 (Tomorrow), through to day 365.
example: '10'
responsible-party-id:
type: string
description: Who should do this - choose specific person id, company id, or team id to be assigned to tasks.
priority:
type: integer
priorityText:
type: string
description: 'low, medium, high prority of the tasks. '
estimated-minutes:
type: integer
tags:
type: array
description: Default tags for tasks in this task list.
items:
type: object
properties:
id:
type: integer
color:
type: string
name:
type: string
projectId:
type: integer
column-id:
type: integer
reminders:
type: array
items:
type: object
properties:
user-id:
type: integer
type:
type: string
note:
type: string
people-assigned:
type: boolean
isRelative:
type: boolean
relative-number-days:
type: integer
usingOffSetDueDate:
type: boolean
time:
type: string
removeAllReminders:
type: boolean
comment-follower-ids:
type: string
description: 'ids of users, teams, companies that you want to follow these tasks. '
change-follower-ids:
type: string
description: 'ids of users, teams, companies that you want to follow these tasks. '
grant-access-to:
type: string
description: ids of users, teams, companies that you want to have access to these tasks. Default permissions will be used if none are provided here.
private:
type: boolean
customFields:
type: array
description: array of custom fields. Use the custom field endpoint in V3 to create a custom field.
items:
type: object
properties:
customFieldId:
type: integer
value:
type: string
pendingFileAttachments:
type: array
description: Default attachments for tasks under this task list.
items:
type: object
responses:
'201':
description: ''
schema:
type: object
properties:
TASKLISTID:
type: string
STATUS:
type: string
examples:
application/json:
TASKLISTID: '1234'
STATUS: OK
put:
operationId: PUT_tasklists-id-json
summary: Update Task List
tags:
- Task lists
description: |-
Updates the specified task list record with the changes indicated by the submitted data.
---
parameters:
- name: body
in: body
schema:
type: object
properties:
applyDefaultsToExistingTasks:
type: boolean
description: 'Will over ride existing tasks in the task list with these new defaults. '
default: false
todo-list:
type: object
properties:
new-task-defaults:
type: object
description: The defaults you choose will apply to the individual tasks added to the task list.
properties:
description:
type: string
description: 'Default description on all tasks created in this task list. '
start-date-offset:
type: string
example: '1'
description: Start date - Day 1 (Today), Day 2 (Tomorrow), through to day 365.
due-date-offset:
type: string
description: Due date - Day 1 (Today), Day 2 (Tomorrow), through to day 365.
example: '10'
responsible-party-id:
type: string
description: Who should do this - choose specific person id, company id, or team id to be assigned to tasks.
priority:
type: integer
priorityText:
type: string
description: 'low, medium, high prority of the tasks. '
estimated-minutes:
type: integer
tags:
type: array
description: Default tags for tasks in this task list.
items:
type: object
properties:
id:
type: integer
color:
type: string
name:
type: string
projectId:
type: integer
column-id:
type: integer
reminders:
type: array
items:
type: object
properties:
user-id:
type: integer
type:
type: string
note:
type: string
people-assigned:
type: boolean
isRelative:
type: boolean
relative-number-days:
type: integer
usingOffSetDueDate:
type: boolean
time:
type: string
removeAllReminders:
type: boolean
comment-follower-ids:
type: string
description: 'ids of users, teams, companies that you want to follow these tasks. '
change-follower-ids:
type: string
description: 'ids of users, teams, companies that you want to follow these tasks. '
grant-access-to:
type: string
description: ids of users, teams, companies that you want to have access to these tasks. Default permissions will be used if none are provided here.
private:
type: boolean
customFields:
type: array
description: array of custom fields. Use the custom field endpoint in V3 to create a custom field.
items:
type: object
properties:
customFieldId:
type: integer
value:
type: string
pendingFileAttachments:
type: array
description: Default attachments for tasks under this task list.
items:
type: object
responses:
'200':
description: ''
schema:
type: object
properties:
STATUS:
type: string
examples:
application/json:
STATUS: OK
/projects/{id}/tasklists/reorder.json:
parameters:
- name: id
in: path
required: true
type: string
put:
operationId: PUT_projects-id-tasklists-reorder-json
summary: Reorder Lists
tags:
- Task lists
description: |-
Whatever task you pass in here will go on the top of the task list. Everything else will get pushed down underneath.
---
parameters:
- name: body
in: body
schema:
type: object
properties:
todo-lists:
type: array
items:
type: object
properties:
todo-list:
type: object
properties:
id:
type: string
example:
todo-lists:
- todo-list:
id: '1000'
- todo-list:
id: '999'
responses:
'200':
description: ''
schema:
type: object
properties:
STATUS:
type: string
examples:
application/json:
STATUS: OK
/tasklist/{id}/copy.json:
parameters:
- name: id
in: path
required: true
type: string
put:
operationId: PUT_tasklist-id-copy-json
summary: Copy a Task List, or Copy a Task List to another Project
tags:
- Task lists
description: |-
To copy a task list, use the ID of the task list you want to copy in the URL. Inside the body of the request, use the project ID you want to copy the task list too. You can also decide to include completed tasks when copying over.
---
parameters:
- name: body
in: body
schema:
type: object
properties:
projectId:
type: integer
includeCompletedTasks:
type: integer
example:
projectId: 999
includeCompletedTasks: 1
responses:
'200':
description: ''
schema:
type: object
properties:
STATUS:
type: string
examples:
application/json:
STATUS: OK
/tasklist/{id}/move.json:
parameters:
- name: id
in: path
required: true
type: string
put:
operationId: PUT_tasklist-id-move-json
summary: Move a Task List to another Project
tags:
- Task lists
description: '---'
parameters:
- name: body
in: body
schema:
type: object
properties:
projectId:
type: string
required:
- projectId
example:
projectId: '999'
responses:
'200':
description: ''
schema:
type: object
properties:
STATUS:
type: string
examples:
application/json:
STATUS: OK
/projects/api/v3/tasklists/{tasklistId}.json:
delete:
operationId: DELETE_projects_api_v3_tasklists_{tasklistId}.json
parameters:
- in: path
name: tasklistId
required: true
type: integer
produces:
- application/json
responses:
'204':
description: 204 No Content (no data)
'400':
description: 400 Bad Request
schema:
$ref: '#/definitions/view.ErrorResponse'
'403':
description: 403 Forbidden
schema:
$ref: '#/definitions/view.ErrorResponse'
'404':
description: 404 Not Found (no data)
summary: Delete an existing tasklist.
tags:
- Task lists
/tasklists/templates.json:
get:
operationId: GET_tasklists-templates-json
summary: 'Template Task Lists: get all template task lists'
tags:
- Task lists
description: |-
Please note: This is only available for API Keys associated with Administrators in the Owner Company.
---
responses:
'200':
description: ''
schema:
type: object
properties:
tasklists:
type: array
items:
type: object
properties:
name:
type: string
description:
type: string
uncompleted-count:
type: string
id:
type: string
complete:
type: boolean
private:
type: boolean
position:
type: string
STATUS:
type: string
examples:
application/json:
tasklists:
- name: Example Template
description: ''
uncompleted-count: '2'
id: '830'
complete: false
private: false
position: '3996'
STATUS: OK
/projects/api/v3/milestones.json:
get:
description: |-
All milestones are returned on projects that the authenticated user is
associated with. You can use the provided filters to return only those
milestones that are incomplete, completed, upcoming or late. All milestones
are returning in this call. This call uses pagination, returning 100
milestones per page by default.
operationId: GET_projects_api_v3_milestones.json
parameters:
- description: filter by updated after date (deprecated, use updatedAfter)
format: date-time
in: query
name: updatedAfterDate
type: string
- description: filter by updated after date
format: date-time
in: query
name: updatedAfter
type: string
- description: filter by milestone name and description
in: query
name: searchTerm
type: string
- default: agenda
description: define the type of the report
enum:
- plannedvsactual
- calendar
- agenda
in: query
name: reportType
type: string
- description: define the format of the report
in: query
name: reportFormat
type: string
- description: filter by project status
in: query
name: projectStatus
type: string
- default: asc
description: order mode
enum:
- asc
- desc
in: query
name: orderMode
type: string
- default: date
description: order by
enum:
- date
- dateonly
- name
- project
- user
- dateCreated
- dateUpdated
in: query
name: orderBy
type: string
- description: filter by due before date (deprecated, use dueBefore)
format: date
in: query
name: dueBeforeDate
type: string
- description: filter by due before date
format: date
in: query
name: dueBefore
type: string
- description: filter by due after date (deprecated, use dueAfter)
format: date
in: query
name: dueAfterDate
type: string
- description: filter by due after date
format: date
in: query
name: dueAfter
type: string
- default: '50'
description: |-
Number of items in a page
See [How does paging work](https://apidocs.teamwork.com/guides/teamwork/how-does-paging-work) for more detailed documentation on pagination.
Minimum: 1
Maximum: 500
in: query
name: pageSize
type: integer
- default: '1'
description: |-
Page number, this is usually used in conjunction with the parameter pageSize.
See [How does paging work](https://apidocs.teamwork.com/guides/teamwork/how-does-paging-work) for more detailed documentation on pagination.
in: query
name: page
type: integer
- default: 'true'
description: show private milestones
in: query
name: showPrivate
type: boolean
- default: 'false'
description: include deleted items
in: query
name: showDeleted
type: boolean
- description: show attached tasklists
in: query
name: showAttachedTasklists
type: boolean
- description: include companies and teams in the search term
in: query
name: searchCompaniesTeams
type: boolean
- description: include assignees in the search
in: query
name: searchAssignees
type: boolean
- default: 'false'
description: include percentage of tasks completed for all linked tasklists (deprecated, use includePercentageComplete)
in: query
name: progress
type: boolean
- description: filter by starred projects only
in: query
name: onlyStarredProjects
type: boolean
- default: 'false'
description: filter by projects that the logged-in user is related
in: query
name: onlyMyProjects
type: boolean
- description: |-
only include milestones from projects where the user is strictly a project admin.
site admins have visibility to all projects.
in: query
name: onlyAdminProjects
type: boolean
- description: match all milestone tags
in: query
name: matchAllTags
type: boolean
- description: match all project tags
in: query
name: matchAllProjectTags
type: boolean
- description: generate a report document
in: query
name: isReportDownload
type: boolean
- description: include milestones latest update action
in: query
name: includeUpdate
type: boolean
- default: 'true'
description: include today when milestone status is upcoming
in: query
name: includeToday
type: boolean
- default: 'true'
description: include team users to the responsible party ids
in: query
name: includeTeamUserIds
type: boolean
- default: 'true'
description: include tags in the reports
in: query
name: includeTags
type: boolean
- default: 'false'
description: include percentage of tasks completed for all linked tasklists (deprecated, use includePercentageComplete)
in: query
name: includeProgress
type: boolean
- default: 'false'
description: include percentage of tasks completed for all linked tasklists
in: query
name: includePercentageComplete
type: boolean
- description: optional to include completed milestones
in: query
name: includeCompleted
type: boolean
- default: 'true'
description: include company users to the responsible party ids
in: query
name: includeCompanyUserIds
type: boolean
- description: include teams related to the responsible user ids
in: query
name: includeAssigneeTeams
type: boolean
- description: include companies related to the responsible user ids
in: query
name: includeAssigneeCompanies
type: boolean
- default: 'false'
description: include archived projects
in: query
name: includeArchivedProjects
type: boolean
- default: 'true'
description: convert emoji alias to unicode
in: query
name: emoji
type: boolean
- default: 'false'
description: count unread comments
in: query
name: countUnreadComments
type: boolean
- default: 'false'
description: enables the calendar style layout
in: query
name: calendar
type: boolean
- description: filter by milestone tag ids
in: query
items:
type: integer
name: tagIds
type: array
- description: filter by list of milestone status
in: query
items:
enum:
- all
- new
- reopened
- completed
- deleted
- pending
- incomplete
- late
- today
- upcoming
type: string
name: status
type: array
- description: customise the report by selecting columns to be displayed.
in: query
items:
type: string
name: selectedColumns
type: array
- description: filter by project tag ids
in: query
items:
type: integer
name: projectTagIds
type: array
- description: filter by list of project status
in: query
items:
type: string
name: projectStatuses
type: array
- description: filter by project owner ids
in: query
items:
type: integer
name: projectOwnerIds
type: array
- description: filter by project ids
in: query
items:
type: integer
name: projectIds
type: array
- description: filter by list of project health
in: query
items:
type: integer
name: projectHealths
type: array
- description: filter by list of project health (deprecated, use projectHealths)
in: query
items:
type: integer
name: projectHealth
type: array
- description: filter by company ids
in: query
items:
type: integer
name: projectCompanyIds
type: array
- description: filter by project category ids
in: query
items:
type: integer
name: projectCategoryIds
type: array
- description: include
in: query
items:
enum:
- projects
- projects.companies
- projects.categories
- users
- completedBy
- createdBy
- deletedBy
- updatedBy
- commentFollowers
- changeFollowers
- tags
- tasklists
- tasklisttaskstats
type: string
name: include
type: array
- description: filter by ids
in: query
items:
type: integer
name: ids
type: array
- description: filter by followers' ids
in: query
items:
type: integer
name: followerIds
type: array
- in: query
items:
enum:
- id
- firstName
- lastName
- title
- email
- companyId
- company
- isAdmin
- isClientUser
- isServiceAccount
- type
- deleted
- avatarUrl
- lengthOfDay
- workingHoursId
- workingHour
- userRate
- userCost
- canAddProjects
type: string
name: fields[users]
type: array
- in: query
items:
enum:
- id
- name
- projectId
- milestoneId
type: string
name: fields[tasklists]
type: array
- in: query
items:
enum:
- id
- name
- color
- count
type: string
name: fields[tags]
type: array
- in: query
items:
enum:
- id
- name
type: string
name: fields[projects]
type: array
- in: query
items:
enum:
- id
- name
- description
- deadline
- completed
- projectId
- createdOn
- lastChangedOn
- creatorUserId
- reminder
- private
- lockdownId
- status
- completedOn
- completerId
- percentageComplete
type: string
name: fields[milestones]
type: array
- in: query
items:
enum:
- id
- name
- logoUploadedToServer
- logoImage
type: string
name: fields[companies]
type: array
- description: filter by creators' ids
in: query
items:
type: integer
name: creatorIds
type: array
- description: filter by assigned user ids
in: query
items:
type: integer
name: assignedToUserIds
type: array
- description: filter by assigned team ids
in: query
items:
type: integer
name: assignedToTeamIds
type: array
- description: filter by assigned company ids
in: query
items:
type: integer
name: assignedToCompanyIds
type: array
produces:
- application/json
responses:
'200':
description: 200 OK
schema:
$ref: '#/definitions/milestone.MilestonesResponse'
'400':
description: 400 Bad Request
schema:
$ref: '#/definitions/view.ErrorResponse'
summary: Get all milestones
tags:
- Milestones
/projects/api/v3/milestones/{milestonId}.json:
get:
description: This returns all details about an individual milestone.
operationId: GET_projects_api_v3_milestones_{milestonId}.json
parameters:
- description: filter by updated after date (deprecated, use updatedAfter)
format: date-time
in: query
name: updatedAfterDate
type: string
- description: filter by updated after date
format: date-time
in: query
name: updatedAfter
type: string
- description: filter by milestone name and description
in: query
name: searchTerm
type: string
- default: agenda
description: define the type of the report
enum:
- plannedvsactual
- calendar
- agenda
in: query
name: reportType
type: string
- description: define the format of the report
in: query
name: reportFormat
type: string
- description: filter by project status
in: query
name: projectStatus
type: string
- default: asc
description: order mode
enum:
- asc
- desc
in: query
name: orderMode
type: string
- default: date
description: order by
enum:
- date
- dateonly
- name
- project
- user
- dateCreated
- dateUpdated
in: query
name: orderBy
type: string
- description: filter by due before date (deprecated, use dueBefore)
format: date
in: query
name: dueBeforeDate
type: string
- description: filter by due before date
format: date
in: query
name: dueBefore
type: string
- description: filter by due after date (deprecated, use dueAfter)
format: date
in: query
name: dueAfterDate
type: string
- description: filter by due after date
format: date
in: query
name: dueAfter
type: string
- default: '50'
description: |-
Number of items in a page
See [How does paging work](https://apidocs.teamwork.com/guides/teamwork/how-does-paging-work) for more detailed documentation on pagination.
Minimum: 1
Maximum: 500
in: query
name: pageSize
type: integer
- default: '1'
description: |-
Page number, this is usually used in conjunction with the parameter pageSize.
See [How does paging work](https://apidocs.teamwork.com/guides/teamwork/how-does-paging-work) for more detailed documentation on pagination.
in: query
name: page
type: integer
- in: path
name: milestonId
required: true
type: integer
- default: 'true'
description: show private milestones
in: query
name: showPrivate
type: boolean
- default: 'false'
description: include deleted items
in: query
name: showDeleted
type: boolean
- description: show attached tasklists
in: query
name: showAttachedTasklists
type: boolean
- description: include companies and teams in the search term
in: query
name: searchCompaniesTeams
type: boolean
- description: include assignees in the search
in: query
name: searchAssignees
type: boolean
- default: 'false'
description: include percentage of tasks completed for all linked tasklists (deprecated, use includePercentageComplete)
in: query
name: progress
type: boolean
- description: filter by starred projects only
in: query
name: onlyStarredProjects
type: boolean
- default: 'false'
description: filter by projects that the logged-in user is related
in: query
name: onlyMyProjects
type: boolean
- description: |-
only include milestones from projects where the user is strictly a project admin.
site admins have visibility to all projects.
in: query
name: onlyAdminProjects
type: boolean
- description: match all milestone tags
in: query
name: matchAllTags
type: boolean
- description: match all project tags
in: query
name: matchAllProjectTags
type: boolean
- description: generate a report document
in: query
name: isReportDownload
type: boolean
- description: include milestones latest update action
in: query
name: includeUpdate
type: boolean
- default: 'true'
description: include today when milestone status is upcoming
in: query
name: includeToday
type: boolean
- default: 'true'
description: include team users to the responsible party ids
in: query
name: includeTeamUserIds
type: boolean
- default: 'true'
description: include tags in the reports
in: query
name: includeTags
type: boolean
- default: 'false'
description: include percentage of tasks completed for all linked tasklists (deprecated, use includePercentageComplete)
in: query
name: includeProgress
type: boolean
- default: 'false'
description: include percentage of tasks completed for all linked tasklists
in: query
name: includePercentageComplete
type: boolean
- description: optional to include completed milestones
in: query
name: includeCompleted
type: boolean
- default: 'true'
description: include company users to the responsible party ids
in: query
name: includeCompanyUserIds
type: boolean
- description: include teams related to the responsible user ids
in: query
name: includeAssigneeTeams
type: boolean
- description: include companies related to the responsible user ids
in: query
name: includeAssigneeCompanies
type: boolean
- default: 'false'
description: include archived projects
in: query
name: includeArchivedProjects
type: boolean
- default: 'true'
description: convert emoji alias to unicode
in: query
name: emoji
type: boolean
- default: 'false'
description: count unread comments
in: query
name: countUnreadComments
type: boolean
- default: 'false'
description: enables the calendar style layout
in: query
name: calendar
type: boolean
- description: filter by milestone tag ids
in: query
items:
type: integer
name: tagIds
type: array
- description: filter by list of milestone status
in: query
items:
enum:
- all
- new
- reopened
- completed
- deleted
- pending
- incomplete
- late
- today
- upcoming
type: string
name: status
type: array
- description: customise the report by selecting columns to be displayed.
in: query
items:
type: string
name: selectedColumns
type: array
- description: filter by project tag ids
in: query
items:
type: integer
name: projectTagIds
type: array
- description: filter by list of project status
in: query
items:
type: string
name: projectStatuses
type: array
- description: filter by project owner ids
in: query
items:
type: integer
name: projectOwnerIds
type: array
- description: filter by project ids
in: query
items:
type: integer
name: projectIds
type: array
- description: filter by list of project health
in: query
items:
type: integer
name: projectHealths
type: array
- description: filter by list of project health (deprecated, use projectHealths)
in: query
items:
type: integer
name: projectHealth
type: array
- description: filter by company ids
in: query
items:
type: integer
name: projectCompanyIds
type: array
- description: filter by project category ids
in: query
items:
type: integer
name: projectCategoryIds
type: array
- description: include
in: query
items:
enum:
- projects
- projects.companies
- projects.categories
- users
- completedBy
- createdBy
- deletedBy
- updatedBy
- commentFollowers
- changeFollowers
- tags
- tasklists
- tasklisttaskstats
type: string
name: include
type: array
- description: filter by ids
in: query
items:
type: integer
name: ids
type: array
- description: filter by followers' ids
in: query
items:
type: integer
name: followerIds
type: array
- in: query
items:
enum:
- id
- firstName
- lastName
- title
- email
- companyId
- company
- isAdmin
- isClientUser
- isServiceAccount
- type
- deleted
- avatarUrl
- lengthOfDay
- workingHoursId
- workingHour
- userRate
- userCost
- canAddProjects
type: string
name: fields[users]
type: array
- in: query
items:
enum:
- id
- name
- projectId
- milestoneId
type: string
name: fields[tasklists]
type: array
- in: query
items:
enum:
- id
- name
- color
- count
type: string
name: fields[tags]
type: array
- in: query
items:
enum:
- id
- name
type: string
name: fields[projects]
type: array
- in: query
items:
enum:
- id
- name
- description
- deadline
- completed
- projectId
- createdOn
- lastChangedOn
- creatorUserId
- reminder
- private
- lockdownId
- status
- completedOn
- completerId
- percentageComplete
type: string
name: fields[milestones]
type: array
- in: query
items:
enum:
- id
- name
- logoUploadedToServer
- logoImage
type: string
name: fields[companies]
type: array
- description: filter by creators' ids
in: query
items:
type: integer
name: creatorIds
type: array
- description: filter by assigned user ids
in: query
items:
type: integer
name: assignedToUserIds
type: array
- description: filter by assigned team ids
in: query
items:
type: integer
name: assignedToTeamIds
type: array
- description: filter by assigned company ids
in: query
items:
type: integer
name: assignedToCompanyIds
type: array
produces:
- application/json
responses:
'200':
description: 200 OK
schema:
$ref: '#/definitions/milestone.Response'
'400':
description: 400 Bad Request
schema:
$ref: '#/definitions/view.ErrorResponse'
summary: Get a milestone by id.
tags:
- Milestones
/projects/api/v3/projects/{projectId}/milestones.json:
get:
description: |-
This lets you query the list of milestones for a project. You can use the
provided filters to return only those milestones that are incomplete,
completed, upcoming or late. This call uses pagination, returning 100
milestones per page by default.
operationId: GET_projects_api_v3_projects_{projectId}_milestones.json
parameters:
- description: filter by updated after date (deprecated, use updatedAfter)
format: date-time
in: query
name: updatedAfterDate
type: string
- description: filter by updated after date
format: date-time
in: query
name: updatedAfter
type: string
- description: filter by milestone name and description
in: query
name: searchTerm
type: string
- default: agenda
description: define the type of the report
enum:
- plannedvsactual
- calendar
- agenda
in: query
name: reportType
type: string
- description: define the format of the report
in: query
name: reportFormat
type: string
- description: filter by project status
in: query
name: projectStatus
type: string
- default: asc
description: order mode
enum:
- asc
- desc
in: query
name: orderMode
type: string
- default: date
description: order by
enum:
- date
- dateonly
- name
- project
- user
- dateCreated
- dateUpdated
in: query
name: orderBy
type: string
- description: filter by due before date (deprecated, use dueBefore)
format: date
in: query
name: dueBeforeDate
type: string
- description: filter by due before date
format: date
in: query
name: dueBefore
type: string
- description: filter by due after date (deprecated, use dueAfter)
format: date
in: query
name: dueAfterDate
type: string
- description: filter by due after date
format: date
in: query
name: dueAfter
type: string
- in: path
name: projectId
required: true
type: integer
- default: '50'
description: |-
Number of items in a page
See [How does paging work](https://apidocs.teamwork.com/guides/teamwork/how-does-paging-work) for more detailed documentation on pagination.
Minimum: 1
Maximum: 500
in: query
name: pageSize
type: integer
- default: '1'
description: |-
Page number, this is usually used in conjunction with the parameter pageSize.
See [How does paging work](https://apidocs.teamwork.com/guides/teamwork/how-does-paging-work) for more detailed documentation on pagination.
in: query
name: page
type: integer
- default: 'true'
description: show private milestones
in: query
name: showPrivate
type: boolean
- default: 'false'
description: include deleted items
in: query
name: showDeleted
type: boolean
- description: show attached tasklists
in: query
name: showAttachedTasklists
type: boolean
- description: include companies and teams in the search term
in: query
name: searchCompaniesTeams
type: boolean
- description: include assignees in the search
in: query
name: searchAssignees
type: boolean
- default: 'false'
description: include percentage of tasks completed for all linked tasklists (deprecated, use includePercentageComplete)
in: query
name: progress
type: boolean
- description: filter by starred projects only
in: query
name: onlyStarredProjects
type: boolean
- default: 'false'
description: filter by projects that the logged-in user is related
in: query
name: onlyMyProjects
type: boolean
- description: |-
only include milestones from projects where the user is strictly a project admin.
site admins have visibility to all projects.
in: query
name: onlyAdminProjects
type: boolean
- description: match all milestone tags
in: query
name: matchAllTags
type: boolean
- description: match all project tags
in: query
name: matchAllProjectTags
type: boolean
- description: generate a report document
in: query
name: isReportDownload
type: boolean
- description: include milestones latest update action
in: query
name: includeUpdate
type: boolean
- default: 'true'
description: include today when milestone status is upcoming
in: query
name: includeToday
type: boolean
- default: 'true'
description: include team users to the responsible party ids
in: query
name: includeTeamUserIds
type: boolean
- default: 'true'
description: include tags in the reports
in: query
name: includeTags
type: boolean
- default: 'false'
description: include percentage of tasks completed for all linked tasklists (deprecated, use includePercentageComplete)
in: query
name: includeProgress
type: boolean
- default: 'false'
description: include percentage of tasks completed for all linked tasklists
in: query
name: includePercentageComplete
type: boolean
- description: optional to include completed milestones
in: query
name: includeCompleted
type: boolean
- default: 'true'
description: include company users to the responsible party ids
in: query
name: includeCompanyUserIds
type: boolean
- description: include teams related to the responsible user ids
in: query
name: includeAssigneeTeams
type: boolean
- description: include companies related to the responsible user ids
in: query
name: includeAssigneeCompanies
type: boolean
- default: 'false'
description: include archived projects
in: query
name: includeArchivedProjects
type: boolean
- default: 'true'
description: convert emoji alias to unicode
in: query
name: emoji
type: boolean
- default: 'false'
description: count unread comments
in: query
name: countUnreadComments
type: boolean
- default: 'false'
description: enables the calendar style layout
in: query
name: calendar
type: boolean
- description: filter by milestone tag ids
in: query
items:
type: integer
name: tagIds
type: array
- description: filter by list of milestone status
in: query
items:
enum:
- all
- new
- reopened
- completed
- deleted
- pending
- incomplete
- late
- today
- upcoming
type: string
name: status
type: array
- description: customise the report by selecting columns to be displayed.
in: query
items:
type: string
name: selectedColumns
type: array
- description: filter by project tag ids
in: query
items:
type: integer
name: projectTagIds
type: array
- description: filter by list of project status
in: query
items:
type: string
name: projectStatuses
type: array
- description: filter by project owner ids
in: query
items:
type: integer
name: projectOwnerIds
type: array
- description: filter by project ids
in: query
items:
type: integer
name: projectIds
type: array
- description: filter by list of project health
in: query
items:
type: integer
name: projectHealths
type: array
- description: filter by list of project health (deprecated, use projectHealths)
in: query
items:
type: integer
name: projectHealth
type: array
- description: filter by company ids
in: query
items:
type: integer
name: projectCompanyIds
type: array
- description: filter by project category ids
in: query
items:
type: integer
name: projectCategoryIds
type: array
- description: include
in: query
items:
enum:
- projects
- projects.companies
- projects.categories
- users
- completedBy
- createdBy
- deletedBy
- updatedBy
- commentFollowers
- changeFollowers
- tags
- tasklists
- tasklisttaskstats
type: string
name: include
type: array
- description: filter by ids
in: query
items:
type: integer
name: ids
type: array
- description: filter by followers' ids
in: query
items:
type: integer
name: followerIds
type: array
- in: query
items:
enum:
- id
- firstName
- lastName
- title
- email
- companyId
- company
- isAdmin
- isClientUser
- isServiceAccount
- type
- deleted
- avatarUrl
- lengthOfDay
- workingHoursId
- workingHour
- userRate
- userCost
- canAddProjects
type: string
name: fields[users]
type: array
- in: query
items:
enum:
- id
- name
- projectId
- milestoneId
type: string
name: fields[tasklists]
type: array
- in: query
items:
enum:
- id
- name
- color
- count
type: string
name: fields[tags]
type: array
- in: query
items:
enum:
- id
- name
type: string
name: fields[projects]
type: array
- in: query
items:
enum:
- id
- name
- description
- deadline
- completed
- projectId
- createdOn
- lastChangedOn
- creatorUserId
- reminder
- private
- lockdownId
- status
- completedOn
- completerId
- percentageComplete
type: string
name: fields[milestones]
type: array
- in: query
items:
enum:
- id
- name
- logoUploadedToServer
- logoImage
type: string
name: fields[companies]
type: array
- description: filter by creators' ids
in: query
items:
type: integer
name: creatorIds
type: array
- description: filter by assigned user ids
in: query
items:
type: integer
name: assignedToUserIds
type: array
- description: filter by assigned team ids
in: query
items:
type: integer
name: assignedToTeamIds
type: array
- description: filter by assigned company ids
in: query
items:
type: integer
name: assignedToCompanyIds
type: array
produces:
- application/json
responses:
'200':
description: 200 OK
schema:
$ref: '#/definitions/milestone.MilestonesResponse'
'400':
description: 400 Bad Request
schema:
$ref: '#/definitions/view.ErrorResponse'
'403':
description: 403 Forbidden
schema:
$ref: '#/definitions/view.ErrorResponse'
summary: Get milestones in a project
tags:
- Milestones
/projects/api/v3/milestones/metrics/deadlines.json:
get:
description: |-
Count the number of milestones on each deadline date. Only the milestones
that the logged-in user can access will be included in the counting.
operationId: GET_projects_api_v3_milestones_metrics_deadlines.json
parameters:
- format: date
in: query
name: startDate
type: string
- format: date
in: query
name: endDate
type: string
produces:
- application/json
responses:
'200':
description: 200 OK
schema:
$ref: '#/definitions/deadline.MilestoneMetricDeadlinesResponse'
'400':
description: 400 Bad Request
schema:
$ref: '#/definitions/view.ErrorResponse'
summary: Get milestones by due date in a time range
tags:
- Milestones
/projects/{id}/milestones.json:
parameters:
- name: id
in: path
required: true
type: string
post:
operationId: POST_projects-id-milestones-json
summary: Create a Single Milestone
tags:
- Milestones
description: |-
This API call will create a single milestone.
NOTE:
For creating a milestone, only the parameters that are required are title, deadline and responsible party.
For updating, only the parameter you are updating is required in the body.
---
parameters:
- name: body
in: body
schema:
type: object
properties:
milestone:
type: object
properties:
changeFollowerIds:
type: string
description:
type: string
deadline:
type: string
description: 'Date field for milestone due date. Passed in as string format: YYYYMMDD'
example: '20211212'
notify:
type: boolean
responsible-party-ids:
type: string
tagIds:
type: string
reminder:
type: boolean
title:
type: string
taskListIds:
type: array
items:
type: string
grant-access-to:
type: string
private:
type: boolean
move-upcoming-milestones:
type: boolean
move-upcoming-milestones-off-weekends:
type: boolean
responses:
'201':
description: ''
schema:
type: object
properties:
milestoneid:
type: integer
STATUS:
type: string
examples:
application/json:
milestoneid: 1234
STATUS: OK
/milestones/{id}/complete.json:
parameters:
- name: id
in: path
required: true
type: string
put:
operationId: PUT_milestones-id-complete-json
summary: Complete a Milestone
tags:
- Milestones
description: |-
Marks the specified milestone as complete.
---
responses:
'200':
description: ''
schema:
type: object
properties:
STATUS:
type: string
examples:
application/json:
STATUS: OK
/milestones/{id}/uncomplete.json:
parameters:
- name: id
in: path
required: true
type: string
put:
operationId: PUT_milestones-id-uncomplete-json
summary: Un-complete a Milestone
tags:
- Milestones
description: |-
Marks the specified milestone as un-complete.
---
responses:
'200':
description: ''
schema:
type: object
properties:
STATUS:
type: string
examples:
application/json:
STATUS: OK
/milestones/{id}.json:
parameters:
- name: id
in: path
required: true
type: string
put:
operationId: PUT_milestones-id-json
summary: Update a Single Milestone
tags:
- Milestones
description: |-
Modifies a single milestone. You can use this to shift the deadline of a single milestone, and optionally shift the deadlines of subsequent milestones as well.
---
parameters:
- name: body
in: body
schema:
type: object
properties:
milestone:
type: object
properties:
changeFollowerIds:
type: string
description:
type: string
deadline:
type: string
description: 'Milestone due date. Passed in as string format: YYYYMMDD'
example: '20211212'
notify:
type: boolean
responsible-party-ids:
type: string
tagIds:
type: string
reminder:
type: boolean
title:
type: string
taskListIds:
type: array
items:
type: string
grant-access-to:
type: string
private:
type: boolean
move-upcoming-milestones:
type: boolean
move-upcoming-milestones-off-weekends:
type: boolean
responses:
'200':
description: ''
schema:
type: object
properties:
STATUS:
type: string
examples:
application/json:
STATUS: OK
delete:
operationId: DELETE_milestones-id-json
summary: Delete a Milestone
tags:
- Milestones
description: |-
Deletes the milestone.
---
responses:
'200':
description: ''
schema:
type: object
properties:
STATUS:
type: string
examples:
application/json:
STATUS: OK
/projects/api/v3/time.json:
get:
description: |-
Return all logged time entries for all projects. Only the time entries that
the logged-in user can access will be returned.
operationId: GET_projects_api_v3_time.json
parameters:
- description: filter by updated after date
format: date-time
in: query
name: updatedAfter
type: string
- description: filter by a starting date
format: date-time
in: query
name: startDate
type: string
- description: define the format of the report
in: query
name: reportFormat
type: string
- description: filter by project status
enum:
- active
- current
- late
- upcoming
- completed
- deleted
in: query
name: projectStatus
type: string
- default: asc
description: order mode
enum:
- asc
- desc
in: query
name: orderMode
type: string
- default: date
description: sort order
enum:
- company
- date
- dateupdated
- project
- task
- tasklist
- user
- description
- billed
- billable
- timespent
in: query
name: orderBy
type: string
- default: all
description: filter by invoiced type
enum:
- all
- invoiced
- noninvoiced
in: query
name: invoicedType
type: string
- description: filter by an ending date
format: date-time
in: query
name: endDate
type: string
- default: all
description: filter by billable type
enum:
- all
- billable
- non-billable
in: query
name: billableType
type: string
- description: filter by the user who updated the timelog
in: query
name: updatedBy
type: integer
- description: filter by ticket id
in: query
name: ticketId
type: integer
- description: filter by tasklist id
in: query
name: tasklistId
type: integer
- description: filter by task id (deprecated, use taskIds)
in: query
name: taskId
type: integer
- description: filter by project id (deprecated, use projectIds)
in: query
name: projectId
type: integer
- default: '50'
description: |-
Number of items in a page
See [How does paging work](https://apidocs.teamwork.com/guides/teamwork/how-does-paging-work) for more detailed documentation on pagination.
Minimum: 1
Maximum: 500
in: query
name: pageSize
type: integer
- default: '1'
description: |-
Page number, this is usually used in conjunction with the parameter pageSize.
See [How does paging work](https://apidocs.teamwork.com/guides/teamwork/how-does-paging-work) for more detailed documentation on pagination.
in: query
name: page
type: integer
- description: filter by budget id
in: query
name: budgetId
type: integer
- description: filter by allocation id
in: query
name: allocationId
type: integer
- description: filter by timelogs that are directly logged against projects and not its child tasks
in: query
name: unattachedTimelogs
type: boolean
- description: |-
SkipCounts allows you to skip doing counts on a list API endpoint for
performance reasons.
in: query
name: skipCounts
type: boolean
- default: 'false'
description: include deleted items
in: query
name: showDeleted
type: boolean
- description: filter by starred projects only
in: query
name: onlyStarredProjects
type: boolean
- description: match all task tags
in: query
name: matchAllTaskTags
type: boolean
- description: match all tags
in: query
name: matchAllTags
type: boolean
- description: match all project tags
in: query
name: matchAllProjectTags
type: boolean
- description: generate a report document
in: query
name: isReportDownload
type: boolean
- default: 'false'
description: include totals
in: query
name: includeTotals
type: boolean
- default: 'false'
description: include permissions
in: query
name: includePermissions
type: boolean
- default: 'false'
description: include descendants
in: query
name: includeDescendants
type: boolean
- default: 'false'
description: include archived projects
in: query
name: includeArchivedProjects
type: boolean
- description: filter by task tag ids
in: query
items:
type: integer
name: taskTagIds
type: array
- description: filter by task ids
in: query
items:
type: integer
name: taskIds
type: array
- description: filter by tag ids
in: query
items:
type: integer
name: tagIds
type: array
- description: customise the report by selecting columns
in: query
items:
type: string
name: selectedColumns
type: array
- description: filter by project company ids (deprecated, use projectCompanyIds)
in: query
items:
type: integer
name: projectsFromCompanyId
type: array
- description: filter by project tag ids
in: query
items:
type: integer
name: projectTagIds
type: array
- description: filter by project statuses
in: query
items:
enum:
- active
- current
- late
- upcoming
- completed
- deleted
type: string
name: projectStatuses
type: array
- description: filter by project owner ids
in: query
items:
type: integer
name: projectOwnerIds
type: array
- description: filter by project ids
in: query
items:
type: integer
name: projectIds
type: array
- description: |-
filter by project healths
0: not set
1: bad
2: ok
3: good
in: query
items:
enum:
- '0'
- '1'
- '2'
- '3'
type: integer
name: projectHealths
type: array
- description: filter by project company ids
in: query
items:
type: integer
name: projectCompanyIds
type: array
- description: filter by project category ids
in: query
items:
type: integer
name: projectCategoryIds
type: array
- description: include
in: query
items:
enum:
- projects
- projects.companies
- projects.categories
- tags
- tasks
- tasks.parentTasks
- tasks.tasklists
- tasks.users
- users
type: string
name: include
type: array
- description: filter by ids
in: query
items:
type: integer
name: ids
type: array
- in: query
items:
enum:
- id
- firstName
- lastName
- title
- email
- companyId
- company
- isAdmin
- isClientUser
- isServiceAccount
- type
- deleted
- avatarUrl
- lengthOfDay
- workingHoursId
- workingHour
- userRate
- userCost
- canAddProjects
type: string
name: fields[users]
type: array
- in: query
items:
enum:
- id
- dateCreated
- minutes
- description
- timeLogged
- billable
- deleted
- dateDeleted
- hasStartTime
- dateEdited
- deskTicketId
- userId
- taskId
- projectId
- loggedByUserId
- deletedByUserId
- editedByUserId
- taskIdPreMove
- projectBillingInvoiceId
type: string
name: fields[timelogs]
type: array
- in: query
items:
enum:
- id
- name
- dateUpdated
- parentTaskId
- isPrivate
- status
- tasklistId
- startDate
- dueDate
type: string
name: fields[tasks]
type: array
- in: query
items:
enum:
- id
- name
- projectId
- milestoneId
type: string
name: fields[tasklists]
type: array
- in: query
items:
enum:
- id
- name
- color
- count
type: string
name: fields[tags]
type: array
- in: query
items:
enum:
- id
- name
type: string
name: fields[projects]
type: array
- in: query
items:
enum:
- id
- name
- color
- count
- parent
- parentId
type: string
name: fields[projectcategories]
type: array
- in: query
items:
enum:
- id
- name
- logoUploadedToServer
- logoImage
type: string
name: fields[companies]
type: array
- description: filter by assigned user ids
in: query
items:
type: integer
name: assignedToUserIds
type: array
- description: filter by assigned team ids
in: query
items:
type: integer
name: assignedToTeamIds
type: array
- description: filter by assigned company ids
in: query
items:
type: integer
name: assignedToCompanyIds
type: array
- description: filter by assigned team ids
in: query
items:
type: integer
name: assignedTeamIds
type: array
produces:
- application/json
responses:
'200':
description: 200 OK
schema:
$ref: '#/definitions/timelog.TimelogsResponse'
'400':
description: 400 Bad Request
schema:
$ref: '#/definitions/view.ErrorResponse'
summary: Get all time entries
tags:
- Time Tracking
/projects/api/v3/tasks/{taskId}/time/total.json:
get:
operationId: GET_projects_api_v3_tasks_{taskId}_time_total.json
parameters:
- in: path
name: taskId
required: true
type: integer
produces:
- application/json
responses:
'200':
description: 200 OK
schema:
$ref: '#/definitions/timelog.TotalsResponse'
'400':
description: 400 Bad Request
schema:
$ref: '#/definitions/view.ErrorResponse'
summary: Get timelog totals for a specific task.
tags:
- Time Tracking
/projects/api/v3/projects/{projectId}/time.json:
get:
description: |-
Return logged time entries for a specific project. Only the time entries that
the logged-in user can access will be returned.
operationId: GET_projects_api_v3_projects_{projectId}_time.json
parameters:
- description: filter by updated after date
format: date-time
in: query
name: updatedAfter
type: string
- description: filter by a starting date
format: date-time
in: query
name: startDate
type: string
- description: define the format of the report
in: query
name: reportFormat
type: string
- description: filter by project status
enum:
- active
- current
- late
- upcoming
- completed
- deleted
in: query
name: projectStatus
type: string
- default: asc
description: order mode
enum:
- asc
- desc
in: query
name: orderMode
type: string
- default: date
description: sort order
enum:
- company
- date
- dateupdated
- project
- task
- tasklist
- user
- description
- billed
- billable
- timespent
in: query
name: orderBy
type: string
- default: all
description: filter by invoiced type
enum:
- all
- invoiced
- noninvoiced
in: query
name: invoicedType
type: string
- description: filter by an ending date
format: date-time
in: query
name: endDate
type: string
- default: all
description: filter by billable type
enum:
- all
- billable
- non-billable
in: query
name: billableType
type: string
- description: filter by the user who updated the timelog
in: query
name: updatedBy
type: integer
- description: filter by ticket id
in: query
name: ticketId
type: integer
- description: filter by tasklist id
in: query
name: tasklistId
type: integer
- description: filter by task id (deprecated, use taskIds)
in: query
name: taskId
type: integer
- in: path
name: projectId
required: true
type: integer
- description: filter by project id (deprecated, use projectIds)
in: query
name: projectId
type: integer
- default: '50'
description: |-
Number of items in a page
See [How does paging work](https://apidocs.teamwork.com/guides/teamwork/how-does-paging-work) for more detailed documentation on pagination.
Minimum: 1
Maximum: 500
in: query
name: pageSize
type: integer
- default: '1'
description: |-
Page number, this is usually used in conjunction with the parameter pageSize.
See [How does paging work](https://apidocs.teamwork.com/guides/teamwork/how-does-paging-work) for more detailed documentation on pagination.
in: query
name: page
type: integer
- description: filter by budget id
in: query
name: budgetId
type: integer
- description: filter by allocation id
in: query
name: allocationId
type: integer
- description: filter by timelogs that are directly logged against projects and not its child tasks
in: query
name: unattachedTimelogs
type: boolean
- description: |-
SkipCounts allows you to skip doing counts on a list API endpoint for
performance reasons.
in: query
name: skipCounts
type: boolean
- default: 'false'
description: include deleted items
in: query
name: showDeleted
type: boolean
- description: filter by starred projects only
in: query
name: onlyStarredProjects
type: boolean
- description: match all task tags
in: query
name: matchAllTaskTags
type: boolean
- description: match all tags
in: query
name: matchAllTags
type: boolean
- description: match all project tags
in: query
name: matchAllProjectTags
type: boolean
- description: generate a report document
in: query
name: isReportDownload
type: boolean
- default: 'false'
description: include totals
in: query
name: includeTotals
type: boolean
- default: 'false'
description: include permissions
in: query
name: includePermissions
type: boolean
- default: 'false'
description: include descendants
in: query
name: includeDescendants
type: boolean
- default: 'false'
description: include archived projects
in: query
name: includeArchivedProjects
type: boolean
- description: filter by task tag ids
in: query
items:
type: integer
name: taskTagIds
type: array
- description: filter by task ids
in: query
items:
type: integer
name: taskIds
type: array
- description: filter by tag ids
in: query
items:
type: integer
name: tagIds
type: array
- description: customise the report by selecting columns
in: query
items:
type: string
name: selectedColumns
type: array
- description: filter by project company ids (deprecated, use projectCompanyIds)
in: query
items:
type: integer
name: projectsFromCompanyId
type: array
- description: filter by project tag ids
in: query
items:
type: integer
name: projectTagIds
type: array
- description: filter by project statuses
in: query
items:
enum:
- active
- current
- late
- upcoming
- completed
- deleted
type: string
name: projectStatuses
type: array
- description: filter by project owner ids
in: query
items:
type: integer
name: projectOwnerIds
type: array
- description: filter by project ids
in: query
items:
type: integer
name: projectIds
type: array
- description: |-
filter by project healths
0: not set
1: bad
2: ok
3: good
in: query
items:
enum:
- '0'
- '1'
- '2'
- '3'
type: integer
name: projectHealths
type: array
- description: filter by project company ids
in: query
items:
type: integer
name: projectCompanyIds
type: array
- description: filter by project category ids
in: query
items:
type: integer
name: projectCategoryIds
type: array
- description: include
in: query
items:
enum:
- projects
- projects.companies
- projects.categories
- tags
- tasks
- tasks.parentTasks
- tasks.tasklists
- tasks.users
- users
type: string
name: include
type: array
- description: filter by ids
in: query
items:
type: integer
name: ids
type: array
- in: query
items:
enum:
- id
- firstName
- lastName
- title
- email
- companyId
- company
- isAdmin
- isClientUser
- isServiceAccount
- type
- deleted
- avatarUrl
- lengthOfDay
- workingHoursId
- workingHour
- userRate
- userCost
- canAddProjects
type: string
name: fields[users]
type: array
- in: query
items:
enum:
- id
- dateCreated
- minutes
- description
- timeLogged
- billable
- deleted
- dateDeleted
- hasStartTime
- dateEdited
- deskTicketId
- userId
- taskId
- projectId
- loggedByUserId
- deletedByUserId
- editedByUserId
- taskIdPreMove
- projectBillingInvoiceId
type: string
name: fields[timelogs]
type: array
- in: query
items:
enum:
- id
- name
- dateUpdated
- parentTaskId
- isPrivate
- status
- tasklistId
- startDate
- dueDate
type: string
name: fields[tasks]
type: array
- in: query
items:
enum:
- id
- name
- projectId
- milestoneId
type: string
name: fields[tasklists]
type: array
- in: query
items:
enum:
- id
- name
- color
- count
type: string
name: fields[tags]
type: array
- in: query
items:
enum:
- id
- name
type: string
name: fields[projects]
type: array
- in: query
items:
enum:
- id
- name
- color
- count
- parent
- parentId
type: string
name: fields[projectcategories]
type: array
- in: query
items:
enum:
- id
- name
- logoUploadedToServer
- logoImage
type: string
name: fields[companies]
type: array
- description: filter by assigned user ids
in: query
items:
type: integer
name: assignedToUserIds
type: array
- description: filter by assigned team ids
in: query
items:
type: integer
name: assignedToTeamIds
type: array
- description: filter by assigned company ids
in: query
items:
type: integer
name: assignedToCompanyIds
type: array
- description: filter by assigned team ids
in: query
items:
type: integer
name: assignedTeamIds
type: array
produces:
- application/json
responses:
'200':
description: 200 OK
schema:
$ref: '#/definitions/timelog.TimelogsResponse'
'400':
description: 400 Bad Request
schema:
$ref: '#/definitions/view.ErrorResponse'
summary: Get time entries for a specific project
tags:
- Time Tracking
post:
consumes:
- application/json
description: Create a time entry in the desired project.
operationId: POST_projects_api_v3_projects_{projectId}_time.json
parameters:
- in: body
name: timelog.Request
required: true
schema:
$ref: '#/definitions/timelog.Request'
- in: path
name: projectId
required: true
type: integer
produces:
- application/json
responses:
'201':
description: 201 Created
schema:
$ref: '#/definitions/timelog.Response'
'400':
description: 400 Bad Request
schema:
$ref: '#/definitions/view.ErrorResponse'
'403':
description: 403 Forbidden
schema:
$ref: '#/definitions/view.ErrorResponse'
summary: Create a time entry in a specific project.
tags:
- Time Tracking
x-private: true
/projects/api/v3/tasks/{taskId}/time.json:
get:
description: |-
Return logged time entries for a specific task. Only the time entries that
the logged-in user can access will be returned.
operationId: GET_projects_api_v3_tasks_{taskId}_time.json
parameters:
- description: filter by updated after date
format: date-time
in: query
name: updatedAfter
type: string
- description: filter by a starting date
format: date-time
in: query
name: startDate
type: string
- description: define the format of the report
in: query
name: reportFormat
type: string
- description: filter by project status
enum:
- active
- current
- late
- upcoming
- completed
- deleted
in: query
name: projectStatus
type: string
- default: asc
description: order mode
enum:
- asc
- desc
in: query
name: orderMode
type: string
- default: date
description: sort order
enum:
- company
- date
- dateupdated
- project
- task
- tasklist
- user
- description
- billed
- billable
- timespent
in: query
name: orderBy
type: string
- default: all
description: filter by invoiced type
enum:
- all
- invoiced
- noninvoiced
in: query
name: invoicedType
type: string
- description: filter by an ending date
format: date-time
in: query
name: endDate
type: string
- default: all
description: filter by billable type
enum:
- all
- billable
- non-billable
in: query
name: billableType
type: string
- description: filter by the user who updated the timelog
in: query
name: updatedBy
type: integer
- description: filter by ticket id
in: query
name: ticketId
type: integer
- description: filter by tasklist id
in: query
name: tasklistId
type: integer
- in: path
name: taskId
required: true
type: integer
- description: filter by task id (deprecated, use taskIds)
in: query
name: taskId
type: integer
- description: filter by project id (deprecated, use projectIds)
in: query
name: projectId
type: integer
- default: '50'
description: |-
Number of items in a page
See [How does paging work](https://apidocs.teamwork.com/guides/teamwork/how-does-paging-work) for more detailed documentation on pagination.
Minimum: 1
Maximum: 500
in: query
name: pageSize
type: integer
- default: '1'
description: |-
Page number, this is usually used in conjunction with the parameter pageSize.
See [How does paging work](https://apidocs.teamwork.com/guides/teamwork/how-does-paging-work) for more detailed documentation on pagination.
in: query
name: page
type: integer
- description: filter by budget id
in: query
name: budgetId
type: integer
- description: filter by allocation id
in: query
name: allocationId
type: integer
- description: filter by timelogs that are directly logged against projects and not its child tasks
in: query
name: unattachedTimelogs
type: boolean
- description: |-
SkipCounts allows you to skip doing counts on a list API endpoint for
performance reasons.
in: query
name: skipCounts
type: boolean
- default: 'false'
description: include deleted items
in: query
name: showDeleted
type: boolean
- description: filter by starred projects only
in: query
name: onlyStarredProjects
type: boolean
- description: match all task tags
in: query
name: matchAllTaskTags
type: boolean
- description: match all tags
in: query
name: matchAllTags
type: boolean
- description: match all project tags
in: query
name: matchAllProjectTags
type: boolean
- description: generate a report document
in: query
name: isReportDownload
type: boolean
- default: 'false'
description: include totals
in: query
name: includeTotals
type: boolean
- default: 'false'
description: include permissions
in: query
name: includePermissions
type: boolean
- default: 'false'
description: include descendants
in: query
name: includeDescendants
type: boolean
- default: 'false'
description: include archived projects
in: query
name: includeArchivedProjects
type: boolean
- description: filter by task tag ids
in: query
items:
type: integer
name: taskTagIds
type: array
- description: filter by task ids
in: query
items:
type: integer
name: taskIds
type: array
- description: filter by tag ids
in: query
items:
type: integer
name: tagIds
type: array
- description: customise the report by selecting columns
in: query
items:
type: string
name: selectedColumns
type: array
- description: filter by project company ids (deprecated, use projectCompanyIds)
in: query
items:
type: integer
name: projectsFromCompanyId
type: array
- description: filter by project tag ids
in: query
items:
type: integer
name: projectTagIds
type: array
- description: filter by project statuses
in: query
items:
enum:
- active
- current
- late
- upcoming
- completed
- deleted
type: string
name: projectStatuses
type: array
- description: filter by project owner ids
in: query
items:
type: integer
name: projectOwnerIds
type: array
- description: filter by project ids
in: query
items:
type: integer
name: projectIds
type: array
- description: |-
filter by project healths
0: not set
1: bad
2: ok
3: good
in: query
items:
enum:
- '0'
- '1'
- '2'
- '3'
type: integer
name: projectHealths
type: array
- description: filter by project company ids
in: query
items:
type: integer
name: projectCompanyIds
type: array
- description: filter by project category ids
in: query
items:
type: integer
name: projectCategoryIds
type: array
- description: include
in: query
items:
enum:
- projects
- projects.companies
- projects.categories
- tags
- tasks
- tasks.parentTasks
- tasks.tasklists
- tasks.users
- users
type: string
name: include
type: array
- description: filter by ids
in: query
items:
type: integer
name: ids
type: array
- in: query
items:
enum:
- id
- firstName
- lastName
- title
- email
- companyId
- company
- isAdmin
- isClientUser
- isServiceAccount
- type
- deleted
- avatarUrl
- lengthOfDay
- workingHoursId
- workingHour
- userRate
- userCost
- canAddProjects
type: string
name: fields[users]
type: array
- in: query
items:
enum:
- id
- dateCreated
- minutes
- description
- timeLogged
- billable
- deleted
- dateDeleted
- hasStartTime
- dateEdited
- deskTicketId
- userId
- taskId
- projectId
- loggedByUserId
- deletedByUserId
- editedByUserId
- taskIdPreMove
- projectBillingInvoiceId
type: string
name: fields[timelogs]
type: array
- in: query
items:
enum:
- id
- name
- dateUpdated
- parentTaskId
- isPrivate
- status
- tasklistId
- startDate
- dueDate
type: string
name: fields[tasks]
type: array
- in: query
items:
enum:
- id
- name
- projectId
- milestoneId
type: string
name: fields[tasklists]
type: array
- in: query
items:
enum:
- id
- name
- color
- count
type: string
name: fields[tags]
type: array
- in: query
items:
enum:
- id
- name
type: string
name: fields[projects]
type: array
- in: query
items:
enum:
- id
- name
- color
- count
- parent
- parentId
type: string
name: fields[projectcategories]
type: array
- in: query
items:
enum:
- id
- name
- logoUploadedToServer
- logoImage
type: string
name: fields[companies]
type: array
- description: filter by assigned user ids
in: query
items:
type: integer
name: assignedToUserIds
type: array
- description: filter by assigned team ids
in: query
items:
type: integer
name: assignedToTeamIds
type: array
- description: filter by assigned company ids
in: query
items:
type: integer
name: assignedToCompanyIds
type: array
- description: filter by assigned team ids
in: query
items:
type: integer
name: assignedTeamIds
type: array
produces:
- application/json
responses:
'200':
description: 200 OK
schema:
$ref: '#/definitions/timelog.TimelogsResponse'
'400':
description: 400 Bad Request
schema:
$ref: '#/definitions/view.ErrorResponse'
summary: Get time entries for a specific task
tags:
- Time Tracking
post:
consumes:
- application/json
description: Create a time entry linked to the desired task.
operationId: POST_projects_api_v3_tasks_{taskId}_time.json
parameters:
- in: body
name: timelog.Request
required: true
schema:
$ref: '#/definitions/timelog.Request'
- in: path
name: taskId
required: true
type: integer
produces:
- application/json
responses:
'201':
description: 201 Created
schema:
$ref: '#/definitions/timelog.Response'
'400':
description: 400 Bad Request
schema:
$ref: '#/definitions/view.ErrorResponse'
'403':
description: 403 Forbidden
schema:
$ref: '#/definitions/view.ErrorResponse'
summary: Create a time entry linked to a specific task.
tags:
- Time Tracking
x-private: true
/projects/api/v3/time/{timelogId}.json:
patch:
consumes:
- application/json
description: Modify the properties of an existing time entry.
operationId: PATCH_projects_api_v3_time_{timelogId}.json
parameters:
- in: body
name: timelog.Request
required: true
schema:
$ref: '#/definitions/timelog.Request'
- in: path
name: timelogId
required: true
type: integer
produces:
- application/json
responses:
'200':
description: 200 OK
schema:
$ref: '#/definitions/timelog.Response'
'400':
description: 400 Bad Request
schema:
$ref: '#/definitions/view.ErrorResponse'
'403':
description: 403 Forbidden
schema:
$ref: '#/definitions/view.ErrorResponse'
'404':
description: 404 Not Found (no data)
'409':
description: 409 Conflict
schema:
$ref: '#/definitions/view.ErrorResponse'
summary: Update an existing time entry.
tags:
- Time Tracking
x-private: true
delete:
description: Delete a timelog.
operationId: DELETE_projects_api_v3_time_{timelogId}.json
parameters:
- in: path
name: timelogId
required: true
type: integer
produces:
- application/json
responses:
'204':
description: 204 No Content (no data)
'400':
description: 400 Bad Request
schema:
$ref: '#/definitions/view.ErrorResponse'
'403':
description: 403 Forbidden
schema:
$ref: '#/definitions/view.ErrorResponse'
'404':
description: 404 Not Found (no data)
summary: Delete an existing timelog.
tags:
- Time Tracking
x-private: true
/projects/api/v3/me/timers.json:
get:
description: Will get all your running timers or the person you are logged in as.
operationId: GET_projects_api_v3_me_timers.json
parameters:
- description: filter by updated after date (deprecated, use updatedAfter)
format: date-time
in: query
name: updatedAfterDate
type: string
- description: filter by updated after date
format: date-time
in: query
name: updatedAfter
type: string
- description: filter by user id
in: query
name: userId
type: integer
- description: filter by task id
in: query
name: taskId
type: integer
- description: filter by project id
in: query
name: projectId
type: integer
- default: '50'
description: |-
Number of items in a page
See [How does paging work](https://apidocs.teamwork.com/guides/teamwork/how-does-paging-work) for more detailed documentation on pagination.
Minimum: 1
Maximum: 500
in: query
name: pageSize
type: integer
- default: '1'
description: |-
Page number, this is usually used in conjunction with the parameter pageSize.
See [How does paging work](https://apidocs.teamwork.com/guides/teamwork/how-does-paging-work) for more detailed documentation on pagination.
in: query
name: page
type: integer
- description: |-
SkipCounts allows you to skip doing counts on a list API endpoint for
performance reasons.
in: query
name: skipCounts
type: boolean
- default: 'false'
description: include deleted items
in: query
name: showDeleted
type: boolean
- default: 'false'
description: enforce running timers only
in: query
name: runningTimersOnly
type: boolean
- description: include
in: query
items:
enum:
- projects
- tasks
- tasks.parentTasks
- tasks.tasklists
- users
type: string
name: include
type: array
- in: query
items:
enum:
- id
- firstName
- lastName
- title
- email
- companyId
- company
- isAdmin
- isClientUser
- isServiceAccount
- type
- deleted
- avatarUrl
- lengthOfDay
- workingHoursId
- workingHour
- userRate
- userCost
- canAddProjects
type: string
name: fields[users]
type: array
- in: query
items:
enum:
- id
- userId
- taskId
- projectId
- description
- running
- billable
- deleted
- dateCreated
- dateDeleted
- duration
- lastStartedAt
- serverTime
- intervals
type: string
name: fields[timers]
type: array
- in: query
items:
enum:
- id
- name
- dateUpdated
- parentTaskId
- isPrivate
- status
- tasklistId
- startDate
- dueDate
type: string
name: fields[tasks]
type: array
- in: query
items:
enum:
- id
- name
- projectId
- milestoneId
type: string
name: fields[tasklists]
type: array
- in: query
items:
enum:
- id
- name
type: string
name: fields[projects]
type: array
produces:
- application/json
responses:
'200':
description: 200 OK
schema:
$ref: '#/definitions/timer.TimersResponse'
'400':
description: 400 Bad Request
schema:
$ref: '#/definitions/view.ErrorResponse'
summary: Get all your running timers
tags:
- Time Tracking
post:
consumes:
- application/json
description: |-
Creates a new timer. If there's already a timer running, it will stop this timer
at default.
operationId: POST_projects_api_v3_me_timers.json
parameters:
- in: body
name: timer.Request
required: true
schema:
$ref: '#/definitions/timer.Request'
produces:
- application/json
responses:
'200':
description: 200 OK
schema:
$ref: '#/definitions/timer.Response'
'201':
description: 201 Created
schema:
$ref: '#/definitions/timer.Response'
'400':
description: 400 Bad Request
schema:
$ref: '#/definitions/view.ErrorResponse'
'403':
description: 403 Forbidden
schema:
$ref: '#/definitions/view.ErrorResponse'
summary: Create a new timer
tags:
- Time Tracking
/projects/api/v3/me/timers/{timerId}/complete.json:
put:
description: |-
Complete an existing timer. If the timer is currently running, it is paused to create
the timelog entry. When the timelog is created, the timer is deleted.
operationId: PUT_projects_api_v3_me_timers_{timerId}_complete.json
parameters:
- in: path
name: timerId
required: true
type: integer
produces:
- application/json
responses:
'200':
description: 200 OK
schema:
$ref: '#/definitions/timer.Response'
'201':
description: 201 Created
schema:
$ref: '#/definitions/timer.Response'
'400':
description: 400 Bad Request
schema:
$ref: '#/definitions/view.ErrorResponse'
'403':
description: 403 Forbidden
schema:
$ref: '#/definitions/view.ErrorResponse'
'404':
description: 404 Not Found (no data)
summary: Complete a timer by ID
tags:
- Time Tracking
/projects/api/v3/me/timers/{timerId}/pause.json:
put:
description: Pause an existing timer.
operationId: PUT_projects_api_v3_me_timers_{timerId}_pause.json
parameters:
- in: path
name: timerId
required: true
type: integer
produces:
- application/json
responses:
'200':
description: 200 OK
schema:
$ref: '#/definitions/timer.Response'
'400':
description: 400 Bad Request
schema:
$ref: '#/definitions/view.ErrorResponse'
'403':
description: 403 Forbidden
schema:
$ref: '#/definitions/view.ErrorResponse'
'404':
description: 404 Not Found (no data)
summary: Pause a timer by ID
tags:
- Time Tracking
/projects/api/v3/me/timers/{timerId}/resume.json:
put:
description: Resume an existing timer. If other timers are currently running, those timers are paused before resuming.
operationId: PUT_projects_api_v3_me_timers_{timerId}_resume.json
parameters:
- in: path
name: timerId
required: true
type: integer
produces:
- application/json
responses:
'200':
description: 200 OK
schema:
$ref: '#/definitions/timer.Response'
'201':
description: 201 Created
schema:
$ref: '#/definitions/timer.Response'
'400':
description: 400 Bad Request
schema:
$ref: '#/definitions/view.ErrorResponse'
'403':
description: 403 Forbidden
schema:
$ref: '#/definitions/view.ErrorResponse'
'404':
description: 404 Not Found (no data)
summary: Resume a timer by ID
tags:
- Time Tracking
/projects/api/v3/me/timers/{timerId}/undelete.json:
put:
description: Restore an deleted timer.
operationId: PUT_projects_api_v3_me_timers_{timerId}_undelete.json
parameters:
- in: path
name: timerId
required: true
type: integer
produces:
- application/json
responses:
'204':
description: 204 No Content (no data)
'400':
description: 400 Bad Request
schema:
$ref: '#/definitions/view.ErrorResponse'
'403':
description: 403 Forbidden
schema:
$ref: '#/definitions/view.ErrorResponse'
'404':
description: 404 Not Found (no data)
summary: Restore a deleted timer item.
tags:
- Time Tracking
/projects/api/v3/me/timers/{timerId}.json:
put:
consumes:
- application/json
description: Edits the fields of a timer.
operationId: PUT_projects_api_v3_me_timers_{timerId}.json
parameters:
- in: body
name: timer.Request
required: true
schema:
$ref: '#/definitions/timer.Request'
- in: path
name: timerId
required: true
type: integer
produces:
- application/json
responses:
'200':
description: 200 OK
schema:
$ref: '#/definitions/timer.Response'
'400':
description: 400 Bad Request
schema:
$ref: '#/definitions/view.ErrorResponse'
'403':
description: 403 Forbidden
schema:
$ref: '#/definitions/view.ErrorResponse'
'404':
description: 404 Not Found (no data)
summary: Edits a timer
tags:
- Time Tracking
delete:
consumes:
- application/json
description: Delete an existing timer.
operationId: DELETE_projects_api_v3_me_timers_{timerId}.json
parameters:
- in: body
name: timer.DeleteRequest
required: true
schema:
$ref: '#/definitions/timer.DeleteRequest'
- in: path
name: timerId
required: true
type: integer
produces:
- application/json
responses:
'204':
description: 204 No Content (no data)
'400':
description: 400 Bad Request
schema:
$ref: '#/definitions/view.ErrorResponse'
'403':
description: 403 Forbidden
schema:
$ref: '#/definitions/view.ErrorResponse'
'404':
description: 404 Not Found (no data)
summary: Delete a timer by ID
tags:
- Time Tracking
/projects/api/v3/messages.json:
get:
description: Retrieve all messages for the provided filters.
operationId: GET_projects_api_v3_messages.json
parameters:
- description: filter by updated after date
format: date-time
in: query
name: updatedAfter
type: string
- description: filter by message name and body
in: query
name: searchTerm
type: string
- default: normal
description: filter by project type
enum:
- normal
- tasklists-template
- projects-template
in: query
name: projectType
type: string
- description: filter by project statuses
in: query
name: projectStatuses
type: string
- default: asc
description: order mode
enum:
- asc
- desc
in: query
name: orderMode
type: string
- default: ownermessage
description: order by
enum:
- createdat
- updatedat
- category
- project
- createdby
- unread
in: query
name: orderBy
type: string
- description: filter by created before date
format: date-time
in: query
name: createdBefore
type: string
- description: filter by created after date
format: date-time
in: query
name: createdAfter
type: string
- default: '50'
description: |-
Number of items in a page
See [How does paging work](https://apidocs.teamwork.com/guides/teamwork/how-does-paging-work) for more detailed documentation on pagination.
Minimum: 1
Maximum: 500
in: query
name: pageSize
type: integer
- default: '1'
description: |-
Page number, this is usually used in conjunction with the parameter pageSize.
See [How does paging work](https://apidocs.teamwork.com/guides/teamwork/how-does-paging-work) for more detailed documentation on pagination.
in: query
name: page
type: integer
- description: consider reply dates when using updatedAfter
in: query
name: updatedAfterIncludesReplies
type: boolean
- description: show unread messages only
in: query
name: unreadOnly
type: boolean
- description: |-
SkipCounts allows you to skip doing counts on a list API endpoint for
performance reasons.
in: query
name: skipCounts
type: boolean
- description: filter by starred projects only
in: query
name: onlyStarredProjects
type: boolean
- description: match all tags
in: query
name: matchAllTags
type: boolean
- description: match all project tags
in: query
name: matchAllProjectTags
type: boolean
- description: include deleted messages
in: query
name: includeDeleted
type: boolean
- description: include archived projects
in: query
name: includeArchivedProjects
type: boolean
- default: 'true'
description: parse emojis to unicode
in: query
name: getEmoji
type: boolean
- in: query
name: formatMarkdown
type: boolean
- description: show archived messages only
in: query
name: archivedOnly
type: boolean
- description: filter by user ids
in: query
items:
type: integer
name: userIds
type: array
- description: filter by tag ids
in: query
items:
type: integer
name: tagIds
type: array
- description: filter by project tag ids
in: query
items:
type: integer
name: projectTagIds
type: array
- description: filter by project owner ids
in: query
items:
type: integer
name: projectOwnerIds
type: array
- description: filter by project ids
in: query
items:
type: integer
name: projectIds
type: array
- description: |-
filter by project healths
0: not set
1: bad
2: ok
3: good
in: query
items:
enum:
- '0'
- '1'
- '2'
- '3'
type: integer
name: projectHealths
type: array
- description: filter by company ids
in: query
items:
type: integer
name: projectCompanyIds
type: array
- description: filter by project category ids
in: query
items:
type: integer
name: projectCategoryIds
type: array
- description: filter by users who got notified for the messages
in: query
items:
type: integer
name: notifiedUserIds
type: array
- description: include
in: query
items:
enum:
- latestreplies
- tags
type: string
name: include
type: array
- description: filter by ids
in: query
items:
type: integer
name: ids
type: array
- in: query
items:
enum:
- id
- name
type: string
name: fields[projects]
type: array
- in: query
items:
enum:
- id
- messageId
type: string
name: fields[messageReplies]
type: array
- in: query
items:
enum:
- id
- name
- logoUploadedToServer
- logoImage
type: string
name: fields[companies]
type: array
produces:
- application/json
responses:
'200':
description: 200 OK
schema:
$ref: '#/definitions/message.MessagesResponse'
'400':
description: 400 Bad Request
schema:
$ref: '#/definitions/view.ErrorResponse'
'403':
description: 403 Forbidden
schema:
$ref: '#/definitions/view.ErrorResponse'
summary: Get all messages.
tags:
- Messages
/projects/api/v3/messages/{messageId}.json:
get:
description: Retrieves a message by id.
operationId: GET_projects_api_v3_messages_{messageId}.json
parameters:
- description: filter by updated after date
format: date-time
in: query
name: updatedAfter
type: string
- description: filter by message name and body
in: query
name: searchTerm
type: string
- default: normal
description: filter by project type
enum:
- normal
- tasklists-template
- projects-template
in: query
name: projectType
type: string
- description: filter by project statuses
in: query
name: projectStatuses
type: string
- default: asc
description: order mode
enum:
- asc
- desc
in: query
name: orderMode
type: string
- default: ownermessage
description: order by
enum:
- createdat
- updatedat
- category
- project
- createdby
- unread
in: query
name: orderBy
type: string
- description: filter by created before date
format: date-time
in: query
name: createdBefore
type: string
- description: filter by created after date
format: date-time
in: query
name: createdAfter
type: string
- default: '50'
description: |-
Number of items in a page
See [How does paging work](https://apidocs.teamwork.com/guides/teamwork/how-does-paging-work) for more detailed documentation on pagination.
Minimum: 1
Maximum: 500
in: query
name: pageSize
type: integer
- default: '1'
description: |-
Page number, this is usually used in conjunction with the parameter pageSize.
See [How does paging work](https://apidocs.teamwork.com/guides/teamwork/how-does-paging-work) for more detailed documentation on pagination.
in: query
name: page
type: integer
- in: path
name: messageId
required: true
type: integer
- description: consider reply dates when using updatedAfter
in: query
name: updatedAfterIncludesReplies
type: boolean
- description: show unread messages only
in: query
name: unreadOnly
type: boolean
- description: |-
SkipCounts allows you to skip doing counts on a list API endpoint for
performance reasons.
in: query
name: skipCounts
type: boolean
- description: filter by starred projects only
in: query
name: onlyStarredProjects
type: boolean
- description: match all tags
in: query
name: matchAllTags
type: boolean
- description: match all project tags
in: query
name: matchAllProjectTags
type: boolean
- description: include deleted messages
in: query
name: includeDeleted
type: boolean
- description: include archived projects
in: query
name: includeArchivedProjects
type: boolean
- default: 'true'
description: parse emojis to unicode
in: query
name: getEmoji
type: boolean
- in: query
name: formatMarkdown
type: boolean
- description: show archived messages only
in: query
name: archivedOnly
type: boolean
- description: filter by user ids
in: query
items:
type: integer
name: userIds
type: array
- description: filter by tag ids
in: query
items:
type: integer
name: tagIds
type: array
- description: filter by project tag ids
in: query
items:
type: integer
name: projectTagIds
type: array
- description: filter by project owner ids
in: query
items:
type: integer
name: projectOwnerIds
type: array
- description: filter by project ids
in: query
items:
type: integer
name: projectIds
type: array
- description: |-
filter by project healths
0: not set
1: bad
2: ok
3: good
in: query
items:
enum:
- '0'
- '1'
- '2'
- '3'
type: integer
name: projectHealths
type: array
- description: filter by company ids
in: query
items:
type: integer
name: projectCompanyIds
type: array
- description: filter by project category ids
in: query
items:
type: integer
name: projectCategoryIds
type: array
- description: filter by users who got notified for the messages
in: query
items:
type: integer
name: notifiedUserIds
type: array
- description: include
in: query
items:
enum:
- latestreplies
- tags
type: string
name: include
type: array
- description: filter by ids
in: query
items:
type: integer
name: ids
type: array
- in: query
items:
enum:
- id
- name
type: string
name: fields[projects]
type: array
- in: query
items:
enum:
- id
- messageId
type: string
name: fields[messageReplies]
type: array
- in: query
items:
enum:
- id
- name
- logoUploadedToServer
- logoImage
type: string
name: fields[companies]
type: array
produces:
- application/json
responses:
'200':
description: 200 OK
schema:
$ref: '#/definitions/message.Response'
'400':
description: 400 Bad Request
schema:
$ref: '#/definitions/view.ErrorResponse'
'403':
description: 403 Forbidden
schema:
$ref: '#/definitions/view.ErrorResponse'
'404':
description: 404 Not Found
schema:
$ref: '#/definitions/view.ErrorResponse'
summary: Get a specific message.
tags:
- Messages
patch:
consumes:
- application/json
description: |-
Update specific fields on a message. If the property `read` is sent with the
value `true` all replies from this message will be marked as read.
operationId: PATCH_projects_api_v3_messages_{messageId}.json
parameters:
- in: body
name: message.Request
required: true
schema:
$ref: '#/definitions/message.Request'
- in: path
name: messageId
required: true
type: integer
produces:
- application/json
responses:
'204':
description: 204 No Content (no data)
'400':
description: 400 Bad Request
schema:
$ref: '#/definitions/view.ErrorResponse'
summary: Edit a message.
tags:
- Messages
x-private: true
/projects/{id}/posts/archive.json:
parameters:
- name: id
in: path
required: true
type: string
get:
operationId: GET_projects-id-posts-archive-json
summary: Get Archived Messages
tags:
- Messages
description: |-
Rather than the full message, this returns a summary record for each message in the specified project.
---
responses:
'200':
description: ''
schema:
type: object
properties:
posts:
type: array
items:
type: object
properties:
user-display-posted-time:
type: string
project-id:
type: string
author-first-name:
type: string
attachments-count:
type: string
milestone-id:
type: string
isRead:
type: string
private:
type: string
comments-count:
type: string
author-avatar-url:
type: string
category-id:
type: string
author-last-name:
type: string
posted-on:
type: string
body:
type: string
id:
type: string
last-changed-on:
type: string
content-type:
type: string
last-comment-date:
type: string
user-display-posted-date:
type: string
author-id:
type: string
title:
type: string
category-name:
type: string
STATUS:
type: string
examples:
application/json:
posts:
- user-display-posted-time: 6:01PM
project-id: '999'
author-first-name: Demo
attachments-count: '0'
milestone-id: ''
isRead: '1'
private: '0'
comments-count: '0'
author-avatar-url: https://s3.amazonaws.com/TWFiles/2/users/999.avatar
category-id: ''
author-last-name: User
posted-on: '2014-03-31T18:01:17Z'
body: Yet another message content goes here
id: '999'
last-changed-on: '2014-03-31T18:01:17Z'
content-type: TEXT
last-comment-date: '2014-03-31T18:01:17Z'
user-display-posted-date: Mon, 31 Mar 2014
author-id: '999'
title: Yet another task for tomorrow
category-name: ''
STATUS: OK
/projects/{projectId}/cat/{categoryId}/posts/archive.json:
parameters:
- name: projectId
in: path
required: true
type: string
- name: categoryId
in: path
required: true
type: string
get:
operationId: GET_projects-project_id-cat-category_id-posts-archive-json
summary: Get Archived Messages by Category
tags:
- Messages
description: |-
Similar to get archived messages, but returns only the posts in the given category.
---
responses:
'200':
description: ''
schema:
type: object
properties:
posts:
type: array
items:
type: object
properties:
user-display-posted-time:
type: string
project-id:
type: string
author-first-name:
type: string
attachments-count:
type: string
milestone-id:
type: string
isRead:
type: string
private:
type: string
comments-count:
type: string
author-avatar-url:
type: string
category-id:
type: string
author-last-name:
type: string
html-body:
type: string
posted-on:
type: string
body:
type: string
id:
type: string
last-changed-on:
type: string
content-type:
type: string
last-comment-date:
type: string
user-display-posted-date:
type: string
author-id:
type: string
title:
type: string
category-name:
type: string
STATUS:
type: string
examples:
application/json:
posts:
- user-display-posted-time: 5:59PM
project-id: '999'
author-first-name: Demo
attachments-count: '0'
milestone-id: ''
isRead: '1'
private: '0'
comments-count: '0'
author-avatar-url: https://s3.amazonaws.com/TWFiles/2/users/999.avatar
category-id: '999'
author-last-name: User
html-body: Another message content goes here<br>
posted-on: '2014-03-31T17:59:49Z'
body: "Another message content goes here\r\n"
id: '999'
last-changed-on: '2014-03-31T17:31:45Z'
content-type: HTML
last-comment-date: '2014-03-31T17:59:49Z'
user-display-posted-date: Mon, 31 Mar 2014
author-id: '999'
title: Another task for tomorrow
category-name: Demo Category 3
STATUS: OK
/messages/{id}/archive.json:
parameters:
- name: id
in: path
required: true
type: string
put:
operationId: PUT_messages-id-archive-json
summary: Archive a Message
tags:
- Messages
description: |-
Archives the message including all replies etc.
---
responses:
'200':
description: ''
schema:
type: object
properties:
STATUS:
type: string
examples:
application/json:
STATUS: OK
/messages/{id}/unarchive.json:
parameters:
- name: id
in: path
required: true
type: string
put:
operationId: PUT_messages-id-unarchive-json
summary: Un-archive a Message
tags:
- Messages
description: |-
Restores the message from the Archive including all replies etc.
---
responses:
'200':
description: ''
schema:
type: object
properties:
STATUS:
type: string
examples:
application/json:
STATUS: OK
/messages/{id}/markread.json:
parameters:
- name: id
in: path
required: true
type: string
put:
operationId: PUT_messages-id-markread-json
summary: Mark Message As Read
tags:
- Messages
description: |-
Marks a specific message as read by the current authenticated user.
---
responses:
'200':
description: ''
schema:
type: object
properties:
STATUS:
type: string
examples:
application/json:
STATUS: OK
/posts/{id}.json:
parameters:
- name: id
in: path
required: true
type: string
delete:
operationId: DELETE_posts-id-json
summary: Delete Message
tags:
- Messages
description: |-
Deletes the message including all comments etc.
---
responses:
'200':
description: ''
schema:
type: object
properties:
STATUS:
type: string
examples:
application/json:
STATUS: OK
/projects/api/v3/notebooks.json:
get:
operationId: GET_projects_api_v3_notebooks.json
parameters:
- description: filter by updated after date (deprecated, use updatedAfter)
format: date-time
in: query
name: updatedAfterDate
type: string
- description: filter by updated after date
format: date-time
in: query
name: updatedAfter
type: string
- description: filter by notebook name and description
in: query
name: searchTerm
type: string
- default: normal
description: filter by project type
enum:
- normal
- tasklists-template
- projects-template
in: query
name: projectType
type: string
- description: filter by project statuses
in: query
name: projectStatuses
type: string
- default: asc
description: order mode
enum:
- asc
- desc
in: query
name: orderMode
type: string
- default: dateUpdated
description: order by
enum:
- name
- project
- dateCreated
- dateUpdated
- category
in: query
name: orderBy
type: string
- description: filter by created after date (deprecated, use createdAfter)
format: date
in: query
name: createdAfterDate
type: string
- description: filter by created after date
format: date
in: query
name: createdAfter
type: string
- default: '50'
description: |-
Number of items in a page
See [How does paging work](https://apidocs.teamwork.com/guides/teamwork/how-does-paging-work) for more detailed documentation on pagination.
Minimum: 1
Maximum: 500
in: query
name: pageSize
type: integer
- default: '1'
description: |-
Page number, this is usually used in conjunction with the parameter pageSize.
See [How does paging work](https://apidocs.teamwork.com/guides/teamwork/how-does-paging-work) for more detailed documentation on pagination.
in: query
name: page
type: integer
- default: 'false'
description: include deleted items
in: query
name: showDeleted
type: boolean
- default: 'false'
description: filter by showing only secure notebooks
in: query
name: secureOnly
type: boolean
- description: match all notebook tags
in: query
name: matchAllTags
type: boolean
- description: match all project tags
in: query
name: matchAllProjectTags
type: boolean
- default: 'false'
description: filter by showing only locked notebooks
in: query
name: lockedOnly
type: boolean
- default: 'true'
description: include contents.
in: query
name: includeContents
type: boolean
- description: include archived projects
in: query
name: includeArchivedProjects
type: boolean
- default: 'true'
description: parse emojis to unicode
in: query
name: getEmoji
type: boolean
- description: filter by notebook tag ids
in: query
items:
type: integer
name: tagIds
type: array
- description: filter by project tag ids
in: query
items:
type: integer
name: projectTagIds
type: array
- description: filter by project owner ids
in: query
items:
type: integer
name: projectOwnerIds
type: array
- description: filter by project ids
in: query
items:
type: integer
name: projectIds
type: array
- description: |-
filter by project healths
0: not set
1: bad
2: ok
3: good
in: query
items:
enum:
- '0'
- '1'
- '2'
- '3'
type: integer
name: projectHealths
type: array
- description: filter by company ids
in: query
items:
type: integer
name: projectCompanyIds
type: array
- description: filter by project category ids
in: query
items:
type: integer
name: projectCategoryIds
type: array
- description: include
in: query
items:
enum:
- projects
- tags
- users
- notebookCategories
- companies
- teams
type: string
name: include
type: array
- description: filter by ids
in: query
items:
type: integer
name: ids
type: array
- in: query
items:
enum:
- id
- firstName
- lastName
- title
- email
- companyId
- company
- isAdmin
- isClientUser
- isServiceAccount
- type
- deleted
- avatarUrl
- lengthOfDay
- workingHoursId
- workingHour
- userRate
- userCost
- canAddProjects
type: string
name: fields[users]
type: array
- in: query
items:
enum:
- id
- name
- teamLogo
- teamLogoIcon
- teamLogoColor
type: string
name: fields[teams]
type: array
- in: query
items:
enum:
- id
- name
- color
- count
type: string
name: fields[tags]
type: array
- in: query
items:
enum:
- id
- name
type: string
name: fields[projects]
type: array
- in: query
items:
enum:
- id
- name
- description
- contents
- type
- isPrivate
- locked
- lockdownId
- secureContent
- projectId
- createdByUserID
- updatedByUserID
- deletedByUserID
- dateUpdated
- dateCreated
- dateDeleted
- deleted
- categoryId
- notebookVersionID
- notebookVersionCreatedDateTime
- notebookVersionUpdatedDateTime
- latestVersionNo
- commentsCount
- readCommentsCount
- contentHTML
- privacy
- commentFollowers
- changeFollowers
- projectNotifyCommentIncludeCreator
- tagIds
type: string
name: fields[notebooks]
type: array
- in: query
items:
type: string
name: fields[notebookCategories]
type: array
- in: query
items:
enum:
- id
- name
- logoUploadedToServer
- logoImage
type: string
name: fields[companies]
type: array
- description: filter by creators' ids
in: query
items:
type: integer
name: creatorIds
type: array
- description: filter by notebook category ids
in: query
items:
type: integer
name: categoryIds
type: array
produces:
- application/json
responses:
'200':
description: 200 OK
schema:
$ref: '#/definitions/notebook.NotebooksResponse'
'400':
description: 400 Bad Request
schema:
$ref: '#/definitions/view.ErrorResponse'
'403':
description: 403 Forbidden
schema:
$ref: '#/definitions/view.ErrorResponse'
'404':
description: 404 Not Found (no data)
summary: Get a list of notebooks.
tags:
- Notebooks
/projects/api/v3/notebooks/{notebookId}.json:
get:
operationId: GET_projects_api_v3_notebooks_{notebookId}.json
parameters:
- description: filter by updated after date (deprecated, use updatedAfter)
format: date-time
in: query
name: updatedAfterDate
type: string
- description: filter by updated after date
format: date-time
in: query
name: updatedAfter
type: string
- default: normal
description: filter by project type
enum:
- normal
- tasklists-template
- projects-template
in: query
name: projectType
type: string
- in: path
name: notebookId
required: true
type: integer
- description: show deleted notebooks
in: query
name: showDeleted
type: boolean
- default: 'true'
description: parse emojis to unicode
in: query
name: getEmoji
type: boolean
- description: include
in: query
items:
enum:
- projects
- tags
- users
- notebookCategories
- companies
- teams
type: string
name: include
type: array
- in: query
items:
enum:
- id
- firstName
- lastName
- title
- email
- companyId
- company
- isAdmin
- isClientUser
- isServiceAccount
- type
- deleted
- avatarUrl
- lengthOfDay
- workingHoursId
- workingHour
- userRate
- userCost
- canAddProjects
type: string
name: fields[users]
type: array
- in: query
items:
enum:
- id
- name
- teamLogo
- teamLogoIcon
- teamLogoColor
type: string
name: fields[teams]
type: array
- in: query
items:
enum:
- id
- name
- color
- count
type: string
name: fields[tags]
type: array
- in: query
items:
enum:
- id
- name
type: string
name: fields[projects]
type: array
- in: query
items:
enum:
- id
- name
- description
- contents
- type
- isPrivate
- locked
- lockdownId
- secureContent
- projectId
- createdByUserID
- updatedByUserID
- deletedByUserID
- dateUpdated
- dateCreated
- dateDeleted
- deleted
- categoryId
- notebookVersionID
- notebookVersionCreatedDateTime
- notebookVersionUpdatedDateTime
- latestVersionNo
- commentsCount
- readCommentsCount
- contentHTML
- privacy
- commentFollowers
- changeFollowers
- projectNotifyCommentIncludeCreator
- tagIds
type: string
name: fields[notebooks]
type: array
- in: query
items:
type: string
name: fields[notebookCategories]
type: array
- in: query
items:
enum:
- id
- name
- logoUploadedToServer
- logoImage
type: string
name: fields[companies]
type: array
produces:
- application/json
responses:
'200':
description: 200 OK
schema:
$ref: '#/definitions/notebook.Response'
'400':
description: 400 Bad Request
schema:
$ref: '#/definitions/view.ErrorResponse'
'403':
description: 403 Forbidden
schema:
$ref: '#/definitions/view.ErrorResponse'
'404':
description: 404 Not Found (no data)
summary: Get a specific notebook.
tags:
- Notebooks
patch:
consumes:
- application/json
description: Edits the fields of an existing notebook.
operationId: PATCH_projects_api_v3_notebooks_{notebookId}.json
parameters:
- in: body
name: notebook.Request
required: true
schema:
$ref: '#/definitions/notebook.Request'
- in: path
name: notebookId
required: true
type: integer
- default: 'true'
description: parse emojis to unicode
in: query
name: getEmoji
type: boolean
- description: include
in: query
items:
enum:
- projects
- tags
- users
- notebookCategories
- companies
- teams
type: string
name: include
type: array
- in: query
items:
enum:
- id
- firstName
- lastName
- title
- email
- companyId
- company
- isAdmin
- isClientUser
- isServiceAccount
- type
- deleted
- avatarUrl
- lengthOfDay
- workingHoursId
- workingHour
- userRate
- userCost
- canAddProjects
type: string
name: fields[users]
type: array
- in: query
items:
enum:
- id
- name
- teamLogo
- teamLogoIcon
- teamLogoColor
type: string
name: fields[teams]
type: array
- in: query
items:
enum:
- id
- name
- color
- count
type: string
name: fields[tags]
type: array
- in: query
items:
enum:
- id
- name
type: string
name: fields[projects]
type: array
- in: query
items:
enum:
- id
- name
- description
- contents
- type
- isPrivate
- locked
- lockdownId
- secureContent
- projectId
- createdByUserID
- updatedByUserID
- deletedByUserID
- dateUpdated
- dateCreated
- dateDeleted
- deleted
- categoryId
- notebookVersionID
- notebookVersionCreatedDateTime
- notebookVersionUpdatedDateTime
- latestVersionNo
- commentsCount
- readCommentsCount
- contentHTML
- privacy
- commentFollowers
- changeFollowers
- projectNotifyCommentIncludeCreator
- tagIds
type: string
name: fields[notebooks]
type: array
- in: query
items:
type: string
name: fields[notebookCategories]
type: array
- in: query
items:
enum:
- id
- name
- logoUploadedToServer
- logoImage
type: string
name: fields[companies]
type: array
produces:
- application/json
responses:
'200':
description: 200 OK
schema:
$ref: '#/definitions/notebook.Response'
'400':
description: 400 Bad Request
schema:
$ref: '#/definitions/view.ErrorResponse'
'403':
description: 403 Forbidden
schema:
$ref: '#/definitions/view.ErrorResponse'
'404':
description: 404 Not Found (no data)
summary: Edits a notebook
tags:
- Notebooks
delete:
operationId: DELETE_projects_api_v3_notebooks_{notebookId}.json
parameters:
- in: path
name: notebookId
required: true
type: integer
produces:
- application/json
responses:
'204':
description: 204 No Content (no data)
'400':
description: 400 Bad Request
schema:
$ref: '#/definitions/view.ErrorResponse'
'403':
description: 403 Forbidden
schema:
$ref: '#/definitions/view.ErrorResponse'
'404':
description: 404 Not Found (no data)
summary: Delete an existing notebook.
tags:
- Notebooks
/projects/api/v3/people.json:
get:
description: Retrieve all people for the provided filters.
operationId: GET_projects_api_v3_people.json
parameters:
- description: user type
enum:
- account
- collaborator
- contact
in: query
name: userType
type: string
- description: date time
format: date-time
in: query
name: updatedAfter
type: string
- description: filter by comment content
in: query
name: searchTerm
type: string
- default: asc
description: order mode
enum:
- asc
- desc
in: query
name: orderMode
type: string
- default: name
description: order by
enum:
- name
- namecaseinsensitive
- company
in: query
name: orderBy
type: string
- format: date-time
in: query
name: lastLoginAfter
type: string
- default: '50'
description: |-
Number of items in a page. (not used when generating reports)
See [How does paging work](https://apidocs.teamwork.com/guides/teamwork/how-does-paging-work) for more detailed documentation on pagination.
Minimum: 1
Maximum: 500
in: query
name: pageSize
type: integer
- default: '1'
description: |-
Page number, this is usually used in conjunction with the parameter pageSize. (not used when generating reports)
See [How does paging work](https://apidocs.teamwork.com/guides/teamwork/how-does-paging-work) for more detailed documentation on pagination.
in: query
name: page
type: integer
- description: |-
SkipCounts allows you to skip doing counts on a list API endpoint for
performance reasons.
in: query
name: skipCounts
type: boolean
- default: 'false'
description: include deleted items
in: query
name: showDeleted
type: boolean
- description: Force to have the current/session user in the response
in: query
name: orderPrioritiseCurrentUser
type: boolean
- default: 'false'
in: query
name: onlySiteOwner
type: boolean
- default: 'false'
description: |-
return people only from the owner company. This will replace any provided
company ID.
in: query
name: onlyOwnerCompany
type: boolean
- default: 'false'
description: include service accounts
in: query
name: includeServiceAccounts
type: boolean
- default: 'true'
description: exclude collaborators types, returning only account and contact.
in: query
name: includeCollaborators
type: boolean
- default: 'true'
description: include clients
in: query
name: includeClients
type: boolean
- description: Returns users who are missing cost rates(OCA only)
in: query
name: filterByNoCostRate
type: boolean
- default: 'false'
description: exclude contact types, returning only account and collaborator.
in: query
name: excludeContacts
type: boolean
- description: team ids
in: query
items:
type: integer
name: teamIds
type: array
- description: filter by project ids
in: query
items:
type: integer
name: projectIds
type: array
- description: include (not used when generating reports)
in: query
items:
enum:
- companies
- workingHours
type: string
name: include
type: array
- description: filter by user ids
in: query
items:
type: integer
name: ids
type: array
- in: query
items:
enum:
- id
- name
- teamLogo
- teamLogoIcon
- teamLogoColor
type: string
name: fields[teams]
type: array
- in: query
items:
enum:
- id
- firstName
- lastName
- title
- email
- companyId
- company
- isAdmin
- isClientUser
- isServiceAccount
- type
- deleted
- avatarUrl
- lengthOfDay
- workingHoursId
- workingHour
- userRate
- userCost
- canAddProjects
type: string
name: fields[person]
type: array
- in: query
items:
enum:
- id
- firstName
- lastName
- title
- email
- companyId
- company
- isAdmin
- isClientUser
- isServiceAccount
- type
- deleted
- avatarUrl
- lengthOfDay
- workingHoursId
- workingHour
- userRate
- userCost
- canAddProjects
type: string
name: fields[people]
type: array
- in: query
items:
enum:
- id
- name
- logoUploadedToServer
- logoImage
type: string
name: fields[companies]
type: array
- in: query
items:
enum:
- viewMessagesAndFiles
- viewTasksAndMilestones
- viewTime
- viewNotebooks
- viewRiskRegister
- viewEstimatedTime
- viewInvoices
- addTasks
- addRisks
- manageCustomFields
- addExpenses
- editAllTasks
- addMilestones
- addTaskLists
- addMessages
- addFiles
- addTime
- addNotebooks
- viewLinks
- addLinks
- canViewForms
- addForms
- viewAllTimeLogs
- setPrivacy
- projectAdministrator
- viewProjectUpdate
- addProjectUpdate
- canViewProjectMembers
- canViewProjectBudget
- canManageProjectBudget
- canViewRates
- canManageRates
- canViewSchedule
- canManageSchedule
- receiveEmailNotifications
- isObserving
- isArchived
- active
- canAccess
- inOwnerCompany
- canManagePeople
- canViewProjectTemplates
- canManageProjectTemplates
type: string
name: fields[ProjectPermissions]
type: array
- description: exclude people assigned to certain project id
in: query
items:
type: integer
name: excludeProjectIds
type: array
- description: company ids
in: query
items:
type: integer
name: companyIds
type: array
produces:
- application/json
responses:
'200':
description: 200 OK
schema:
$ref: '#/definitions/people.MultiResponse'
'400':
description: 400 Bad Request
schema:
$ref: '#/definitions/view.ErrorResponse'
'403':
description: 403 Forbidden
schema:
$ref: '#/definitions/view.ErrorResponse'
summary: Returns a list of people
tags:
- People
/projects/api/v3/projects/{projectId}/people.json:
get:
description: Retrieve all people on the project.
operationId: GET_projects_api_v3_projects_{projectId}_people.json
parameters:
- description: user type
enum:
- account
- collaborator
- contact
in: query
name: userType
type: string
- description: date time
format: date-time
in: query
name: updatedAfter
type: string
- description: filter by comment content
in: query
name: searchTerm
type: string
- default: asc
description: order mode
enum:
- asc
- desc
in: query
name: orderMode
type: string
- default: name
description: order by
enum:
- name
- namecaseinsensitive
- company
in: query
name: orderBy
type: string
- format: date-time
in: query
name: lastLoginAfter
type: string
- in: path
name: projectId
required: true
type: integer
- default: '50'
description: number of items in a page (not used when generating reports)
in: query
name: pageSize
type: integer
- default: '1'
description: |-
Page number, this is usually used in conjunction with the parameter pageSize. (not used when generating reports)
See [How does paging work](https://apidocs.teamwork.com/guides/teamwork/how-does-paging-work) for more detailed documentation on pagination.
in: query
name: page
type: integer
- description: |-
SkipCounts allows you to skip doing counts on a list API endpoint for
performance reasons.
in: query
name: skipCounts
type: boolean
- default: 'false'
description: include deleted items
in: query
name: showDeleted
type: boolean
- description: Force to have the current/session user in the response
in: query
name: orderPrioritiseCurrentUser
type: boolean
- default: 'false'
in: query
name: onlySiteOwner
type: boolean
- default: 'false'
description: |-
return people only from the owner company. This will replace any provided
company ID.
in: query
name: onlyOwnerCompany
type: boolean
- default: 'false'
description: include service accounts
in: query
name: includeServiceAccounts
type: boolean
- default: 'true'
description: include project observers
in: query
name: includeObservers
type: boolean
- default: 'true'
description: exclude collaborators types, returning only account and contact.
in: query
name: includeCollaborators
type: boolean
- default: 'true'
description: include clients
in: query
name: includeClients
type: boolean
- description: Returns users who are missing cost rates(OCA only)
in: query
name: filterByNoCostRate
type: boolean
- default: 'false'
description: exclude contact types, returning only account and collaborator.
in: query
name: excludeContacts
type: boolean
- description: team ids
in: query
items:
type: integer
name: teamIds
type: array
- description: filter by project ids
in: query
items:
type: integer
name: projectIds
type: array
- description: include (not used when generating reports)
in: query
items:
enum:
- companies
- permissions
type: string
name: include
type: array
- description: filter by user ids
in: query
items:
type: integer
name: ids
type: array
- in: query
items:
enum:
- id
- name
- teamLogo
- teamLogoIcon
- teamLogoColor
type: string
name: fields[teams]
type: array
- in: query
items:
enum:
- id
- firstName
- lastName
- title
- email
- companyId
- company
- isAdmin
- isClientUser
- isServiceAccount
- type
- deleted
- avatarUrl
- lengthOfDay
- workingHoursId
- workingHour
- userRate
- userCost
- canAddProjects
type: string
name: fields[person]
type: array
- in: query
items:
enum:
- id
- firstName
- lastName
- title
- email
- companyId
- company
- isAdmin
- isClientUser
- isServiceAccount
- type
- deleted
- avatarUrl
- lengthOfDay
- workingHoursId
- workingHour
- userRate
- userCost
- canAddProjects
type: string
name: fields[people]
type: array
- in: query
items:
enum:
- id
- name
- logoUploadedToServer
- logoImage
type: string
name: fields[companies]
type: array
- in: query
items:
enum:
- viewMessagesAndFiles
- viewTasksAndMilestones
- viewTime
- viewNotebooks
- viewRiskRegister
- viewEstimatedTime
- viewInvoices
- addTasks
- addRisks
- manageCustomFields
- addExpenses
- editAllTasks
- addMilestones
- addTaskLists
- addMessages
- addFiles
- addTime
- addNotebooks
- viewLinks
- addLinks
- canViewForms
- addForms
- viewAllTimeLogs
- setPrivacy
- projectAdministrator
- viewProjectUpdate
- addProjectUpdate
- canViewProjectMembers
- canViewProjectBudget
- canManageProjectBudget
- canViewRates
- canManageRates
- canViewSchedule
- canManageSchedule
- receiveEmailNotifications
- isObserving
- isArchived
- active
- canAccess
- inOwnerCompany
- canManagePeople
- canViewProjectTemplates
- canManageProjectTemplates
type: string
name: fields[ProjectPermissions]
type: array
- description: exclude people assigned to certain project id
in: query
items:
type: integer
name: excludeProjectIds
type: array
- description: company ids
in: query
items:
type: integer
name: companyIds
type: array
produces:
- application/json
responses:
'200':
description: 200 OK
schema:
$ref: '#/definitions/people.MultiResponse'
'400':
description: 400 Bad Request
schema:
$ref: '#/definitions/view.ErrorResponse'
'403':
description: 403 Forbidden
schema:
$ref: '#/definitions/view.ErrorResponse'
summary: Returns a list of people on a project
tags:
- People
put:
consumes:
- application/json
description: Adds a list of user ID's to a project.
operationId: PUT_projects_api_v3_projects_{projectId}_people.json
parameters:
- in: body
name: people.UsersPayload
required: true
schema:
$ref: '#/definitions/people.UsersPayload'
- in: path
name: projectId
required: true
type: integer
produces:
- application/json
responses:
'200':
description: 200 OK
schema:
$ref: '#/definitions/people.AddPeopleToProjectResponse'
'400':
description: 400 Bad Request
schema:
$ref: '#/definitions/view.ErrorResponse'
'403':
description: 403 Forbidden
schema:
$ref: '#/definitions/view.ErrorResponse'
summary: Add people to a project
tags:
- People
/projects/api/v3/people/{personId}.json:
delete:
description: Delete a person.
operationId: DELETE_projects_api_v3_people_{personId}.json
parameters:
- in: path
name: personId
required: true
type: integer
produces:
- application/json
responses:
'204':
description: 204 No Content (no data)
'400':
description: 400 Bad Request
schema:
$ref: '#/definitions/view.ErrorResponse'
'403':
description: 403 Forbidden
schema:
$ref: '#/definitions/view.ErrorResponse'
'404':
description: 404 Not Found (no data)
summary: Delete an existing person.
tags:
- People
x-private: true
/projects/{id}/boards/columns.json:
parameters:
- name: id
in: path
required: true
type: integer
get:
operationId: GET_projects-id-boards-columns-json
summary: List Columns
tags:
- Boards
description: |-
**Important notice: This endpoint will be deprecated soon and replaced with a new Workflow endpoint, date to be confirmed.**
Allows you to list all existing Columns in your Boards view.
Example:
https://yoursite.teamwork.com/projects/{id}/boards/columns.json?showDeleted=true&updatedAfterDate=20171119120101
---
parameters:
- name: page
in: query
description: |-
Page number, this is usually used in conjunction with the parameter pageSize.
See [How does paging work](https://apidocs.teamwork.com/guides/teamwork/how-does-paging-work) for more detailed documentation on pagination.
type: integer
- name: pageSize
in: query
description: |-
Number of items in a page
See [How does paging work](https://apidocs.teamwork.com/guides/teamwork/how-does-paging-work) for more detailed documentation on pagination.
Minimum: 1
type: integer
- name: showDeleted
in: query
description: Show deleted Columns in the API response or not
type: boolean
- name: sortBy
in: query
description: Sort by relevance eg. Date
type: string
- name: sortOrder
in: query
description: Sort by order eg. Ascending
type: string
- name: searchTerm
in: query
description: Show specific column by name
type: string
- name: getEmoji
in: query
description: Show emojis in API response or not
type: boolean
- name: includeDefaults
in: query
description: Show/hide default tasklists
type: boolean
- name: get
in: query
description: Show people and/or default columns
type: string
- name: updatedAfterDate
in: query
description: Show Columns updated after a given date
type: string
- name: getStats
in: query
description: Show/hide information about cards within the column
type: boolean
responses:
'200':
description: ''
schema:
type: object
properties:
columns:
type: array
items:
type: object
properties:
name:
type: string
displayOrder:
type: string
sortOrder:
type: string
deletedDate:
type: string
dateUpdated:
type: string
settings:
type: object
properties:
avatar:
type: boolean
time:
type: boolean
name:
type: boolean
files:
type: boolean
comments:
type: boolean
priority:
type: boolean
progress:
type: boolean
subtasktext:
type: boolean
tasklist:
type: boolean
private:
type: boolean
reminders:
type: boolean
assignee:
type: boolean
dependencies:
type: boolean
tags:
type: boolean
estimatedtime:
type: boolean
startdate:
type: boolean
tickets:
type: boolean
followers:
type: boolean
recurring:
type: boolean
subtasklabel:
type: boolean
parenttask:
type: boolean
enddate:
type: boolean
defaultTasklist:
type: object
properties:
newTaskDefaults:
type: object
name:
type: string
id:
type: string
projectId:
type: string
stats:
type: object
properties:
estimatedTime:
type: string
total:
type: string
completed:
type: string
active:
type: string
hasTriggers:
type: boolean
sort:
type: string
canEdit:
type: boolean
triggers:
type: array
items:
type: object
id:
type: string
dateCreated:
type: string
color:
type: string
deleted:
type: boolean
canAddCards:
type: boolean
people:
type: object
properties:
'123':
type: object
properties:
company:
type: object
properties:
name:
type: string
id:
type: string
avatarUrl:
type: string
firstName:
type: string
id:
type: string
lastName:
type: string
STATUS:
type: string
examples:
application/json:
columns:
- name: My new Column
displayOrder: '4000'
sortOrder: ASC
deletedDate: ''
dateUpdated: yyyy-mm-ddThh:mm:ssZ
settings:
avatar: true
time: true
name: true
files: true
comments: true
priority: true
progress: true
subtasktext: true
tasklist: true
private: true
reminders: true
assignee: true
dependencies: true
tags: true
estimatedtime: true
startdate: true
tickets: true
followers: true
recurring: true
subtasklabel: true
parenttask: true
enddate: true
defaultTasklist:
newTaskDefaults: {}
name: ''
id: '0'
projectId: '12345'
stats:
estimatedTime: ''
total: '0'
completed: '0'
active: '0'
hasTriggers: false
sort: manual
canEdit: true
triggers: []
id: '1001'
dateCreated: yyyy-mm-ddThh:mm:ssZ
color: '#1ABC9C'
deleted: false
canAddCards: true
people:
'123':
company:
name: My Company
id: '1234'
avatarUrl: https://path/to/image.png
firstName: Joe
id: '123'
lastName: Bloggs
STATUS: OK
post:
operationId: POST_projects-id-boards-columns-json
summary: Create a new Column
tags:
- Boards
description: |-
**Important notice: This endpoint will be deprecated soon and replaced with a new Workflow endpoint, date to be confirmed.**
Allows you to create a new Column in your Boards view.
<h4>Please note: The following colours can be used when creating Columns:</h4>
#27AE60, #99DF72, #1ABC9C, #6866D0, #8E44AD, #0AD2F5, #3498DB, #3D82DE, #C0392B, #E74C3C, #A94136, #660A00, #F39C12, #F1C40F, #34495E, #7F8C8D, #D35400, #B49255, #D870AD, #BDC3C7, #9B59B6
---
parameters:
- name: body
in: body
schema:
type: object
properties:
column:
type: object
properties:
name:
type: string
color:
type: string
example:
column:
name: new card name
color: '#1ABC9C'
responses:
'201':
description: ''
schema:
type: object
properties:
id:
type: string
STATUS:
type: string
examples:
application/json:
id: '10001'
STATUS: OK
/boards/columns/{id}/cards.json:
parameters:
- name: id
in: path
type: string
required: true
get:
operationId: GET_boards-columns-id-cards-json
summary: List Cards in a Column
tags:
- Boards
description: |-
**Important notice: This endpoint will be deprecated soon and replaced with a new Workflow endpoint, date to be confirmed.**
List the existing Cards inside a Column.
---
parameters:
- name: page
in: query
description: |-
Page number, this is usually used in conjunction with the parameter pageSize.
See [How does paging work](https://apidocs.teamwork.com/guides/teamwork/how-does-paging-work) for more detailed documentation on pagination.
type: string
- name: pageSize
in: query
description: |-
Number of items in a page
See [How does paging work](https://apidocs.teamwork.com/guides/teamwork/how-does-paging-work) for more detailed documentation on pagination.
Minimum: 1
type: integer
- name: showDeleted
in: query
description: Show deleted Columns in the API response or not
type: boolean
- name: deletedAfterDate
in: query
description: deletedAfterDate
type: string
- name: updatedAfterDate
in: query
description: Show Columns updated after a given date
type: string
- name: searchTerm
in: query
description: An optional term to filter down to Cards containing this text in the Cards name
type: string
responses:
'200':
description: ''
schema:
type: object
properties:
people:
type: object
properties:
'12345':
type: object
properties:
company:
type: object
properties:
name:
type: string
id:
type: string
avatarUrl:
type: string
firstName:
type: string
id:
type: string
lastName:
type: string
STATUS:
type: string
column:
type: object
properties:
name:
type: string
id:
type: string
color:
type: string
cards:
type: array
items:
type: object
properties:
dueDate:
type: string
canComplete:
type: boolean
numComments:
type: string
taskListId:
type: string
displayOrder:
type: string
hasTickets:
type: boolean
archived:
type: boolean
deletedDate:
type: string
dateUpdated:
type: string
dateCompleted:
type: string
private:
type: string
projectId:
type: string
status:
type: string
numPredecessors:
type: string
numDependencies:
type: string
numAttachments:
type: string
canEdit:
type: boolean
tags:
type: array
items:
type: object
startDate:
type: string
id:
type: string
hasLoggedTime:
type: boolean
dateCreated:
type: string
completed:
type: boolean
estimatedMinutes:
type: string
deleted:
type: boolean
taskListName:
type: string
taskStatus:
type: string
columnId:
type: string
name:
type: string
description:
type: string
priority:
type: string
progress:
type: string
parentTaskId:
type: string
numActiveSubTasks:
type: string
assignedPeople:
type: array
items:
type: string
taskId:
type: string
isRecurring:
type: boolean
hasUnreadComments:
type: boolean
archivedDate:
type: string
examples:
application/json:
people:
'12345':
company:
name: My Company
id: '1234'
avatarUrl: https://path/to/person.jpg
firstName: Joe
id: '123'
lastName: Bloggs
STATUS: OK
column:
name: Inbox Column
id: '1003'
color: '#3D82DE'
cards:
- dueDate: ''
canComplete: true
numComments: '0'
taskListId: '123456789'
displayOrder: '1'
hasTickets: false
archived: false
deletedDate: ''
dateUpdated: yyyy-mm-ddThh:mm:ssZ
dateCompleted: ''
private: '0'
projectId: '1'
status: ACTIVE
numPredecessors: '0'
numDependencies: '0'
numAttachments: '0'
canEdit: true
tags: []
startDate: ''
id: '1002'
hasLoggedTime: false
dateCreated: yyyy-mm-ddThh:mm:ssZ
completed: false
estimatedMinutes: '0'
deleted: false
taskListName: A task list
taskStatus: new
columnId: '101'
name: My task name
description: ''
priority: NONE
progress: '0'
parentTaskId: ''
numActiveSubTasks: '0'
assignedPeople:
- '123'
taskId: '123456789'
isRecurring: false
hasUnreadComments: false
archivedDate: ''
post:
operationId: POST_boards-columns-id-cards-json
summary: Add a card to a Column
tags:
- Boards
description: |-
**Important notice: This endpoint will be deprecated soon and replaced with a new Workflow endpoint, date to be confirmed.**
Add a task from your list of Tasks in to a Column.
---
parameters:
- name: body
in: body
schema:
type: object
properties:
card:
type: object
properties:
taskId:
type: integer
positionAfterId:
type: integer
example:
card:
taskId: 12345
positionAfterId: -1
responses:
'201':
description: ''
examples:
application/json:
cardId: '1002'
taskId: '12345'
STATUS: OK
/boards/columns/cards/{id}/move.json:
parameters:
- name: id
in: path
required: true
type: integer
put:
operationId: PUT_boards-columns-cards-id-move-json
summary: Move a Card
tags:
- Boards
description: |-
**Important notice: This endpoint will be deprecated soon and replaced with a new Workflow endpoint, date to be confirmed.**
Add a task from your list of Tasks in to a Column.
---
parameters:
- name: body
in: body
schema:
type: object
properties:
cardId:
type: integer
positionAfterId:
type: integer
columnId:
type: integer
example:
cardId: 101
positionAfterId: 0
columnId: 1003
responses:
'200':
description: ''
schema:
type: object
examples:
application/json:
STATUS: OK
/boards/columns/cards/{id}.json:
parameters:
- name: id
in: path
type: string
required: true
put:
operationId: PUT_boards-columns-cards-id-json
summary: Edit a Card
tags:
- Boards
description: |-
**Important notice: This endpoint will be deprecated soon and replaced with an existing tasks endpoint, date to be confirmed.**
Edit the details of a Card.
---
parameters:
- name: body
in: body
schema:
type: object
properties:
card:
type: object
properties:
content:
type: string
taskListId:
type: string
start-date:
type: string
due-date:
type: string
responsible-party-id:
type: string
estimated-minutes:
type: integer
priority:
type: string
progress:
type: string
tags:
type: string
example:
card:
content: my updated card
taskListId: '123456789'
start-date: ''
due-date: ''
responsible-party-id: '0'
estimated-minutes: 0
priority: none
progress: '0'
tags: ''
responses:
'200':
description: ''
schema:
type: object
properties:
STATUS:
type: string
examples:
application/json:
STATUS: OK
delete:
operationId: DELETE_boards-columns-cards-id-json
summary: Remove a Card
tags:
- Boards
description: |-
**Important notice: This endpoint will be deprecated soon and replaced with an existing tasks endpoint, date to be confirmed.**
Remove a Card from a Column (that task isn't deleted from the Tasklist).
---
responses:
'200':
description: ''
schema:
type: object
properties:
STATUS:
type: string
examples:
application/json:
STATUS: OK
get:
description: |-
**Important notice: This endpoint will be deprecated soon and replaced with an existing tasks endpoint, date to be confirmed.**
responses:
'200':
description: ''
schema:
type: object
properties:
card:
type: object
properties:
dueDate:
type: string
canComplete:
type: boolean
numComments:
type: string
taskListId:
type: string
displayOrder:
type: string
hasTickets:
type: boolean
archived:
type: boolean
deletedDate:
type: string
dateCompleted:
type: string
dateUpdated:
type: string
private:
type: string
projectId:
type: string
status:
type: string
numPredecessors:
type: string
numDependencies:
type: string
numAttachments:
type: string
tags:
type: array
items:
type: object
canEdit:
type: boolean
startDate:
type: string
id:
type: string
hasLoggedTime:
type: boolean
dateCreated:
type: string
completed:
type: boolean
estimatedMinutes:
type: string
deleted:
type: boolean
taskStatus:
type: string
taskListName:
type: string
columnId:
type: string
name:
type: string
description:
type: string
progress:
type: string
priority:
type: string
projectName:
type: string
hasReminders:
type: boolean
parentTaskId:
type: string
column:
type: object
properties:
name:
type: string
id:
type: string
color:
type: string
hasRemindersForUser:
type: boolean
numActiveSubTasks:
type: string
assignedPeople:
type: array
items:
type: string
taskId:
type: string
isRecurring:
type: boolean
hasUnreadComments:
type: boolean
archivedDate:
type: string
examples:
application/json:
card:
dueDate: ''
canComplete: true
numComments: '0'
taskListId: '12'
displayOrder: '1000'
hasTickets: false
archived: false
deletedDate: ''
dateCompleted: ''
dateUpdated: '2020-05-27T09:00:22Z'
private: '0'
projectId: '12'
status: ACTIVE
numPredecessors: '0'
numDependencies: '0'
numAttachments: '0'
tags: []
canEdit: true
startDate: ''
id: '12'
hasLoggedTime: false
dateCreated: '2020-05-27T08:16:00Z'
completed: false
estimatedMinutes: '0'
deleted: false
taskStatus: new
taskListName: Cards
columnId: '12'
name: posing card
description: ''
progress: '0'
priority: NONE
projectName: Gage Wilkinson
hasReminders: false
parentTaskId: ''
column:
name: test
id: '12'
color: '#3D82DE'
hasRemindersForUser: false
numActiveSubTasks: '0'
assignedPeople:
- '1'
taskId: '123'
isRecurring: false
hasUnreadComments: false
archivedDate: ''
summary: 'Get a Card '
tags:
- Boards
/boards/columns/{id}.json:
parameters:
- name: id
in: path
type: string
required: true
delete:
operationId: DELETE_boards-columns-id-json
summary: Delete a Column
tags:
- Boards
description: |-
**Important notice: This endpoint will be deprecated soon and replaced with a new Workflow endpoint, date to be confirmed.**
Remove a Column from your boards view.
---
responses:
'200':
description: ''
schema:
type: object
properties:
STATUS:
type: string
examples:
application/json:
STATUS: OK
put:
responses:
'200':
description: ''
schema:
type: object
properties:
STATUS:
type: string
examples:
application/json:
STATUS: OK
summary: Edit a Column
description: |-
**Important notice: This endpoint will be deprecated soon and replaced with a new Workflow endpoint, date to be confirmed.**
Editing a column in a board by passing in the column Id.
parameters:
- in: path
name: id
type: string
required: true
- in: body
name: body
schema:
type: object
properties:
column:
type: object
properties:
name:
type: string
color:
type: string
tags:
- Boards
get:
responses:
'200':
description: ''
schema:
type: object
properties:
STATUS:
type: string
column:
type: object
properties:
name:
type: string
displayOrder:
type: string
sortOrder:
type: string
deletedDate:
type: string
dateUpdated:
type: string
settings:
type: object
properties:
time:
type: boolean
avatar:
type: boolean
name:
type: boolean
files:
type: boolean
comments:
type: boolean
priority:
type: boolean
progress:
type: boolean
subtasktext:
type: boolean
tasklist:
type: boolean
private:
type: boolean
reminders:
type: boolean
assignee:
type: boolean
dependencies:
type: boolean
tags:
type: boolean
estimatedtime:
type: boolean
startdate:
type: boolean
tickets:
type: boolean
followers:
type: boolean
recurring:
type: boolean
subtasklabel:
type: boolean
enddate:
type: boolean
defaultTasklist:
type: object
properties:
newTaskDefaults:
type: object
name:
type: string
id:
type: string
projectId:
type: string
hasTriggers:
type: boolean
sort:
type: string
canEdit:
type: boolean
id:
type: string
dateCreated:
type: string
color:
type: string
deleted:
type: boolean
canAddCards:
type: boolean
examples:
application/json:
STATUS: OK
column:
name: In Progress
displayOrder: '4000'
sortOrder: ASC
deletedDate: ''
dateUpdated: '2020-05-26T08:34:31Z'
settings:
time: true
avatar: true
name: true
files: true
comments: true
priority: true
progress: true
subtasktext: true
tasklist: true
private: true
reminders: true
assignee: true
dependencies: true
tags: true
estimatedtime: true
startdate: true
tickets: true
followers: true
recurring: true
subtasklabel: true
enddate: true
defaultTasklist:
newTaskDefaults: {}
name: ''
id: '0'
projectId: '1234'
hasTriggers: false
sort: manual
canEdit: true
id: '1234'
dateCreated: '2020-05-26T08:34:22Z'
color: '#27AE60'
deleted: false
canAddCards: true
summary: Get a Column
description: |-
**Important notice: This endpoint will be deprecated soon and replaced with a new Workflow endpoint, date to be confirmed.**
Get a column from a board by passing in the column Id.
tags:
- Boards
/projects/api/v3/workflows.json:
get:
operationId: GET_projects_api_v3_workflows.json
parameters:
- description: filter by updated after date
format: date-time
in: query
name: updatedAfter
type: string
- description: filter by workflow status
in: query
name: status
type: string
- description: filter by search term
in: query
name: searchTerm
type: string
- description: |-
cursor used for pagination. When using this pagination mode the page and
pageSize will be ignored, using limit to control the number of items. If
any other filter is modified during the cursor iteration the response
will fallback to the first page.
in: query
name: cursor
type: string
- default: '50'
description: number of items in a page
in: query
name: pageSize
type: integer
- default: '1'
description: page number
in: query
name: page
type: integer
- description: number of items to show when providing the cursor.
in: query
name: limit
type: integer
- default: 'false'
description: include deleted items
in: query
name: showDeleted
type: boolean
- default: 'false'
description: filter by the default workflow
in: query
name: onlyDefaultWorkflow
type: boolean
- description: enforce all stage names must be matched
in: query
name: matchAllStageNames
type: boolean
- description: include installation wide total counts
in: query
name: includeTotalCount
type: boolean
- description: include archived workflows
in: query
name: includeArchived
type: boolean
- description: filter by workflow ids
in: query
items:
type: integer
name: workflowIds
type: array
- description: filter workflows by the extact stage names
in: query
items:
type: string
name: stageNames
type: array
- description: filter by project ids
in: query
items:
type: integer
name: projectIds
type: array
- description: include
in: query
items:
enum:
- projects
- stages
- users
- teams
- companies
type: string
name: include
type: array
- in: query
items:
enum:
- id
- name
- statusId
type: string
name: 'fields[workflows]'
type: array
- in: query
items:
enum:
- id
- firstName
- lastName
- title
- email
- companyId
- company
- isAdmin
- isClientUser
- isServiceAccount
- type
- deleted
- avatarUrl
- lengthOfDay
- workingHoursId
- workingHour
- userRate
- userCost
- canAddProjects
type: string
name: 'fields[users]'
type: array
- in: query
items:
enum:
- id
- name
- teamLogo
- teamLogoIcon
- teamLogoColor
type: string
name: 'fields[teams]'
type: array
- in: query
items:
enum:
- id
- name
- stage
type: string
name: 'fields[stages]'
type: array
- in: query
items:
enum:
- id
- name
type: string
name: 'fields[projects]'
type: array
- in: query
items:
enum:
- id
- name
- logoUploadedToServer
- logoImage
type: string
name: 'fields[companies]'
type: array
produces:
- application/json
responses:
'200':
description: 200 OK
schema:
$ref: '#/definitions/workflow.WorkflowsResponse'
'400':
description: 400 Bad Request
schema:
$ref: '#/definitions/view.ErrorResponse'
summary: Get all workflows.
tags:
- Workflows
x-private: true
post:
consumes:
- application/json
description: Creates a new workflow.
operationId: POST_projects_api_v3_workflows.json
parameters:
- in: body
name: workflow.Request
required: true
schema:
$ref: '#/definitions/workflow.Request'
produces:
- application/json
responses:
'201':
description: 201 Created
schema:
$ref: '#/definitions/workflow.Response'
'400':
description: 400 Bad Request
schema:
$ref: '#/definitions/view.ErrorResponse'
'403':
description: 403 Forbidden
schema:
$ref: '#/definitions/view.ErrorResponse'
summary: Create a new workflow.
tags:
- Workflows
x-private: true
'/projects/api/v3/workflows/{workflowId}/stages.json':
get:
description: Retrieve all stages for a workflow.
operationId: 'GET_projects_api_v3_workflows_{workflowId}_stages.json'
parameters:
- description: filter by updated after date
format: date-time
in: query
name: updatedAfter
type: string
- default: asc
description: order mode
enum:
- asc
- desc
in: query
name: orderMode
type: string
- default: id
description: order by
enum:
- id
- name
- displayorder
in: query
name: orderBy
type: string
- description: |-
cursor used for pagination. When using this pagination mode the page and
pageSize will be ignored, using limit to control the number of items. If
any other filter is modified during the cursor iteration the response
will fallback to the first page.
in: query
name: cursor
type: string
- in: path
name: workflowId
required: true
type: integer
- description: filter by workflow ids
in: query
name: workflowId
type: integer
- default: '50'
description: number of items in a page
in: query
name: pageSize
type: integer
- default: '1'
description: page number
in: query
name: page
type: integer
- description: number of items to show when providing the cursor.
in: query
name: limit
type: integer
- description: include deleted stages in the result
in: query
name: showDeleted
type: boolean
- description: include
in: query
items:
enum:
- workflows
type: string
name: include
type: array
- description: filter by stage ids
in: query
items:
type: integer
name: ids
type: array
- in: query
items:
enum:
- id
- name
- statusId
type: string
name: 'fields[workflows]'
type: array
- in: query
items:
enum:
- id
- name
- stage
type: string
name: 'fields[stages]'
type: array
produces:
- application/json
responses:
'200':
description: 200 OK
schema:
$ref: '#/definitions/stage.StagesResponse'
'400':
description: 400 Bad Request
schema:
$ref: '#/definitions/view.ErrorResponse'
summary: Get all stages.
tags:
- Workflows
x-private: true
post:
consumes:
- application/json
description: Creates a new stage for a workflow with the given id.
operationId: 'POST_projects_api_v3_workflows_{workflowId}_stages.json'
parameters:
- in: body
name: stage.Request
required: true
schema:
$ref: '#/definitions/stage.Request'
- in: path
name: workflowId
required: true
type: integer
produces:
- application/json
responses:
'201':
description: 201 Created
schema:
$ref: '#/definitions/stage.Response'
'400':
description: 400 Bad Request
schema:
$ref: '#/definitions/view.ErrorResponse'
'403':
description: 403 Forbidden
schema:
$ref: '#/definitions/view.ErrorResponse'
summary: Create a new stage for a workflow.
tags:
- Workflows
x-private: true
'/projects/api/v3/workflows/{workflowId}/stages/{stageId}/tasks.json':
post:
consumes:
- application/json
description: Add all provided tasks to the workflow's stage.
operationId: 'POST_projects_api_v3_workflows_{workflowId}_stages_{stageId}_tasks.json'
parameters:
- in: body
name: stage.BulkAddTasksRequest
required: true
schema:
$ref: '#/definitions/stage.BulkAddTasksRequest'
- in: path
name: workflowId
required: true
type: integer
- in: path
name: stageId
required: true
type: integer
produces:
- application/json
responses:
'204':
description: 204 No Content (no data)
'400':
description: 400 Bad Request
schema:
$ref: '#/definitions/view.ErrorResponse'
'403':
description: 403 Forbidden
schema:
$ref: '#/definitions/view.ErrorResponse'
'404':
description: 404 Not Found (no data)
'409':
description: 409 Conflict
schema:
$ref: '#/definitions/view.ErrorResponse'
summary: Add tasks into stage.
tags:
- Workflows
x-private: true
'/projects/api/v3/workflows/{workflowId}/stages/{stageId}.json':
get:
description: Returns a stage for a workflow by id.
operationId: 'GET_projects_api_v3_workflows_{workflowId}_stages_{stageId}.json'
parameters:
- in: path
name: workflowId
required: true
type: integer
- in: path
name: stageId
required: true
type: integer
produces:
- application/json
responses:
'200':
description: 200 OK
schema:
$ref: '#/definitions/stage.Response'
'400':
description: 400 Bad Request
schema:
$ref: '#/definitions/view.ErrorResponse'
'404':
description: 404 Not Found (no data)
summary: Get a specific stage.
tags:
- Workflows
x-private: true
patch:
consumes:
- application/json
description: Updates a stage by id with the given workflow id.
operationId: 'PATCH_projects_api_v3_workflows_{workflowId}_stages_{stageId}.json'
parameters:
- in: body
name: stage.Request
required: true
schema:
$ref: '#/definitions/stage.Request'
- in: path
name: workflowId
required: true
type: integer
- in: path
name: stageId
required: true
type: integer
produces:
- application/json
responses:
'200':
description: 200 OK
schema:
$ref: '#/definitions/stage.Response'
'400':
description: 400 Bad Request
schema:
$ref: '#/definitions/view.ErrorResponse'
'403':
description: 403 Forbidden
schema:
$ref: '#/definitions/view.ErrorResponse'
'404':
description: 404 Not Found (no data)
'409':
description: 409 Conflict
schema:
$ref: '#/definitions/view.ErrorResponse'
summary: Update an existing stage.
tags:
- Workflows
x-private: true
delete:
description: Delete a workflow stage with the given id and migrate tasks to another stage.
operationId: 'DELETE_projects_api_v3_workflows_{workflowId}_stages_{stageId}.json'
parameters:
- in: path
name: workflowId
required: true
type: integer
- in: path
name: stageId
required: true
type: integer
produces:
- application/json
responses:
'204':
description: 204 No Content (no data)
'400':
description: 400 Bad Request
schema:
$ref: '#/definitions/view.ErrorResponse'
'403':
description: 403 Forbidden
schema:
$ref: '#/definitions/view.ErrorResponse'
'404':
description: 404 Not Found (no data)
summary: Delete an existing stage.
tags:
- Workflows
x-private: true
'/projects/api/v3/projects/:projectId/workflows.json':
post:
consumes:
- application/json
operationId: 'POST_projects_api_v3_projects_:projectId_workflows.json'
parameters:
- in: body
name: workflow.Request
required: true
schema:
$ref: '#/definitions/workflow.Request'
produces:
- application/json
responses:
'201':
description: 201 Created
schema:
$ref: '#/definitions/workflow.Response'
'400':
description: 400 Bad Request
schema:
$ref: '#/definitions/view.ErrorResponse'
'403':
description: 403 Forbidden
schema:
$ref: '#/definitions/view.ErrorResponse'
summary: Applies a workflow to a project
tags:
- Workflows
x-private: true
'/projects/api/v3/projects/workflows/:id.json':
post:
consumes:
- application/json
operationId: 'POST_projects_api_v3_projects_workflows_:id.json'
parameters:
- in: body
name: workflow.BulkProjectRequest
required: true
schema:
$ref: '#/definitions/workflow.BulkProjectRequest'
produces:
- application/json
responses:
'201':
description: 201 Created
schema:
$ref: '#/definitions/workflow.Response'
'400':
description: 400 Bad Request
schema:
$ref: '#/definitions/view.ErrorResponse'
'403':
description: 403 Forbidden
schema:
$ref: '#/definitions/view.ErrorResponse'
summary: Applies many projects to a workflow
tags:
- Workflows
x-private: true
'/projects/api/v3/workflows/{workflowId}/stages/{stageId}/tasks':
get:
description: |-
Return multiple tasks according to the provided filter.
On this endpoint you can filter by custom fields. The syntax for the
query parameter is the following:
customField[id][op]=value
Where:
- [id] is the custom field ID
- [op] is the operator to apply when filtering, different operators are
allowed according to the custom field type
- [value] is the value to apply when filtering
For example, if I want to filter a dropdown custom field with ID 10 to only
return entries that have the value "Option1" we would do the following:
customField[10][eq]=Option1
The allowed operators are:
- like
- not-like
- eq
- not
- lt
- gt
- any
operationId: 'GET_projects_api_v3_workflows_{workflowId}_stages_{stageId}_tasks'
parameters:
- description: filter by updated before date
format: date-time
in: query
name: updatedBefore
type: string
- description: filter by updated after date
format: date-time
in: query
name: updatedAfter
type: string
- description: filter by today
format: date-time
in: query
name: today
type: string
- description: filter by a taskFilter
enum:
- all
- anytime
- completed
- created
- overdue
- today
- yesterday
- started
- tomorrow
- thisweek
- within7
- within14
- within30
- within365
- nodate
- noduedate
- nostartdate
- newTaskDefaults
- hasDate
in: query
name: taskFilter
type: string
- description: filter on start date
format: date
in: query
name: startDate
type: string
- description: filter by search term
in: query
name: searchTerm
type: string
- default: task
description: define the type of the report
enum:
- plannedvsactual
- task
- tasktime
in: query
name: reportType
type: string
- default: pdf
description: define the format of the report
enum:
- html
- pdf
in: query
name: reportFormat
type: string
- description: filter by task priority
in: query
name: priority
type: string
- default: asc
description: order mode
enum:
- asc
- desc
in: query
name: orderMode
type: string
- default: duedate
description: order by
enum:
- startdate
- createdat
- priority
- project
- flattenedtasklist
- company
- manual
- active
- completedat
- duestartdate
- alldates
- tasklistname
- tasklistdisplayorder
- tasklistid
- duedate
- updatedat
- taskname
- createdby
- completedby
- assignedto
- taskstatus
- taskduedate
- customfield
- estimatedtime
- boardcolumn
- taskgroupid
- taskgroupname
- taskgroup
- displayorder
- projectmanual
- stagedisplayorder
- stage
in: query
name: orderBy
type: string
- description: filter by projects that have not been completed before the given date
format: date
in: query
name: notCompletedBefore
type: string
- description: filter on end date
format: date
in: query
name: endDate
type: string
- description: filter before a due date
format: date
in: query
name: dueBefore
type: string
- description: filter after a due date
format: date
in: query
name: dueAfter
type: string
- description: filter on deleted after date
format: date-time
in: query
name: deletedAfter
type: string
- description: filter by created filter
enum:
- anytime
- today
- yesterday
- custom
in: query
name: createdFilter
type: string
- description: filter by created date code
in: query
name: createdDateCode
type: string
- description: filter by created before date
format: date-time
in: query
name: createdBefore
type: string
- description: filter by created after date
format: date-time
in: query
name: createdAfter
type: string
- description: filter by completed before date
format: date-time
in: query
name: completedBefore
type: string
- description: filter by completed after date
format: date-time
in: query
name: completedAfter
type: string
- in: path
name: workflowId
required: true
type: integer
- in: path
name: stageId
required: true
type: integer
- description: filter by parent task ids
in: query
name: parentTaskId
type: integer
- default: '50'
description: number of items in a page
in: query
name: pageSize
type: integer
- default: '1'
description: page number
in: query
name: page
type: integer
- description: order by custom field id when orderBy is equal to customfield
in: query
name: orderByCustomFieldId
type: integer
- description: include task id
in: query
name: includeTaskId
type: integer
- description: provide a user saved filter ID
in: query
name: filterId
type: integer
- description: filter by completer user id
in: query
name: completedByUserId
type: integer
- description: use start dates for todays tasks
in: query
name: useStartDatesForTodaysTasks
type: boolean
- description: filter on all projects
in: query
name: useAllProjects
type: boolean
- default: 'false'
description: include deleted items
in: query
name: showDeleted
type: boolean
- description: include tasks from completed lists
in: query
name: showCompletedLists
type: boolean
- description: include companies and teams in the search term
in: query
name: searchCompaniesTeams
type: boolean
- description: include assignees in the search
in: query
name: searchAssignees
type: boolean
- description: only untagged tasks
in: query
name: onlyUntaggedTasks
type: boolean
- default: 'false'
description: |-
only return tasks that are unplanned. Not assigned, no due date or
missing estimated time.
in: query
name: onlyUnplanned
type: boolean
- description: filter by only tasks with unread comments
in: query
name: onlyTasksWithUnreadComments
type: boolean
- description: filter by only tasks with tickets
in: query
name: onlyTasksWithTickets
type: boolean
- description: only return tasks with estimated time
in: query
name: onlyTasksWithEstimatedTime
type: boolean
- description: filter by starred projects only
in: query
name: onlyStarredProjects
type: boolean
- description: |-
only include tasks from projects where the user is strictly a project admin.
site admins have visibility to all projects.
in: query
name: onlyAdminProjects
type: boolean
- description: nest sub tasks
in: query
name: nestSubTasks
type: boolean
- description: match all tags
in: query
name: matchAllTags
type: boolean
- description: match all project tags
in: query
name: matchAllProjectTags
type: boolean
- description: match all exclude tags
in: query
name: matchAllExcludedTags
type: boolean
- default: 'false'
description: generate a report export.
in: query
name: isReportDownload
type: boolean
- description: include tasks latest update action
in: query
name: includeUpdate
type: boolean
- description: include untagged tasks
in: query
name: includeUntaggedTasks
type: boolean
- description: filter by include tomorrow
in: query
name: includeTomorrow
type: boolean
- description: filter by include today
in: query
name: includeToday
type: boolean
- description: include members of the given teams
in: query
name: includeTeamUserIds
type: boolean
- description: include tasks without due dates
in: query
name: includeTasksWithoutDueDates
type: boolean
- default: 'true'
description: include tasks with cards
in: query
name: includeTasksWithCards
type: boolean
- description: include tasks from deleted lists
in: query
name: includeTasksFromDeletedLists
type: boolean
- description: 'include ids of completed and active subtasks, dependencies, predecessors'
in: query
name: includeRelatedTasks
type: boolean
- description: include private items
in: query
name: includePrivateItems
type: boolean
- description: include overdue tasks
in: query
name: includeOverdueTasks
type: boolean
- description: include original due date of a task
in: query
name: includeOriginalDueDate
type: boolean
- default: 'false'
description: include custom fields
in: query
name: includeCustomFields
type: boolean
- description: include completed tasks
in: query
name: includeCompletedTasks
type: boolean
- description: include members of the given companies
in: query
name: includeCompanyUserIds
type: boolean
- default: 'false'
description: include number of unread and read comments for each task
in: query
name: includeCommentStats
type: boolean
- description: filter by include blocked
in: query
name: includeBlocked
type: boolean
- default: 'false'
description: include number of unread and read comments for each file attachment
in: query
name: includeAttachmentCommentStats
type: boolean
- description: include teams related to the responsible user ids
in: query
name: includeAssigneeTeams
type: boolean
- description: include companies related to the responsible user ids
in: query
name: includeAssigneeCompanies
type: boolean
- description: include archived projects
in: query
name: includeArchivedProjects
type: boolean
- description: include all comments
in: query
name: includeAllComments
type: boolean
- description: group by tasklist
in: query
name: groupByTasklist
type: boolean
- description: group by taskgroup
in: query
name: groupByTaskgroup
type: boolean
- description: get sub tasks
in: query
name: getSubTasks
type: boolean
- description: get files
in: query
name: getFiles
type: boolean
- description: set due date as milestone due date if due date is null and there's a related milestone
in: query
name: fallbackToMilestoneDueDate
type: boolean
- description: |-
For tasks created in a project template it's possible to assign a role instead of people, companies or teams.
This role is then stored with the task name as a prefix. When this flag is enabled it will extract the role name
and return it inside a special field.
in: query
name: extractTemplateRoleName
type: boolean
- description: exclude assignee not on project teams
in: query
name: excludeAssigneeNotOnProjectTeams
type: boolean
- default: 'false'
description: only completed tasks
in: query
name: completedOnly
type: boolean
- description: check if task has reminders
in: query
name: checkForReminders
type: boolean
- default: 'true'
description: |-
when filtering by assigned or unassagned tasks, include assignees that
are not in the project.
in: query
name: allowAssigneesOutsideProject
type: boolean
- description: customise the report by selecting columns to be displayed for tasks report
in: query
items:
type: string
name: tasksSelectedColumns
type: array
- description: filter by tasklist ids
in: query
items:
type: integer
name: tasklistIds
type: array
- description: filter by taskgroup ids
in: query
items:
type: integer
name: taskgroupIds
type: array
- description: filter by task included set
in: query
items:
enum:
- overdue
- nodate
- nostartdate
- noduedate
- nostartwithfutureduedate
- taskListNames
- projectNames
type: string
name: taskIncludedSet
type: array
- description: filter by tag values
in: query
items:
type: string
name: tags
type: array
- description: filter by tag ids
in: query
items:
type: integer
name: tagIds
type: array
- description: filter by list of task status
in: query
items:
enum:
- upcoming
- late
- all
type: string
name: status
type: array
- description: skip crm deal ids
in: query
items:
type: integer
name: skipCRMDealIds
type: array
- description: customise the report by selecting columns to be displayed for planned vs actual.
in: query
items:
type: string
name: selectedColumns
type: array
- description: filter by responsible party ids
in: query
items:
type: integer
name: responsiblePartyIds
type: array
- description: filter by project tag ids
in: query
items:
type: integer
name: projectTagIds
type: array
- description: filter by project status
in: query
items:
enum:
- active
- current
- late
- upcoming
- completed
- deleted
type: string
name: projectStatuses
type: array
- description: filter by project owner ids
in: query
items:
type: integer
name: projectOwnerIds
type: array
- description: filter by project ids
in: query
items:
type: integer
name: projectIds
type: array
- description: |-
filter by project healths
0: not set
1: bad
2: ok
3: good
in: query
items:
enum:
- '0'
- '1'
- '2'
- '3'
type: integer
name: projectHealths
type: array
- description: filter by projects that have features enabled
in: query
items:
enum:
- list
- board
- gantt
- table
- dashboard
- milestones
- messages
- files
- time
- notebooks
- risks
- links
- billing
- comments
- people
- settings
type: string
name: projectFeaturesEnabled
type: array
- description: filter by company ids
in: query
items:
type: integer
name: projectCompanyIds
type: array
- description: filter by project category ids
in: query
items:
type: integer
name: projectCategoryIds
type: array
- description: include specific custom fields
in: query
items:
type: integer
name: includeCustomFieldIds
type: array
- description: include
in: query
items:
enum:
- projects
- projects.companies
- projects.categories
- tasklists
- parentTasks
- companies
- teams
- users
- milestones
- comments
- comments.users
- tags
- cards
- cards.columns
- timeTotals
- taskSequences
- commentFollowers
- changeFollowers
- lockdowns
- lockdowns.users
- lockdowns.companies
- lockdowns.teams
- lockdowns.users.companies
- lockdowns.companies.users
- lockdowns.teams.users
- attachments
- attachments.users
- subtaskStats
- timers
- predecessors
- permissions
type: string
name: include
type: array
- description: filter by task ids
in: query
items:
type: integer
name: ids
type: array
- description: filter by followed by user ids
in: query
items:
type: integer
name: followedByUserIds
type: array
- description: filter by board column ids
in: query
items:
type: integer
name: filterBoardColumnIds
type: array
- in: query
items:
enum:
- id
- firstName
- lastName
- title
- email
- companyId
- company
- isAdmin
- isClientUser
- isServiceAccount
- type
- deleted
- avatarUrl
- lengthOfDay
- workingHoursId
- workingHour
- userRate
- userCost
- canAddProjects
type: string
name: 'fields[users]'
type: array
- in: query
items:
enum:
- id
- userId
- taskId
- projectId
- description
- running
- billable
- deleted
- dateCreated
- dateDeleted
- duration
- lastStartedAt
- serverTime
- intervals
type: string
name: 'fields[timers]'
type: array
- in: query
items:
enum:
- id
- name
- teamLogo
- teamLogoIcon
- teamLogoColor
type: string
name: 'fields[teams]'
type: array
- in: query
items:
enum:
- id
- name
- dateUpdated
- parentTaskId
- isPrivate
- status
- tasklistId
- startDate
- dueDate
type: string
name: 'fields[tasks]'
type: array
- in: query
items:
enum:
- id
- name
- projectId
- milestoneId
type: string
name: 'fields[tasklists]'
type: array
- in: query
items:
enum:
- id
- name
- description
- displayOrder
- projectId
- status
type: string
name: 'fields[taskgroups]'
type: array
- in: query
items:
enum:
- id
- installationId
- frequency
- selectedWeekDays
- endDate
- monthlyRepeatType
- duration
- rrule
type: string
name: 'fields[taskSequences]'
type: array
- in: query
items:
enum:
- id
- name
- color
- count
type: string
name: 'fields[tags]'
type: array
- in: query
items:
enum:
- id
- name
type: string
name: 'fields[projects]'
type: array
- in: query
items:
enum:
- id
- name
- description
- deadline
- completed
- projectId
- createdOn
- lastChangedOn
- creatorUserId
- reminder
- private
- lockdownId
- status
- completedOn
- completerId
- percentageComplete
type: string
name: 'fields[milestones]'
type: array
- in: query
items:
enum:
- id
- userID
- updatedAt
- itemType
- itemID
- grantAccessTo
type: string
name: 'fields[lockdowns]'
type: array
- in: query
items:
enum:
- isPrivate
- latestFileVersionNo
- versionId
- status
- description
- lockdownId
- tagIds
- changeFollowers
- commentFollowers
- originalName
- displayName
- isLocked
- lockedByUserId
- lockedDate
- size
- uploadedDate
- uploadedByUserID
- updatedAt
- deletedAt
- deletedBy
- fileSource
- projectId
- numLikes
- reactions
- versions
- downloadURL
- previewURL
- thumbURL
- relatedItems
- commentsCount
- commentsCountRead
- categoryId
type: string
name: 'fields[files]'
type: array
- in: query
items:
enum:
- id
- name
- logoUploadedToServer
- logoImage
type: string
name: 'fields[companies]'
type: array
- in: query
items:
enum:
- id
- objectType
- objectId
- title
type: string
name: 'fields[comments]'
type: array
- in: query
items:
enum:
- id
- name
- color
- displayOrder
- createdAt
- updatedAt
- settings
- sort
- sortOrder
- deletedAt
- project
- hasTriggers
- deleted
- stats
- defaultTasklist
type: string
name: 'fields[columns]'
type: array
- in: query
items:
enum:
- id
- displayOrder
- archived
- archivedAt
- archivedBy
- createdAt
- createBy
- updatedAt
- visible
- status
- deleteBy
- deletedAt
type: string
name: 'fields[cards]'
type: array
- in: query
items:
enum:
- viewMessagesAndFiles
- viewTasksAndMilestones
- viewTime
- viewNotebooks
- viewRiskRegister
- viewEstimatedTime
- viewInvoices
- addTasks
- addRisks
- manageCustomFields
- addExpenses
- editAllTasks
- addMilestones
- addTaskLists
- addMessages
- addFiles
- addTime
- addNotebooks
- viewLinks
- addLinks
- canViewForms
- addForms
- viewAllTimeLogs
- setPrivacy
- projectAdministrator
- viewProjectUpdate
- addProjectUpdate
- canViewProjectMembers
- canViewProjectBudget
- canManageProjectBudget
- canViewRates
- canManageRates
- canViewSchedule
- canManageSchedule
- receiveEmailNotifications
- isObserving
- isArchived
- active
- canAccess
- inOwnerCompany
- canManagePeople
- canViewProjectTemplates
- canManageProjectTemplates
type: string
name: 'fields[ProjectPermissions]'
type: array
- description: the ids of the expanded tasks
in: query
items:
type: integer
name: expandedIds
type: array
- description: filter by excluded tag ids
in: query
items:
type: integer
name: excludeTagIds
type: array
- description: filter by crm deal ids
in: query
items:
type: integer
name: crmDealIds
type: array
- description: filter by creator user ids
in: query
items:
type: integer
name: createdByUserIds
type: array
- description: filter by assignee team ids
in: query
items:
type: integer
name: assigneeTeamIds
type: array
- description: filter by assignee company ids
in: query
items:
type: integer
name: assigneeCompanyIds
type: array
- description: filter by custom fields
in: query
items:
type: string
name: CustomFields
type: array
produces:
- application/json
responses:
'200':
description: 200 OK
schema:
$ref: '#/definitions/task.tasksResponseV205'
'400':
description: 400 Bad Request
schema:
$ref: '#/definitions/view.ErrorResponse'
summary: Get a specific project's tasks.
tags:
- Workflows
x-private: true
'/projects/api/v3/workflows/{workflowId}/backlog':
get:
description: |-
On this endpoint you can filter by custom fields. The syntax for the
query parameter is the following:
customField[id][op]=value
Where:
- [id] is the custom field ID
- [op] is the operator to apply when filtering, different operators are
allowed according to the custom field type
- [value] is the value to apply when filtering
For example, if I want to filter a dropdown custom field with ID 10 to only
return entries that have the value "Option1" we would do the following:
customField[10][eq]=Option1
The allowed operators are:
- like
- not-like
- eq
- not
- lt
- gt
- any
operationId: 'GET_projects_api_v3_workflows_{workflowId}_backlog'
parameters:
- description: filter by updated before date
format: date-time
in: query
name: updatedBefore
type: string
- description: filter by updated after date
format: date-time
in: query
name: updatedAfter
type: string
- description: filter by today
format: date-time
in: query
name: today
type: string
- description: filter by a taskFilter
enum:
- all
- anytime
- completed
- created
- overdue
- today
- yesterday
- started
- tomorrow
- thisweek
- within7
- within14
- within30
- within365
- nodate
- noduedate
- nostartdate
- newTaskDefaults
- hasDate
in: query
name: taskFilter
type: string
- description: filter on start date
format: date
in: query
name: startDate
type: string
- description: filter by search term
in: query
name: searchTerm
type: string
- default: task
description: define the type of the report
enum:
- plannedvsactual
- task
- tasktime
in: query
name: reportType
type: string
- default: pdf
description: define the format of the report
enum:
- html
- pdf
in: query
name: reportFormat
type: string
- description: filter by task priority
in: query
name: priority
type: string
- default: asc
description: order mode
enum:
- asc
- desc
in: query
name: orderMode
type: string
- default: duedate
description: order by
enum:
- startdate
- createdat
- priority
- project
- flattenedtasklist
- company
- manual
- active
- completedat
- duestartdate
- alldates
- tasklistname
- tasklistdisplayorder
- tasklistid
- duedate
- updatedat
- taskname
- createdby
- completedby
- assignedto
- taskstatus
- taskduedate
- customfield
- estimatedtime
- boardcolumn
- taskgroupid
- taskgroupname
- taskgroup
- displayorder
- projectmanual
- stagedisplayorder
- stage
in: query
name: orderBy
type: string
- description: filter by projects that have not been completed before the given date
format: date
in: query
name: notCompletedBefore
type: string
- description: filter on end date
format: date
in: query
name: endDate
type: string
- description: filter before a due date
format: date
in: query
name: dueBefore
type: string
- description: filter after a due date
format: date
in: query
name: dueAfter
type: string
- description: filter on deleted after date
format: date-time
in: query
name: deletedAfter
type: string
- description: filter by created filter
enum:
- anytime
- today
- yesterday
- custom
in: query
name: createdFilter
type: string
- description: filter by created date code
in: query
name: createdDateCode
type: string
- description: filter by created before date
format: date-time
in: query
name: createdBefore
type: string
- description: filter by created after date
format: date-time
in: query
name: createdAfter
type: string
- description: filter by completed before date
format: date-time
in: query
name: completedBefore
type: string
- description: filter by completed after date
format: date-time
in: query
name: completedAfter
type: string
- in: path
name: workflowId
required: true
type: integer
- description: filter by parent task ids
in: query
name: parentTaskId
type: integer
- default: '50'
description: number of items in a page
in: query
name: pageSize
type: integer
- default: '1'
description: page number
in: query
name: page
type: integer
- description: order by custom field id when orderBy is equal to customfield
in: query
name: orderByCustomFieldId
type: integer
- description: include task id
in: query
name: includeTaskId
type: integer
- description: provide a user saved filter ID
in: query
name: filterId
type: integer
- description: filter by completer user id
in: query
name: completedByUserId
type: integer
- description: use start dates for todays tasks
in: query
name: useStartDatesForTodaysTasks
type: boolean
- description: filter on all projects
in: query
name: useAllProjects
type: boolean
- default: 'false'
description: include deleted items
in: query
name: showDeleted
type: boolean
- description: include tasks from completed lists
in: query
name: showCompletedLists
type: boolean
- description: include companies and teams in the search term
in: query
name: searchCompaniesTeams
type: boolean
- description: include assignees in the search
in: query
name: searchAssignees
type: boolean
- description: only untagged tasks
in: query
name: onlyUntaggedTasks
type: boolean
- default: 'false'
description: |-
only return tasks that are unplanned. Not assigned, no due date or
missing estimated time.
in: query
name: onlyUnplanned
type: boolean
- description: filter by only tasks with unread comments
in: query
name: onlyTasksWithUnreadComments
type: boolean
- description: filter by only tasks with tickets
in: query
name: onlyTasksWithTickets
type: boolean
- description: only return tasks with estimated time
in: query
name: onlyTasksWithEstimatedTime
type: boolean
- description: filter by starred projects only
in: query
name: onlyStarredProjects
type: boolean
- description: |-
only include tasks from projects where the user is strictly a project admin.
site admins have visibility to all projects.
in: query
name: onlyAdminProjects
type: boolean
- description: nest sub tasks
in: query
name: nestSubTasks
type: boolean
- description: match all tags
in: query
name: matchAllTags
type: boolean
- description: match all project tags
in: query
name: matchAllProjectTags
type: boolean
- description: match all exclude tags
in: query
name: matchAllExcludedTags
type: boolean
- default: 'false'
description: generate a report export.
in: query
name: isReportDownload
type: boolean
- description: include tasks latest update action
in: query
name: includeUpdate
type: boolean
- description: include untagged tasks
in: query
name: includeUntaggedTasks
type: boolean
- description: filter by include tomorrow
in: query
name: includeTomorrow
type: boolean
- description: filter by include today
in: query
name: includeToday
type: boolean
- description: include members of the given teams
in: query
name: includeTeamUserIds
type: boolean
- description: include tasks without due dates
in: query
name: includeTasksWithoutDueDates
type: boolean
- default: 'true'
description: include tasks with cards
in: query
name: includeTasksWithCards
type: boolean
- description: include tasks from deleted lists
in: query
name: includeTasksFromDeletedLists
type: boolean
- description: 'include ids of completed and active subtasks, dependencies, predecessors'
in: query
name: includeRelatedTasks
type: boolean
- description: include private items
in: query
name: includePrivateItems
type: boolean
- description: include overdue tasks
in: query
name: includeOverdueTasks
type: boolean
- description: include original due date of a task
in: query
name: includeOriginalDueDate
type: boolean
- default: 'false'
description: include custom fields
in: query
name: includeCustomFields
type: boolean
- description: include completed tasks
in: query
name: includeCompletedTasks
type: boolean
- description: include members of the given companies
in: query
name: includeCompanyUserIds
type: boolean
- default: 'false'
description: include number of unread and read comments for each task
in: query
name: includeCommentStats
type: boolean
- description: filter by include blocked
in: query
name: includeBlocked
type: boolean
- default: 'false'
description: include number of unread and read comments for each file attachment
in: query
name: includeAttachmentCommentStats
type: boolean
- description: include teams related to the responsible user ids
in: query
name: includeAssigneeTeams
type: boolean
- description: include companies related to the responsible user ids
in: query
name: includeAssigneeCompanies
type: boolean
- description: include archived projects
in: query
name: includeArchivedProjects
type: boolean
- description: include all comments
in: query
name: includeAllComments
type: boolean
- description: group by tasklist
in: query
name: groupByTasklist
type: boolean
- description: group by taskgroup
in: query
name: groupByTaskgroup
type: boolean
- description: get sub tasks
in: query
name: getSubTasks
type: boolean
- description: get files
in: query
name: getFiles
type: boolean
- description: set due date as milestone due date if due date is null and there's a related milestone
in: query
name: fallbackToMilestoneDueDate
type: boolean
- description: |-
For tasks created in a project template it's possible to assign a role instead of people, companies or teams.
This role is then stored with the task name as a prefix. When this flag is enabled it will extract the role name
and return it inside a special field.
in: query
name: extractTemplateRoleName
type: boolean
- description: exclude assignee not on project teams
in: query
name: excludeAssigneeNotOnProjectTeams
type: boolean
- default: 'false'
description: only completed tasks
in: query
name: completedOnly
type: boolean
- description: check if task has reminders
in: query
name: checkForReminders
type: boolean
- default: 'true'
description: |-
when filtering by assigned or unassagned tasks, include assignees that
are not in the project.
in: query
name: allowAssigneesOutsideProject
type: boolean
- description: customise the report by selecting columns to be displayed for tasks report
in: query
items:
type: string
name: tasksSelectedColumns
type: array
- description: filter by tasklist ids
in: query
items:
type: integer
name: tasklistIds
type: array
- description: filter by taskgroup ids
in: query
items:
type: integer
name: taskgroupIds
type: array
- description: filter by task included set
in: query
items:
enum:
- overdue
- nodate
- nostartdate
- noduedate
- nostartwithfutureduedate
- taskListNames
- projectNames
type: string
name: taskIncludedSet
type: array
- description: filter by tag values
in: query
items:
type: string
name: tags
type: array
- description: filter by tag ids
in: query
items:
type: integer
name: tagIds
type: array
- description: filter by list of task status
in: query
items:
enum:
- upcoming
- late
- all
type: string
name: status
type: array
- description: skip crm deal ids
in: query
items:
type: integer
name: skipCRMDealIds
type: array
- description: customise the report by selecting columns to be displayed for planned vs actual.
in: query
items:
type: string
name: selectedColumns
type: array
- description: filter by responsible party ids
in: query
items:
type: integer
name: responsiblePartyIds
type: array
- description: filter by project tag ids
in: query
items:
type: integer
name: projectTagIds
type: array
- description: filter by project status
in: query
items:
enum:
- active
- current
- late
- upcoming
- completed
- deleted
type: string
name: projectStatuses
type: array
- description: filter by project owner ids
in: query
items:
type: integer
name: projectOwnerIds
type: array
- description: filter by project ids
in: query
items:
type: integer
name: projectIds
type: array
- description: |-
filter by project healths
0: not set
1: bad
2: ok
3: good
in: query
items:
enum:
- '0'
- '1'
- '2'
- '3'
type: integer
name: projectHealths
type: array
- description: filter by projects that have features enabled
in: query
items:
enum:
- list
- board
- gantt
- table
- dashboard
- milestones
- messages
- files
- time
- notebooks
- risks
- links
- billing
- comments
- people
- settings
type: string
name: projectFeaturesEnabled
type: array
- description: filter by company ids
in: query
items:
type: integer
name: projectCompanyIds
type: array
- description: filter by project category ids
in: query
items:
type: integer
name: projectCategoryIds
type: array
- description: include specific custom fields
in: query
items:
type: integer
name: includeCustomFieldIds
type: array
- description: include
in: query
items:
enum:
- projects
- projects.companies
- projects.categories
- tasklists
- parentTasks
- companies
- teams
- users
- milestones
- comments
- comments.users
- tags
- cards
- cards.columns
- timeTotals
- taskSequences
- commentFollowers
- changeFollowers
- lockdowns
- lockdowns.users
- lockdowns.companies
- lockdowns.teams
- lockdowns.users.companies
- lockdowns.companies.users
- lockdowns.teams.users
- attachments
- attachments.users
- subtaskStats
- timers
- predecessors
- permissions
type: string
name: include
type: array
- description: filter by task ids
in: query
items:
type: integer
name: ids
type: array
- description: filter by followed by user ids
in: query
items:
type: integer
name: followedByUserIds
type: array
- description: filter by board column ids
in: query
items:
type: integer
name: filterBoardColumnIds
type: array
- in: query
items:
enum:
- id
- firstName
- lastName
- title
- email
- companyId
- company
- isAdmin
- isClientUser
- isServiceAccount
- type
- deleted
- avatarUrl
- lengthOfDay
- workingHoursId
- workingHour
- userRate
- userCost
- canAddProjects
type: string
name: 'fields[users]'
type: array
- in: query
items:
enum:
- id
- userId
- taskId
- projectId
- description
- running
- billable
- deleted
- dateCreated
- dateDeleted
- duration
- lastStartedAt
- serverTime
- intervals
type: string
name: 'fields[timers]'
type: array
- in: query
items:
enum:
- id
- name
- teamLogo
- teamLogoIcon
- teamLogoColor
type: string
name: 'fields[teams]'
type: array
- in: query
items:
enum:
- id
- name
- dateUpdated
- parentTaskId
- isPrivate
- status
- tasklistId
- startDate
- dueDate
type: string
name: 'fields[tasks]'
type: array
- in: query
items:
enum:
- id
- name
- projectId
- milestoneId
type: string
name: 'fields[tasklists]'
type: array
- in: query
items:
enum:
- id
- name
- description
- displayOrder
- projectId
- status
type: string
name: 'fields[taskgroups]'
type: array
- in: query
items:
enum:
- id
- installationId
- frequency
- selectedWeekDays
- endDate
- monthlyRepeatType
- duration
- rrule
type: string
name: 'fields[taskSequences]'
type: array
- in: query
items:
enum:
- id
- name
- color
- count
type: string
name: 'fields[tags]'
type: array
- in: query
items:
enum:
- id
- name
type: string
name: 'fields[projects]'
type: array
- in: query
items:
enum:
- id
- name
- description
- deadline
- completed
- projectId
- createdOn
- lastChangedOn
- creatorUserId
- reminder
- private
- lockdownId
- status
- completedOn
- completerId
- percentageComplete
type: string
name: 'fields[milestones]'
type: array
- in: query
items:
enum:
- id
- userID
- updatedAt
- itemType
- itemID
- grantAccessTo
type: string
name: 'fields[lockdowns]'
type: array
- in: query
items:
enum:
- isPrivate
- latestFileVersionNo
- versionId
- status
- description
- lockdownId
- tagIds
- changeFollowers
- commentFollowers
- originalName
- displayName
- isLocked
- lockedByUserId
- lockedDate
- size
- uploadedDate
- uploadedByUserID
- updatedAt
- deletedAt
- deletedBy
- fileSource
- projectId
- numLikes
- reactions
- versions
- downloadURL
- previewURL
- thumbURL
- relatedItems
- commentsCount
- commentsCountRead
- categoryId
type: string
name: 'fields[files]'
type: array
- in: query
items:
enum:
- id
- name
- logoUploadedToServer
- logoImage
type: string
name: 'fields[companies]'
type: array
- in: query
items:
enum:
- id
- objectType
- objectId
- title
type: string
name: 'fields[comments]'
type: array
- in: query
items:
enum:
- id
- name
- color
- displayOrder
- createdAt
- updatedAt
- settings
- sort
- sortOrder
- deletedAt
- project
- hasTriggers
- deleted
- stats
- defaultTasklist
type: string
name: 'fields[columns]'
type: array
- in: query
items:
enum:
- id
- displayOrder
- archived
- archivedAt
- archivedBy
- createdAt
- createBy
- updatedAt
- visible
- status
- deleteBy
- deletedAt
type: string
name: 'fields[cards]'
type: array
- in: query
items:
enum:
- viewMessagesAndFiles
- viewTasksAndMilestones
- viewTime
- viewNotebooks
- viewRiskRegister
- viewEstimatedTime
- viewInvoices
- addTasks
- addRisks
- manageCustomFields
- addExpenses
- editAllTasks
- addMilestones
- addTaskLists
- addMessages
- addFiles
- addTime
- addNotebooks
- viewLinks
- addLinks
- canViewForms
- addForms
- viewAllTimeLogs
- setPrivacy
- projectAdministrator
- viewProjectUpdate
- addProjectUpdate
- canViewProjectMembers
- canViewProjectBudget
- canManageProjectBudget
- canViewRates
- canManageRates
- canViewSchedule
- canManageSchedule
- receiveEmailNotifications
- isObserving
- isArchived
- active
- canAccess
- inOwnerCompany
- canManagePeople
- canViewProjectTemplates
- canManageProjectTemplates
type: string
name: 'fields[ProjectPermissions]'
type: array
- description: the ids of the expanded tasks
in: query
items:
type: integer
name: expandedIds
type: array
- description: filter by excluded tag ids
in: query
items:
type: integer
name: excludeTagIds
type: array
- description: filter by crm deal ids
in: query
items:
type: integer
name: crmDealIds
type: array
- description: filter by creator user ids
in: query
items:
type: integer
name: createdByUserIds
type: array
- description: filter by assignee team ids
in: query
items:
type: integer
name: assigneeTeamIds
type: array
- description: filter by assignee company ids
in: query
items:
type: integer
name: assigneeCompanyIds
type: array
- description: filter by custom fields
in: query
items:
type: string
name: CustomFields
type: array
produces:
- application/json
responses:
'200':
description: 200 OK
schema:
$ref: '#/definitions/task.tasksResponseV205'
'400':
description: 400 Bad Request
schema:
$ref: '#/definitions/view.ErrorResponse'
summary: Returns tasks that have not been assigned a stage
tags:
- Workflows
x-private: true
'/projects/api/v3/tasks/:taskId/workflows/:workflowId.json':
patch:
consumes:
- application/json
operationId: 'PATCH_projects_api_v3_tasks_:taskId_workflows_:workflowId.json'
parameters:
- in: body
name: stage.MoveTaskRequest
required: true
schema:
$ref: '#/definitions/stage.MoveTaskRequest'
produces:
- application/json
responses:
'200':
description: 200 OK
schema:
$ref: '#/definitions/stage.Response'
'400':
description: 400 Bad Request
schema:
$ref: '#/definitions/view.ErrorResponse'
'403':
description: 403 Forbidden
schema:
$ref: '#/definitions/view.ErrorResponse'
'404':
description: 404 Not Found (no data)
'409':
description: 409 Conflict
schema:
$ref: '#/definitions/view.ErrorResponse'
summary: Edits the position of a task in a stage
tags:
- Workflows
x-private: true
'/projects/api/v3/projects/{projectId}/workflows/{id}.json':
delete:
operationId: 'DELETE_projects_api_v3_projects_{projectId}_workflows_{id}.json'
parameters:
- in: path
name: projectId
required: true
type: integer
- in: path
name: id
required: true
type: integer
produces:
- application/json
responses:
'204':
description: 204 No Content (no data)
'400':
description: 400 Bad Request
schema:
$ref: '#/definitions/view.ErrorResponse'
'403':
description: 403 Forbidden
schema:
$ref: '#/definitions/view.ErrorResponse'
'404':
description: 404 Not Found (no data)
summary: Remove an existing workflow from a project.
tags:
- Workflows
x-private: true
patch:
consumes:
- application/json
description: Maps previous stages to new ones
operationId: 'PATCH_projects_api_v3_projects_{projectId}_workflows_{id}.json'
parameters:
- in: body
name: workflow.Request
required: true
schema:
$ref: '#/definitions/workflow.Request'
- in: path
name: projectId
required: true
type: integer
- in: path
name: id
required: true
type: integer
produces:
- application/json
responses:
'200':
description: 200 OK
schema:
$ref: '#/definitions/workflow.Response'
'400':
description: 400 Bad Request
schema:
$ref: '#/definitions/view.ErrorResponse'
'403':
description: 403 Forbidden
schema:
$ref: '#/definitions/view.ErrorResponse'
'404':
description: 404 Not Found (no data)
'409':
description: 409 Conflict
schema:
$ref: '#/definitions/view.ErrorResponse'
summary: Update an existing project workflow.
tags:
- Workflows
x-private: true
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment