---
title: "Update the team"
method: PATCH
path: "/team"
tags: ["Team"]
---

# Update the team

`PATCH /team`

## Request

- Base URL: `https://api.spectate.net/v1`
- URL: `https://api.spectate.net/v1/team`
- Auth: HTTP bearer

Changes only the fields you send.

## Request body

- UpdateTeam: Changes to the team; fields left out keep their value.
  - `name` string: Name, up to 255 characters
  - `email` string, email, nullable: The team's billing email: Spectate gives it to Vatly, which sends the invoices and receipts, at the team's first checkout (a plan or credits). `null` to use the address of the member who starts that checkout
  - `timezone` string: The team's time zone, as an IANA name; escalation path working hours without a time zone of their own use it

## Response `200`

The updated team.

- Team: The team the API token belongs to.
  - `id` string, uuid, required: Team ID
  - `name` string, required: Name
  - `email` string, email, nullable, required: The team's billing email: Spectate gives it to Vatly, which sends the invoices and receipts, at the team's first checkout (a plan or credits). `null` to use the address of the member who starts that checkout
  - `timezone` string, required: The team's time zone; escalation path working hours without a time zone of their own use it
  - `plan` 'none' | 'starter' | 'team' | 'business', required: Billing plans (docs/billing.md). The plan sets the features; the number of monitors + hosts is the subscription's quantity, priced per monitor (`config/billing.php`). `None` is a team without a paid plan: on the trial (which uses the trial plan's limits) or unpaid (paused). | | |---| | `none` <br/> No paid plan and no trial: monitoring is paused until the team subscribes. | | `starter` <br/> Starter: up to 3 members and 1 status page, the team default escalation path only. | | `team` <br/> Team: unlimited members, 5 status pages, on-call, more escalation paths and private status pages. | | `business` <br/> Business: everything in Team, with unlimited status pages and more subscribers and notification credits. |
  - `on_trial` boolean, required: Whether the team is on its trial, without a paid plan yet
  - `trial_ends_at` string, date-time, nullable, required: When the trial ends; `null` without one
  - `monitoring_paused_at` string, date-time, nullable, required: Since when all monitoring is paused; `null` while it runs
  - `monitoring_paused_reason` 'unpaid' | 'deletion_scheduled' | 'staff', required: | | |---| | `unpaid` <br/> No paid plan: the trial or the subscription ended. Resumes when the team subscribes. | | `deletion_scheduled` <br/> The team is scheduled for deletion. | | `staff` <br/> Paused by Spectate staff from Overwatch (abuse, payment issues, on request). |
  - `deletion_scheduled_at` string, date-time, nullable, required: When the team and all its data will be deleted; `null` when it isn't scheduled. An owner can cancel it in the dashboard
  - `deletion_reason` 'requested' | 'unpaid', required: | | |---| | `requested` <br/> An owner deleted the team. | | `unpaid` <br/> Monitoring was paused for too long without a paid plan (`team_lifecycle.unpaid`). |
  - `created_at` string, date-time, required: When the team was created

## Other responses

- `401`: `UNAUTHENTICATED`: no token was sent. `INVALID_TOKEN`: the token is unknown or revoked. `TOKEN_EXPIRED`: the token has expired.
- `403`: `FORBIDDEN`: the token lacks an ability this endpoint requires (listed in `details.required_abilities`). `TEAM_PENDING_DELETION`: the team is scheduled for deletion. `TEAM_SUSPENDED`: Spectate suspended the team.
- `422`: `VALIDATION_FAILED`: the request is invalid; `details.errors` lists the fields.
- `429`: `RATE_LIMITED`: too many requests for this token. Wait for the number of seconds in `Retry-After`.

---

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