---
title: "Accept Invitation"
method: POST
path: "/api/v1/teams/invitations/accept"
tags: ["teams"]
---

# Accept Invitation

`POST /api/v1/teams/invitations/accept`

## Request

- Base URL: `https://api.badgeia.com`
- URL: `https://api.badgeia.com/api/v1/teams/invitations/accept`
- Auth: none declared

## Request body

- TeamInvitationRedeem: Accept credential: the raw token, or an invitation this user claimed. Exactly one, never both. `invitation_id` is a SELECTOR, not a credential — it is authorized solely by `TeamInvitation.claimed_by_user_id == current_user.id`, which only a prior successful raw-token presentation can set. Anyone tempted to widen this into an id-only accept has to remove that binding first, and should not.
  - `token` string, nullable
  - `invitation_id` string, uuid, nullable

## Response `200`

Successful Response

- TeamWithMembers
  - `id` string, uuid, required
  - `name` string, required
  - `description` string, nullable, required
  - `plan` string, required
  - `max_seats` integer, required
  - `created_at` string, date-time, required
  - `audit_retention_days` integer, nullable
  - `members` TeamMemberRead[]
    - `id` string, uuid, required
    - `team_id` string, uuid, required
    - `email` string, required
    - `display_name` string, required
    - `role` string, required
    - `invited_at` string, date-time, required
    - `accepted_at` string, date-time, nullable, required
    - `user_id` string, uuid, nullable
  - `invitations` TeamInvitationRead[]
    - `id` string, uuid, required
    - `team_id` string, uuid, required
    - `email` string, required
    - `display_name` string, required
    - `role` string, required
    - `expires_at` string, date-time, nullable, required
    - `accepted_at` string, date-time, nullable, required
    - `cancelled_at` string, date-time, nullable, required
    - `created_at` string, date-time, required
    - `delivery_status` 'sent' | 'delivered' | 'bounced' | 'suppressed' | 'unavailable', required
  - `current_role` string, required
  - `permissions` string[]
  - `invitations_blocked_by_sso` boolean

## Other responses

- `422`: Validation Error

---

[API](https://skmtc.dev/badgeia/apis/badge.md) · [All operations](https://skmtc.dev/badgeia/apis/badge/llms.txt) · [OpenAPI document](https://skmtc.dev/badgeia/apis/badge/revisions/7e7f7fee8b77?raw)
