Teamwork API V3

Project management and collaboration platform

developer.teamwork.com ↗
Version
3.0
OpenAPI
3.0.0
Endpoints
188
Schemas
296
88
Quality
Updated
3 days ago
Project management project-management collaboration
Use this API in your AI agent

Query structured spec data via REST or MCP. Get exactly what your agent needs.

Get API Key

Server URLs

https://{site_name}.teamwork.com

Endpoints

Activity 4 endpoints

DELETE /projects/api/v3/activity/{activityLogId}
operationId: Activity_deleteActivityItem

Parameters

Name In Required Type Description
activityLogId path required integer

Responses

204

204 No Content (no data)

400

400 Bad Request

403

403 Forbidden

404

404 Not Found (no data)

DELETE /projects/api/v3/activity/{activityLogId}
GET /projects/api/v3/latestactivity.json

Lists the latest activity across all projects ordered chronologically. When
you log into Teamwork you will see all the recent activity. This corresponds
to that view in Teamwork. There are parameters you can send in to filter your
results.

operationId: Activity_listAllProjectsActivity

Parameters

Name In Required Type Description
updatedAfter query optional string

filter by updated after date

startDate query optional string

filter by start datetime

sort query optional string

sort by (deprecated, use orderBy)

projectStatus query optional string

filter by project status

orderMode query optional string

order mode

orderBy query optional string

sort by

endDate query optional string

filter by end datetime

projectId query optional integer

filter by project id (deprecated, use projectIds)

pageSize query optional integer

number of items in a page

page query optional integer

page number

maxId query optional integer

activity id offset

catchupFromId query optional integer

limit results from previous id

showDeleted query optional boolean

include deleted items

onlyStarredProjects query optional boolean

filter by starred projects only

onlyProjectsWithExplicitMembership query optional boolean

only projects with explicit membership

matchAllProjectTags query optional boolean

enforce all tag ids must be matched

includeArchivedProjects query optional boolean

include archived projects

groupCommentActivityType query optional boolean

group all activities on comments

userIds query optional array

filter by user ids

projectTagIds query optional array

filter by project tag ids

projectStatuses query optional array

list of project status

projectOwnerIds query optional array

filter by project owner ids

projectIds query optional array

filter by project ids

projectHealths query optional array

list of project health

projectCompanyIds query optional array

filter by company ids

projectCategoryIds query optional array

filter by project category ids

include query optional array

include

fields[users] query optional array
fields[projects] query optional array
fields[companies] query optional array
fields[activities] query optional array
activityTypes query optional array

filter by activity types

Responses

200

200 OK

400

400 Bad Request

GET /projects/api/v3/latestactivity.json
DELETE /projects/api/v3/projects/{projectId}/activity
operationId: Activity_deleteProjectActivityLog

Parameters

Name In Required Type Description
projectId path required integer

Responses

204

204 No Content (no data)

400

400 Bad Request

403

403 Forbidden

404

404 Not Found (no data)

DELETE /projects/api/v3/projects/{projectId}/activity
GET /projects/api/v3/projects/{projectId}/latestactivity

Lists the latest activity for a specific project. When you access a project
you will see all the recent activity. This corresponds to that view in
Teamwork. There is some parameters you can send in to filter your results.

operationId: Activity_listProjectLatestActivity

Parameters

Name In Required Type Description
updatedAfter query optional string

filter by updated after date

startDate query optional string

filter by start datetime

sort query optional string

sort by (deprecated, use orderBy)

projectStatus query optional string

filter by project status

orderMode query optional string

order mode

orderBy query optional string

sort by

endDate query optional string

filter by end datetime

projectId path required integer
projectId query optional integer

filter by project id (deprecated, use projectIds)

pageSize query optional integer

number of items in a page

page query optional integer

page number

maxId query optional integer

activity id offset

catchupFromId query optional integer

limit results from previous id

showDeleted query optional boolean

include deleted items

onlyStarredProjects query optional boolean

filter by starred projects only

onlyProjectsWithExplicitMembership query optional boolean

only projects with explicit membership

matchAllProjectTags query optional boolean

enforce all tag ids must be matched

includeArchivedProjects query optional boolean

include archived projects

groupCommentActivityType query optional boolean

group all activities on comments

userIds query optional array

filter by user ids

projectTagIds query optional array

filter by project tag ids

projectStatuses query optional array

list of project status

projectOwnerIds query optional array

filter by project owner ids

projectIds query optional array

filter by project ids

projectHealths query optional array

list of project health

projectCompanyIds query optional array

filter by company ids

projectCategoryIds query optional array

filter by project category ids

include query optional array

include

fields[users] query optional array
fields[projects] query optional array
fields[companies] query optional array
fields[activities] query optional array
activityTypes query optional array

filter by activity types

Responses

200

200 OK

400

400 Bad Request

GET /projects/api/v3/projects/{projectId}/latestactivity

Budgets 6 endpoints

DELETE /projects/api/v3/budget/notifications/{notificationId}.json
operationId: Budgets_deleteNotification

Parameters

Name In Required Type Description
notificationId path required integer

Responses

204

204 No Content (no data)

400

400 Bad Request

403

403 Forbidden

404

404 Not Found (no data)

DELETE /projects/api/v3/budget/notifications/{notificationId}.json
PATCH /projects/api/v3/budget/notifications/{notificationId}.json
operationId: Budgets_updateNotification

Parameters

Name In Required Type Description
notificationId path required integer

Request Body

required
application/json
schema notification.ProjectBudgetRequest
Property Type Required
notification object optional
id integer optional
teamIds array optional
userIds array optional
budgetId integer optional
projectId integer optional
companyIds array optional
capacityThreshold number optional
notificationMedium string optional

Responses

200

200 OK

400

400 Bad Request

403

403 Forbidden

404

404 Not Found (no data)

409

409 Conflict

PATCH /projects/api/v3/budget/notifications/{notificationId}.json
POST /projects/api/v3/budgets/:id/tasklists/budgets/bulk/add.json
operationId: Budgets_createTasklistBudgets

Request Body

application/json
schema tasklistbudget.BulkAddBudgetRequest
Property Type Required
tasklistBudgets array optional
id integer optional
capacity integer optional
tasklist object optional
id integer optional
type string optional
notifications array optional
id integer optional
teams array optional
id integer optional
type string optional
users array optional
id integer optional
type string optional
companies array optional
id integer optional
type string optional
capacityThreshold number optional
notificationMedium string optional
tasklistBudgetsOptions object optional
fireWebhook boolean optional
logActivity boolean optional
useNotifyViaTWIM boolean optional

Responses

201

201 Created

400

400 Bad Request

403

403 Forbidden

409

409 Conflict

POST /projects/api/v3/budgets/:id/tasklists/budgets/bulk/add.json
PATCH /projects/api/v3/projects/budgets/:budgetId/tasklists/budgets/:tasklistId.json
operationId: Budgets_updateTasklistBudget

Request Body

required
application/json
schema tasklistbudget.PatchBudgetRequest
Property Type Required
tasklistBudget object optional
id integer optional
capacity integer optional
tasklist object optional
id integer optional
type string optional
notifications array optional
id integer optional
teams array optional
id integer optional
type string optional
users array optional
id integer optional
type string optional
companies array optional
id integer optional
type string optional
capacityThreshold number optional
notificationMedium string optional
tasklistBudgetOptions object optional
fireWebhook boolean optional
logActivity boolean optional
useNotifyViaTWIM boolean optional

Responses

201

201 Created

400

400 Bad Request

403

403 Forbidden

409

409 Conflict

PATCH /projects/api/v3/projects/budgets/:budgetId/tasklists/budgets/:tasklistId.json
GET /projects/api/v3/projects/budgets/:id/tasklists/budgets.json

Get a list of tasklist budgets information.

operationId: Budgets_getAllTasklistBudgets

Parameters

Name In Required Type Description
orderMode query optional string

order mode

orderBy query optional string

order by

projectBudgetId query optional integer

parent project budget id

pageSize query optional integer

number of items in a page

page query optional integer

page number

include query optional array

include

fields[tasklists] query optional array
fields[tasklistBudgetNotifications] query optional array
fields[projectBudgets] query optional array

Responses

200

200 OK

400

400 Bad Request

GET /projects/api/v3/projects/budgets/:id/tasklists/budgets.json
PUT /projects/api/v3/projects/budgets/:id/tasklists/budgets.json

payload. If an ID is provided it is seen as an update, else it inserts.
NOTE: the payload provided is the final source of truth, meaning any
budgets omitted will be cleared.

Adds or updates task list budgets.

operationId: Budgets_addOrUpdateTaskListBudgets

Request Body

application/json
schema tasklistbudget.BulkAddBudgetRequest
Property Type Required
tasklistBudgets array optional
id integer optional
capacity integer optional
tasklist object optional
id integer optional
type string optional
notifications array optional
id integer optional
teams array optional
id integer optional
type string optional
users array optional
id integer optional
type string optional
companies array optional
id integer optional
type string optional
capacityThreshold number optional
notificationMedium string optional
tasklistBudgetsOptions object optional
fireWebhook boolean optional
logActivity boolean optional
useNotifyViaTWIM boolean optional

Responses

200

200 OK

400

400 Bad Request

403

403 Forbidden

404

404 Not Found (no data)

409

409 Conflict

PUT /projects/api/v3/projects/budgets/:id/tasklists/budgets.json

Calendarevents 4 endpoints

GET /projects/api/v3/calendar/events.csv

Generates an agenda report in CSV format containing all the events for the
provided filters.

operationId: CalendarEvents_generateAgendaReportCsv

Parameters

Name In Required Type Description
startDate query optional string

events that happen after this date

reportFormat query optional string

define the format of the report

endDate query optional string

events that happen before this date

withTasks query optional boolean

include tasks

withMilestones query optional boolean

include milestones

withEvents query optional boolean

include events

isReportDownload query optional boolean

generate a report document

includeTags query optional boolean

should include tags

attendingOnly query optional boolean

when filtering events with targetUserIDs, display only when attending the event

typeIDs query optional array

filter calendar events to show only the ones in typeIDs

targetUserIDs query optional array

filter to show only events for the provided user

targetProjectIDs query optional array

filter to show only events for the provided projects

Responses

200

200 OK (no data)

400

400 Bad Request

GET /projects/api/v3/calendar/events.csv
GET /projects/api/v3/calendar/events.html

Generates an agenda report in HTML format containing all the events for the
provided filters.

operationId: CalendarEvents_generateAgendaReportHtml

Parameters

Name In Required Type Description
startDate query optional string

events that happen after this date

reportFormat query optional string

define the format of the report

endDate query optional string

events that happen before this date

withTasks query optional boolean

include tasks

withMilestones query optional boolean

include milestones

withEvents query optional boolean

include events

isReportDownload query optional boolean

generate a report document

includeTags query optional boolean

should include tags

attendingOnly query optional boolean

when filtering events with targetUserIDs, display only when attending the event

typeIDs query optional array

filter calendar events to show only the ones in typeIDs

targetUserIDs query optional array

filter to show only events for the provided user

targetProjectIDs query optional array

filter to show only events for the provided projects

Responses

200

200 OK (no data)

400

400 Bad Request

GET /projects/api/v3/calendar/events.html
GET /projects/api/v3/calendar/events.pdf

Generates an agenda report in PDF format containing all the events for the
provided filters.

operationId: CalendarEvents_generateAgendaReportPdf

Parameters

Name In Required Type Description
startDate query optional string

events that happen after this date

reportFormat query optional string

define the format of the report

endDate query optional string

events that happen before this date

withTasks query optional boolean

include tasks

withMilestones query optional boolean

include milestones

withEvents query optional boolean

include events

isReportDownload query optional boolean

generate a report document

includeTags query optional boolean

should include tags

attendingOnly query optional boolean

when filtering events with targetUserIDs, display only when attending the event

typeIDs query optional array

filter calendar events to show only the ones in typeIDs

targetUserIDs query optional array

filter to show only events for the provided user

targetProjectIDs query optional array

filter to show only events for the provided projects

Responses

200

200 OK (no data)

400

400 Bad Request

GET /projects/api/v3/calendar/events.pdf
GET /projects/api/v3/calendar/events.xlsx

Generates an agenda report in XLSX format containing all the events for the
provided filters.

operationId: CalendarEvents_generateAgendaReportXlsx

Parameters

Name In Required Type Description
startDate query optional string

events that happen after this date

reportFormat query optional string

define the format of the report

endDate query optional string

events that happen before this date

withTasks query optional boolean

include tasks

withMilestones query optional boolean

include milestones

withEvents query optional boolean

include events

isReportDownload query optional boolean

generate a report document

includeTags query optional boolean

should include tags

attendingOnly query optional boolean

when filtering events with targetUserIDs, display only when attending the event

typeIDs query optional array

filter calendar events to show only the ones in typeIDs

targetUserIDs query optional array

filter to show only events for the provided user

targetProjectIDs query optional array

filter to show only events for the provided projects

Responses

200

200 OK (no data)

400

400 Bad Request

GET /projects/api/v3/calendar/events.xlsx

Categories 3 endpoints

GET /projects/api/v3/projectcategories.json
operationId: Categories_list

Parameters

Name In Required Type Description
searchTerm query optional string

filter by name

onlyStarredProjects query optional boolean

filter by starred projects only.
note: if an owner company admin, counts will honour this filter,
but all categories will be returned regardless.

projectStatuses query optional array

filter by project statuses.
note: if an owner company admin, counts will honour this filter,
but all categories will be returned regardless.

ids query optional array

filter by specific ids

fields[projectcategories] query optional array

Responses

200

200 OK

400

400 Bad Request

403

403 Forbidden

GET /projects/api/v3/projectcategories.json
GET /projects/api/v3/projectcategories/{categoryId}.json
operationId: Categories_getSpecificCategory

Parameters

Name In Required Type Description
searchTerm query optional string

filter by name

categoryId path required integer
onlyStarredProjects query optional boolean

filter by starred projects only.
note: if an owner company admin, counts will honour this filter,
but all categories will be returned regardless.

projectStatuses query optional array

filter by project statuses.
note: if an owner company admin, counts will honour this filter,
but all categories will be returned regardless.

ids query optional array

filter by specific ids

fields[projectcategories] query optional array

Responses

200

200 OK

400

400 Bad Request

403

403 Forbidden

GET /projects/api/v3/projectcategories/{categoryId}.json
GET /projects/api/v3/projects/teamwork/categories.json
operationId: Categories_list

Responses

200

200 OK

400

400 Bad Request

403

403 Forbidden

GET /projects/api/v3/projects/teamwork/categories.json

Companies 5 endpoints

GET /projects/api/v3/companies.json

Retrieve all companies for the provided filters.

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: Companies_getAll

Parameters

Name In Required Type Description
updatedAfterDate query optional string

filter by updated after date (deprecated, use updatedAfter)

updatedAfter query optional string

filter by updated after date

searchTerm query optional string

filter by company name and description

reportType query optional string

define the type of the report

reportFormat query optional string

define the format of the report

orderMode query optional string

order mode

orderBy query optional string

order by

firstLetter query optional string

filter by first letter of company name

createdAfterDate query optional string

filter by created after date (deprecated, use createdAfter)

createdAfter query optional string

filter by created after date

budgetRanges query optional string

budget distribution ranges

pageSize query optional integer

number of items in a page

page query optional integer

page number

orderByCustomFieldId query optional integer

order by custom field id when orderBy is equal to customfield

useFormulaFields query optional boolean

use formula fields

skipCounts query optional boolean

SkipCounts allows you to skip doing counts on a list API endpoint for
performance reasons.

searchClientManagers query optional boolean

include client managers in the search

returnLetters query optional boolean

return unfiltered company initial letter counts

onlyUntaggedCompanies query optional boolean

only untagged companies

matchAllTags query optional boolean

match all tags

matchAllExcludedTags query optional boolean

match all exclude tags

isReportDownload query optional boolean

generate a report document

includeUntaggedCompanies query optional boolean

include untagged companies

includeProfitability query optional boolean

include profitability data for each client

includeCustomFields query optional boolean

include custom fields

includeBudgetDistribution query optional boolean

include budget distribution data

getStats query optional boolean

include stats of company tasks and projects

getEmoji query optional boolean

parse emojis to unicode

fullProfile query optional boolean

include full profile

excludeOwnerCompany query optional boolean

exclude the owner company

tagIds query optional array

filter by tag ids

selectedColumns query optional array

customise the report by selecting columns

projectStatuses query optional array

filter by project statuses

include query optional array

include

ids query optional array

filter by ids

fields[users] query optional array
fields[tags] query optional array
fields[industries] query optional array
fields[countries] query optional array
fields[companies] query optional array
excludeTagIds query optional array

filter by excluded tag ids

excludeIds query optional array

exclude by company ids

clientManagedByUserIds query optional array

filter by client manager user ids

CustomFields query optional array

filter by custom fields

Responses

200

200 OK

400

400 Bad Request

403

403 Forbidden

GET /projects/api/v3/companies.json
POST /projects/api/v3/companies.json

Create a company.

operationId: Companies_createNewCompany

Request Body

application/json
schema company.Request
Property Type Required
tags array optional
name string optional
color string optional
projectId integer optional
company object optional
cid string optional
fax string optional
zip string optional
city string optional
name string optional
phone string optional
state string optional
tagIds array optional
profile string optional
website string optional
emailOne string optional
emailTwo string optional
addressOne string optional
addressTwo string optional
emailThree string optional
countrycode string optional
customFields object optional
Values array optional
value object optional
countryCode string optional
customfieldId integer optional
currencySymbol string optional
urlTextToDisplay string optional
privateNotes string optional
industryCatId integer optional
clientManagedBy integer optional
…1 more object optional
companyOptions object optional
fireWebhook boolean optional
logActivity boolean optional
useNotifyViaTWIM boolean optional

Responses

201

201 Created

400

400 Bad Request

403

403 Forbidden

POST /projects/api/v3/companies.json
DELETE /projects/api/v3/companies/{companyId}.json

Delete a company.

operationId: Companies_deleteExistingCompany

Parameters

Name In Required Type Description
companyId path required integer

Responses

204

204 No Content (no data)

400

400 Bad Request

403

403 Forbidden

404

404 Not Found (no data)

DELETE /projects/api/v3/companies/{companyId}.json
GET /projects/api/v3/companies/{companyId}.json

Retrieves a company by id.

operationId: Companies_getSpecificCompany

Parameters

Name In Required Type Description
updatedAfterDate query optional string

filter by updated after date (deprecated, use updatedAfter)

updatedAfter query optional string

filter by updated after date

searchTerm query optional string

filter by company name and description

reportType query optional string

define the type of the report

reportFormat query optional string

define the format of the report

orderMode query optional string

order mode

orderBy query optional string

order by

firstLetter query optional string

filter by first letter of company name

createdAfterDate query optional string

filter by created after date (deprecated, use createdAfter)

createdAfter query optional string

filter by created after date

budgetRanges query optional string

budget distribution ranges

pageSize query optional integer

number of items in a page

page query optional integer

page number

orderByCustomFieldId query optional integer

order by custom field id when orderBy is equal to customfield

companyId path required integer
useFormulaFields query optional boolean

use formula fields

skipCounts query optional boolean

SkipCounts allows you to skip doing counts on a list API endpoint for
performance reasons.

searchClientManagers query optional boolean

include client managers in the search

returnLetters query optional boolean

return unfiltered company initial letter counts

onlyUntaggedCompanies query optional boolean

only untagged companies

matchAllTags query optional boolean

match all tags

matchAllExcludedTags query optional boolean

match all exclude tags

isReportDownload query optional boolean

generate a report document

includeUntaggedCompanies query optional boolean

include untagged companies

includeProfitability query optional boolean

include profitability data for each client

includeCustomFields query optional boolean

include custom fields

includeBudgetDistribution query optional boolean

include budget distribution data

getStats query optional boolean

include stats of company tasks and projects

getEmoji query optional boolean

parse emojis to unicode

fullProfile query optional boolean

include full profile

excludeOwnerCompany query optional boolean

exclude the owner company

tagIds query optional array

filter by tag ids

selectedColumns query optional array

customise the report by selecting columns

projectStatuses query optional array

filter by project statuses

include query optional array

include

ids query optional array

filter by ids

fields[users] query optional array
fields[tags] query optional array
fields[industries] query optional array
fields[countries] query optional array
fields[companies] query optional array
excludeTagIds query optional array

filter by excluded tag ids

excludeIds query optional array

exclude by company ids

clientManagedByUserIds query optional array

filter by client manager user ids

CustomFields query optional array

filter by custom fields

Responses

200

200 OK

400

400 Bad Request

403

403 Forbidden

404

404 Not Found

GET /projects/api/v3/companies/{companyId}.json
PATCH /projects/api/v3/companies/{companyId}.json

Modify the properties of an existing company.

operationId: Companies_updateProperties

Parameters

Name In Required Type Description
companyId path required integer

Request Body

application/json
schema company.Request
Property Type Required
tags array optional
name string optional
color string optional
projectId integer optional
company object optional
cid string optional
fax string optional
zip string optional
city string optional
name string optional
phone string optional
state string optional
tagIds array optional
profile string optional
website string optional
emailOne string optional
emailTwo string optional
addressOne string optional
addressTwo string optional
emailThree string optional
countrycode string optional
customFields object optional
Values array optional
value object optional
countryCode string optional
customfieldId integer optional
currencySymbol string optional
urlTextToDisplay string optional
privateNotes string optional
industryCatId integer optional
clientManagedBy integer optional
…1 more object optional
companyOptions object optional
fireWebhook boolean optional
logActivity boolean optional
useNotifyViaTWIM boolean optional

Responses

200

200 OK

400

400 Bad Request

403

403 Forbidden

404

404 Not Found (no data)

409

409 Conflict

PATCH /projects/api/v3/companies/{companyId}.json

Customfields 28 endpoints

GET /projects/api/v3/companies/{companyId}/customfields.json

Return all custom field values from a specific company.

operationId: CustomFields_getValues

Parameters

Name In Required Type Description
searchTerm query optional string

filter by custom field value

pageSize query optional integer

number of items in a page

page query optional integer

page number

companyId path required integer
companyId query optional integer

filter by company id

useFormulaFields query optional boolean

use formula fields

skipCounts query optional boolean

SkipCounts allows you to skip doing counts on a list API endpoint for
performance reasons.

include query optional array

include

fields[projects] query optional array
fields[customfields] query optional array
customFieldIds query optional array

filter by custom field ids

Responses

200

200 OK

400

400 Bad Request

GET /projects/api/v3/companies/{companyId}/customfields.json
POST /projects/api/v3/companies/{companyId}/customfields.json

Add a company custom field value.

operationId: CustomFields_addValue

Parameters

Name In Required Type Description
companyId path required integer

Request Body

application/json
schema value.requestCompany
Property Type Required
customfieldCompany object optional
value object optional
countryCode string optional
customfieldId integer optional
currencySymbol string optional
urlTextToDisplay string optional

Responses

201

201 Created

400

400 Bad Request

403

403 Forbidden

POST /projects/api/v3/companies/{companyId}/customfields.json
POST /projects/api/v3/companies/{companyId}/customfields/bulk/delete.json

Remove many entries of company custom field values at once.

operationId: CustomFields_bulkDelete

Parameters

Name In Required Type Description
companyId path required integer

Request Body

required
application/json
schema value.bulkDeleteRequestCompany
Property Type Required
customfieldCompanyIds array optional

Responses

204

204 No Content (no data)

400

400 Bad Request

403

403 Forbidden

404

404 Not Found (no data)

POST /projects/api/v3/companies/{companyId}/customfields/bulk/delete.json
POST /projects/api/v3/companies/{companyId}/customfields/bulk/update.json

Edit many entries of company custom field values at once.

operationId: CustomFields_updateManyValues

Parameters

Name In Required Type Description
companyId path required integer

Request Body

required
application/json
schema value.bulkUpdateRequestCompany
Property Type Required
customfieldCompanies array optional
id integer optional
value object optional
countryCode string optional
customfieldId integer optional
currencySymbol string optional
urlTextToDisplay string optional

Responses

200

200 OK

400

400 Bad Request

403

403 Forbidden

404

404 Not Found (no data)

409

409 Conflict

POST /projects/api/v3/companies/{companyId}/customfields/bulk/update.json
DELETE /projects/api/v3/companies/{companyId}/customfields/{customFieldId}.json

Removes a company custom field value.

operationId: CustomFields_deleteCompanyCustomFieldValue

Parameters

Name In Required Type Description
customFieldId path required integer
companyId path required integer

Responses

204

204 No Content (no data)

400

400 Bad Request

403

403 Forbidden

404

404 Not Found (no data)

DELETE /projects/api/v3/companies/{companyId}/customfields/{customFieldId}.json
GET /projects/api/v3/companies/{companyId}/customfields/{customFieldId}.json

Return a specific custom field value from a company.

operationId: CustomFields_getCompanyCustomFieldValue

Parameters

Name In Required Type Description
customFieldId path required integer
companyId path required integer

Responses

200

200 OK

400

400 Bad Request

404

404 Not Found (no data)

GET /projects/api/v3/companies/{companyId}/customfields/{customFieldId}.json
PATCH /projects/api/v3/companies/{companyId}/customfields/{customFieldId}.json

Edit a company custom field value.

operationId: CustomFields_updateCompanyCustomFieldValue

Parameters

Name In Required Type Description
customFieldId path required integer
companyId path required integer

Request Body

application/json
schema value.requestCompany
Property Type Required
customfieldCompany object optional
value object optional
countryCode string optional
customfieldId integer optional
currencySymbol string optional
urlTextToDisplay string optional

Responses

200

200 OK

400

400 Bad Request

403

403 Forbidden

404

404 Not Found (no data)

409

409 Conflict

PATCH /projects/api/v3/companies/{companyId}/customfields/{customFieldId}.json
GET /projects/api/v3/customfields.json

Return all custom fields for the provided filters.

operationId: CustomFields_listAll

Parameters

Name In Required Type Description
searchTerm query optional string

filter by custom field name

projectStatuses query optional string

filter by project statuses

orderMode query optional string

order mode

orderBy query optional string

order by

name query optional string

filter by name

projectId query optional integer

filter by project id

pageSize query optional integer

number of items in a page

page query optional integer

page number

useFormulaFields query optional boolean

use formula fields

skipCounts query optional boolean

SkipCounts allows you to skip doing counts on a list API endpoint for
performance reasons.

showDeleted query optional boolean

include deleted items

onlyStarredProjects query optional boolean

filter by starred projects only

onlySiteLevel query optional boolean

only return site-level custom fields

onlyProjectLevel query optional boolean

only return custom fields for project-level in the response

matchAllProjectTags query optional boolean

match all project tags

includeSiteLevel query optional boolean

include custom fields for site-level in the response

projectTagIds query optional array

filter by project tag ids

projectOwnerIds query optional array

filter by project owner ids

projectIds query optional array

filter by project ids

projectHealths query optional array

filter by project healths

0: not set
1: bad
2: ok
3: good

projectCompanyIds query optional array

filter by company ids

projectCategoryIds query optional array

filter by project category ids

include query optional array

include

ids query optional array

filter by custom field ids

fields[users] query optional array
fields[projects] query optional array
entities query optional array

filter by entities

Responses

200

200 OK

400

400 Bad Request

GET /projects/api/v3/customfields.json
POST /projects/api/v3/customfields.json

Creates a new custom field. The custom field could have a scope at an
installation-level or at a project-level.

operationId: CustomFields_createNewField

Request Body

application/json
schema customfield.Request
Property Type Required
customfield object optional
name string optional
type string optional
entity string optional
formula string optional
groupId integer optional
options object optional
privacy object optional
teamIds object optional
Set boolean optional
Null boolean optional
Value array optional
userIds object optional
Set boolean optional
Null boolean optional
Value array optional
companyIds object optional
Set boolean optional
Null boolean optional
Value array optional
required boolean optional
isPrivate boolean optional
projectId integer optional
description string optional
currencyCode string optional
visibilities array optional

Responses

201

201 Created

400

400 Bad Request

403

403 Forbidden

POST /projects/api/v3/customfields.json
POST /projects/api/v3/customfields/bulk/delete.json

Remove multiple custom fields at once.

operationId: CustomFields_deleteManyAtOnce

Request Body

required
application/json
schema customfield.BulkDeleteRequest
Property Type Required
customfieldIds array optional

Responses

204

204 No Content (no data)

400

400 Bad Request

403

403 Forbidden

404

404 Not Found (no data)

POST /projects/api/v3/customfields/bulk/delete.json
DELETE /projects/api/v3/customfields/{customFieldId}.json

Removes a custom field.

operationId: CustomFields_deleteField

Parameters

Name In Required Type Description
customFieldId path required integer

Responses

204

204 No Content (no data)

400

400 Bad Request

403

403 Forbidden

404

404 Not Found (no data)

DELETE /projects/api/v3/customfields/{customFieldId}.json
GET /projects/api/v3/customfields/{customFieldId}.json

This returns all details about an individual custom field.

operationId: CustomFields_getById

Parameters

Name In Required Type Description
searchTerm query optional string

filter by custom field name

projectStatuses query optional string

filter by project statuses

orderMode query optional string

order mode

orderBy query optional string

order by

name query optional string

filter by name

projectId query optional integer

filter by project id

pageSize query optional integer

number of items in a page

page query optional integer

page number

customFieldId path required integer
useFormulaFields query optional boolean

use formula fields

skipCounts query optional boolean

SkipCounts allows you to skip doing counts on a list API endpoint for
performance reasons.

showDeleted query optional boolean

include deleted items

onlyStarredProjects query optional boolean

filter by starred projects only

onlySiteLevel query optional boolean

only return site-level custom fields

onlyProjectLevel query optional boolean

only return custom fields for project-level in the response

matchAllProjectTags query optional boolean

match all project tags

includeSiteLevel query optional boolean

include custom fields for site-level in the response

projectTagIds query optional array

filter by project tag ids

projectOwnerIds query optional array

filter by project owner ids

projectIds query optional array

filter by project ids

projectHealths query optional array

filter by project healths

0: not set
1: bad
2: ok
3: good

projectCompanyIds query optional array

filter by company ids

projectCategoryIds query optional array

filter by project category ids

include query optional array

include

ids query optional array

filter by custom field ids

fields[users] query optional array
fields[projects] query optional array
entities query optional array

filter by entities

Responses

200

200 OK

400

400 Bad Request

404

404 Not Found (no data)

GET /projects/api/v3/customfields/{customFieldId}.json
PATCH /projects/api/v3/customfields/{customFieldId}.json

Updates an existing custom field.

operationId: CustomFields_updateExistingField

Parameters

Name In Required Type Description
customFieldId path required integer

Request Body

application/json
schema customfield.Request
Property Type Required
customfield object optional
name string optional
type string optional
entity string optional
formula string optional
groupId integer optional
options object optional
privacy object optional
teamIds object optional
Set boolean optional
Null boolean optional
Value array optional
userIds object optional
Set boolean optional
Null boolean optional
Value array optional
companyIds object optional
Set boolean optional
Null boolean optional
Value array optional
required boolean optional
isPrivate boolean optional
projectId integer optional
description string optional
currencyCode string optional
visibilities array optional

Responses

200

200 OK

400

400 Bad Request

403

403 Forbidden

404

404 Not Found (no data)

409

409 Conflict

PATCH /projects/api/v3/customfields/{customFieldId}.json
PUT /projects/api/v3/customfields/{customFieldId}.json

Updates an existing custom field.

operationId: CustomFields_updateExistingField

Parameters

Name In Required Type Description
customFieldId path required integer

Request Body

application/json
schema customfield.Request
Property Type Required
customfield object optional
name string optional
type string optional
entity string optional
formula string optional
groupId integer optional
options object optional
privacy object optional
teamIds object optional
Set boolean optional
Null boolean optional
Value array optional
userIds object optional
Set boolean optional
Null boolean optional
Value array optional
companyIds object optional
Set boolean optional
Null boolean optional
Value array optional
required boolean optional
isPrivate boolean optional
projectId integer optional
description string optional
currencyCode string optional
visibilities array optional

Responses

200

200 OK

400

400 Bad Request

403

403 Forbidden

404

404 Not Found (no data)

409

409 Conflict

PUT /projects/api/v3/customfields/{customFieldId}.json
GET /projects/api/v3/projects/{projectId}/customfields.json

Return all custom field values from a specific project.

operationId: CustomFields_getProjectCustomFieldValues

Parameters

Name In Required Type Description
searchTerm query optional string

filter by custom field value

projectId path required integer
projectId query optional integer

filter by project id

pageSize query optional integer

number of items in a page

page query optional integer

page number

useFormulaFields query optional boolean

use formula fields

skipCounts query optional boolean

SkipCounts allows you to skip doing counts on a list API endpoint for
performance reasons.

include query optional array

include

fields[projects] query optional array
fields[customfields] query optional array
customFieldIds query optional array

filter by custom field ids

Responses

200

200 OK

400

400 Bad Request

GET /projects/api/v3/projects/{projectId}/customfields.json
POST /projects/api/v3/projects/{projectId}/customfields.json

Add a project custom field value.

operationId: CustomFields_addValue

Parameters

Name In Required Type Description
projectId path required integer

Request Body

application/json
schema value.requestProject
Property Type Required
customfieldProject object optional
value object optional
countryCode string optional
customfieldId integer optional
currencySymbol string optional
urlTextToDisplay string optional

Responses

201

201 Created

400

400 Bad Request

403

403 Forbidden

POST /projects/api/v3/projects/{projectId}/customfields.json
POST /projects/api/v3/projects/{projectId}/customfields/bulk/delete.json

Remove many entries of project custom field values at once.

operationId: CustomFields_deleteManyValues

Parameters

Name In Required Type Description
projectId path required integer

Request Body

required
application/json
schema value.bulkDeleteRequestProject
Property Type Required
customfieldProjectIds array optional

Responses

204

204 No Content (no data)

400

400 Bad Request

403

403 Forbidden

404

404 Not Found (no data)

POST /projects/api/v3/projects/{projectId}/customfields/bulk/delete.json
POST /projects/api/v3/projects/{projectId}/customfields/bulk/update.json

Edit many entries of project custom field values at once.

operationId: CustomFields_updateManyValues

Parameters

Name In Required Type Description
projectId path required integer

Request Body

required
application/json
schema value.bulkUpdateRequestProject
Property Type Required
customfieldProjects array optional
id integer optional
value object optional
countryCode string optional
customfieldId integer optional
currencySymbol string optional
urlTextToDisplay string optional

Responses

200

200 OK

400

400 Bad Request

403

403 Forbidden

404

404 Not Found (no data)

409

409 Conflict

POST /projects/api/v3/projects/{projectId}/customfields/bulk/update.json
DELETE /projects/api/v3/projects/{projectId}/customfields/{customFieldId}.json

Removes a project custom field value.

operationId: CustomFields_deleteExistingValue

Parameters

Name In Required Type Description
projectId path required integer
customFieldId path required integer

Responses

204

204 No Content (no data)

400

400 Bad Request

403

403 Forbidden

404

404 Not Found (no data)

DELETE /projects/api/v3/projects/{projectId}/customfields/{customFieldId}.json
GET /projects/api/v3/projects/{projectId}/customfields/{customFieldId}.json

Return a specific custom field value from a project.

operationId: CustomFields_getProjectCustomFieldValue

Parameters

Name In Required Type Description
projectId path required integer
customFieldId path required integer

Responses

200

200 OK

400

400 Bad Request

404

404 Not Found (no data)

GET /projects/api/v3/projects/{projectId}/customfields/{customFieldId}.json
PATCH /projects/api/v3/projects/{projectId}/customfields/{customFieldId}.json

Edit a project custom field value.

operationId: CustomFields_updateValue

Parameters

Name In Required Type Description
projectId path required integer
customFieldId path required integer

Request Body

application/json
schema value.requestProject
Property Type Required
customfieldProject object optional
value object optional
countryCode string optional
customfieldId integer optional
currencySymbol string optional
urlTextToDisplay string optional

Responses

200

200 OK

400

400 Bad Request

403

403 Forbidden

404

404 Not Found (no data)

409

409 Conflict

PATCH /projects/api/v3/projects/{projectId}/customfields/{customFieldId}.json
GET /projects/api/v3/tasks/{taskId}/customfields.json

Return all custom field values from a specific task.

operationId: CustomFields_getValuesFromTask

Parameters

Name In Required Type Description
searchTerm query optional string

filter by custom field value

taskId path required integer
taskId query optional integer

filter by task id

pageSize query optional integer

number of items in a page

page query optional integer

page number

useFormulaFields query optional boolean

use formula fields

skipCounts query optional boolean

SkipCounts allows you to skip doing counts on a list API endpoint for
performance reasons.

include query optional array

include

fields[projects] query optional array
fields[customfields] query optional array
customFieldIds query optional array

filter by custom field ids

Responses

200

200 OK

400

400 Bad Request

GET /projects/api/v3/tasks/{taskId}/customfields.json
POST /projects/api/v3/tasks/{taskId}/customfields.json

Add a task custom field value.

operationId: CustomFields_addTaskCustomFieldValue

Parameters

Name In Required Type Description
taskId path required integer

Request Body

application/json
schema value.requestTask
Property Type Required
customfieldTask object optional
value object optional
countryCode string optional
customfieldId integer optional
currencySymbol string optional
urlTextToDisplay string optional

Responses

201

201 Created

400

400 Bad Request

403

403 Forbidden

POST /projects/api/v3/tasks/{taskId}/customfields.json
POST /projects/api/v3/tasks/{taskId}/customfields/bulk/delete.json

Remove many entries of task custom field values at once.

operationId: CustomFields_deleteManyTaskCustomFieldValues

Parameters

Name In Required Type Description
taskId path required integer

Request Body

required
application/json
schema value.bulkDeleteRequestTask
Property Type Required
customfieldTaskIds array optional

Responses

204

204 No Content (no data)

400

400 Bad Request

403

403 Forbidden

404

404 Not Found (no data)

POST /projects/api/v3/tasks/{taskId}/customfields/bulk/delete.json
POST /projects/api/v3/tasks/{taskId}/customfields/bulk/update.json

Edit many entries of task custom field values at once.

operationId: CustomFields_updateManyValues

Parameters

Name In Required Type Description
taskId path required integer

Request Body

required
application/json
schema value.bulkUpdateRequestTask
Property Type Required
customfieldTasks array optional
id integer optional
value object optional
countryCode string optional
customfieldId integer optional
currencySymbol string optional
urlTextToDisplay string optional

Responses

200

200 OK

400

400 Bad Request

403

403 Forbidden

404

404 Not Found (no data)

409

409 Conflict

POST /projects/api/v3/tasks/{taskId}/customfields/bulk/update.json
DELETE /projects/api/v3/tasks/{taskId}/customfields/{customFieldId}.json

Removes a task custom field value.

operationId: CustomFields_deleteTaskCustomFieldValue

Parameters

Name In Required Type Description
taskId path required integer
customFieldId path required integer

Responses

204

204 No Content (no data)

400

400 Bad Request

403

403 Forbidden

404

404 Not Found (no data)

DELETE /projects/api/v3/tasks/{taskId}/customfields/{customFieldId}.json
GET /projects/api/v3/tasks/{taskId}/customfields/{customFieldId}.json

Return a specific custom field value from a task.

operationId: CustomFields_getTaskCustomFieldValue

Parameters

Name In Required Type Description
taskId path required integer
customFieldId path required integer

Responses

200

200 OK

400

400 Bad Request

404

404 Not Found (no data)

GET /projects/api/v3/tasks/{taskId}/customfields/{customFieldId}.json
PATCH /projects/api/v3/tasks/{taskId}/customfields/{customFieldId}.json

Edit a task custom field value.

operationId: CustomFields_updateTaskCustomFieldValue

Parameters

Name In Required Type Description
taskId path required integer
customFieldId path required integer

Request Body

application/json
schema value.requestTask
Property Type Required
customfieldTask object optional
value object optional
countryCode string optional
customfieldId integer optional
currencySymbol string optional
urlTextToDisplay string optional

Responses

200

200 OK

400

400 Bad Request

403

403 Forbidden

404

404 Not Found (no data)

409

409 Conflict

PATCH /projects/api/v3/tasks/{taskId}/customfields/{customFieldId}.json

Schemas

object active.ProjectMetricActive
{
  "type": "object",
  "title": "ProjectMetricActive",
  "properties": {
    "value": {
      "type": "integer"
    }
  },
  "description": "ProjectMetricActive contains all the information returned from a active."
}
object active.Response
{
  "type": "object",
  "title": "Response",
  "properties": {
    "data": {
      "$ref": "#/components/schemas/active.ProjectMetricActive"
    }
  },
  "description": "Response contains information about a specific active."
}
object activity.ActivitiesResponse
{
  "type": "object",
  "title": "ActivitiesResponse",
  "properties": {
    "meta": {
      "$ref": "#/components/schemas/view.Meta"
    },
    "included": {
      "type": "object",
      "properties": {
        "users": {
          "type": "object",
          "additionalProperties": {
            "$ref": "#/components/schemas/view.User"
          }
        },
        "projects": {
          "type": "object",
          "additionalProperties": {
            "$ref": "#/components/schemas/view.ProjectV205"
          }
        },
        "companies": {
          "type": "object",
          "additionalProperties": {
            "$ref": "#/components/schemas/view.Company"
          }
        }
      }
    },
    "activities": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/activity.Activity"
      }
    }
  },
  "description": "ActivitiesResponse contains all the information returned when sending a GET\nrequest to the activity endpoint."
}
object activity.Activity
{
  "type": "object",
  "title": "Activity",
  "properties": {
    "id": {
      "type": "integer"
    },
    "item": {
      "$ref": "#/components/schemas/view.Relationship"
    },
    "link": {
      "type": "string"
    },
    "type": {
      "type": "string"
    },
    "user": {
      "$ref": "#/components/schemas/view.Relationship"
    },
    "itemId": {
      "type": "integer"
    },
    "userId": {
      "type": "integer"
    },
    "company": {
      "$ref": "#/components/schemas/view.Relationship"
    },
    "dueDate": {
      "type": "string"
    },
    "forUser": {
      "$ref": "#/components/schemas/view.Relationship"
    },
    "project": {
      "$ref": "#/components/schemas/view.Relationship"
    },
    "dateTime": {
      "type": "string"
    },
    "itemLink": {
      "type": "string"
    },
    "lockdown": {
      "$ref": "#/components/schemas/view.Relationship"
    },
    "companyId": {
      "type": "integer"
    },
    "forUserId": {
      "type": "integer"
    },
    "isPrivate": {
      "type": "integer"
    },
    "projectId": {
      "type": "integer"
    },
    "lockdownId": {
      "type": "integer"
    },
    "publicInfo": {
      "type": "string"
    },
    "description": {
      "type": "string"
    },
    "forUserName": {
      "type": "string"
    },
    "activityType": {
      "type": "string"
    },
    "extraDescription": {
      "type": "string"
    },
    "latestActivityType": {
      "type": "string"
    }
  },
  "description": "Activity represents a view of activity."
}
object billable.ProjectMetricBillable
{
  "type": "object",
  "title": "ProjectMetricBillable",
  "properties": {
    "name": {
      "type": "string"
    },
    "value": {
      "type": "integer"
    }
  },
  "description": "ProjectMetricBillable contains all the information returned from a billable."
}
object billable.ProjectMetricBillablesResponse
{
  "type": "object",
  "title": "ProjectMetricBillablesResponse",
  "properties": {
    "data": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/billable.ProjectMetricBillable"
      }
    }
  },
  "description": "ProjectMetricBillablesResponse contains information about a group of billables."
}
object category.CategoriesResponse
{
  "type": "object",
  "title": "CategoriesResponse",
  "properties": {
    "projectCategories": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/view.ProjectCategory"
      }
    },
    "projectCategoryTotals": {
      "$ref": "#/components/schemas/view.CategoryTotals"
    }
  },
  "description": "CategoriesResponse contains information about a group of categories."
}
object comment.CommentsResponse
{
  "type": "object",
  "title": "CommentsResponse",
  "properties": {
    "meta": {
      "$ref": "#/components/schemas/view.Meta"
    },
    "comments": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/comment.FullComment"
      }
    },
    "included": {
      "type": "object",
      "properties": {
        "files": {
          "type": "object",
          "additionalProperties": {
            "$ref": "#/components/schemas/view.ProjectFileV205"
          }
        },
        "links": {
          "type": "object",
          "additionalProperties": {
            "$ref": "#/components/schemas/view.LinkItem"
          }
        },
        "tasks": {
          "type": "object",
          "additionalProperties": {
            "$ref": "#/components/schemas/view.TaskV205"
          }
        },
        "users": {
          "type": "object",
          "additionalProperties": {
            "$ref": "#/components/schemas/view.User"
          }
        },
        "projects": {
          "type": "object",
          "additionalProperties": {
            "$ref": "#/components/schemas/view.ProjectV205"
          }
        },
        "companies": {
          "type": "object",
          "additionalProperties": {
            "$ref": "#/components/schemas/view.Company"
          }
        },
        "notebooks": {
          "type": "object",
          "additionalProperties": {
            "$ref": "#/components/schemas/view.Notebook"
          }
        },
        "milestones": {
          "type": "object",
          "additionalProperties": {
            "$ref": "#/components/schemas/view.Milestone"
          }
        },
        "fileversions": {
          "type": "object",
          "additionalProperties": {
            "$ref": "#/components/schemas/view.FileversionV205"
          }
        }
      }
    }
  },
  "description": "CommentsResponse contains information about a group of comments."
}
object comment.FullComment
{
  "type": "object",
  "title": "FullComment",
  "properties": {
    "id": {
      "type": "integer"
    },
    "body": {
      "type": "string"
    },
    "meta": {
      "$ref": "#/components/schemas/comment.Meta"
    },
    "files": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/view.Relationship"
      }
    },
    "object": {
      "$ref": "#/components/schemas/view.Relationship"
    },
    "deleted": {
      "type": "boolean"
    },
    "fileIds": {
      "type": "array",
      "items": {
        "type": "integer"
      }
    },
    "project": {
      "$ref": "#/components/schemas/view.Relationship"
    },
    "htmlBody": {
      "type": "string"
    },
    "objectId": {
      "type": "integer"
    },
    "postedBy": {
      "type": "integer"
    },
    "deletedBy": {
      "type": "integer"
    },
    "fileCount": {
      "type": "integer"
    },
    "isPrivate": {
      "type": "integer"
    },
    "projectId": {
      "type": "integer"
    },
    "reactions": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/view.Reaction"
      }
    },
    "lockdownID": {
      "type": "integer"
    },
    "objectType": {
      "type": "string"
    },
    "commentLink": {
      "type": "string"
    },
    "contentType": {
      "type": "string"
    },
    "dateDeleted": {
      "type": "string"
    },
    "installation": {
      "$ref": "#/components/schemas/view.Relationship"
    },
    "lastEditedBy": {
      "type": "integer"
    },
    "dateLastEdited": {
      "type": "string"
    },
    "installationId": {
      "type": "integer"
    },
    "postedByUserId": {
      "type": "integer"
    },
    "postedDateTime": {
      "type": "string"
    },
    "reactionsCount": {
      "type": "integer"
    },
    "deletedByUserId": {
      "type": "integer"
    },
    "lastEditedByUserId": {
      "type": "integer"
    },
    "peopleNotifiedCount": {
      "type": "integer"
    }
  },
  "description": "FullComment contains the full information for a comment"
}
object comment.Meta
{
  "type": "object",
  "title": "Meta",
  "properties": {
    "isRead": {
      "type": "boolean"
    },
    "permissions": {
      "$ref": "#/components/schemas/comment.Permissions"
    }
  },
  "description": "Meta contains metadata for a comment, such as permissions"
}
object comment.Permissions
{
  "type": "object",
  "title": "Permissions",
  "properties": {
    "canEdit": {
      "type": "boolean"
    },
    "canDelete": {
      "type": "boolean"
    }
  },
  "description": "Permissions are the permissions the user has for the comment"
}
object company.CompaniesResponse
{
  "type": "object",
  "title": "CompaniesResponse",
  "properties": {
    "meta": {
      "$ref": "#/components/schemas/view.Meta"
    },
    "letters": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "included": {
      "type": "object",
      "properties": {
        "tags": {
          "type": "object",
          "additionalProperties": {
            "$ref": "#/components/schemas/view.Tag"
          }
        },
        "users": {
          "type": "object",
          "additionalProperties": {
            "$ref": "#/components/schemas/view.User"
          }
        },
        "updates": {
          "type": "object",
          "additionalProperties": {
            "$ref": "#/components/schemas/view.CompanyUpdate"
          }
        },
        "countries": {
          "type": "object",
          "additionalProperties": {
            "$ref": "#/components/schemas/view.Country"
          }
        },
        "industries": {
          "type": "object",
          "additionalProperties": {
            "$ref": "#/components/schemas/view.Industry"
          }
        },
        "customfields": {
          "type": "object",
          "additionalProperties": {
            "$ref": "#/components/schemas/view.CustomField"
          }
        },
        "customfieldCompanies": {
          "type": "object",
          "additionalProperties": {
            "$ref": "#/components/schemas/view.CustomFieldValueCompany"
          }
        }
      }
    },
    "companies": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/view.Company"
      }
    }
  },
  "description": "CompaniesResponse contains information about a group of companies."
}
object company.Company
{
  "type": "object",
  "title": "Company",
  "properties": {
    "cid": {
      "type": "string"
    },
    "fax": {
      "type": "string"
    },
    "zip": {
      "type": "string"
    },
    "city": {
      "type": "string"
    },
    "name": {
      "type": "string"
    },
    "phone": {
      "type": "string"
    },
    "state": {
      "type": "string"
    },
    "tagIds": {
      "type": "array",
      "items": {
        "type": "integer"
      }
    },
    "profile": {
      "type": "string"
    },
    "website": {
      "type": "string"
    },
    "emailOne": {
      "type": "string"
    },
    "emailTwo": {
      "type": "string"
    },
    "addressOne": {
      "type": "string"
    },
    "addressTwo": {
      "type": "string"
    },
    "emailThree": {
      "type": "string"
    },
    "countrycode": {
      "type": "string"
    },
    "customFields": {
      "$ref": "#/components/schemas/company.CustomFields"
    },
    "privateNotes": {
      "type": "string"
    },
    "industryCatId": {
      "type": "integer"
    },
    "clientManagedBy": {
      "type": "integer"
    },
    "logoPendingFileRef": {
      "type": "string"
    }
  },
  "description": "Company contains all the information returned from a company."
}
object company.CustomFields
{
  "type": "object",
  "title": "CustomFields",
  "properties": {
    "Values": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/value.CustomFieldValue"
      }
    }
  },
  "description": "CustomFields is the custom fields type."
}
object company.Request
{
  "type": "object",
  "title": "Request",
  "properties": {
    "tags": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/tag.Tag"
      }
    },
    "company": {
      "$ref": "#/components/schemas/company.Company"
    },
    "companyOptions": {
      "type": "object",
      "properties": {
        "fireWebhook": {
          "type": "boolean"
        },
        "logActivity": {
          "type": "boolean"
        },
        "useNotifyViaTWIM": {
          "type": "boolean"
        }
      }
    }
  },
  "description": "Request contains information of a company to be created or updated."
}
object company.Response
{
  "type": "object",
  "title": "Response",
  "properties": {
    "company": {
      "$ref": "#/components/schemas/view.Company"
    },
    "included": {
      "type": "object",
      "properties": {
        "tags": {
          "type": "object",
          "additionalProperties": {
            "$ref": "#/components/schemas/view.Tag"
          }
        },
        "users": {
          "type": "object",
          "additionalProperties": {
            "$ref": "#/components/schemas/view.User"
          }
        },
        "updates": {
          "type": "object",
          "additionalProperties": {
            "$ref": "#/components/schemas/view.CompanyUpdate"
          }
        },
        "countries": {
          "type": "object",
          "additionalProperties": {
            "$ref": "#/components/schemas/view.Country"
          }
        },
        "industries": {
          "type": "object",
          "additionalProperties": {
            "$ref": "#/components/schemas/view.Industry"
          }
        },
        "customfields": {
          "type": "object",
          "additionalProperties": {
            "$ref": "#/components/schemas/view.CustomField"
          }
        },
        "customfieldCompanies": {
          "type": "object",
          "additionalProperties": {
            "$ref": "#/components/schemas/view.CustomFieldValueCompany"
          }
        }
      }
    }
  },
  "description": "Response contains information about a specific company."
}
object complete.Response
{
  "type": "object",
  "title": "Response",
  "properties": {
    "data": {
      "$ref": "#/components/schemas/complete.TaskMetricComplete"
    }
  },
  "description": "Response contains information about a specific complete."
}
object complete.TaskMetricComplete
{
  "type": "object",
  "title": "TaskMetricComplete",
  "properties": {
    "value": {
      "type": "integer"
    }
  },
  "description": "TaskMetricComplete contains all the information returned from a complete."
}
object customfield.BulkDeleteRequest
{
  "type": "object",
  "title": "BulkDeleteRequest",
  "properties": {
    "customfieldIds": {
      "type": "array",
      "items": {
        "type": "integer"
      }
    }
  },
  "description": "BulkDeleteRequest contains the ids of the custom fields that should be\nremoved."
}
object customfield.CustomField
{
  "type": "object",
  "title": "CustomField",
  "properties": {
    "name": {
      "type": "string"
    },
    "type": {
      "type": "string"
    },
    "entity": {
      "type": "string",
      "description": "using a verbose name to avoid conflict"
    },
    "formula": {
      "type": "string"
    },
    "groupId": {
      "type": "integer"
    },
    "options": {},
    "privacy": {
      "$ref": "#/components/schemas/payload.UserGroups"
    },
    "required": {
      "type": "boolean"
    },
    "isPrivate": {
      "type": "boolean"
    },
    "projectId": {
      "type": "integer"
    },
    "description": {
      "type": "string"
    },
    "currencyCode": {
      "type": "string"
    },
    "visibilities": {
      "type": "array",
      "items": {
        "type": "string"
      }
    }
  },
  "description": "CustomField contains all the information returned from a custom field."
}
object customfield.CustomFieldsResponse
{
  "type": "object",
  "title": "CustomFieldsResponse",
  "properties": {
    "meta": {
      "$ref": "#/components/schemas/view.Meta"
    },
    "included": {
      "type": "object",
      "properties": {
        "users": {
          "type": "object",
          "additionalProperties": {
            "$ref": "#/components/schemas/view.User"
          }
        },
        "projects": {
          "type": "object",
          "additionalProperties": {
            "$ref": "#/components/schemas/view.ProjectV205"
          }
        }
      }
    },
    "customfields": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/view.CustomField"
      }
    }
  },
  "description": "CustomFieldsResponse contains information about a group of custom fields."
}
object customfield.Request
{
  "type": "object",
  "title": "Request",
  "properties": {
    "customfield": {
      "$ref": "#/components/schemas/customfield.CustomField"
    }
  },
  "description": "Request contains information of a custom field to be created or updated."
}
object customfield.Response
{
  "type": "object",
  "title": "Response",
  "properties": {
    "count": {
      "type": "integer"
    },
    "customfield": {
      "$ref": "#/components/schemas/view.CustomField"
    }
  },
  "description": "Response contains information about a specific customfield."
}
object dashboard.UserDashboardsResponse
{
  "type": "object",
  "title": "UserDashboardsResponse",
  "properties": {
    "meta": {
      "$ref": "#/components/schemas/view.Meta"
    },
    "included": {
      "type": "object",
      "properties": {
        "users": {
          "type": "object",
          "additionalProperties": {
            "$ref": "#/components/schemas/view.User"
          }
        },
        "projects": {
          "type": "object",
          "additionalProperties": {
            "$ref": "#/components/schemas/view.ProjectV205"
          }
        },
        "dashboardPanels": {
          "type": "object",
          "additionalProperties": {
            "$ref": "#/components/schemas/view.UserDashboardPanel"
          }
        },
        "dashboardSettings": {
          "type": "object",
          "additionalProperties": {
            "$ref": "#/components/schemas/view.UserDashboardSetting"
          }
        },
        "dashboardPanelSettings": {
          "type": "object",
          "additionalProperties": {
            "$ref": "#/components/schemas/view.UserDashboardPanelSetting"
          }
        }
      }
    },
    "dashboards": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/view.UserDashboard"
      }
    }
  },
  "description": "UserDashboardsResponse contains information about a group of dashboards."
}
object deadline.MilestoneMetricDeadline
{
  "type": "object",
  "title": "MilestoneMetricDeadline",
  "properties": {
    "date": {
      "type": "string"
    },
    "value": {
      "type": "integer"
    }
  },
  "description": "MilestoneMetricDeadline contains all the information returned from a deadline."
}
object deadline.MilestoneMetricDeadlinesResponse
{
  "type": "object",
  "title": "MilestoneMetricDeadlinesResponse",
  "properties": {
    "data": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/deadline.MilestoneMetricDeadline"
      }
    }
  },
  "description": "MilestoneMetricDeadlinesResponse contains information about a group of deadlines."
}
object entity.ProjectBudgetRange
{
  "type": "object",
  "title": "ProjectBudgetRange",
  "properties": {
    "to": {
      "type": "integer"
    },
    "from": {
      "type": "integer"
    },
    "count": {
      "type": "integer"
    },
    "companyId": {
      "type": "integer"
    }
  },
  "description": "ProjectBudgetRange is a distribution item type."
}
object form.Banner
{
  "type": "object",
  "title": "Banner",
  "properties": {
    "x": {
      "type": "number"
    },
    "y": {
      "type": "number"
    },
    "url": {
      "type": "string"
    },
    "accentColor": {
      "type": "string"
    },
    "primaryColor": {
      "type": "string"
    }
  },
  "description": "Banner contains information of a form banner to be created or updated."
}
object form.Content
{
  "type": "object",
  "title": "Content",
  "properties": {
    "logo": {
      "$ref": "#/components/schemas/form.Logo"
    },
    "name": {
      "type": "string"
    },
    "state": {
      "type": "string"
    },
    "banner": {
      "$ref": "#/components/schemas/form.Banner"
    },
    "definition": {
      "type": "string"
    },
    "description": {
      "type": "string"
    },
    "pendingLogoId": {
      "type": "string"
    },
    "pendingBannerId": {
      "type": "string"
    }
  },
  "description": "Content contains information of a form content to be created or updated."
}
object form.CopyForm
{
  "type": "object",
  "title": "CopyForm",
  "properties": {
    "title": {
      "type": "string"
    },
    "hostObject": {
      "$ref": "#/components/schemas/form.HostObject"
    },
    "projectIds": {
      "type": "array",
      "items": {
        "type": "integer"
      }
    },
    "copyAssignees": {
      "type": "boolean"
    },
    "generateToken": {
      "type": "boolean"
    }
  },
  "description": "CopyForm contains information on where and what to copy from a form"
}
object form.CopyRequest
{
  "type": "object",
  "title": "CopyRequest",
  "properties": {
    "form": {
      "$ref": "#/components/schemas/form.CopyForm"
    }
  },
  "description": "CopyRequest outter request for copying a form"
}
object form.DestinationObject
{
  "type": "object",
  "title": "DestinationObject",
  "properties": {
    "id": {
      "type": "integer"
    },
    "type": {
      "type": "string"
    }
  },
  "description": "DestinationObject contains information of a form destination object to be created or updated."
}
object form.Form
{
  "type": "object",
  "title": "Form",
  "properties": {
    "content": {
      "$ref": "#/components/schemas/form.Content"
    },
    "hostObject": {
      "$ref": "#/components/schemas/form.HostObject"
    },
    "redirectUrl": {
      "type": "string"
    },
    "primaryColor": {
      "type": "string"
    },
    "submitButtonText": {
      "type": "string"
    },
    "taskTitleFieldId": {
      "type": "string"
    },
    "destinationObject": {
      "$ref": "#/components/schemas/form.DestinationObject"
    },
    "confirmationMessage": {
      "type": "string"
    },
    "responseEmailFieldId": {
      "type": "string"
    },
    "allowTeamworkBranding": {
      "type": "boolean"
    },
    "promptAdditionalSubmissions": {
      "type": "boolean"
    }
  },
  "description": "Form contains information of a form to be created or updated."
}
object form.FormsResponse
{
  "type": "object",
  "title": "FormsResponse",
  "properties": {
    "meta": {
      "$ref": "#/components/schemas/view.Meta"
    },
    "forms": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/view.Form"
      }
    },
    "included": {
      "type": "object",
      "properties": {
        "users": {
          "type": "object",
          "additionalProperties": {
            "$ref": "#/components/schemas/view.User"
          }
        },
        "projects": {
          "type": "object",
          "additionalProperties": {
            "$ref": "#/components/schemas/view.ProjectV205"
          }
        },
        "companies": {
          "type": "object",
          "additionalProperties": {
            "$ref": "#/components/schemas/view.Company"
          }
        },
        "tasklists": {
          "type": "object",
          "additionalProperties": {
            "$ref": "#/components/schemas/view.Tasklist"
          }
        }
      }
    }
  },
  "description": "FormsResponse contains information about a group of forms."
}
object form.HostObject
{
  "type": "object",
  "title": "HostObject",
  "properties": {
    "id": {
      "type": "integer"
    },
    "meta": {
      "$ref": "#/components/schemas/form.HostObjectMeta"
    },
    "type": {
      "type": "string"
    }
  },
  "description": "HostObject contains information of a form host object to be created or updated."
}
object form.HostObjectMeta
{
  "type": "object",
  "title": "HostObjectMeta",
  "properties": {
    "tasklistId": {
      "type": "integer"
    }
  },
  "description": "HostObjectMeta contains information of a form host object meta to be created or updated."
}
object form.Logo
{
  "type": "object",
  "title": "Logo",
  "properties": {
    "url": {
      "type": "string"
    }
  },
  "description": "Logo contains information of a form custom logo to be created or updated."
}
object form.PublicResponse
{
  "type": "object",
  "title": "PublicResponse",
  "properties": {
    "form": {
      "$ref": "#/components/schemas/view.PublicForm"
    }
  },
  "description": "PublicResponse contains information about a specific public form."
}
object form.Request
{
  "type": "object",
  "title": "Request",
  "properties": {
    "form": {
      "$ref": "#/components/schemas/form.Form"
    }
  },
  "description": "Request contains information of a form to be created or updated."
}
object form.Response
{
  "type": "object",
  "title": "Response",
  "properties": {
    "form": {
      "$ref": "#/components/schemas/view.Form"
    },
    "included": {
      "type": "object",
      "properties": {
        "users": {
          "type": "object",
          "additionalProperties": {
            "$ref": "#/components/schemas/view.User"
          }
        },
        "projects": {
          "type": "object",
          "additionalProperties": {
            "$ref": "#/components/schemas/view.ProjectV205"
          }
        },
        "companies": {
          "type": "object",
          "additionalProperties": {
            "$ref": "#/components/schemas/view.Company"
          }
        },
        "tasklists": {
          "type": "object",
          "additionalProperties": {
            "$ref": "#/components/schemas/view.Tasklist"
          }
        }
      }
    }
  },
  "description": "Response contains information about a specific form."
}
object health.ProjectMetricHealth
{
  "type": "object",
  "title": "ProjectMetricHealth",
  "properties": {
    "name": {
      "type": "string"
    },
    "value": {
      "type": "integer"
    }
  },
  "description": "ProjectMetricHealth stores a specific health counter."
}
object health.ProjectMetricHealthsResponse
{
  "type": "object",
  "title": "ProjectMetricHealthsResponse",
  "properties": {
    "data": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/health.ProjectMetricHealth"
      }
    }
  },
  "description": "ProjectMetricHealthsResponse contains information about a group of healths.\nFollowing this format to satisfy the Numerics integration."
}
object importer.Importer
{
  "type": "object",
  "title": "Importer",
  "properties": {
    "name": {
      "type": "string"
    },
    "status": {
      "type": "string"
    },
    "running": {
      "type": "boolean"
    }
  },
  "description": "Importer single importer for response."
}
object importer.ImportersResponse
{
  "type": "object",
  "title": "ImportersResponse",
  "properties": {
    "importers": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/importer.Importer"
      }
    },
    "isImporting": {
      "type": "boolean"
    }
  },
  "description": "ImportersResponse contains information about a group of importers."
}
object invoice.ProjectMetricInvoicesResponse
{
  "type": "object",
  "title": "ProjectMetricInvoicesResponse",
  "properties": {
    "data": {
      "type": "object",
      "properties": {
        "value": {
          "type": "integer"
        }
      }
    }
  },
  "description": "ProjectMetricInvoicesResponse contains information about a group of invoices."
}
object late.Response
{
  "type": "object",
  "title": "Response",
  "properties": {
    "data": {
      "$ref": "#/components/schemas/late.TaskMetricLate"
    }
  },
  "description": "Response contains the count of late tasks.\nFollowing this format to satisfy the Numerics integration."
}
object late.TaskMetricLate
{
  "type": "object",
  "title": "TaskMetricLate",
  "properties": {
    "value": {
      "type": "integer"
    }
  },
  "description": "TaskMetricLate contains count information about late tasks."
}
object message.MessagesResponse
{
  "type": "object",
  "title": "MessagesResponse",
  "properties": {
    "meta": {
      "$ref": "#/components/schemas/view.Meta"
    },
    "included": {
      "type": "object",
      "properties": {
        "users": {
          "type": "object",
          "additionalProperties": {
            "$ref": "#/components/schemas/view.User"
          }
        },
        "Included": {
          "$ref": "#/components/schemas/messagereply.Included"
        },
        "projects": {
          "type": "object",
          "additionalProperties": {
            "$ref": "#/components/schemas/view.ProjectV205"
          }
        },
        "companies": {
          "type": "object",
          "additionalProperties": {
            "$ref": "#/components/schemas/view.Company"
          }
        },
        "messageReplies": {
          "type": "object",
          "additionalProperties": {
            "$ref": "#/components/schemas/view.MessageReply"
          }
        }
      }
    },
    "messages": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/view.Message"
      }
    }
  },
  "description": "MessagesResponse contains all the information returned when sending a GET\nrequest to the message endpoint."
}
object message.Request
{
  "type": "object",
  "title": "Request",
  "properties": {
    "read": {
      "type": "boolean"
    }
  },
  "description": "Request contains information of a message to be created or updated."
}
object message.Response
{
  "type": "object",
  "title": "Response",
  "properties": {
    "message": {
      "$ref": "#/components/schemas/view.Message"
    },
    "included": {
      "type": "object",
      "properties": {
        "users": {
          "type": "object",
          "additionalProperties": {
            "$ref": "#/components/schemas/view.User"
          }
        },
        "Included": {
          "$ref": "#/components/schemas/messagereply.Included"
        },
        "projects": {
          "type": "object",
          "additionalProperties": {
            "$ref": "#/components/schemas/view.ProjectV205"
          }
        },
        "companies": {
          "type": "object",
          "additionalProperties": {
            "$ref": "#/components/schemas/view.Company"
          }
        },
        "messageReplies": {
          "type": "object",
          "additionalProperties": {
            "$ref": "#/components/schemas/view.MessageReply"
          }
        }
      }
    }
  },
  "description": "Response contains information about a specific message."
}

Versions

Version Endpoints Schemas Ingested Status
3.0 188 296 2026-05-11 current
3.0 188 296 2026-04-16