# client.teams

> client.teams — the teams operations.

`client.teams` — the `teams` operations.

On `AsyncKindgi` every method is the same, awaited.

## `client.teams.list()`

```python signature
list(
    *,
    limit: int | None = None,
    cursor: str | None = None,
    org_id: str | UUID | None = None,
    name_contains: str | None = None,
    timeout: float | None = None,
) -> TeamCollectionPage
```

List teams in the caller's tenant. `GET /v1/teams`

Cursor-paginated. Optional `?orgId=` narrows to a specific org (absent = every team, including teams with no org). `?nameContains=` substring-matches on `Team.name`.

## `client.teams.create()`

```python signature
create(
    body: TeamSpec | Mapping[str, Any] | None = None,
    /,
    *,
    idempotency_key: str | None = None,
    timeout: float | None = None,
    **fields: Any,
) -> CreateResourceResult
```

Create a team. `POST /v1/teams`

## `client.teams.get()`

```python signature
get(team_id: str | UUID, /, *, timeout: float | None = None) -> Team
```

Fetch a team by id. `GET /v1/teams/{teamId}`

## `client.teams.update()`

```python signature
update(
    team_id: str | UUID,
    body: TeamPatch | Mapping[str, Any] | None = None,
    /,
    *,
    idempotency_key: str | None = None,
    timeout: float | None = None,
    **fields: Any,
) -> None
```

Partially update a team. `PATCH /v1/teams/{teamId}`

## `client.teams.delete()`

```python signature
delete(
    team_id: str | UUID,
    /,
    *,
    idempotency_key: str | None = None,
    timeout: float | None = None,
) -> None
```

Delete a team (idempotent, cascades memberships). `DELETE /v1/teams/{teamId}`

With authorization on, the team's tuples go with it: its members' roles and its project grants, so nobody keeps access through a team that's gone (501 `authz-membership-unsupported` from a runtime that can't do that).
