Teamwork integration for AI agents.
Teamwork integration for AI agents with secure authentication and server-side credential injection. Open Connector runs the OAuth, seals the token in an encrypted vault, and serves Teamwork tools to your agent over MCP or a typed API — credentials injected server-side, every call audited, nothing leaving your infrastructure. Open source (AGPL-3.0) and self-hostable.
Real Teamwork actions, managed and audited.
Your user connects Teamwork once; your agent can then secure AI-agent actions — scoped to the OAuth permissions you grant and the tool allowlist you configure. Every action is least-privilege and written to a tamper-evident audit trail.
- 1
Your user grants Teamwork access once (OAuth) — the token lands in the vault.
- 2
Your agent calls a tool over MCP or the typed API; Open Connector injects the credential server-side.
- 3
Every routed call appends a hash-chained audit record — nothing leaves your infra.
Supported Teamwork tools.
409 tools are generated from the published Teamwork catalog. Descriptions are plain text; each action remains subject to its configured authentication and tool allowlist.
Showing 409 tools. All published catalog entries are included in this page's server-rendered HTML.
- Deletes an activity item.
- Deletes an activity item.
- Activity
- Delete an existing notification.
- Delete an existing notification.
- Budgets
- Delete an existing calendar.
- Delete an existing Calendar.
- Calendars
- Delete an existing company custom field value.
- Removes a company custom field value.
- CustomFields
- Delete an existing company.
- Delete a company.
- Companies
- Delete an existing company domain.
- Removes a company domain. It's still possible to recover the job role. Marks all related company domains assignments as deleted.
- Companies
- Delete an existing container.
- Removes a container by its ID. This will permanently delete the container and all its associated widgets.
- Containers
- Delete a custom exchange rate
- Soft-delete a custom exchange rate.
- ExchangeRate
- Delete an existing custom field
- Removes a custom field.
- CustomFields
- Delete an existing custom item field.
- Delete a custom item field.
- CustomItems
- Delete an existing custom item field option
- Delete an existing custom item field option
- CustomItems
- Delete an existing custom item.
- Delete a custom item.
- CustomItems
- Delete a custom item record.
- Delete a custom item record.
- CustomItems
- Delete an existing custom item field value.
- Delete a custom item field value.
- CustomItems
- Delete a custom item section.
- Delete a custom item section.
- CustomItems
- Delete an existing form.
- Delete an existing form.
- Forms
- Delete an existing job role.
- Removes a job role. It's still possible to recover the job role. Marks all related job role assignments as deleted.
- JobRoles
- Remove a user from a job role.
- Deletes one or more users from the given job role.
- JobRoles
- Delete a timer by ID
- Delete an existing timer.
- TimeTracking
- Delete an existing notebook.
- Delete an existing notebook.
- Notebooks
- Delete notebook versions.
- Deletes some existing versions of a notebook by version ID.
- Notebooks
- Delete an existing person.
- Delete a person.
- People
- Deletes a projects activity log.
- Deletes a projects activity log.
- Activity
- Delete an existing project custom field value.
- Removes a project custom field value.
- CustomFields
- Remove an existing workflow from a project.
- Remove an existing workflow from a project.
- Workflows
- Delete a quote.
- Delete a quote.
- Quotes
- Deletes quote line items.
- Deletes quote line items.
- Quotes
- Delete a custom report.
- Deletes the custom report identified by `id`.
- CustomReports
- Delete a scheduled report.
- Deletes the scheduled report identified by `reportId`.
- Reports
- Delete an existing risk.
- Delete a risk.
- Risks
- Delete an existing skill.
- Removes a skill. It's still possible to recover the skill. Marks all related skill assignments as deleted.
- Skills
- Remove a skill from a user.
- Deletes a skill from one or more users.
- Skills
- Remove a skill from a user.
- Deletes a skill from a single user.
- Skills
- Deletes a tag
- Removes a tag. If there's no tag with the given ID the status code 409 (CONFLICT) will be returned.
- Tags
- Delete an existing tasklist.
- Delete an existing tasklist.
- Tasklists
- Delete an existing task custom field value.
- Removes a task custom field value.
- CustomFields
- Delete an existing task.
- Delete a task and its subtasks.
- Tasks
- Delete task reminder
- Deletes an existing reminder for a task.
- TaskReminders
- Delete an existing timelog.
- Delete a timelog.
- TimeTracking
- Delete an existing workflow.
- Deletes an existing workflow.
- Workflows
- Delete an existing stage.
- Delete a workflow stage with the given id and migrate tasks to another stage.
- Workflows
- Get time entries for a specific allocation
- Return logged time entries for a specific allocation. Only the time entries that the logged-in user can access will be returned.
- TimeTracking
- Generate agenda report in CSV format
- Generates an agenda report in CSV format containing all the events for the provided filters.
- CalendarEvents
- Generate agenda report in HTML format
- Generates an agenda report in HTML format containing all the events for the provided filters.
- CalendarEvents
- Generate agenda report in PDF format
- Generates an agenda report in PDF format containing all the events for the provided filters.
- CalendarEvents
- Generate agenda report in XLSX format
- Generates an agenda report in XLSX format containing all the events for the provided filters.
- CalendarEvents
- Get a specific calendar event.
- Returns a single event.
- CalendarEvents
- Get all calendar events.
- Get all events.
- CalendarEvents
- Get a specific calendar.
- Returns a single calendar.
- Calendars
- Get all calendar events.
- Get all events.
- CalendarEvents
- Get all calendars.
- Get all calendars.
- Calendars
- Get a specific calendar event.
- Returns a single event.
- CalendarEvents
- Get all calendar events.
- Get all events.
- CalendarEvents
- Retrieve a specific comment
- Retrieve a specific comment
- Comments
- List users notified for a comment
- Returns the users that were notified when the specified comment was posted.
- Comments
- Get a list of comments
- Get a list of comments
- Comments
- Company custom field value.
- Return a specific custom field value from a company.
- CustomFields
- Company custom field values.
- Return all custom field values from a specific company.
- CustomFields
- Get a specific company.
- Retrieves a company by id.
- Companies
- Get all companies.
- 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
- Companies
- Get all time entries, grouped by company ID
- Return all logged time entries for all projects grouped by company ID. Only the time entries that the logged-in user can access will be returned.
- TimeTracking
- Get a list of quotes for a specific company.
- Get a list of quotes for a specific company.
- Quotes
- Preview the next auto-generated quote number.
- Preview the next auto-generated quote number.
- Quotes
- Get a specific container.
- This returns all details about an individual container including its widgets and configuration.
- Containers
- Get insights containers for a specific route.
- This returns containers of type insights filtered by the specified app route. This is a convenience endpoint that automatically filters by container type. The entity-scoped variant additionally filters by the supplied entity type and entity ID.
- Containers
- Get insights containers for a specific route.
- This returns containers of type insights filtered by the specified app route. This is a convenience endpoint that automatically filters by container type. The entity-scoped variant additionally filters by the supplied entity type and entity ID.
- Containers
- Get insights containers for a specific route.
- This returns containers of type insights filtered by the specified app route. This is a convenience endpoint that automatically filters by container type. The entity-scoped variant additionally filters by the supplied entity type and entity ID.
- Containers
- Get all containers.
- This returns all containers in the installation. You can limit output by provided filters. Default data pagination is 50 items per page.
- Containers
- List ExchangeRate for currency pair
- Get a list of ExchangeRate for a specific currency pair with optional filters. Use the include parameter to sideload related users (creators, updaters).
- ExchangeRate
- Get a custom exchange rate
- Get a single custom exchange rate by ID.
- ExchangeRate
- List latest ExchangeRate per currency pair
- Get the most relevant exchange rate for each currency pair. Priority: 1) active rates (currently valid), 2) nearest future rate, 3) most recent past rate. Use the include parameter to sideload related users (creators, updaters).
- ExchangeRate
- Get live exchange rates for custom pairs.
- Retrieves live exchange rates from the Forex service for all currency pairs that have custom exchange rates defined.
- ExchangeRate
- Lookup a custom exchange rate
- Find the applicable custom exchange rate for a currency pair on a specific date.
- ExchangeRate
- Get a custom field by id.
- This returns all details about an individual custom field.
- CustomFields
- Get all custom fields
- Return all custom fields for the provided filters.
- CustomFields
- Get a custom item field by id.
- This returns all details about an individual custom item field.
- CustomItems
- Get custom item fields for a specific custom item
- Return all custom item fields for a specific custom item.
- CustomItems
- Get a custom item by id.
- This returns all details about an individual custom item.
- CustomItems
- Get a list of comments for a custom item record
- Get a list of comments for a custom item record
- CustomItemRecordComments
- Get a custom item record by ID.
- Return all details about an individual custom item record.
- CustomItems
- Get custom item records for a specific custom item
- Return all custom item records for a specific custom item.
- CustomItems
- Get a custom item section by ID.
- Return all details about an individual custom item section.
- CustomItems
- Get custom item sections for a specific item
- Return all custom item sections for a specific custom item.
- CustomItems
- Get a record by ID.
- Return all details about an individual custom item record.
- CustomItems
- Get all dashboards
- Return all dashboards that the logged-in user can access. Dashboards contains panels that are used to summarize many activities from the installation.
- Dashboards
- Get all exchange rates for a base currency
- Retrieves all current exchange rates for the specified base currency from the Forex service.
- ExchangeRate
- Get exchange rate for a currency pair
- Retrieves the exchange rate between two currencies for a specific date (or today if not specified). Uses the user's timezone to determine "today" when no date is provided.
- ExchangeRate
- Get installation features
- Return all features accessible to the current installation.
- Features
- Get a list of comments for a file
- Get a list of comments for a file
- FileComments
- Get the parent project for a specific file.
- Returns the project that the given file belongs to. The id refers to the `projects_files.id` (not a file version).
- Files
- Get a list of comments for a file version
- Get a list of comments for a file version
- FileVersionComments
- Get the draft version of a specific form.
- Get the draft version of a specific form.
- Forms
- Get a specific form.
- Get a specific form.
- Forms
- Get all forms.
- Return a list of all forms.
- Forms
- Get a forms via its token.
- This endpoint does not require authentication.
- FormsPublic
- Pre-signed upload URL for form attachments.
- Returns a pre-signed URL that the form submitter can use to upload a file attachment directly to the storage backend, scoped to the public form identified by the token.
- FormsPublic
- Get stats about Importers
- This endpoint returns info about a set of importers. This includes whether they are individually running or not, what's their status and a flag to represent if any importer is running. The endpoint looks up redis for this information. Using the parameter resetImporters this information can be deleted in redis to reset it.
- Importers
- Get utilization insights by report type.
- Returns utilization data scoped to the supplied report type (user, team, job role, dashboard variants, etc.). Supports the same filters as the people utilization endpoint.
- Utilization
- Get a specific job role.
- This returns all details about an individual job role. When include users all users that are assigned to that role will be side loaded
- JobRoles
- Get all job roles.
- This returns all job roles along installation. You can limit output by provided filters. Default data pagination is 50 items per page. When include users all users that are assigned to that role will be side loaded
- JobRoles
- Latest activity (all projects)
- 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.
- Activity
- Get a list of comments for a link item
- Get a list of comments for a link item
- LinkItems
- Get the parent project for a specific link item.
- Returns the project that the given link item belongs to.
- LinkItems
- Get logged user information
- Get logged user information
- People
- Get a specific personal task.
- Returns the personal task with the provided id for the logged-in user. 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
- Tasks
- Get the current user's personal tasks.
- Returns the personal tasks for the logged-in user. 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
- Tasks
- Get all your running timers
- Will get all your running timers or the person you are logged in as.
- TimeTracking
- Get a specific message reply
- Returns a specific message reply, identified by its id.
- MessageReplies
- Get all replies
- Return all replies for messages the user has access to.
- MessageReplies
- Get all messages.
- Retrieve all messages for the provided filters.
- Messages
- Get a specific message.
- Retrieves a message by id.
- Messages
- Get the parent project for a specific message.
- Returns the project that the given message belongs to.
- Messages
- Get all replies to a given message
- Return all replies for a given message, identified by its id.
- MessageReplies
- Get all milestones
- All milestones are returned on projects that the authenticated user is associated with. You can use the provided filters to return only those milestones that are incomplete, completed, upcoming or late. All milestones are returning in this call. This call uses pagination, returning 100 milestones per page by default.
- Milestones
- Get milestones by due date in a time range
- Count the number of milestones on each deadline date. Only the milestones that the logged-in user can access will be included in the counting.
- Milestones
- Get a list of comments for a milestone
- Get a list of comments for a milestone
- MilestoneComments
- Get a milestone by id.
- This returns all details about an individual milestone.
- Milestones
- Get the parent project for a specific milestone.
- Returns the project that the given milestone belongs to.
- Milestones
- Get a list of notebooks.
- Get a list of notebooks.
- Notebooks
- Get a list of comments for a notebook
- Get a list of comments for a notebook
- NotebookComments
- Compare 2 notebook versions
- Gets the contents diff between the contents of 2 notebook versions
- Notebooks
- Get a specific notebook.
- Get a specific notebook.
- Notebooks
- Get the parent project for a specific notebook.
- Returns the project that the given notebook belongs to.
- Notebooks
- Get notebook versions
- Get a list of a notebooks versions.
- Notebooks
- Get a notebook version
- Get a specific notebook version.
- Notebooks
- Returns a list of people
- Retrieve all people for the provided filters.
- People
- Performance of users completing the most tasks
- Count the number of completed tasks by user for the provided period. By default the user with the most completed tasks is shown first.
- People
- Returns a person
- Retrieve a person record.
- People
- Return the user utilization.
- Verify the user utilization.
- People
- Get price plan by plan ID
- Return price plans and associated features.
- PricePlans
- Get a single price plan by ID
- Return a single price plan and its associated features.
- PricePlans
- Get a specific project category
- Get a specific project category
- Categories
- Returns a list of project categories
- Returns a list of project categories
- Categories
- Get all tasklist budgets in a project budget.
- Get a list of tasklist budgets information.
- Budgets
- Get health scores for projects
- Calculate and return health scores for projects. If no project IDs are provided, returns health scores for all projects the user has access to.
- ProjectHealth
- Returns a list of projects
- Retrieve all projects for the provided filters. Only the projects that the logged-in user can access will be returned. On this endpoint you can filter by project custom fields. The syntax for the query parameter is the following: projectCustomField[id][op]=value Where: - [id] is the custom field ID - [op] is the operator to apply when filtering, different operators are allowed according to the custom field type - [value] is the value to apply when filtering For example, if I want to filter a dropdown custom field with ID 10 to only return entries that have the value "Option1" we would do the following: projectCustomField[10][eq]=Option1 The allowed operators are: - like - not-like - eq - not - lt - gt - any
- Projects
- Get the total count of active projects
- Return the number of active projects that the logged-in user can access.
- Projects
- Get the total billable time per project
- Returns the total billable time of all projects that the logged-in user has access.
- Projects
- Get a health summary for all projects
- Return the number of projects on each health category. It will only count the projects that the logged-in user can access.
- Projects
- Return open invoices across all projects
- Count the number of open invoices on all projects that the logged-in user has access.
- Projects
- Get number of owned and un-assigned projects
- Count the number of projects per project owner user.
- Projects
- Return un-billed expenses across all projects
- Return the un-billed expenses for each project that the logged-in user has access.
- Projects
- Project custom field value.
- Return a specific custom field value from a project.
- CustomFields
- Project custom field values.
- Return all custom field values from a specific project.
- CustomFields
- Get custom items for a specific project
- Return all custom items for a specific project. Only filters that the logged-in user has access will be returned.
- CustomItems
- Returns a project features order to display in tab
- Returns a project features order to display in tab
- Projects
- Returns a project
- On this endpoint you can filter by project custom fields. The syntax for the query parameter is the following: projectCustomField[id][op]=value Where: - [id] is the custom field ID - [op] is the operator to apply when filtering, different operators are allowed according to the custom field type - [value] is the value to apply when filtering For example, if I want to filter a dropdown custom field with ID 10 to only return entries that have the value "Option1" we would do the following: projectCustomField[10][eq]=Option1 The allowed operators are: - like - not-like - eq - not - lt - gt - any
- Projects
- List latest activity for a specific project.
- 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.
- Activity
- Get milestones in a project
- This lets you query the list of milestones for a project. You can use the provided filters to return only those milestones that are incomplete, completed, upcoming or late. This call uses pagination, returning 100 milestones per page by default.
- Milestones
- Returns a list of people on a project
- Retrieve all people on the project.
- People
- Returns a person on a project
- Retrieve a person record.
- People
- Get risks for a specific project
- Return all risks for a specific project. Only filters that the logged-in user has access will be returned.
- Risks
- Generate tasklist report in CSV format
- Generates a task list report in CSV format containing all tasks for the provided filters. Only the tasks that the logged-in user can access will be returned.
- TaskLists
- Generate tasklist report in HTML format
- Generates a task list report in HTML format containing all tasks for the provided filters. Only the tasks that the logged-in user can access will be returned.
- TaskLists
- Get tasklists in a project
- Get tasklists in a project
- TaskLists
- Generate tasklist report in PDF format
- Generates a task list report in PDF format containing all tasks for the provided filters. Only the tasks that the logged-in user can access will be returned.
- TaskLists
- Generate tasklist report in XLSX format
- Generates a task list report in XLSX format containing all tasks for the provided filters. Only the tasks that the logged-in user can access will be returned.
- TaskLists
- Get a specific project's tasks.
- Return multiple tasks according to the provided filter. On this endpoint you can filter by custom fields. The syntax for the query parameter is the following: customField[id][op]=value Where: - [id] is the custom field ID - [op] is the operator to apply when filtering, different operators are allowed according to the custom field type - [value] is the value to apply when filtering For example, if I want to filter a dropdown custom field with ID 10 to only return entries that have the value "Option1" we would do the following: customField[10][eq]=Option1 The allowed operators are: - like - not-like - eq - not - lt - gt - any
- Tasks
- Get time entries for a specific project
- Return logged time entries for a specific project. Only the time entries that the logged-in user can access will be returned.
- TimeTracking
- Get timelog totals for a specific project.
- Get timelog totals for a specific project.
- TimeTracking
- Get all workflows.
- Returns all workflows. When a project ID is supplied the result is scoped to workflows linked to that project.
- Workflows
- Get project summary dashboard
- Retrieves the summary from a specific project, returning counters about tasks, milestones, columns, events, risks, timers, projects healths. On this endpoint you can filter by project custom fields. The syntax for the query parameter is the following: projectCustomField[id][op]=value Where: - [id] is the custom field ID - [op] is the operator to apply when filtering, different operators are allowed according to the custom field type - [value] is the value to apply when filtering For example, if I want to filter a dropdown custom field with ID 10 to only return entries that have the value "Option1" we would do the following: projectCustomField[10][eq]=Option1 The allowed operators are: - like - not-like - eq - not - lt - gt - any
- Summary
- Get all updates from a specific project
- Return the updates from a specific project.
- ProjectUpdates
- Returns a list of starred projects
- Retrieve all starred projects for the provided filters. Only the projects that the logged-in user can access will be returned. On this endpoint you can filter by project custom fields. The syntax for the query parameter is the following: projectCustomField[id][op]=value Where: - [id] is the custom field ID - [op] is the operator to apply when filtering, different operators are allowed according to the custom field type - [value] is the value to apply when filtering For example, if I want to filter a dropdown custom field with ID 10 to only return entries that have the value "Option1" we would do the following: projectCustomField[10][eq]=Option1 The allowed operators are: - like - not-like - eq - not - lt - gt - any
- Projects
- Returns a list of teamwork project categories
- Returns a list of teamwork project categories
- Categories
- Returns a list of teamwork sample projects
- Retrieve all sample projects for the provided filters.
- Projects
- Get required custom fields for a project template
- Returns the list of custom fields that are marked as required for the given project template.
- Projects
- Returns a project template
- Retrieve a single project template by its ID. Only project templates that the logged-in user can access will be returned. On this endpoint you can filter by project custom fields. The syntax for the query parameter is the following: projectCustomField[id][op]=value Where: - [id] is the custom field ID - [op] is the operator to apply when filtering, different operators are allowed according to the custom field type - [value] is the value to apply when filtering For example, if I want to filter a dropdown custom field with ID 10 to only return entries that have the value "Option1" we would do the following: projectCustomField[10][eq]=Option1 The allowed operators are: - like - not-like - eq - not - lt - gt - any
- Projects
- Returns a list of projects templates
- Retrieve all projects templates for the provided filters. Only the projects templates that the logged-in user can access will be returned. On this endpoint you can filter by project custom fields. The syntax for the query parameter is the following: projectCustomField[id][op]=value Where: - [id] is the custom field ID - [op] is the operator to apply when filtering, different operators are allowed according to the custom field type - [value] is the value to apply when filtering For example, if I want to filter a dropdown custom field with ID 10 to only return entries that have the value "Option1" we would do the following: projectCustomField[10][eq]=Option1 The allowed operators are: - like - not-like - eq - not - lt - gt - any
- Projects
- Get all project updates
- Return the updates from all projects that the logged-in user can access.
- ProjectUpdates
- Get export preferences for a quote.
- Get export preferences for a quote.
- QuoteExportPreferences
- Get a quote by ID.
- Get a quote by ID.
- Quotes
- Get a list of quotes across all companies.
- By default, only non-template quotes are returned; pass `?isTemplate=true` to list templates instead.
- Quotes
- Get quote settings for the current installation.
- Get quote settings for the current installation.
- QuoteSettings
- Get custom report builder metadata.
- Returns the metadata required to build a custom report (available sources, columns, filters and custom fields).
- CustomReports
- Get a custom report's data.
- Returns the data rows for the custom report. When `reportFormat` is set, an export (csv, xlsx, pdf, html, googlesheets) is generated instead of the JSON response; google sheets exports return a redirect to the spreadsheet.
- CustomReports
- Get a custom report by ID.
- Returns a single custom report. Supports side-loading of related entities (users, teams, projects, etc).
- CustomReports
- List custom reports.
- Returns the custom reports available for the current user. Supports pagination, filtering, sorting and side-loading of related entities.
- CustomReports
- Get budget chart data.
- This returns data for a budget chart, using the provided filters, group by, split by and data points.
- Containers
- Get estimation totals.
- Returns aggregate counts of overestimated, underestimated, and within-margin tasks along with the overall estimation accuracy score for the given filters.
- Estimation
- Get milestone chart data.
- This returns aggregated milestone data for a chart, using the provided filters, group by, split by and data points.
- Milestones
- Get project chart data.
- This returns data for a project chart, using the provided filters, group by, split by and data points.
- Containers
- Get risk chart data.
- This returns aggregated risk data for a chart, using the provided filters, group by, split by and data points.
- Risks
- Get task chart data.
- This returns data for a task chart, using the provided filters, group by, split by and data points.
- Containers
- Get timelog chart data.
- This returns aggregated timelog data for a chart, using the provided filters, group by, split by and data points.
- Timelogs
- Get budget chart details.
- This returns a list of budgets matching a budget chart filter. Used for quick views and similar UI elements
- Containers
- Get estimation details.
- Returns a paginated list of completed tasks with their estimated vs logged time, accuracy score, and assignees. Supports filtering by status, project, company, task list, and free-text search. Sorting and sideloading of related entities (users, tasks, projects) are also supported.
- Estimation
- Get milestone details.
- Returns a paginated list of milestones with their full entity data. Supports filtering by project, company, date range, and free-text search. Sorting and sideloading of related entities are also supported.
- Milestones
- Get project chart details.
- This returns a list of projects matching a project chart filter. Used for quick views and similar UI elements
- Containers
- Get risk details.
- Returns a paginated list of risks with their full entity data. Supports filtering by project and company, plus free-text search. Sorting and sideloading of related entities are also supported.
- Risks
- Get task chart details.
- This returns a list of tasks matching a task chart filter. Used for quick views and similar UI elements (the drawer behind a chart bucket).
- Containers
- Get timelog details.
- Returns a paginated list of timelogs with their full entity data. Supports filtering by project, user, company, task, task list, date range, and free-text search. Sorting and sideloading of related entities are also supported.
- Timelogs
- Download a scheduled report on the fly.
- Generates the report immediately and returns it as a file download. For Google Sheets reports the response is a redirect to the spreadsheet URL.
- Reports
- Get the HTML email preview for a scheduled report.
- Returns the rendered HTML email that recipients receive for the given scheduled report. Only recipients of the report can preview the email.
- Reports
- Unsubscribe via the report email link.
- Endpoint linked from scheduled report emails. Removes the current user from all future deliveries of the given report and returns an HTML confirmation page.
- Reports
- Get financial report data.
- Returns aggregated financial data grouped by the requested dimensions.
- AnalyticEngine
- Get financial report totals.
- Returns grand totals across all matching rows without pagination. groupBy is limited to at most one dimension (e.g. company or date) — the grain for averages and counts; a second dimension is rejected with a 400. Use /trends/totals for per-period summaries.
- AnalyticEngine
- Get financial report trends.
- Returns metrics over time: the same paged set of entities repeated across each period, gap-filled with zeros. The endpoint forces date grouping; pass one or more entity dimensions in groupBy (e.g. `company` ⇒ company,date). startDate and endDate are required. orderBy accepts `name`, `<metricKey>` (aggregated over the range), or `<periodIndex>-<metricKey>` (0-based, chronological) to rank by one period's column; the candidate set is always the entities active across the full range.
- AnalyticEngine
- Get per-period financial report totals
- The summary rows under /trends. Returns one summary object per period over the whole filtered pool (not page-restricted): `totals` (pooled), plus `averages` and `counts` macro-aggregated over the groupBy dimension. Forces date grouping; pass exactly one non-date dimension in groupBy, which is also used as the implicit averageBy. startDate and endDate are required.
- AnalyticEngine
- List scheduled reports.
- Returns the scheduled reports available to the current user with support for pagination, filtering by source, creator, custom report and schedule status, and side-loading of recipients, creators and editors.
- Reports
- Get the schedule log for a scheduled report.
- Returns the delivery history for a given report schedule, with optional side-loaded recipient logs, users, and the upcoming planned occurrence.
- Reports
- Start the Google OAuth authorization flow.
- Redirects the browser to the Google OAuth consent screen so the user can authorize Teamwork to publish scheduled reports to Google Sheets / Drive.
- Reports
- Unauthenticated Google OAuth callback.
- Public callback URL hosted at `authenticate.teamwork.com`. It validates and decrypts the OAuth `state` and redirects to the customer-domain callback (`/reporting/oauth/google/callback-auth`).
- Reports
- Authenticated Google OAuth callback.
- Customer-domain callback that exchanges the OAuth `code` for tokens and stores them against the current user. Returns an HTML page that posts the outcome back to the opener window and closes itself.
- Reports
- Get the Google OAuth status for the current user.
- Returns whether the current user has a valid stored Google OAuth token that can be used to publish scheduled reports to Google Sheets / Drive.
- Reports
- Get budget report
- Get budget report
- BudgetReport
- Get budget report totals
- Get budget report totals
- BudgetReport
- Get object details
- Get object details
- BudgetReport
- Get all time entries, grouped by company ID
- Return all logged time entries for all projects grouped by company ID. Only the time entries that the logged-in user can access will be returned.
- TimeTracking
- Generate project report in CSV format
- Generates a project report in CSV format containing all projects for the provided filters. Only the projects that the logged-in user can access will be returned. On this endpoint you can filter by project custom fields. The syntax for the query parameter is the following: projectCustomField[id][op]=value Where: - [id] is the custom field ID - [op] is the operator to apply when filtering, different operators are allowed according to the custom field type - [value] is the value to apply when filtering For example, if I want to filter a dropdown custom field with ID 10 to only return entries that have the value "Option1" we would do the following: projectCustomField[10][eq]=Option1 The allowed operators are: - like - not-like - eq - not - lt - gt - any
- Projects
- Generate project report in HTML format
- Generates a project report in HTML format containing all projects for the provided filters. Only the projects that the logged-in user can access will be returned. On this endpoint you can filter by project custom fields. The syntax for the query parameter is the following: projectCustomField[id][op]=value Where: - [id] is the custom field ID - [op] is the operator to apply when filtering, different operators are allowed according to the custom field type - [value] is the value to apply when filtering For example, if I want to filter a dropdown custom field with ID 10 to only return entries that have the value "Option1" we would do the following: projectCustomField[10][eq]=Option1 The allowed operators are: - like - not-like - eq - not - lt - gt - any
- Projects
- Generate project report in PDF format
- Generates a project report in PDF format containing all projects for the provided filters. Only the projects that the logged-in user can access will be returned. On this endpoint you can filter by project custom fields. The syntax for the query parameter is the following: projectCustomField[id][op]=value Where: - [id] is the custom field ID - [op] is the operator to apply when filtering, different operators are allowed according to the custom field type - [value] is the value to apply when filtering For example, if I want to filter a dropdown custom field with ID 10 to only return entries that have the value "Option1" we would do the following: projectCustomField[10][eq]=Option1 The allowed operators are: - like - not-like - eq - not - lt - gt - any
- Projects
- Generate project report in XLSX format
- Generates a project report in XLSX format containing all projects for the provided filters. Only the projects that the logged-in user can access will be returned. On this endpoint you can filter by project custom fields. The syntax for the query parameter is the following: projectCustomField[id][op]=value Where: - [id] is the custom field ID - [op] is the operator to apply when filtering, different operators are allowed according to the custom field type - [value] is the value to apply when filtering For example, if I want to filter a dropdown custom field with ID 10 to only return entries that have the value "Option1" we would do the following: projectCustomField[10][eq]=Option1 The allowed operators are: - like - not-like - eq - not - lt - gt - any
- Projects
- Generate milestone report in CSV format
- Generates a milestone report in CSV format containing all milestones for the provided filters. Only the milestones that the logged-in user can access will be returned.
- Milestones
- Generate milestone report in HTML format
- Generates a milestone report in HTML format containing all milestones for the provided filters. Only the milestones that the logged-in user can access will be returned.
- Milestones
- Generate milestone report in PDF format
- Generates a milestone report in PDF format containing all milestones for the provided filters. Only the milestones that the logged-in user can access will be returned.
- Milestones
- Generate milestone report in XLSX format
- Generates a milestone report in XLSX format containing all milestones for the provided filters. Only the milestones that the logged-in user can access will be returned.
- Milestones
- Generate plannedvsactual report in CSV format
- Generates a plannedvsactual report in CSV format containing all tasks for the provided filters. Only the tasks that the logged-in user can access will be returned.
- Tasks
- Generate plannedvsactual report in HTML format
- Generates a plannedvsactual report in HTML format containing all tasks for the provided filters. Only the tasks that the logged-in user can access will be returned.
- Tasks
- Generate plannedvsactual report in PDF format
- Generates a plannedvsactual report in PDF format containing all tasks for the provided filters. Only the tasks that the logged-in user can access will be returned.
- Tasks
- Generate plannedvsactual report in XLSX format
- Generates a plannedvsactual report in XLSX format containing all tasks for the provided filters. Only the tasks that the logged-in user can access will be returned.
- Tasks
- Generate a precanned task time report.
- Returns tasks for the precanned task time report, applying the requested filters.
- Tasks
- Returns task completions for all users
- Retrieve all people for the provided filters and their task completions.
- People
- Returns task completions for given user
- Retrieve a person record and its task completion stats.
- Person
- Generate utilization report in CSV format
- Generates a utilization report in CSV format containing all people for the provided filters. Only the people that the logged-in user can access will be returned.
- People
- Generate utilization report in HTML format
- Generates a utilization report in HTML format containing all people for the provided filters. Only the people that the logged-in user can access will be returned.
- People
- Generate utilization report in PDF format
- Generates a utilization report in PDF format containing all people for the provided filters. Only the people that the logged-in user can access will be returned.
- People
- Generate utilization report in XLSX format
- Generates a utilization report in XLSX format containing all people for the provided filters. Only the people that the logged-in user can access will be returned.
- People
- Get a scheduled report by ID.
- Returns a single scheduled report with its schedules and options. Supports side-loading of recipients and creators.
- Reports
- List available report sources.
- Returns the report sources (i.e. report types) available on this installation that can be used when creating a scheduled report.
- Reports
- Send a scheduled report immediately.
- Triggers the schedule identified by `scheduleId` to send the report to its recipients immediately, regardless of its scheduled next occurrence.
- Reports
- Download a stored report file from S3.
- Returns a previously generated report file from S3 using an encrypted `file` path query parameter. For Google Sheets reports the response is a redirect to the spreadsheet URL.
- Reports
- Unsubscribe from a scheduled report.
- Frontend-facing endpoint that allows users without creator permissions to remove themselves from all schedules of the given report.
- Reports
- Get all risks
- Return all risks for the provided filters. Only filters that the logged-in user has access will be returned.
- Risks
- Get a risk by id.
- This returns all details about an individual risk.
- Risks
- Search items in the installation.
- The search endpoint will return a list of items that match the given query.
- Search
- Get all skills.
- This returns all skills along installation. You can limit output by provided filters. Default data pagination is 50 items per page. When include users all users that are assigned to that skill will be side loaded
- Skills
- Get a specific skill.
- This returns all details about an individual skill. When include users all users that are assigned to that skill will be side loaded
- Skills
- Get all statuses
- All of the latest status posts are returned for all users in the parent company.
- PeopleStatus
- Get the people statuses timeline.
- Return a timeline list of people statuses that the logged-in user can access.
- PeopleStatus
- Get installation summary dashboard
- Retrieves the summary from the entire installation, returning counters about tasks, milestones, columns, events, risks, timers, projects healths. On this endpoint you can filter by project custom fields. The syntax for the query parameter is the following: projectCustomField[id][op]=value Where: - [id] is the custom field ID - [op] is the operator to apply when filtering, different operators are allowed according to the custom field type - [value] is the value to apply when filtering For example, if I want to filter a dropdown custom field with ID 10 to only return entries that have the value "Option1" we would do the following: projectCustomField[10][eq]=Option1 The allowed operators are: - like - not-like - eq - not - lt - gt - any
- Summary
- Get all tags
- Return all tags that the logged-in user can access.
- Tags
- Get details of an individual tag
- Return a specific tag.
- Tags
- Get a specific taskgroup's tasks.
- Return multiple tasks belonging to the given taskgroup. 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
- Tasks
- Get all tasklists
- Get all tasklists
- TaskLists
- Get specific tasklist
- Get specific tasklist
- TaskLists
- Get the parent project for a specific tasklist.
- Returns the project that the given tasklist belongs to.
- Tasklists
- Get a specific tasklist's tasks.
- Return multiple tasks according to the provided filter. On this endpoint you can filter by custom fields. The syntax for the query parameter is the following: customField[id][op]=value Where: - [id] is the custom field ID - [op] is the operator to apply when filtering, different operators are allowed according to the custom field type - [value] is the value to apply when filtering For example, if I want to filter a dropdown custom field with ID 10 to only return entries that have the value "Option1" we would do the following: customField[10][eq]=Option1 The allowed operators are: - like - not-like - eq - not - lt - gt - any
- Tasks
- Get timelog totals for a specific task.
- Get timelog totals for a specific task.
- TimeTracking
- Get all tasklist templates
- Get all tasklist templates
- TaskLists
- Gets task reminders
- Gets all reminders for a task.
- TaskReminders
- Get all tasks.
- Return multiple tasks according to the provided filter. On this endpoint you can filter by custom fields. The syntax for the query parameter is the following: customField[id][op]=value Where: - [id] is the custom field ID - [op] is the operator to apply when filtering, different operators are allowed according to the custom field type - [value] is the value to apply when filtering For example, if I want to filter a dropdown custom field with ID 10 to only return entries that have the value "Option1" we would do the following: customField[10][eq]=Option1 The allowed operators are: - like - not-like - eq - not - lt - gt - any
- Tasks
- Total count of completed tasks
- Returns the total number of completed tasks. Only the tasks that the logged-in user can access will be counted.
- Tasks
- Get total count of late tasks
- Returns the number of late tasks. Only the tasks that the logged-in user has access to will be counted.
- Tasks
- Get a list of comments for a task
- Get a list of comments for a task
- TaskComments
- Task custom field value.
- Return a specific custom field value from a task.
- CustomFields
- Task custom field values.
- Return all custom field values from a specific task.
- CustomFields
- Get a specific task.
- Returns the information about a specific task. 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
- Tasks
- Get the parent project for a specific task.
- Returns the project that the given task belongs to.
- Tasks
- Get all subtasks for a specific task.
- Return multiple subtasks according to the provided filter. On this endpoint you can filter by custom fields. The syntax for the query parameter is the following: customField[id][op]=value Where: - [id] is the custom field ID - [op] is the operator to apply when filtering, different operators are allowed according to the custom field type - [value] is the value to apply when filtering For example, if I want to filter a dropdown custom field with ID 10 to only return entries that have the value "Option1" we would do the following: customField[10][eq]=Option1 The allowed operators are: - like - not-like - eq - not - lt - gt - any
- Tasks
- Get time entries for a specific task
- Return logged time entries for a specific task. Only the time entries that the logged-in user can access will be returned.
- TimeTracking
- Get timelog totals for a specific task.
- Get timelog totals for a specific task.
- TimeTracking
- Get all calendar events.
- Get all events.
- CalendarEvents
- Get all time entries
- Return all logged time entries for all projects. Only the time entries that the logged-in user can access will be returned.
- TimeTracking
- Get time report
- Get time report
- TimeTracking
- Get time report totals
- Get time report totals
- TimeTracking
- Get time report by type
- Get time report by type
- TimeTracking
- Get a specific time entry
- Get a specific time entry
- TimeTracking
- Get timelog totals.
- Get timelog totals.
- TimeTracking
- Validate if a timelog can be created
- Validates if a timelog can be created for a specific date by checking if there are any approved time approvals for that week.
- TimeTracking
- Get all running timers
- Brings back all current running timers. Will return a set of existing intervals for each timer. If the timer has never been stopped then this interval will only have a from property set and the you will need to calculate the current duration of the timer.
- TimeTracking
- Get a specific timer
- Will get a timer with with a specific ID.
- TimeTracking
- Get list of timesheet rows
- Return a list of timesheet rows for the given user depending on param options.
- Timesheets
- Get the totals for the all the user's timesheets.
- Get the daily totals counts for all the user's timesheets.
- Timesheets
- Get a specific workflow.
- Get a specific workflow.
- Workflows
- Get all workflows.
- Returns all workflows. When a project ID is supplied the result is scoped to workflows linked to that project.
- Workflows
- Get all stages.
- Retrieve all stages for a workflow.
- Workflows
- Get a specific stage.
- Returns a stage for a workflow by id.
- Workflows
- Return the workload for users.
- Return user's workload across projects.
- Workload
- Retrieve user workload planner
- Return the workload planner for each users of the installation.
- Workload
- Update an existing notification.
- Update an existing notification.
- Budgets
- Update an existing calendar.
- Update an existing Calendar.
- Calendars
- Update an existing company custom field value.
- Edit a company custom field value.
- CustomFields
- Update an existing company.
- Modify the properties of an existing company.
- Companies
- Set client rates for a company.
- Set client rates for a company by role.
- Companies
- Update an existing company domain.
- Update an existing company domain.
- Companies
- Update an existing container.
- Updates an existing container with new properties. The container will be validated against permission rules before update.
- Containers
- Update a custom exchange rate
- Partially update an existing custom exchange rate.
- ExchangeRate
- Update an existing custom field.
- Updates an existing custom field.
- CustomFields
- Edit an existing custom item field.
- Edit an existing custom item field.
- CustomItems
- Edit an existing option.
- Edit an existing custom item field option for the specified field.
- CustomItems
- Edit an existing custom item.
- Edit an existing custom item.
- CustomItems
- Edit an existing custom item record.
- Edit an existing custom item record.
- CustomItems
- Edit an existing custom item section.
- Edit an existing custom item section.
- CustomItems
- Update the draft version of an existing form.
- Updates the draft revision of a form without publishing the changes to the public-facing form.
- Forms
- Update an existing form.
- Update an existing form.
- Forms
- Set cost rates for a job role.
- Set cost rates for a job role.
- JobRoles
- Update an existing job role.
- Update an existing job role.
- JobRoles
- Edit a message.
- Update specific fields on a message. If the property `read` is sent with the value `true` all replies from this message will be marked as read.
- Messages
- Edits a notebook
- Edits the fields of an existing notebook.
- Notebooks
- Updates a tasklist budget
- Updates a tasklist budget
- Budgets
- Update an existing project custom field value.
- Edit a project custom field value.
- CustomFields
- Update a quote.
- Update a quote.
- Quotes
- Update a quote line item.
- Update a quote line item.
- Quotes
- Update a quote section.
- Update a quote section.
- Quotes
- Update a custom report.
- Applies a partial update to the custom report identified by `id`. On success the updated custom report is returned in the same shape as `GET /reporting/custom/{id}.json`.
- CustomReports
- Update a scheduled report.
- Applies a partial update to the scheduled report identified by `reportId`, its schedules and its options. Returns the updated report.
- Reports
- Update an existing risk.
- Modify the properties of an existing risk.
- Risks
- Update an existing skill.
- Update an existing skill.
- Skills
- Update a single tag
- Updates a existing tag. If there's already a tag with the same changed name in the installation, it will be returned the status code 409 (CONFLICT).
- Tags
- Update an existing task custom field value.
- Edit a task custom field value.
- CustomFields
- Update an existing task.
- Modify the properties of an existing task.
- Tasks
- Update task reminder
- Updates an existing reminder for a task.
- TaskReminders
- Edits the position of a task in a stage
- Edits the position of a task in a stage
- Workflows
- Update an existing time entry.
- Modify the properties of an existing time entry.
- TimeTracking
- Update an existing workflow.
- Partial update a workflow.
- Workflows
- Update an existing stage.
- Updates a stage by id with the given workflow id.
- Workflows
- Creates new tasklist budgets
- Creates new tasklist budgets
- Budgets
- Create a new calendar event.
- Add a new Event.
- CalendarEvents
- Create a task from a calendar event.
- Creates a new task based on a calendar event, linking all related events (sharing the same iCalUID) to the task and removing the event from unavailable time planning calculations. Request (application/json): payloadcalendarevent.TaskFromEventRequest
- CalendarEvent
- Create a new calendar.
- Add a new Calendar.
- Calendars
- Create a new calendar event.
- Add a new Event.
- CalendarEvents
- Create a comment
- Creates a new comment attached to the object identified by one of the query parameters (taskId, fileVersionId, notebookId, milestoneId, linkId, eventId, statusId, or projectUpdateId).
- Comments
- Delete many company custom fields values at once.
- Remove many entries of company custom field values at once.
- CustomFields
- Update many company custom field values at once.
- Edit many entries of company custom field values at once.
- CustomFields
- Add company custom field value.
- Add a company custom field value.
- CustomFields
- Convert a company's currency
- Request: payloadcompany.ConvertCurrencyRequest
- Companies
- Create a new company domains.
- Creates a new company domain attached to company that id is passed as param.
- Companies
- Create a company.
- Create a company.
- Companies
- Create a new container.
- Creates a new container with the specified type, widgets, and configuration. The container will be validated against permission rules before creation.
- Containers
- Create a new custom exchange rate
- Create a custom exchange rate for a specific currency pair and validity period.
- ExchangeRate
- Delete many custom fields at once
- Remove multiple custom fields at once.
- CustomFields
- Create a new custom field
- Creates a new custom field. The custom field could have a scope at an installation-level or at a project-level.
- CustomFields
- Validate syntax of formula field
- Validates syntax of formula field. Do not check for permissions, naming etc.
- CustomFields
- Create a new option.
- Create a new custom item field option for the specified field.
- CustomItems
- Create a new field.
- Create a new custom item field for the specified custom item.
- CustomItems
- Validate a custom item formula expression.
- Validates a candidate formula against the custom item's existing field schema without persisting anything. Returns the formula's output unit on success, or a list of structured errors describing what is wrong.
- CustomItems
- Delete many custom item records at once.
- Delete several custom item records.
- CustomItems
- Create a new record.
- Create a new custom item record for the specified custom item.
- CustomItems
- Create a new section.
- Create a new custom item section for the specified custom item.
- CustomItems
- Copy a form
- Copy a form
- FormsPublic
- Create a new form.
- Create a new form.
- Forms
- Set billable rates for a job role.
- Set billable rates for a job role.
- JobRoles
- Assign a job role.
- Assign a job role to one or more users. It will automatically unassign the given users from any other job role they might have assigned currently.
- JobRoles
- Create a new job role.
- Creates a new job role global to the entire installation.
- JobRoles
- Creates a personal task.
- Create a new personal task.
- Tasks
- Create a new timer
- Creates a new timer. If there's already a timer running, it will stop this timer at default.
- TimeTracking
- Create a new user.
- Create a new user.
- Users
- Parse an expense receipt with AI.
- Accepts a previously uploaded file (by file name) and returns a draft expense payload extracted from the document via the AI extraction service. Requires the expenses AI feature to be enabled for the installation.
- BETA
- Delete many project custom fields values at once.
- Remove many entries of project custom field values at once.
- CustomFields
- Update many project custom field values at once.
- Edit many entries of project custom field values at once.
- CustomFields
- Add project custom field value.
- Add a project custom field value.
- CustomFields
- Create a new customitem.
- Create a new customitem.
- CustomItems
- Create a new notebook.
- Create a new notebook.
- Notebooks
- Create a risk in a specific project.
- Create a risk in the desired project.
- Risks
- Create a time entry in a specific project.
- Create a time entry in the desired project.
- TimeTracking
- Applies a workflow to a project
- Applies a workflow to a project
- Workflows
- Create a new quote line item.
- Create a new quote line item.
- Quotes
- Deletes quote line items.
- Deletes quote line items.
- Quotes
- Create a new quote section.
- Create a new quote section.
- Quotes
- Clone an existing quote.
- Clone an existing quote.
- Quotes
- Create a new quote.
- Create a new quote.
- Quotes
- Bulk delete scheduled reports.
- Deletes multiple scheduled reports in a single request. The body must specify the `reportIds` to remove.
- Reports
- Bulk delete custom reports.
- Deletes multiple custom reports in a single request. The body must specify the `ids` of the reports to remove.
- CustomReports
- Create a custom report.
- Creates a new custom report from the supplied configuration. On success the newly created custom report is returned in the same shape as `GET /reporting/custom/{id}.json`.
- CustomReports
- Create a scheduled report.
- Creates a new scheduled report along with its schedules and options. The newly created report is returned and the `Location` header points at its canonical URL.
- Reports
- Delete many skills at once.
- Bulk delete a number of skills.
- Skills
- Assign a skill.
- Assign a skill to one or more users.
- Skills
- Assign a skill to a single user.
- Assign a skill to a single user.
- Skills
- Create a new skill.
- Creates a new skill global to the entire installation.
- Skills
- Delete many tags at once
- Removes many tags at once.
- Tags
- Create a single tag
- Creates a new tag. If there's already a tag with the same name in the installation, it will be returned in the response with the status code 200 (OK).
- Tags
- Creates a task in a taskgroup.
- Create a new task within the provided taskgroup.
- Tasks
- Creates a task.
- Create a new task in the provided task list.
- Tasks
- Create a comment on a task.
- Adds a new comment to the given task.
- TaskComments
- Delete many task custom fields values at once.
- Remove many entries of task custom field values at once.
- CustomFields
- Update many task custom field values at once.
- Edit many entries of task custom field values at once.
- CustomFields
- Add task custom field value.
- Add a task custom field value.
- CustomFields
- Add task reminder
- Creates reminders for a task. Accepts a list of userIds and/or teamIds; one reminder row is created per resolved user.
- TaskReminders
- Creates a subtask.
- Create a new subtask under the provided parent task.
- Tasks
- Create a time entry linked to a specific task.
- Create a time entry linked to the desired task.
- TimeTracking
- Reopen a time approval back to in review
- Path Parameters: - approvalId: The ID of the time approval to reopen
- TimeApprovals
- Request to reopen a time approval.
- Path Parameters: - approvalId: The ID of the time approval to request reopening for
- TimeApprovals
- Create a new workflow.
- Creates a new workflow.
- Workflows
- Create a new stage for a workflow.
- Creates a new stage for a workflow with the given id.
- Workflows
- Update an existing custom field.
- Updates an existing custom field.
- CustomFields
- Complete a timer by ID
- 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.
- TimeTracking
- Edits a timer
- Edits the fields of a timer.
- TimeTracking
- Pause a timer by ID
- Pause an existing timer.
- TimeTracking
- Resume a timer by ID
- Resume an existing timer. If other timers are currently running, those timers are paused before resuming.
- TimeTracking
- Restore a deleted timer item.
- Restore an deleted timer.
- TimeTracking
- Lock a notebook
- Locks a specific notebook.
- Notebooks
- Unlock a notebook
- Unlocks a specific notebook.
- Notebooks
- Adds or updates task list budgets depending on the
- 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.
- Budgets
- Bulk applies a user to many projects
- Bulk applies a user to many projects
- People
- Sets the the features order to display in tab
- Each field must have an index, from 0 to numFeatures -1 without repeated numbers to provide the order to display the features
- Projects
- Add people to a project
- Adds a list of user ID's to a project.
- People
- Copies project risks
- Copies the risk register from one project to another.
- Risks
- Update required custom fields on a template
- Replaces the set of custom fields marked as required on the given project template with the supplied list.
- Projects
- Converts the given tentative project into normal
- Converts the given tentative project into normal
- Projects
- Save quote export preferences.
- Save quote export preferences.
- QuoteExportPreferences
- Update a list of quote sections.
- Update a list of quote sections.
- Quotes
- Update quote settings.
- Update quote settings.
- QuoteSettings
- Enqueue a custom report for processing.
- Triggers the custom reports worker to (re)generate the data for the given custom report. Optional `dryRun` and `force` query parameters control dry-run and forced re-processing.
- CustomReports
- Update an existing risk.
- Modify the properties of an existing risk.
- Risks
- Assign a skill.
- Assign or remove a skill to one or more users.
- Skills
- Assign a skill.
- Assign or remove skills to a single user.
- Skills
- Update an existing task.
- Modify the properties of an existing task.
- Tasks
- Update an existing time entry.
- Modify the properties of an existing time entry. Equivalent to the PATCH variant; only fields included in the request body are modified.
- TimeTracking
Teamwork integration, answered
- How do AI agents use Teamwork through Open Connector?
- Your user connects Teamwork once with one of its cataloged authentication methods. Open Connector stores the credential in an encrypted vault and exposes Teamwork tools to your agent over MCP or a typed API, with credentials injected server-side on each call.
- Is this a Teamwork MCP server?
- Yes. Open Connector can serve Teamwork as a named MCP server with a scoped allowlist and a per-user connection URL, so any MCP client can call Teamwork actions with credentials injected server-side.
- Where do Teamwork credentials live?
- In your own infrastructure. Open Connector keeps credentials in its own vault and injects them at call time, so they never leave your environment.
Give your agents Teamwork — keep the keys.
Open source, self-hostable, with Teamwork credentials that never leave your infrastructure. Run it from source today.