---
title: "Accept an invitation."
method: POST
path: "/v1/org/invitations/accept"
tags: ["org"]
---

# Accept an invitation.

`POST /v1/org/invitations/accept`

## Request

- Base URL: `https://api.smolmachines.com`
- URL: `https://api.smolmachines.com/v1/org/invitations/accept`
- Auth: HTTP bearer
- TypeScript: <https://skmtc.dev/smolmachines/apis/smolfleet-api/docs/v1/org/invitations/accept/post.ts> (a function with typed inputs; its response is checked against the schema)

Joins the organization an invitation names; it must be addressed to the login's verified email. Requires a user login, not an API key.

## Request body

- AcceptInvitationRequest: Body of `POST /v1/org/invitations/accept`: the token out of the link.
  - `id` string, nullable: The invitation's id from `GET /v1/org/invitations/mine`, a handle not a credential.
  - `token` string, nullable: The token from the emailed link, absent when accepting from the pending list.

## Response `200`

Joined, answering the membership as the switcher lists it; name the invitation by the link's token or the pending list's id, and its address must match the login's verified one.

- OrgMembership: One account a person belongs to; the switcher lists these, login lands on the latest.
  - `displayName` string, nullable: The human readable name the console shows.
  - `lastUsedAt` string, nullable: When the caller last acted here, or null if never; the list orders by it, latest first.
  - `name` string, required: The slug, unique across the fleet and final once chosen.
  - `role` string, required: The role the caller holds here: `owner`, `admin` or `member`.
  - `status` string, required: The account's state: `active`, `suspended`, `waitlisted` or `deleted`.
  - `tenantId` string, required: The organization's tenant id used in `Smol-Tenant` to act in this account.

## Other responses

- `400`: Named neither a token nor an id
- `401`: Missing or invalid API key
- `403`: The invitation was sent to a different address than the one signed in with, the account has no verified address, or the caller is an API key
- `404`: No such invitation, or it has been taken up or withdrawn
- `409`: Already on that organization
- `410`: The invitation has expired
- `429`: Rate limited; retry after the Retry-After header
- `500`: Internal error

## Changes

- **2026-10-16** `bc31fc04a568`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/smolmachines/apis/smolfleet-api/changes/v1/org/invitations/accept/post.md)

---

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