---
title: "Email an invitation to join the account"
method: POST
path: "/team/invitations"
tags: ["Team"]
---

# Email an invitation to join the account

`POST /team/invitations`

## Request

- Base URL: `https://adslighthouse.com/api/v1`
- URL: `https://adslighthouse.com/api/v1/team/invitations`
- Auth: HTTP bearer

Invites a person by email with the role member (default) or admin, and sends the same invitation email as the app; the link expires in 7 days. Same rules as Settings > Team: owners and admins may invite, only the owner may invite an admin, the inviter must have confirmed their email address, the team (members plus open invitations) is limited to the seat limit, the same address can be invited again only after a minute and an account can send 20 invitations a day. Inviting an address with an open invitation replaces it. Requires the write scope and an idempotency key: a retry with the same key returns the first invitation without emailing again. Confirm the address with the user first.

## Headers

- `Idempotency-Key` string, required: A unique value you choose for this request, such as a UUID. Repeating the same key returns the first result instead of starting paid work again.

## Request body

- object
  - `email` string, required: The address to invite.
  - `role` 'member' | 'admin'

## Response `201`

Email an invitation to join the account

- object
  - `created` boolean, required
  - `invitation` object, required
    - `id` string, required
    - `email` string, required
    - `role` 'admin' | 'member', required
    - `status` 'pending' | 'expired' | 'accepted' | 'canceled', required: pending invitations can still be accepted until expires_at.
    - `delivery_status` 'pending' | 'sent' | 'failed', required: Whether the invitation email was handed to the mail service.
    - `invited_by_email` string, nullable, required
    - `created_at` string, required
    - `expires_at` string, required
  - `request_id` string

## Other responses

- `400`: Invalid parameters, cursor or body.
- `401`: Missing, invalid, expired or revoked credential.
- `403`: The credential lacks the write scope, the plan does not include the API, or the allowance is used up.
- `404`: Unknown project, keyword or run in this account.
- `409`: The idempotency key was already used for a different request.
- `429`: Rate limit reached. Retry after the Retry-After seconds.
- `503`: The requested service or file is temporarily unavailable.

---

[API](https://skmtc.dev/adslighthouse/apis/ads-lighthouse-api.md) · [All operations](https://skmtc.dev/adslighthouse/apis/ads-lighthouse-api/llms.txt) · [OpenAPI document](https://skmtc.dev/adslighthouse/apis/ads-lighthouse-api/revisions/e1a4a40b11a9?raw)
