Query structured spec data via REST or MCP. Get exactly what your agent needs.
https://{site_name}.teamwork.com
/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.
application/json
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 |
200 OK
400 Bad Request
403 Forbidden
404 Not Found (no data)
409 Conflict
PUT /projects/api/v3/projects/budgets/:id/tasklists/budgets.json
/projects/api/v3/customfields/{customFieldId}.json
Updates an existing custom field.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| customFieldId | path | required | integer | — |
application/json
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 |
200 OK
400 Bad Request
403 Forbidden
404 Not Found (no data)
409 Conflict
PUT /projects/api/v3/customfields/{customFieldId}.json
/projects/api/v3/notebooks/{notebookId}/lock.json
Locks a specific notebook.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| notebookId | path | required | integer | — |
200 OK (no data)
400 Bad Request
403 Forbidden
404 Not Found (no data)
PUT /projects/api/v3/notebooks/{notebookId}/lock.json
/projects/api/v3/notebooks/{notebookId}/unlock.json
Unlocks a specific notebook.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| notebookId | path | required | integer | — |
200 OK (no data)
400 Bad Request
403 Forbidden
404 Not Found (no data)
PUT /projects/api/v3/notebooks/{notebookId}/unlock.json
/projects/api/v3/projects/{projectId}/people.json
Adds a list of user ID’s to a project.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| projectId | path | required | integer | — |
application/json
people.UsersPayload
| Property | Type | Required |
|---|---|---|
| userIds | array | optional |
| checkTeamIds | array | optional |
200 OK
400 Bad Request
403 Forbidden
PUT /projects/api/v3/projects/{projectId}/people.json
/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
application/json
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 |
200 OK
400 Bad Request
403 Forbidden
PUT /projects/api/v3/projects/featureorder.json
/projects/api/v3/projects/tentative/{projectId}/convert.json
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| projectId | path | required | integer | — |
200 OK
400 Bad Request
403 Forbidden
PUT /projects/api/v3/projects/tentative/{projectId}/convert.json
/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
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| projectId | path | required | integer | — |
application/json
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 |
200 OK
400 Bad Request
403 Forbidden
PUT /projects/api/v3/projects/{projectId}/featureorder.json
/projects/api/v3/projects/{projectId}/risks/copy
Copies the risk register from one project to another.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| projectId | path | required | integer | — |
200 OK (no data)
400 Bad Request
403 Forbidden
404 Not Found (no data)
PUT /projects/api/v3/projects/{projectId}/risks/copy
/projects/api/v3/me/timers/{timerId}.json
Edits the fields of a timer.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| timerId | path | required | integer | — |
application/json
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 |
200 OK
400 Bad Request
403 Forbidden
404 Not Found (no data)
PUT /projects/api/v3/me/timers/{timerId}.json
/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.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| timerId | path | required | integer | — |
200 OK
201 Created
400 Bad Request
403 Forbidden
404 Not Found (no data)
PUT /projects/api/v3/me/timers/{timerId}/complete.json
/projects/api/v3/me/timers/{timerId}/pause.json
Pause an existing timer.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| timerId | path | required | integer | — |
200 OK
400 Bad Request
403 Forbidden
404 Not Found (no data)
PUT /projects/api/v3/me/timers/{timerId}/pause.json
/projects/api/v3/me/timers/{timerId}/resume.json
Resume an existing timer. If other timers are currently running, those timers are paused before resuming.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| timerId | path | required | integer | — |
200 OK
201 Created
400 Bad Request
403 Forbidden
404 Not Found (no data)
PUT /projects/api/v3/me/timers/{timerId}/resume.json
/projects/api/v3/me/timers/{timerId}/undelete.json
Restore an deleted timer.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| timerId | path | required | integer | — |
204 No Content (no data)
400 Bad Request
403 Forbidden
404 Not Found (no data)
PUT /projects/api/v3/me/timers/{timerId}/undelete.json
active.ProjectMetricActive
{
"type": "object",
"title": "ProjectMetricActive",
"properties": {
"value": {
"type": "integer"
}
},
"description": "ProjectMetricActive contains all the information returned from a active."
}
active.Response
{
"type": "object",
"title": "Response",
"properties": {
"data": {
"$ref": "#/components/schemas/active.ProjectMetricActive"
}
},
"description": "Response contains information about a specific active."
}
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."
}
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."
}
billable.ProjectMetricBillable
{
"type": "object",
"title": "ProjectMetricBillable",
"properties": {
"name": {
"type": "string"
},
"value": {
"type": "integer"
}
},
"description": "ProjectMetricBillable contains all the information returned from a billable."
}
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."
}
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."
}
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."
}
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"
}
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"
}
comment.Permissions
{
"type": "object",
"title": "Permissions",
"properties": {
"canEdit": {
"type": "boolean"
},
"canDelete": {
"type": "boolean"
}
},
"description": "Permissions are the permissions the user has for the comment"
}
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."
}
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."
}
company.CustomFields
{
"type": "object",
"title": "CustomFields",
"properties": {
"Values": {
"type": "array",
"items": {
"$ref": "#/components/schemas/value.CustomFieldValue"
}
}
},
"description": "CustomFields is the custom fields type."
}
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."
}
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."
}
complete.Response
{
"type": "object",
"title": "Response",
"properties": {
"data": {
"$ref": "#/components/schemas/complete.TaskMetricComplete"
}
},
"description": "Response contains information about a specific complete."
}
complete.TaskMetricComplete
{
"type": "object",
"title": "TaskMetricComplete",
"properties": {
"value": {
"type": "integer"
}
},
"description": "TaskMetricComplete contains all the information returned from a complete."
}
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."
}
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."
}
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."
}
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."
}
customfield.Response
{
"type": "object",
"title": "Response",
"properties": {
"count": {
"type": "integer"
},
"customfield": {
"$ref": "#/components/schemas/view.CustomField"
}
},
"description": "Response contains information about a specific customfield."
}
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."
}
deadline.MilestoneMetricDeadline
{
"type": "object",
"title": "MilestoneMetricDeadline",
"properties": {
"date": {
"type": "string"
},
"value": {
"type": "integer"
}
},
"description": "MilestoneMetricDeadline contains all the information returned from a deadline."
}
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."
}
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."
}
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."
}
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."
}
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"
}
form.CopyRequest
{
"type": "object",
"title": "CopyRequest",
"properties": {
"form": {
"$ref": "#/components/schemas/form.CopyForm"
}
},
"description": "CopyRequest outter request for copying a form"
}
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."
}
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."
}
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."
}
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."
}
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."
}
form.Logo
{
"type": "object",
"title": "Logo",
"properties": {
"url": {
"type": "string"
}
},
"description": "Logo contains information of a form custom logo to be created or updated."
}
form.PublicResponse
{
"type": "object",
"title": "PublicResponse",
"properties": {
"form": {
"$ref": "#/components/schemas/view.PublicForm"
}
},
"description": "PublicResponse contains information about a specific public form."
}
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."
}
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."
}
health.ProjectMetricHealth
{
"type": "object",
"title": "ProjectMetricHealth",
"properties": {
"name": {
"type": "string"
},
"value": {
"type": "integer"
}
},
"description": "ProjectMetricHealth stores a specific health counter."
}
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."
}
importer.Importer
{
"type": "object",
"title": "Importer",
"properties": {
"name": {
"type": "string"
},
"status": {
"type": "string"
},
"running": {
"type": "boolean"
}
},
"description": "Importer single importer for response."
}
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."
}
invoice.ProjectMetricInvoicesResponse
{
"type": "object",
"title": "ProjectMetricInvoicesResponse",
"properties": {
"data": {
"type": "object",
"properties": {
"value": {
"type": "integer"
}
}
}
},
"description": "ProjectMetricInvoicesResponse contains information about a group of invoices."
}
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."
}
late.TaskMetricLate
{
"type": "object",
"title": "TaskMetricLate",
"properties": {
"value": {
"type": "integer"
}
},
"description": "TaskMetricLate contains count information about late tasks."
}
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."
}
message.Request
{
"type": "object",
"title": "Request",
"properties": {
"read": {
"type": "boolean"
}
},
"description": "Request contains information of a message to be created or updated."
}
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."
}
| Version | Endpoints | Schemas | Ingested | Status |
|---|---|---|---|---|
| 3.0 | 188 | 296 | 2026-05-11 | current |
| 3.0 | 188 | 296 | 2026-04-16 |