---
title: update-a-team
product: vercel
url: /docs/rest-api/teams/update-a-team
canonical_url: "https://vercel.com/docs/rest-api/teams/update-a-team"
last_updated: 2026-10-05
type: reference
prerequisites:
  []
related:
  - /docs/rest-api
summary: Learn about update-a-team on Vercel.
install_vercel_plugin: npx plugins add vercel/vercel-plugin
---

# Update a Team

```http
PATCH /v2/teams/{teamId}
```

Update the information of a Team specified by the `teamId` parameter. The request body should contain the information that will be updated on the Team.

## Authentication

**bearerToken**: HTTP bearer

## Path parameters

| Name | Type | Required | Description |
|---|---|---|---|
| `teamId` | string | Yes | The Team identifier to perform the request on behalf of. |


## Query parameters

| Name | Type | Required | Description |
|---|---|---|---|
| `slug` | string | No | The Team slug to perform the request on behalf of. |


## Request body

Required: Yes

Content-Type: `application/json`

```json
{
  "type": "object",
  "properties": {
    "avatar": {
      "type": "string",
      "description": "The hash value of an uploaded image, or `null` to clear the avatar.",
      "pattern": "^[0-9a-f]+$",
      "maxLength": 40,
      "nullable": true
    },
    "description": {
      "type": "string",
      "description": "A short text that describes the team.",
      "maxLength": 140
    },
    "emailDomain": {
      "type": "string",
      "format": "regex",
      "nullable": true
    },
    "name": {
      "type": "string",
      "description": "The name of the team.",
      "maxLength": 256
    },
    "previewDeploymentSuffix": {
      "type": "string",
      "description": "Suffix that will be used for all preview deployments.",
      "format": "hostname",
      "nullable": true
    },
    "regenerateInviteCode": {
      "type": "boolean",
      "description": "Create a new invite code and replace the current one."
    },
    "saml": {
      "type": "object",
      "properties": {
        "enforced": {
          "type": "boolean",
          "description": "Require that members of the team use SAML Single Sign-On."
        },
        "roles": {
          "type": "object",
          "description": "Directory groups to role or access group mappings.",
          "additionalProperties": {}
        }
      }
    },
    "slug": {
      "type": "string",
      "description": "A new slug for the team."
    },
    "enablePreviewFeedback": {
      "type": "string",
      "description": "Enable preview toolbar: one of on, off or default."
    },
    "enableProductionFeedback": {
      "type": "string",
      "description": "Enable production toolbar: one of on, off or default."
    },
    "sensitiveEnvironmentVariablePolicy": {
      "type": "string",
      "description": "Sensitive environment variable policy: one of on, off or default."
    },
    "disjunctiveProductionSecretPolicy": {
      "type": "string",
      "description": "Require production secrets to be in their own environment group: one of on, off or default."
    },
    "remoteCaching": {
      "type": "object",
      "description": "Whether or not remote caching is enabled for the team",
      "properties": {
        "enabled": {
          "type": "boolean",
          "description": "Enable or disable remote caching for the team."
        }
      }
    },
    "hideIpAddresses": {
      "type": "boolean",
      "description": "Display or hide IP addresses in Monitoring queries."
    },
    "hideIpAddressesInLogDrains": {
      "type": "boolean",
      "description": "Display or hide IP addresses in Log Drains."
    },
    "dpAccessRequestsMode": {
      "type": "string",
      "description": "Controls who can request access to protected deployments.",
      "enum": [
        "all",
        "none",
        "email-domain"
      ]
    },
    "requireVerifiedCommits": {
      "type": "boolean",
      "description": "When enabled, all projects in the team require commits to be signed and verified by the git provider before deployments will be created."
    },
    "disableRepositoryDispatchEvents": {
      "type": "boolean",
      "description": "Default for projects in the team. When `true`, projects in this team will not emit GitHub repository-dispatch events on deployment events unless the project explicitly overrides this setting."
    },
    "defaultDeploymentProtection": {
      "type": "object",
      "description": "Default deployment protection settings for new projects.",
      "properties": {
        "passwordProtection": {
          "type": "object",
          "description": "Allows to protect project deployments with a password",
          "nullable": true,
          "required": [
            "deploymentType"
          ],
          "properties": {
            "deploymentType": {
              "type": "string",
              "description": "Specify if the password will apply to every Deployment Target or just Preview",
              "enum": [
                "all",
                "preview",
                "prod_deployment_urls_and_all_previews",
                "all_except_custom_domains"
              ]
            },
            "password": {
              "type": "string",
              "description": "The password that will be used to protect Project Deployments",
              "maxLength": 72,
              "nullable": true
            }
          }
        },
        "ssoProtection": {
          "type": "object",
          "description": "Ensures visitors to your Preview Deployments are logged into Vercel and have a minimum of Viewer access on your team",
          "nullable": true,
          "required": [
            "deploymentType"
          ],
          "properties": {
            "deploymentType": {
              "type": "string",
              "description": "Specify if the Vercel Authentication (SSO Protection) will apply to every Deployment Target or just Preview",
              "enum": [
                "all",
                "preview",
                "prod_deployment_urls_and_all_previews",
                "all_except_custom_domains"
              ],
              "default": "preview"
            }
          }
        }
      }
    },
    "defaultPassport": {
      "type": "object",
      "description": "Default Passport configuration for new projects.",
      "nullable": true,
      "required": [
        "connectorId"
      ],
      "properties": {
        "connectorId": {
          "type": "string"
        },
        "deploymentType": {
          "type": "string",
          "enum": [
            "all",
            "preview",
            "prod_deployment_urls_and_all_previews",
            "all_except_custom_domains"
          ],
          "default": "all"
        }
      }
    },
    "defaultExpirationSettings": {
      "type": "object",
      "properties": {
        "expiration": {
          "type": "string",
          "description": "The time period to keep non-production deployments for",
          "enum": [
            "3y",
            "2y",
            "1y",
            "6m",
            "3m",
            "2m",
            "1m",
            "2w",
            "1w",
            "1d",
            "unlimited"
          ]
        },
        "expirationProduction": {
          "type": "string",
          "description": "The time period to keep production deployments for",
          "enum": [
            "3y",
            "2y",
            "1y",
            "6m",
            "3m",
            "2m",
            "1m",
            "2w",
            "1w",
            "1d",
            "unlimited"
          ]
        },
        "expirationCanceled": {
          "type": "string",
          "description": "The time period to keep canceled deployments for",
          "enum": [
            "1y",
            "6m",
            "3m",
            "2m",
            "1m",
            "2w",
            "1w",
            "1d",
            "unlimited"
          ]
        },
        "expirationErrored": {
          "type": "string",
          "description": "The time period to keep errored deployments for",
          "enum": [
            "1y",
            "6m",
            "3m",
            "2m",
            "1m",
            "2w",
            "1w",
            "1d",
            "unlimited"
          ]
        },
        "keepCurrentRetention": {
          "type": "boolean",
          "description": "When true, opts a Pro team out of the upcoming deployment-storage retention reduce. Does not change expiration settings. Unmetered teams also require acknowledgeStorageBilling."
        },
        "acknowledgeStorageBilling": {
          "type": "boolean",
          "description": "Required with keepCurrentRetention for unmetered Pro teams; acknowledges that keeping current retention will incur storage billing on a later date."
        }
      }
    },
    "deploymentPolicy": {
      "anyOf": [
        {
          "type": "object",
          "description": "Composable deployment-time policy. Each rule type holds a list of rules, one per environment scope.",
          "properties": {
            "gitSources": {},
            "deploymentSources": {}
          }
        },
        {
          "type": "string"
        }
      ]
    },
    "strictDeploymentProtectionSettings": {
      "type": "object",
      "description": "When enabled, deployment protection settings require stricter permissions (owner-only).",
      "required": [
        "enabled"
      ],
      "properties": {
        "enabled": {
          "type": "boolean",
          "description": "Enable or disable strict deployment protection settings."
        }
      }
    },
    "strictShareableLinks": {
      "type": "object",
      "description": "When enabled, creating shareable links requires Owner role.",
      "required": [
        "enabled"
      ],
      "properties": {
        "enabled": {
          "type": "boolean",
          "description": "Enable or disable requiring Owner role to create shareable links."
        }
      }
    },
    "strictPasswordProtectionSettings": {
      "type": "object",
      "description": "When enabled, adding, changing, or removing project password protection requires Owner role.",
      "required": [
        "enabled"
      ],
      "properties": {
        "enabled": {
          "type": "boolean",
          "description": "Enable or disable requiring Owner role to change project password protection."
        }
      }
    },
    "strictConnectors": {
      "type": "object",
      "description": "When enabled, creating and managing connectors requires Owner role.",
      "required": [
        "enabled"
      ],
      "properties": {
        "enabled": {
          "type": "boolean",
          "description": "Enable or disable requiring Owner role to manage connectors."
        }
      }
    },
    "nsnbConfig": {
      "anyOf": [
        {
          "type": "object",
          "description": "NSNB configuration for the team.",
          "required": [
            "preference"
          ],
          "properties": {
            "preference": {
              "type": "string",
              "description": "The NSNB preference for the team.",
              "enum": [
                "auto-approval",
                "manual-approval",
                "block"
              ]
            }
          }
        },
        {
          "type": "string"
        }
      ]
    },
    "defaultProjectJobs": {
      "oneOf": [
        {
          "type": "object",
          "description": "Default job configuration applied to new projects created in this team.",
          "properties": {
            "lint": {
              "type": "object",
              "required": [
                "targets"
              ]
            },
            "typecheck": {
              "type": "object",
              "required": [
                "targets"
              ]
            }
          }
        },
        {
          "type": "string"
        }
      ]
    },
    "resourceConfig": {
      "type": "object",
      "description": "Resource configuration for the team.",
      "properties": {
        "buildMachine": {
          "type": "object",
          "description": "Build machine configuration.",
          "properties": {
            "default": {
              "type": "string",
              "description": "Default build machine type for new builds: standard, enhanced, turbo, or elastic.",
              "enum": [
                "basic",
                "enhanced",
                "turbo",
                "standard",
                "elastic"
              ]
            }
          }
        }
      }
    }
  }
}
```

## Example request

### TypeScript

```typescript
const response = await fetch('https://api.vercel.com/v2/teams/teamId?slug=string', {
  method: 'PATCH',
  headers: {
    'Authorization': 'Bearer YOUR_ACCESS_TOKEN',
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    "avatar": "string",
    "description": "Our mission is to make cloud computing accessible to everyone",
    "emailDomain": "example.com",
    "name": "My Team",
    "previewDeploymentSuffix": "example.dev",
    "regenerateInviteCode": "true",
    "saml": {
      "enforced": "true",
      "roles": "value"
    },
    "slug": "my-team",
    "enablePreviewFeedback": "on",
    "enableProductionFeedback": "on",
    "sensitiveEnvironmentVariablePolicy": "on",
    "disjunctiveProductionSecretPolicy": "on",
    "remoteCaching": {
      "enabled": "true"
    },
    "hideIpAddresses": "false",
    "hideIpAddressesInLogDrains": "false",
    "dpAccessRequestsMode": "none",
    "requireVerifiedCommits": "true",
    "disableRepositoryDispatchEvents": "false",
    "defaultDeploymentProtection": {
      "passwordProtection": {
        "deploymentType": "all",
        "password": "string"
      },
      "ssoProtection": {
        "deploymentType": "all"
      }
    },
    "defaultPassport": {
      "connectorId": "example_id",
      "deploymentType": "all"
    },
    "defaultExpirationSettings": {
      "expiration": "1y",
      "expirationProduction": "1y",
      "expirationCanceled": "1y",
      "expirationErrored": "1y",
      "keepCurrentRetention": "true",
      "acknowledgeStorageBilling": "true"
    },
    "deploymentPolicy": {
      "gitSources": [
        {
          "enabled": "true",
          "environments": [
            {}
          ],
          "sources": [
            {}
          ]
        }
      ],
      "deploymentSources": [
        {
          "enabled": "true",
          "environments": [
            {}
          ],
          "sources": []
        }
      ]
    },
    "strictDeploymentProtectionSettings": {
      "enabled": "true"
    },
    "strictShareableLinks": {
      "enabled": "true"
    },
    "strictPasswordProtectionSettings": {
      "enabled": "true"
    },
    "strictConnectors": {
      "enabled": "true"
    },
    "nsnbConfig": {
      "preference": "auto-approval"
    },
    "defaultProjectJobs": {
      "lint": {
        "targets": []
      },
      "typecheck": {
        "targets": []
      }
    },
    "resourceConfig": {
      "buildMachine": {
        "default": "standard"
      }
    }
  }),
});

const data = await response.json();
console.log(data);
```

### Next.js

```typescript
'use server';

export async function callEndpoint() {
  const response = await fetch('https://api.vercel.com/v2/teams/teamId?slug=string', {
    method: 'PATCH',
    headers: {
      'Authorization': `Bearer ${process.env.VERCEL_ACCESS_TOKEN}`,
      'Content-Type': 'application/json',
    },
    body: JSON.stringify({
      "avatar": "string",
      "description": "Our mission is to make cloud computing accessible to everyone",
      "emailDomain": "example.com",
      "name": "My Team",
      "previewDeploymentSuffix": "example.dev",
      "regenerateInviteCode": "true",
      "saml": {
        "enforced": "true",
        "roles": "value"
      },
      "slug": "my-team",
      "enablePreviewFeedback": "on",
      "enableProductionFeedback": "on",
      "sensitiveEnvironmentVariablePolicy": "on",
      "disjunctiveProductionSecretPolicy": "on",
      "remoteCaching": {
        "enabled": "true"
      },
      "hideIpAddresses": "false",
      "hideIpAddressesInLogDrains": "false",
      "dpAccessRequestsMode": "none",
      "requireVerifiedCommits": "true",
      "disableRepositoryDispatchEvents": "false",
      "defaultDeploymentProtection": {
        "passwordProtection": {
          "deploymentType": "all",
          "password": "string"
        },
        "ssoProtection": {
          "deploymentType": "all"
        }
      },
      "defaultPassport": {
        "connectorId": "example_id",
        "deploymentType": "all"
      },
      "defaultExpirationSettings": {
        "expiration": "1y",
        "expirationProduction": "1y",
        "expirationCanceled": "1y",
        "expirationErrored": "1y",
        "keepCurrentRetention": "true",
        "acknowledgeStorageBilling": "true"
      },
      "deploymentPolicy": {
        "gitSources": [
          {
            "enabled": "true",
            "environments": [
              {}
            ],
            "sources": [
              {}
            ]
          }
        ],
        "deploymentSources": [
          {
            "enabled": "true",
            "environments": [
              {}
            ],
            "sources": []
          }
        ]
      },
      "strictDeploymentProtectionSettings": {
        "enabled": "true"
      },
      "strictShareableLinks": {
        "enabled": "true"
      },
      "strictPasswordProtectionSettings": {
        "enabled": "true"
      },
      "strictConnectors": {
        "enabled": "true"
      },
      "nsnbConfig": {
        "preference": "auto-approval"
      },
      "defaultProjectJobs": {
        "lint": {
          "targets": []
        },
        "typecheck": {
          "targets": []
        }
      },
      "resourceConfig": {
        "buildMachine": {
          "default": "standard"
        }
      }
    }),
    next: { revalidate: 3600 }
  });

  if (!response.ok) {
    throw new Error('Request failed');
  }

  return response.json();
}
```

### cURL

```bash
curl -X PATCH 'https://api.vercel.com/v2/teams/teamId?slug=string' \
  -H 'Authorization: Bearer YOUR_ACCESS_TOKEN' \
  -H 'Content-Type: application/json' \
  -d "{
    \"avatar\": \"string\",
    \"description\": \"Our mission is to make cloud computing accessible to everyone\",
    \"emailDomain\": \"example.com\",
    \"name\": \"My Team\",
    \"previewDeploymentSuffix\": \"example.dev\",
    \"regenerateInviteCode\": \"true\",
    \"saml\": {
      \"enforced\": \"true\",
      \"roles\": \"value\"
    },
    \"slug\": \"my-team\",
    \"enablePreviewFeedback\": \"on\",
    \"enableProductionFeedback\": \"on\",
    \"sensitiveEnvironmentVariablePolicy\": \"on\",
    \"disjunctiveProductionSecretPolicy\": \"on\",
    \"remoteCaching\": {
      \"enabled\": \"true\"
    },
    \"hideIpAddresses\": \"false\",
    \"hideIpAddressesInLogDrains\": \"false\",
    \"dpAccessRequestsMode\": \"none\",
    \"requireVerifiedCommits\": \"true\",
    \"disableRepositoryDispatchEvents\": \"false\",
    \"defaultDeploymentProtection\": {
      \"passwordProtection\": {
        \"deploymentType\": \"all\",
        \"password\": \"string\"
      },
      \"ssoProtection\": {
        \"deploymentType\": \"all\"
      }
    },
    \"defaultPassport\": {
      \"connectorId\": \"example_id\",
      \"deploymentType\": \"all\"
    },
    \"defaultExpirationSettings\": {
      \"expiration\": \"1y\",
      \"expirationProduction\": \"1y\",
      \"expirationCanceled\": \"1y\",
      \"expirationErrored\": \"1y\",
      \"keepCurrentRetention\": \"true\",
      \"acknowledgeStorageBilling\": \"true\"
    },
    \"deploymentPolicy\": {
      \"gitSources\": [
        {
          \"enabled\": \"true\",
          \"environments\": [
            {}
          ],
          \"sources\": [
            {}
          ]
        }
      ],
      \"deploymentSources\": [
        {
          \"enabled\": \"true\",
          \"environments\": [
            {}
          ],
          \"sources\": []
        }
      ]
    },
    \"strictDeploymentProtectionSettings\": {
      \"enabled\": \"true\"
    },
    \"strictShareableLinks\": {
      \"enabled\": \"true\"
    },
    \"strictPasswordProtectionSettings\": {
      \"enabled\": \"true\"
    },
    \"strictConnectors\": {
      \"enabled\": \"true\"
    },
    \"nsnbConfig\": {
      \"preference\": \"auto-approval\"
    },
    \"defaultProjectJobs\": {
      \"lint\": {
        \"targets\": []
      },
      \"typecheck\": {
        \"targets\": []
      }
    },
    \"resourceConfig\": {
      \"buildMachine\": {
        \"default\": \"standard\"
      }
    }
  }"
```

## Example response

```json
{
  "apiKeysInvalidatedAt": "123",
  "appTokensInvalidatedAt": "123",
  "avatar": "6eb07268bcfadd309905ffb1579354084c24655c",
  "billing": {
    "plan": "enterprise"
  },
  "connect": {
    "enabled": "false"
  },
  "createdAt": "1630748523395",
  "creatorId": "R6efeCJQ2HKXywuasPDc0fOWB",
  "defaultContinuousUsageKind": "metered",
  "defaultDeploymentProtection": {
    "passwordProtection": {
      "deploymentType": "string"
    },
    "ssoProtection": {
      "deploymentType": "string"
    }
  },
  "defaultExpirationSettings": {
    "deploymentsToKeep": "123",
    "expirationDays": "123",
    "expirationDaysCanceled": "123",
    "expirationDaysErrored": "123",
    "expirationDaysProduction": "123"
  },
  "defaultPassport": {
    "connectorId": "example_id",
    "deploymentType": "all"
  },
  "defaultProjectJobs": {
    "flag-definitions-present": {
      "targets": []
    },
    "lint": {
      "targets": []
    },
    "mfe-config-present": {
      "targets": []
    },
    "typecheck": {
      "targets": []
    }
  },
  "defaultRoles": {
    "teamPermissions": [],
    "teamRoles": []
  },
  "deploymentPolicy": {
    "deploymentSources": [
      {
        "enabled": "false",
        "environments": [
          {}
        ],
        "sources": []
      }
    ],
    "gitSources": [
      {
        "enabled": "false",
        "environments": [
          {}
        ],
        "sources": [
          {}
        ]
      }
    ]
  },
  "deploymentStorageRollout": {
    "cohort": "already_metered",
    "meteredAt": "123",
    "meterReason": "low_scheduled",
    "retentionAppliedAt": "123",
    "retentionOptOutAt": "123"
  },
  "description": "Our mission is to make cloud computing accessible to everyone.",
  "disableHardAutoBlocks": "123",
  "disableRepositoryDispatchEvents": "false",
  "disjunctiveProductionSecretPolicy": "default",
  "dpAccessRequestsMode": "all",
  "emailDomain": "example.com",
  "enablePreviewFeedback": "default",
  "enableProductionFeedback": "default",
  "hideIpAddresses": "false",
  "hideIpAddressesInLogDrains": "false",
  "id": "team_nllPyCtREAqxxdyFKbbMDlxd",
  "integrationTokensInvalidatedAt": "123",
  "inviteCode": "hasihf9e89",
  "ipBuckets": [
    {
      "bucket": "string",
      "default": "false",
      "supportUntil": "123"
    }
  ],
  "membership": {
    "accessRequestedAt": "123",
    "confirmed": "true",
    "created": "123",
    "createdAt": "123",
    "entitlements": [
      {
        "entitlement": "string"
      }
    ],
    "joinedFrom": {
      "commitId": "example_id",
      "dsyncConnectedAt": "123",
      "dsyncUserId": "example_id",
      "gitUserId": "example_id",
      "gitUserLogin": "string",
      "idpUserId": "example_id",
      "origin": "account-update",
      "repoId": "example_id",
      "repoPath": "string",
      "ssoConnectedAt": "123",
      "ssoUserId": "example_id"
    },
    "role": "BILLING",
    "teamId": "example_id",
    "teamPermissions": [],
    "teamRoles": [],
    "uid": "example_id"
  },
  "name": "My Team",
  "nsnbConfig": {
    "preference": "auto-approval"
  },
  "orgRootTeamId": "team_nllPyCtREAqxxdyFKbbMDlxd",
  "parentId": "org_nllPyCtREAqxxdyFKbbMDlxd",
  "personalAccessTokensInvalidatedAt": "123",
  "platform": "true",
  "previewDeploymentSuffix": "example.dev",
  "remoteCaching": {
    "enabled": "false"
  },
  "requireVerifiedCommits": "false",
  "resourceConfig": {
    "blobStores": "123",
    "buildEntitlements": {
      "enhancedBuilds": "false"
    },
    "buildMachine": {
      "default": "basic"
    },
    "concurrentBuilds": "123",
    "customEnvironmentsPerProject": "123",
    "edgeConfigs": "123",
    "edgeConfigSize": "123",
    "elasticConcurrencyEnabled": "false",
    "kvDatabases": "123",
    "postgresDatabases": "123",
    "serverlessFunctionMaxMemorySize": "123"
  },
  "saml": {
    "connection": {
      "connectedAt": "1611796915677",
      "lastReceivedWebhookEvent": "1611796915677",
      "lastSyncedAt": "1611796915677",
      "state": "active",
      "syncState": "ACTIVE",
      "type": "OktaSAML",
      "status": "string"
    },
    "defaultRedirectUri": "v0.app",
    "directory": {
      "connectedAt": "1611796915677",
      "lastReceivedWebhookEvent": "1611796915677",
      "lastSyncedAt": "1611796915677",
      "state": "active",
      "syncState": "ACTIVE",
      "type": "OktaSAML"
    },
    "enforced": "false",
    "roles": "value"
  },
  "sensitiveEnvironmentVariablePolicy": "default",
  "slug": "my-team",
  "stagingPrefix": "string",
  "strictConnectors": {
    "enabled": "false",
    "updatedAt": "123"
  },
  "strictDeploymentProtectionSettings": {
    "enabled": "false",
    "updatedAt": "123"
  },
  "strictPasswordProtectionSettings": {
    "enabled": "false",
    "updatedAt": "123"
  },
  "strictShareableLinks": {
    "enabled": "false",
    "updatedAt": "123"
  },
  "updatedAt": "1611796915677"
}
```

## Responses

### 200: No description

Content-Type: `application/json`

```json
{
  "type": "object",
  "description": "Data representing a Team.",
  "required": [
    "avatar",
    "billing",
    "createdAt",
    "creatorId",
    "description",
    "id",
    "name",
    "slug",
    "stagingPrefix",
    "updatedAt"
  ],
  "properties": {
    "apiKeysInvalidatedAt": {
      "type": "number",
      "description": "Timestamp (ms) after which API keys created at or before this time are considered invalid for this team."
    },
    "appTokensInvalidatedAt": {
      "type": "number",
      "description": "Timestamp (ms) after which Vercel App tokens created at or before this time are considered invalid for this team."
    },
    "avatar": {
      "type": "string",
      "description": "The ID of the file used as avatar for this Team.",
      "nullable": true
    },
    "billing": {
      "type": "object",
      "description": "The team's billing plan.",
      "nullable": true,
      "required": [
        "plan"
      ],
      "properties": {
        "plan": {
          "type": "string",
          "enum": [
            "enterprise",
            "hobby",
            "pro"
          ]
        }
      }
    },
    "connect": {
      "type": "object",
      "properties": {
        "enabled": {
          "type": "boolean",
          "enum": [
            false,
            true
          ]
        }
      }
    },
    "createdAt": {
      "type": "number",
      "description": "UNIX timestamp (in milliseconds) when the Team was created."
    },
    "creatorId": {
      "type": "string",
      "description": "The ID of the user who created the Team."
    },
    "defaultContinuousUsageKind": {
      "type": "string",
      "description": "Default continuous-usage billing kind for projects under this team. Absent means projects stay unmetered.",
      "enum": [
        "metered",
        "unmetered"
      ]
    },
    "defaultDeploymentProtection": {
      "type": "object",
      "description": "Default deployment protection for this team null indicates protection is disabled",
      "properties": {
        "passwordProtection": {
          "type": "object",
          "nullable": true,
          "required": [
            "deploymentType"
          ],
          "properties": {
            "deploymentType": {
              "type": "string"
            }
          }
        },
        "ssoProtection": {
          "type": "object",
          "nullable": true,
          "required": [
            "deploymentType"
          ],
          "properties": {
            "deploymentType": {
              "type": "string"
            }
          }
        }
      }
    },
    "defaultExpirationSettings": {
      "type": "object",
      "description": "Default deployment expiration settings for this team",
      "properties": {
        "deploymentsToKeep": {
          "type": "number",
          "description": "Minimum number of production deployments to keep for this project, even if they are over the production expiration limit."
        },
        "expirationDays": {
          "type": "number",
          "description": "Number of days to keep non-production deployments (mostly preview deployments) before soft deletion."
        },
        "expirationDaysCanceled": {
          "type": "number",
          "description": "Number of days to keep canceled deployments before soft deletion."
        },
        "expirationDaysErrored": {
          "type": "number",
          "description": "Number of days to keep errored deployments before soft deletion."
        },
        "expirationDaysProduction": {
          "type": "number",
          "description": "Number of days to keep production deployments before soft deletion."
        }
      }
    },
    "defaultPassport": {
      "type": "object",
      "description": "Default Passport configuration for new projects in this team.",
      "nullable": true,
      "required": [
        "connectorId",
        "deploymentType"
      ],
      "properties": {
        "connectorId": {
          "type": "string",
          "description": "Default Passport configuration for new projects in this team."
        },
        "deploymentType": {
          "type": "string",
          "description": "Default Passport configuration for new projects in this team.",
          "enum": [
            "all",
            "all_except_custom_domains",
            "preview",
            "prod_deployment_urls_and_all_previews"
          ]
        }
      }
    },
    "defaultProjectJobs": {
      "type": "object",
      "description": "Default job configuration applied to new projects created in this team.",
      "properties": {
        "flag-definitions-present": {
          "type": "object",
          "description": "Default job configuration applied to new projects created in this team.",
          "required": [
            "targets"
          ],
          "properties": {
            "targets": {
              "type": "array",
              "description": "Default job configuration applied to new projects created in this team."
            }
          }
        },
        "lint": {
          "type": "object",
          "description": "Default job configuration applied to new projects created in this team.",
          "required": [
            "targets"
          ],
          "properties": {
            "targets": {
              "type": "array",
              "description": "Default job configuration applied to new projects created in this team."
            }
          }
        },
        "mfe-config-present": {
          "type": "object",
          "description": "Default job configuration applied to new projects created in this team.",
          "required": [
            "targets"
          ],
          "properties": {
            "targets": {
              "type": "array",
              "description": "Default job configuration applied to new projects created in this team."
            }
          }
        },
        "typecheck": {
          "type": "object",
          "description": "Default job configuration applied to new projects created in this team.",
          "required": [
            "targets"
          ],
          "properties": {
            "targets": {
              "type": "array",
              "description": "Default job configuration applied to new projects created in this team."
            }
          }
        }
      }
    },
    "defaultRoles": {
      "type": "object",
      "description": "Default roles for the team.",
      "properties": {
        "teamPermissions": {
          "type": "array",
          "items": {
            "type": "string",
            "enum": [
              "AiGatewayBudgetManager",
              "AiGatewayCredits",
              "AiGatewaySettings",
              "AiGatewayTranscriptsManager",
              "AiGatewayTranscriptsViewer",
              "AiGatewayUser",
              "ConnectorManager",
              "CreateProject",
              "EnvVariableManager",
              "EnvironmentManager",
              "FullProductionDeployment",
              "IntegrationManager",
              "OrgAdmin",
              "OrgViewer",
              "UsageViewer",
              "V0Builder",
              "V0Chatter",
              "V0Viewer",
              "WorkflowDecryptor"
            ]
          }
        },
        "teamRoles": {
          "type": "array",
          "items": {
            "type": "string",
            "enum": [
              "BILLING",
              "CONTRIBUTOR",
              "DEVELOPER",
              "MEMBER",
              "OWNER",
              "SECURITY",
              "VIEWER",
              "VIEWER_FOR_PLUS"
            ]
          }
        }
      }
    },
    "deploymentPolicy": {
      "type": "object",
      "description": "Composable deployment-time policy for the team. Used as the default for every project on the team, with optional per-project overrides on `project.deploymentPolicy`.",
      "properties": {
        "deploymentSources": {
          "type": "array",
          "items": {
            "type": "object",
            "description": "`enabled: true` with empty `sources` is deny-all.",
            "required": [
              "enabled",
              "environments",
              "sources"
            ]
          }
        },
        "gitSources": {
          "type": "array",
          "items": {
            "type": "object",
            "description": "`enabled: true` with empty `sources` is deny-all.",
            "required": [
              "enabled",
              "environments",
              "sources"
            ]
          }
        }
      }
    },
    "deploymentStorageRollout": {
      "type": "object",
      "description": "Pro deployment-storage pricing rollout cohort and milestones. Absent when the team has not been placed in a rollout cohort yet.",
      "required": [
        "cohort"
      ],
      "properties": {
        "cohort": {
          "type": "string",
          "enum": [
            "already_metered",
            "extreme",
            "high",
            "low",
            "medium",
            "medium_plus",
            "metered_opt_in"
          ]
        },
        "meteredAt": {
          "type": "number",
          "description": "When team-wide metering was recorded for this rollout."
        },
        "meterReason": {
          "type": "string",
          "enum": [
            "low_scheduled",
            "medium_scheduled",
            "retention_opt_out"
          ]
        },
        "retentionAppliedAt": {
          "type": "number",
          "description": "When the calendar retention-reduce migration applied 30d retention."
        },
        "retentionOptOutAt": {
          "type": "number",
          "description": "When the customer chose \"keep my retention\" before reduce day."
        }
      }
    },
    "description": {
      "type": "string",
      "description": "A short description of the Team.",
      "nullable": true
    },
    "disableHardAutoBlocks": {
      "oneOf": [
        {
          "type": "number"
        },
        {
          "type": "boolean",
          "enum": [
            false,
            true
          ]
        }
      ]
    },
    "disableRepositoryDispatchEvents": {
      "type": "boolean",
      "description": "Default for projects in the team. When `true`, projects in this team will not emit GitHub repository-dispatch events on deployment events unless the project explicitly overrides this setting via `project.gitProviderOptions.disableRepositoryDispatchEvents`.",
      "enum": [
        false,
        true
      ]
    },
    "disjunctiveProductionSecretPolicy": {
      "type": "string",
      "description": "Require production secrets to use a different value than preview or development.",
      "enum": [
        "default",
        "off",
        "on",
        null
      ],
      "nullable": true
    },
    "dpAccessRequestsMode": {
      "type": "string",
      "description": "Controls who can request access to protected deployments.",
      "enum": [
        "all",
        "email-domain",
        "none"
      ]
    },
    "emailDomain": {
      "type": "string",
      "description": "Hostname that'll be matched with emails on sign-up to automatically join the Team.",
      "nullable": true
    },
    "enablePreviewFeedback": {
      "type": "string",
      "description": "Whether toolbar is enabled on preview deployments",
      "enum": [
        "default",
        "default-force",
        "off",
        "off-force",
        "on",
        "on-force",
        null
      ],
      "nullable": true
    },
    "enableProductionFeedback": {
      "type": "string",
      "description": "Whether toolbar is enabled on production deployments",
      "enum": [
        "default",
        "default-force",
        "off",
        "off-force",
        "on",
        "on-force",
        null
      ],
      "nullable": true
    },
    "hideIpAddresses": {
      "type": "boolean",
      "description": "Indicates if IP addresses should be accessible in observability (o11y) tooling",
      "enum": [
        false,
        true,
        null
      ],
      "nullable": true
    },
    "hideIpAddressesInLogDrains": {
      "type": "boolean",
      "description": "Indicates if IP addresses should be accessible in log drains",
      "enum": [
        false,
        true,
        null
      ],
      "nullable": true
    },
    "id": {
      "type": "string",
      "description": "The Team's unique identifier."
    },
    "integrationTokensInvalidatedAt": {
      "type": "number",
      "description": "Timestamp (ms) after which integration tokens created at or before this time are considered invalid for this team."
    },
    "inviteCode": {
      "type": "string",
      "description": "Code that can be used to join this Team. Only visible to Team owners."
    },
    "ipBuckets": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "bucket"
        ],
        "properties": {
          "bucket": {
            "type": "string"
          },
          "default": {
            "type": "boolean",
            "enum": [
              false,
              true
            ]
          },
          "supportUntil": {
            "type": "number"
          }
        }
      }
    },
    "membership": {
      "type": "object",
      "description": "The membership of the authenticated User in relation to the Team.",
      "required": [
        "confirmed",
        "created",
        "createdAt",
        "role"
      ],
      "properties": {
        "accessRequestedAt": {
          "type": "number"
        },
        "confirmed": {
          "type": "boolean",
          "enum": [
            true
          ]
        },
        "created": {
          "type": "number"
        },
        "createdAt": {
          "type": "number"
        },
        "entitlements": {
          "type": "array",
          "items": {
            "type": "object",
            "required": [
              "entitlement"
            ]
          }
        },
        "joinedFrom": {
          "type": "object",
          "required": [
            "origin"
          ],
          "properties": {
            "commitId": {
              "type": "string"
            },
            "dsyncConnectedAt": {
              "type": "number"
            },
            "dsyncUserId": {
              "type": "string"
            },
            "gitUserId": {},
            "gitUserLogin": {
              "type": "string"
            },
            "idpUserId": {
              "type": "string"
            },
            "origin": {
              "type": "string",
              "enum": [
                "account-update",
                "bitbucket",
                "dsync",
                "feedback",
                "github",
                "gitlab",
                "import",
                "link",
                "mail",
                "nsnb-auto-approve",
                "nsnb-hobby-upgrade",
                "nsnb-invite",
                "nsnb-redeploy",
                "nsnb-redeploy-attribution-card",
                "nsnb-request-access",
                "nsnb-viewer-upgrade",
                "organization-teams",
                "saml",
                "teams"
              ]
            },
            "repoId": {
              "type": "string"
            },
            "repoPath": {
              "type": "string"
            },
            "ssoConnectedAt": {
              "type": "number"
            },
            "ssoUserId": {
              "type": "string"
            }
          }
        },
        "role": {
          "type": "string",
          "enum": [
            "BILLING",
            "CONTRIBUTOR",
            "DEVELOPER",
            "MEMBER",
            "OWNER",
            "SECURITY",
            "VIEWER",
            "VIEWER_FOR_PLUS"
          ]
        },
        "teamId": {
          "type": "string"
        },
        "teamPermissions": {
          "type": "array",
          "items": {
            "type": "string",
            "enum": [
              "AiGatewayBudgetManager",
              "AiGatewayCredits",
              "AiGatewaySettings",
              "AiGatewayTranscriptsManager",
              "AiGatewayTranscriptsViewer",
              "AiGatewayUser",
              "ConnectorManager",
              "CreateProject",
              "EnvVariableManager",
              "EnvironmentManager",
              "FullProductionDeployment",
              "IntegrationManager",
              "OrgAdmin",
              "OrgViewer",
              "UsageViewer",
              "V0Builder",
              "V0Chatter",
              "V0Viewer",
              "WorkflowDecryptor"
            ]
          }
        },
        "teamRoles": {
          "type": "array",
          "items": {
            "type": "string",
            "enum": [
              "BILLING",
              "CONTRIBUTOR",
              "DEVELOPER",
              "MEMBER",
              "OWNER",
              "SECURITY",
              "VIEWER",
              "VIEWER_FOR_PLUS"
            ]
          }
        },
        "uid": {
          "type": "string"
        }
      }
    },
    "name": {
      "type": "string",
      "description": "Name associated with the Team account, or `null` if none has been provided.",
      "nullable": true
    },
    "nsnbConfig": {
      "type": "object",
      "description": "NSNB configuration for the team.",
      "required": [
        "preference"
      ],
      "properties": {
        "preference": {
          "type": "string",
          "enum": [
            "auto-approval",
            "block",
            "manual-approval"
          ]
        }
      }
    },
    "orgRootTeamId": {
      "type": "string",
      "description": "Best-effort ID of the organization’s root billing team. When present, compare `orgRootTeamId === id` to identify the root team. It may be omitted even when `parentId` is set if organization resolution fails or the referenced organization is missing. Always omitted for non-organization teams."
    },
    "parentId": {
      "type": "string",
      "description": "The organizationId for teams that belong to an organization (set on both the organization's root team and its child teams)."
    },
    "personalAccessTokensInvalidatedAt": {
      "type": "number",
      "description": "Timestamp (ms) after which personal access tokens created at or before this time are considered invalid for this team."
    },
    "platform": {
      "type": "boolean",
      "description": "Whether the team is a platform team.",
      "enum": [
        false,
        true
      ]
    },
    "previewDeploymentSuffix": {
      "type": "string",
      "description": "The hostname that is current set as preview deployment suffix.",
      "nullable": true
    },
    "remoteCaching": {
      "type": "object",
      "description": "Is remote caching enabled for this team",
      "properties": {
        "enabled": {
          "type": "boolean",
          "enum": [
            false,
            true
          ]
        }
      }
    },
    "requireVerifiedCommits": {
      "type": "boolean",
      "description": "When enabled, all projects in the team require commits to be signed and verified by the git provider before deployments will be created. Projects may override this via `project.gitProviderOptions.requireVerifiedCommits` (gated by `Project:Update`).",
      "enum": [
        false,
        true
      ]
    },
    "resourceConfig": {
      "type": "object",
      "properties": {
        "blobStores": {
          "type": "number",
          "description": "The maximum number of blob stores an account can create."
        },
        "buildEntitlements": {
          "type": "object",
          "properties": {
            "enhancedBuilds": {
              "type": "boolean",
              "enum": [
                false,
                true
              ]
            }
          }
        },
        "buildMachine": {
          "type": "object",
          "description": "Build machine configuration",
          "properties": {
            "default": {
              "type": "string",
              "description": "Default build machine type for new builds",
              "enum": [
                "basic",
                "elastic",
                "enhanced",
                "standard",
                "turbo"
              ]
            }
          }
        },
        "concurrentBuilds": {
          "type": "number",
          "description": "The total amount of concurrent builds that can be used."
        },
        "customEnvironmentsPerProject": {
          "type": "number",
          "description": "The maximum number of custom environments allowed per project."
        },
        "edgeConfigs": {
          "type": "number",
          "description": "The maximum number of edge configs an account can create."
        },
        "edgeConfigSize": {
          "type": "number",
          "description": "The maximum size in kilobytes of a Global Config. Only specified if a custom limit is set."
        },
        "elasticConcurrencyEnabled": {
          "type": "boolean",
          "description": "Whether every build for this team / user has elastic concurrency enabled automatically.",
          "enum": [
            false,
            true
          ]
        },
        "kvDatabases": {
          "type": "number",
          "description": "The maximum number of kv databases an account can create."
        },
        "postgresDatabases": {
          "type": "number",
          "description": "The maximum number of postgres databases an account can create."
        },
        "serverlessFunctionMaxMemorySize": {
          "type": "number",
          "description": "The maximum memory size (in MB) for a serverless function. Only specified if a custom limit is set."
        }
      }
    },
    "saml": {
      "type": "object",
      "description": "When \"Single Sign-On (SAML)\" is configured, this object contains information regarding the configuration of the Identity Provider (IdP).",
      "required": [
        "enforced"
      ],
      "properties": {
        "connection": {
          "type": "object",
          "description": "Information for the SAML Single Sign-On configuration.",
          "required": [
            "connectedAt",
            "state",
            "status",
            "type"
          ],
          "properties": {
            "connectedAt": {
              "type": "number",
              "description": "Timestamp (in milliseconds) of when the configuration was connected."
            },
            "lastReceivedWebhookEvent": {
              "type": "number",
              "description": "Timestamp (in milliseconds) of when the last webhook event was received from WorkOS."
            },
            "lastSyncedAt": {
              "type": "number",
              "description": "Timestamp (in milliseconds) of when the last directory sync was performed."
            },
            "state": {
              "type": "string",
              "description": "Current state of the connection."
            },
            "syncState": {
              "type": "string",
              "description": "Controls whether directory sync events are processed. - 'SETUP': Directory connected but role mappings not yet configured. Events are acknowledged but not processed. - 'ACTIVE': Fully configured. Events are processed normally. - undefined: Legacy directory (pre-feature), treat as 'ACTIVE' for backwards compatibility.",
              "enum": [
                "ACTIVE",
                "SETUP"
              ]
            },
            "type": {
              "type": "string",
              "description": "The Identity Provider \"type\", for example Okta."
            },
            "status": {
              "type": "string"
            }
          }
        },
        "defaultRedirectUri": {
          "type": "string",
          "description": "The default redirect URI to use after successful SAML authentication.",
          "enum": [
            "v0.app",
            "v0.dev",
            "vercel.com"
          ]
        },
        "directory": {
          "type": "object",
          "description": "Information for the Directory Sync configuration.",
          "required": [
            "connectedAt",
            "state",
            "type"
          ],
          "properties": {
            "connectedAt": {
              "type": "number",
              "description": "Timestamp (in milliseconds) of when the configuration was connected."
            },
            "lastReceivedWebhookEvent": {
              "type": "number",
              "description": "Timestamp (in milliseconds) of when the last webhook event was received from WorkOS."
            },
            "lastSyncedAt": {
              "type": "number",
              "description": "Timestamp (in milliseconds) of when the last directory sync was performed."
            },
            "state": {
              "type": "string",
              "description": "Current state of the connection."
            },
            "syncState": {
              "type": "string",
              "description": "Controls whether directory sync events are processed. - 'SETUP': Directory connected but role mappings not yet configured. Events are acknowledged but not processed. - 'ACTIVE': Fully configured. Events are processed normally. - undefined: Legacy directory (pre-feature), treat as 'ACTIVE' for backwards compatibility.",
              "enum": [
                "ACTIVE",
                "SETUP"
              ]
            },
            "type": {
              "type": "string",
              "description": "The Identity Provider \"type\", for example Okta."
            }
          }
        },
        "enforced": {
          "type": "boolean",
          "description": "When `true`, interactions with the Team **must** be done with an authentication token that has been authenticated with the Team's SAML Single Sign-On provider.",
          "enum": [
            false,
            true
          ]
        },
        "roles": {
          "type": "object",
          "description": "When \"Directory Sync\" is configured, this object contains a mapping of which Directory Group (by ID) should be assigned to which Vercel Team roles and permissions, or an access group. Bare team roles are deprecated in favor of DirectorySyncRolesMapping.",
          "additionalProperties": {}
        }
      }
    },
    "sensitiveEnvironmentVariablePolicy": {
      "type": "string",
      "description": "Sensitive environment variable policy for this team",
      "enum": [
        "default",
        "off",
        "on",
        null
      ],
      "nullable": true
    },
    "slug": {
      "type": "string",
      "description": "The Team's slug, which is unique across the Vercel platform."
    },
    "stagingPrefix": {
      "type": "string",
      "description": "The prefix that is prepended to automatic aliases."
    },
    "strictConnectors": {
      "type": "object",
      "description": "When enabled, creating and managing connectors requires Owner role or the ConnectorManager permission.",
      "required": [
        "enabled",
        "updatedAt"
      ],
      "properties": {
        "enabled": {
          "type": "boolean",
          "enum": [
            false,
            true
          ]
        },
        "updatedAt": {
          "type": "number"
        }
      }
    },
    "strictDeploymentProtectionSettings": {
      "type": "object",
      "description": "When enabled, deployment protection settings require stricter permissions (owner-only).",
      "required": [
        "enabled",
        "updatedAt"
      ],
      "properties": {
        "enabled": {
          "type": "boolean",
          "enum": [
            false,
            true
          ]
        },
        "updatedAt": {
          "type": "number"
        }
      }
    },
    "strictPasswordProtectionSettings": {
      "type": "object",
      "description": "When enabled, adding, changing, or removing project password protection requires Owner role.",
      "required": [
        "enabled",
        "updatedAt"
      ],
      "properties": {
        "enabled": {
          "type": "boolean",
          "enum": [
            false,
            true
          ]
        },
        "updatedAt": {
          "type": "number"
        }
      }
    },
    "strictShareableLinks": {
      "type": "object",
      "description": "When enabled, creating shareable links requires Owner role.",
      "required": [
        "enabled",
        "updatedAt"
      ],
      "properties": {
        "enabled": {
          "type": "boolean",
          "enum": [
            false,
            true
          ]
        },
        "updatedAt": {
          "type": "number"
        }
      }
    },
    "updatedAt": {
      "type": "number",
      "description": "Timestamp (in milliseconds) of when the Team was last updated."
    }
  },
  "additionalProperties": true
}
```

### 400: One of the provided values in the request body is invalid.

### 401: The request is not authorized.

### 402: No description

### 403: You do not have permission to access this resource.
Not authorized to update the team. Must be an OWNER.

### 404: No description

### 409: No description

### 410: No description

### 428: No description

---

## Related

- [teams endpoints](/docs/rest-api#teams)

- [REST API overview](/docs/rest-api)

- [OpenAPI spec](https://vercel.com/openapi.json) (machine-readable, all endpoints)

---

[View full sitemap](/docs/sitemap)
