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

# Accept Team Invitation

`POST /api/auth/invitations/accept`

## Request

- Base URL: `https://kernelscan.io`
- URL: `https://kernelscan.io/api/auth/invitations/accept`
- Auth: none declared

Seat the logged-in caller into the team a code invites them to.

The counterpart of register()'s team branch for an email that is already an
account (backend#323 slice 2). Same code rows, same email-bound lookup —
the difference is that the account exists, so the seating goes through
:func:`app.services.team_service.add_member` exactly as the admin console's
does: products follow when the move empties the caller's personal team, and
the seat limit is enforced under the team-row lock in the same transaction
as the seat write (other *pending* invites never block an accept).

## Response `200`

Successful Response

- object

---

[API](https://skmtc.dev/kernelscan/apis/kernelscan-api.md) · [All operations](https://skmtc.dev/kernelscan/apis/kernelscan-api/llms.txt) · [OpenAPI document](https://skmtc.dev/kernelscan/apis/kernelscan-api/revisions/4fa51d41484e?raw)
