Teamwork integrationTeamwork logo

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.

What your agents can do

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. 1

    Your user grants Teamwork access once (OAuth) — the token lands in the vault.

  2. 2

    Your agent calls a tool over MCP or the typed API; Open Connector injects the credential server-side.

  3. 3

    Every routed call appends a hash-chained audit record — nothing leaves your infra.

Tools & triggers

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
FAQ

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.