---
title: "Update team projects"
method: PUT
path: "/v2/teams/{team_id}/update_projects"
tags: ["teams"]
---

# Update team projects

`PUT /v2/teams/{team_id}/update_projects`

## Request

- Base URL: `https://api.hubstaff.com`
- URL: `https://api.hubstaff.com/v2/teams/{team_id}/update_projects`
- Auth: OAuth 2
  - Authorization code: `https://account.hubstaff.com/authorizations/new`
  - Token URL: `https://account.hubstaff.com/access_tokens` scopes: `hubstaff:read`, `hubstaff:write`
- TypeScript: <https://skmtc.dev/hubstaff/apis/hubstaff-v2-api/docs/v2/teams/:team_id/update_projects/put.ts> (a function with typed inputs; its response is checked against the schema)

Updates team projects.

Returns {success: true} on success.

After adding or removing projects, member roles in those projects are updated based on team membership.

## Path parameters

- `team_id` integer, required

## Request body

- PutV2TeamsTeamIdUpdateProjects: Update team projects
  - `projects` object[], required
    - `project_id` integer, required: List of project to add to the team
    - `remove` boolean: If true then remove the project instead of adding it

## Response `200`

Updated successfully

## Other responses

- `400`: Invalid parameters
- `401`: Unauthorized
- `403`: API access is only for organizations on an active plan
- `404`: Could not find record
- `429`: Rate limit exceeded

---

[API](https://skmtc.dev/hubstaff/apis/hubstaff-v2-api.md) - [All operations](https://skmtc.dev/hubstaff/apis/hubstaff-v2-api/llms.txt) - [OpenAPI document](https://skmtc.dev/hubstaff/apis/hubstaff-v2-api/revisions/c6b90e4e4bdc?raw)
