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

Clear filters

Budgets 1 endpoints

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

Customfields 1 endpoints

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

Notebooks 2 endpoints

PUT /projects/api/v3/notebooks/{notebookId}/lock.json

Locks a specific notebook.

operationId: Notebooks_lockNotebook

Parameters

Name In Required Type Description
notebookId path required integer

Responses

200

200 OK (no data)

400

400 Bad Request

403

403 Forbidden

404

404 Not Found (no data)

PUT /projects/api/v3/notebooks/{notebookId}/lock.json
PUT /projects/api/v3/notebooks/{notebookId}/unlock.json

Unlocks a specific notebook.

operationId: Notebooks_unlockNotebook

Parameters

Name In Required Type Description
notebookId path required integer

Responses

200

200 OK (no data)

400

400 Bad Request

403

403 Forbidden

404

404 Not Found (no data)

PUT /projects/api/v3/notebooks/{notebookId}/unlock.json

People 1 endpoints

PUT /projects/api/v3/projects/{projectId}/people.json

Adds a list of user ID’s to a project.

operationId: People_addToProject

Parameters

Name In Required Type Description
projectId path required integer

Request Body

required
application/json
schema people.UsersPayload
Property Type Required
userIds array optional
checkTeamIds array optional

Responses

200

200 OK

400

400 Bad Request

403

403 Forbidden

PUT /projects/api/v3/projects/{projectId}/people.json

Projects 3 endpoints

PUT /projects/api/v3/projects/featureorder.json

Each field must have an index, from 0 to numFeatures -1
without repeated numbers to provide the order
to display the features

operationId: Projects_setDefaultFeaturesOrder

Request Body

required
application/json
schema project.FeatureOrderDefaults
Property Type Required
list integer optional
time integer optional
board integer optional
files integer optional
forms integer optional
gantt integer optional
links integer optional
risks integer optional
table integer optional
people integer optional
proofs integer optional
billing integer optional
finance integer optional
comments integer optional
messages integer optional
settings integer optional
dashboard integer optional
notebooks integer optional
milestones integer optional
numVisibleTabs integer optional

Responses

200

200 OK

400

400 Bad Request

403

403 Forbidden

PUT /projects/api/v3/projects/featureorder.json
PUT /projects/api/v3/projects/tentative/{projectId}/convert.json
operationId: Projects_convertTentativeProject

Parameters

Name In Required Type Description
projectId path required integer

Responses

200

200 OK

400

400 Bad Request

403

403 Forbidden

PUT /projects/api/v3/projects/tentative/{projectId}/convert.json
PUT /projects/api/v3/projects/{projectId}/featureorder.json

Each field must have an index, from 0 to numFeatures -1
without repeated numbers to provide the order
to display the features

operationId: Projects_updateFeatureOrder

Parameters

Name In Required Type Description
projectId path required integer

Request Body

required
application/json
schema project.FeatureOrderRequest
Property Type Required
featureOrder object optional
id integer optional
list integer optional
time integer optional
board integer optional
files integer optional
forms integer optional
gantt integer optional
links integer optional
risks integer optional
table integer optional
people integer optional
proofs integer optional
billing integer optional
finance integer optional
comments integer optional
messages integer optional
settings integer optional
dashboard integer optional
notebooks integer optional
projectId integer optional
…3 more object optional
featureOrderOptions object optional
useNotifyViaTWIM boolean optional

Responses

200

200 OK

400

400 Bad Request

403

403 Forbidden

PUT /projects/api/v3/projects/{projectId}/featureorder.json

Risks 1 endpoints

PUT /projects/api/v3/projects/{projectId}/risks/copy

Copies the risk register from one project to another.

operationId: Risks_copyProjectRiskRegister

Parameters

Name In Required Type Description
projectId path required integer

Responses

200

200 OK (no data)

400

400 Bad Request

403

403 Forbidden

404

404 Not Found (no data)

PUT /projects/api/v3/projects/{projectId}/risks/copy

Timetracking 5 endpoints

PUT /projects/api/v3/me/timers/{timerId}.json

Edits the fields of a timer.

operationId: TimeTracking_editTimerFields

Parameters

Name In Required Type Description
timerId path required integer

Request Body

application/json
schema timer.Request
Property Type Required
timer object optional
taskId integer optional
seconds integer optional
isRunning boolean optional
projectId integer optional
isBillable boolean optional
description string optional
stopRunningTimers boolean optional

Responses

200

200 OK

400

400 Bad Request

403

403 Forbidden

404

404 Not Found (no data)

PUT /projects/api/v3/me/timers/{timerId}.json
PUT /projects/api/v3/me/timers/{timerId}/complete.json

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

Parameters

Name In Required Type Description
timerId path required integer

Responses

200

200 OK

201

201 Created

400

400 Bad Request

403

403 Forbidden

404

404 Not Found (no data)

PUT /projects/api/v3/me/timers/{timerId}/complete.json
PUT /projects/api/v3/me/timers/{timerId}/pause.json

Pause an existing timer.

operationId: TimeTracking_pauseTimerById

Parameters

Name In Required Type Description
timerId path required integer

Responses

200

200 OK

400

400 Bad Request

403

403 Forbidden

404

404 Not Found (no data)

PUT /projects/api/v3/me/timers/{timerId}/pause.json
PUT /projects/api/v3/me/timers/{timerId}/resume.json

Resume an existing timer. If other timers are currently running, those timers are paused before resuming.

operationId: TimeTracking_resumeTimerById

Parameters

Name In Required Type Description
timerId path required integer

Responses

200

200 OK

201

201 Created

400

400 Bad Request

403

403 Forbidden

404

404 Not Found (no data)

PUT /projects/api/v3/me/timers/{timerId}/resume.json
PUT /projects/api/v3/me/timers/{timerId}/undelete.json

Restore an deleted timer.

operationId: TimeTracking_restoreTimerItem

Parameters

Name In Required Type Description
timerId path required integer

Responses

204

204 No Content (no data)

400

400 Bad Request

403

403 Forbidden

404

404 Not Found (no data)

PUT /projects/api/v3/me/timers/{timerId}/undelete.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