---
title: "Invite a teammate"
method: POST
path: "/invitations"
tags: ["Invitation"]
---

# Invite a teammate

`POST /invitations`

## Request

- Base URL: `https://api.palisade.email`
- URL: `https://api.palisade.email/invitations`
- Auth: one of:
  - HTTP bearer
  - HTTP basic

## Headers

- `Palisade-Version` '2025-04-30' | 'unstable', required

## Request body

- object
  - `email` string, email, required: The address to invite.
  - `roles` string[], required
  - `groups` string[]
  - `ttl_sec` number

## Response `201`

Created

- object
  - `data` Invitation, required
    - `id` string, uuid, required
    - `invitee` object, required
      - `email` string, email, required
      - `roles` string[], required
      - `groups` string[]
    - `inviter_name` string, required
    - `created_at` string, required
    - `expires_at` string, required
    - `url` string, uri, required

## Other responses

- `422`: invitation_domain_not_allowed: API-key callers only, the invitee email domain does not match any existing member email domain of the organization; contact support to add a new domain, and note that dashboard sessions are not subject to this check. invitation_invitee_exists: the email address already has a Palisade account, so an invitation would send it to a signup screen it cannot complete; use POST /members to add the existing account instead.
- `502`: upstream_failure: the identity provider returned an error while creating the invitation. The invitation may still have been created without its email being sent; list invitations to check before retrying, since a retry creates a second invitation to the same address.

---

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