---
title: "Change the role a pending invitation will grant"
method: PATCH
path: "/internal/api/settings/team/invites/{invite_id}"
tags: ["SETTINGS"]
---

# Change the role a pending invitation will grant

`PATCH /internal/api/settings/team/invites/{invite_id}`

## Request

- Base URL: `https://api.signalshq.io` (the document declares no server; this is the origin it was published from)
- URL: `https://api.signalshq.io/internal/api/settings/team/invites/{invite_id}`
- Auth: OAuth 2
  - Password
  - Token URL: `/auth/login`

## Path parameters

- `invite_id` string, uuid, required

## Request body

- InviteUpdateRequest: Change the role a pending invite will grant on acceptance.
  - `role` 'OWNER' | 'ADMIN' | 'USER' | 'SUPER_ADMIN' | 'REVIEWER' | 'PREPARER' | 'MANAGER', required

## Response `200`

Successful Response

- TeamMemberResponse: One roster row — a real user or a pending invite.
  - `id` string, uuid, required
  - `type` 'user' | 'invite', required: Discriminates the two sources merged into one roster row. The client keys rows on ``f"{type}:{id}"`` and otherwise never needs to know that users and invites are separate tables.
  - `email` string, required
  - `name` string, nullable
  - `role` 'OWNER' | 'ADMIN' | 'USER' | 'SUPER_ADMIN' | 'REVIEWER' | 'PREPARER' | 'MANAGER', required
  - `status` 'ACTIVE' | 'INACTIVE' | 'SUSPENDED' | 'INVITED' | 'EXPIRED', required: Roster status — the union of user status and invite lifecycle.
  - `last_login_at` string, date-time, nullable
  - `created_at` string, date-time, required
  - `invited_by` InvitedByRef
    - `id` string, uuid, required
    - `name` string, nullable
  - `invite_expires_at` string, date-time, nullable
  - `is_self` boolean

## Other responses

- `422`: Validation Error

---

[API](https://skmtc.dev/signalshq/apis/signals-api.md) - [All operations](https://skmtc.dev/signalshq/apis/signals-api/llms.txt) - [OpenAPI document](https://skmtc.dev/signalshq/apis/signals-api/revisions/2c22af3b5576?raw)
