---
title: "POST /api/auth/custom-roles"
method: POST
path: "/api/auth/custom-roles"
tags: ["api", "custom-roles"]
---

# POST /api/auth/custom-roles

`POST /api/auth/custom-roles`

## Request

- Base URL: `https://vivenu.com`
- URL: `https://vivenu.com/api/auth/custom-roles`
- Auth: HTTP bearer
- TypeScript: <https://skmtc.dev/vivenu/apis/vivenu-api/docs/api/auth/custom-roles/post.ts> (a function with typed inputs; its response is checked against the schema)

Create a custom role

## Query parameters

- `sellerId` union, required
  - string
  - string

## Request body

- object
  - `name` string, required
  - `description` string
  - `permissions` string[], required

## Response `201`

Created

## Other responses

- `400`: Bad Request
- `401`: Unauthorized

## Changes

- **2026-11-03** `ad99acc7ff8b`: 1 info
  - added the new `enableWeb3Checkout` enum value to the request property `permissions/items/`
- **2026-11-02** `b28cfd478f4d`: 8 info
  - added the new `membershipPrograms:create` enum value to the request property `permissions/items/`
  - added the new `membershipPrograms:list` enum value to the request property `permissions/items/`
  - added the new `membershipPrograms:update` enum value to the request property `permissions/items/`
  - added the new `membershipTransactions:create` enum value to the request property `permissions/items/`
  - …4 more
- **2026-11-02** `1c169c0f75a8`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/vivenu/apis/vivenu-api/changes/api/auth/custom-roles/post.md)

---

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