---
title: "Add organization IAM roles"
method: POST
path: "/api/v2/org/{id}/iam"
tags: ["org"]
---

# Add organization IAM roles

`POST /api/v2/org/{id}/iam`

## Request

- Base URL: `https://central.zerotier.com`
- URL: `https://central.zerotier.com/api/v2/org/{id}/iam`
- Auth: HTTP bearer

Grants additional roles to principals on this organization. Existing roles are preserved.

## Path parameters

- `id` string, required

## Request body

- IamTupleRequest[]: List of principal–roles assignments. Semantics depend on the HTTP method: `POST` adds the specified roles, `DELETE` removes them, `PUT` replaces all existing assignments.
  - `principal` string, email, required: Email address of the user or service account to assign roles to
  - `roles` IamRole[], required: One or more roles to assign to the principal

## Response `200`

IAM roles added

- SuccessMessageResponse
  - `message` string, required: Human-readable confirmation message

## Other responses

- `400`: Invalid data provided
- `401`: Missing or invalid authentication token
- `403`: Insufficient permissions
- `413`: Request body exceeds the 1 MB size limit
- `500`: Internal server error

---

[API](https://skmtc.dev/zerotier/apis/zerotier-central-v2-api.md) - [All operations](https://skmtc.dev/zerotier/apis/zerotier-central-v2-api/llms.txt) - [OpenAPI document](https://skmtc.dev/zerotier/apis/zerotier-central-v2-api/revisions/b2e7468ad104?raw)
