Method: projects.roles.create

Creates a new custom Role.

HTTP request


The URL uses gRPC Transcoding syntax.

Path parameters



The parent parameter's value depends on the target resource for the request, namely projects or organizations. Each resource type's parent value format is described below:

  • projects.roles.create: projects/{PROJECT_ID}. This method creates project-level custom roles. Example request URL:{PROJECT_ID}/roles

  • organizations.roles.create: organizations/{ORGANIZATION_ID}. This method creates organization-level custom roles. Example request URL:{ORGANIZATION_ID}/roles

Note: Wildcard (*) values are invalid; you must specify a complete project ID or organization ID.

Authorization requires the following IAM permission on the specified resource parent:

  • iam.roles.create

Request body

The request body contains data with the following structure:

JSON representation
  "roleId": string,
  "role": {
    object (Role)


The role ID to use for this role.

A role ID may contain alphanumeric characters, underscores (_), and periods (.). It must contain a minimum of 3 characters and a maximum of 64 characters.


object (Role)

The Role resource to create.

Response body

If successful, the response body contains a newly created instance of Role.

Authorization scopes

Requires one of the following OAuth scopes:


For more information, see the Authentication Overview.