---
title: "Accept an invite (single-use token)"
method: POST
path: "/members:accept"
tags: ["Members"]
---

# Accept an invite (single-use token)

`POST /members:accept`

## Request

- Base URL: `https://api.customdomain.ai/v1`
- URL: `https://api.customdomain.ai/v1/members:accept`
- Auth: none required

Accepts the invite and returns the member with a member-scoped API key for the inviter's tenant. The token is the capability, so no API key is needed; when `email` is supplied it must match the invited email. The token is spent on success. A pending invite whose link has lapsed is refused with 410 `invite_expired`.

## Request body

- object
  - `token` string, required
  - `email` string: When supplied, must match the invited email.
  - `user_id` string: The accepting user's id in the calling application, recorded as `invited_by`.

## Response `200`

Accepted

- object
  - `id` string, required
  - `tenant_id` string, required
  - `email` string, required
  - `role` 'owner' | 'admin' | 'member' | 'viewer', required
  - `status` 'active' | 'pending' | 'expired', required: `active` once accepted, `pending` while the invite link works, `expired` once it has lapsed.
  - `invited_by` string: The accepting user's id in the calling application, when one was supplied at accept.
  - `inviter_email` string: Who sent (or last re-sent) the invite, resolved from the sending credential.
  - `inviter_name` string: The sender's display name, when one was supplied.
  - `invite_sent_at` string, date-time: When the current invite link was issued.
  - `invite_expires_at` string, date-time: When the current invite link stops working. Absent for members never invited by link.
  - `invite_token` string: The single-use invite token. Present only in the invite, resend and get-invite responses, never in the roster.
  - `accepted_at` string, date-time
  - `created_at` string, date-time, required
  - `application_id` string, required: The inviter tenant's default application.
  - `api_key` string, required: Member-scoped API key for the inviter's tenant; shown once.

## Other responses

- `400`: Error envelope: {code, title, details}.
- `404`: Error envelope: {code, title, details}.
- `410`: Error envelope: {code, title, details}.

---

[API](https://skmtc.dev/customdomain/apis/customdomain-control-plane-api.md) · [All operations](https://skmtc.dev/customdomain/apis/customdomain-control-plane-api/llms.txt) · [OpenAPI document](https://skmtc.dev/customdomain/apis/customdomain-control-plane-api/revisions/34d89cb7a7cd?raw)
