---
updatedAt: 2026-04-05T12:09:02.000Z
agentTools:
  siteIndex: https://docs.jfrog.com/llms.txt
  projectIndex: https://docs.jfrog.com/administration/llms.txt
---

# Create a Custom Global Role

Create a new custom global role.


**Security:** Requires admin privileges.


# OpenAPI definition

```json
{
  "openapi": "3.1.0",
  "info": {
    "title": "JFrog Platform - Global Roles API",
    "description": "Custom global role management APIs for the JFrog Platform.\n\n**Authentication:** Access Tokens as bearer token in authorization header (Authorization: Bearer `<token>`)\n\n**Security:** Unless otherwise specified, all APIs require admin privileges.\n",
    "version": "1.0.0",
    "contact": {
      "name": "JFrog Support"
    }
  },
  "servers": [
    {
      "url": "https://{jfrog_url}"
    }
  ],
  "tags": [
    {
      "name": "Global Roles",
      "description": "APIs for creating, editing, deleting, and listing global roles in the JFrog Platform."
    }
  ],
  "security": [
    {
      "BearerAuth": []
    }
  ],
  "paths": {
    "/access/api/v1/roles": {
      "post": {
        "tags": [
          "Global Roles"
        ],
        "summary": "Create a Custom Global Role",
        "description": "Create a new custom global role.\n\n\n**Security:** Requires admin privileges.\n",
        "operationId": "createGlobalRole",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/GlobalRoleCreate"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Role created. The response body is JSON with `code` (e.g. OK), `message`, and optionally `detail`."
          },
          "400": {
            "description": "Bad Request - Invalid input"
          },
          "401": {
            "description": "Bad Credentials - Invalid credentials"
          },
          "403": {
            "description": "Permission Denied - Insufficient permissions"
          },
          "409": {
            "description": "Conflict - Role already exists"
          }
        }
      }
    }
  },
  "components": {
    "securitySchemes": {
      "BearerAuth": {
        "type": "http",
        "scheme": "bearer",
        "description": "Access Token as bearer token"
      }
    },
    "schemas": {
      "GlobalRoleCreate": {
        "type": "object",
        "required": [
          "name",
          "type"
        ],
        "properties": {
          "name": {
            "type": "string"
          },
          "description": {
            "type": "string"
          },
          "type": {
            "type": "string",
            "enum": [
              "CUSTOM_GLOBAL"
            ],
            "description": "Must be CUSTOM_GLOBAL. This endpoint creates custom global roles only."
          },
          "environments": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "actions": {
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        }
      }
    }
  },
  "x-readme": {
    "explorer-enabled": false
  }
}
```