---
title: "Invite people to the active organization by email"
method: POST
path: "/v1/organization-invitations"
tags: ["Organizations"]
---

# Invite people to the active organization by email

`POST /v1/organization-invitations`

## Request

- Base URL: `https://console-api-sandbox.akash.network`
- URL: `https://console-api-sandbox.akash.network/v1/organization-invitations`
- Auth: one of:
  - HTTP bearer
  - API key in header `x-api-key`

## Headers

- `x-organization-id` string
- `x-project-id` string, uuid

## Request body

- object
  - `data` object, required
    - `emails` string[], required
    - `role` 'owner' | 'admin' | 'member' | 'billing' | 'viewer', required
    - `projectAccess` 'all' | 'selected': Required for a member or viewer invited without project grants, refused with `project_access_required` otherwise, and `selected` when grants are given. Ignored for owners, admins and billing members, who are stored as `all`.
    - `projectGrants` object[]
      - `projectId` string, uuid, required
      - `role` 'admin' | 'member' | 'viewer', required

## Response `201`

One pending invitation per address, an address that was already invited keeping its existing one

- object
  - `data` object[], required
    - `id` string, uuid, required
    - `email` string, required
    - `role` 'owner' | 'admin' | 'member' | 'billing' | 'viewer', required
    - `projectAccess` 'all' | 'selected', required: `all` reaches every project of the organization, including ones created later. `selected` reaches only the granted ones.
    - `projectGrants` object[], required
      - `projectId` string, uuid, required
      - `role` 'admin' | 'member' | 'viewer', required
    - `invitedBy` object, nullable, required
      - `id` string, uuid, required
      - `username` string, nullable, required
    - `createdAt` string, date-time, required
    - `expiresAt` string, date-time, required

## Other responses

- `400`: A project grant names a project outside the active organization, or a member or viewer invitation states neither its project access nor a grant (`project_access_required`), combines grants with access to every project, or has specific access without any grant, or an owner, admin or billing invitation names project grants
- `401`: Unauthorized
- `403`: The caller cannot invite members, invites an owner or renews an expired owner invitation without being an owner (`owner_role_restricted`), the active organization is a personal one (`personal_organization`), or it has too many pending invitations (`invitation_limit_reached`)
- `409`: An address belongs to a member of the organization (`already_member`)
- `429`: Too many invitation emails were sent recently (`invitation_email_limit_reached`)

## Changes

- **2026-10-16** `c3a0607d8a57`: 2 info
  - added the new optional request property `data/projectAccess`
  - added the required property `data/items/projectAccess` to the response with the `201` status
- **2026-10-15** `bb97e5bacb6f`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/akash-network/apis/akash-network-console-api/changes/v1/organization-invitations/post.md)

---

[API](https://skmtc.dev/akash-network/apis/akash-network-console-api.md) - [All operations](https://skmtc.dev/akash-network/apis/akash-network-console-api/llms.txt) - [OpenAPI document](https://skmtc.dev/akash-network/apis/akash-network-console-api/revisions/b959efa6d493?raw)
