---
title: "Create project invitation"
method: POST
path: "/api/v1/projects/{id}/invitations"
tags: ["Invitations"]
---

# Create project invitation

`POST /api/v1/projects/{id}/invitations`

Send an email invitation for someone to join a specific project with the given role. The recipient gets an email with an accept link.

## Path parameters

- `id` string, uuid, required

## Request body

- CreateInvitationRequest
  - `email` string, email, required — Recipient's email address. Must not already be a member.
  - `role_id` string, uuid, required — Role the invitee will receive on acceptance. Must be `scope: account` for account invites or `scope: project` for project invites.

## Response `201`

Invitation sent

- object
  - `success` boolean
  - `data` Invitation
    - `id` string, uuid, required
    - `type` 'account' | 'project', required — Account-level or project-level invitation
    - `account_id` string, uuid
    - `account_name` string
    - `project_id` string, uuid — Set only when `type` is `project`
    - `project_name` string
    - `email` string, email, required
    - `role_id` string, uuid
    - `role_name` string
    - `invited_by_id` string, uuid
    - `invited_by_email` string, email
    - `invited_by_name` string
    - `expires_at` string, date-time — When the invitation auto-expires. Past this time, the accept link returns an error and the row is removed by a cleanup job.
    - `created_at` string, date-time

## Other responses

- `400` — Invalid request parameters
- `404` — Resource not found

---

[API](https://skmtc.dev/rafftechnologies/apis/raff-api.md) · [All operations](https://skmtc.dev/rafftechnologies/apis/raff-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/rafftechnologies/raff-api/revisions/2f4df56be77c/schema)
