> ## Documentation Index
> Fetch the complete documentation index at: https://devdocs.xbox.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Create Role

> Creates a new group role.

## Error codes

This operation may return the following PlayFab errors:

| Error | Code |
| --- | --- |
| DuplicateRoleId | 1360 |
| RoleNameNotAvailable | 1367 |




## OpenAPI

````yaml /services/playfab/api-references/rest/groups/groups.openapi.json post /Group/CreateRole
openapi: 3.0.0
info:
  version: '260922'
  title: PlayFab Groups API
  description: >-
    The Groups API is designed for any permanent or semi-permanent collections
    of Entities (players, or non-players). If you want to make
    Guilds/Clans/Corporations/etc., then you should use groups. Groups can also
    be used to make chatrooms, parties, or any other persistent collection of
    entities.
  termsOfService: https://playfab.com/terms/
  contact:
    url: https://community.playfab.com/index.html
  license:
    name: Apache 2.0
    url: https://github.com/PlayFab/API_Specs/blob/master/LICENSE
servers:
  - url: https://{titleId}.playfabapi.com
    description: PlayFab title endpoint
    variables:
      titleId:
        default: your_title_id
        description: Your PlayFab title ID (hex).
security: []
tags:
  - name: Groups
    description: Groups Management APIs
paths:
  /Group/CreateRole:
    post:
      tags:
        - Groups
      summary: Create Role
      description: |
        Creates a new group role.

        ## Error codes

        This operation may return the following PlayFab errors:

        | Error | Code |
        | --- | --- |
        | DuplicateRoleId | 1360 |
        | RoleNameNotAvailable | 1367 |
      operationId: CreateRole
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateGroupRoleRequest'
        description: >-
          Creates a new role within an existing group, with no members. Both the
          role ID and role name must be unique within the group, but the name
          can be the same as the ID. The role ID is set at creation and cannot
          be changed. Returns information about the role that was created.
      responses:
        '200':
          $ref: '#/components/responses/CreateGroupRoleResponse'
        '400':
          $ref: '#/components/responses/ApiErrorWrapper'
      security:
        - EntityToken: []
components:
  schemas:
    CreateGroupRoleRequest:
      description: >-
        Creates a new role within an existing group, with no members. Both the
        role ID and role name must be unique within the group, but the name can
        be the same as the ID. The role ID is set at creation and cannot be
        changed. Returns information about the role that was created.
      type: object
      properties:
        CustomTags:
          description: >-
            The optional custom tags associated with the request (e.g. build
            number, external trace identifiers, etc.).
          type: object
        Group:
          allOf:
            - $ref: '#/components/schemas/EntityKey'
          description: The identifier of the group
        RoleId:
          description: >-
            The ID of the role. This must be unique within the group and cannot
            be changed. Role IDs must be between 1 and 64 characters long and
            are restricted to a-Z, A-Z, 0-9, '(', ')', '_', '-' and '.'.
          type: string
        RoleName:
          description: >-
            The name of the role. This must be unique within the group and can
            be changed later. Role names must be between 1 and 100 characters
            long
          type: string
      required:
        - RoleId
        - RoleName
        - Group
      example:
        RoleId: example
        RoleName: Example Role
        Group:
          Id: ABC1234ABC
    EntityKey:
      description: >-
        Combined entity type and ID structure which uniquely identifies a single
        entity.
      type: object
      properties:
        Id:
          description: Unique ID of the entity.
          type: string
        Type:
          description: >-
            Entity type. See
            https://learn.microsoft.com/gaming/playfab/features/data/entities/available-built-in-entity-types
          type: string
      required:
        - Id
    CreateGroupRoleResponse:
      type: object
      properties:
        ProfileVersion:
          description: >-
            The current version of the group profile, can be used for
            concurrency control during updates.
          type: number
          x-actualtype: int32
        RoleId:
          description: ID for the role
          type: string
        RoleName:
          description: The name of the role
          type: string
      required:
        - ProfileVersion
      example:
        RoleName: Example Role
        RoleId: ABC123DEF
        ProfileVersion: 17
    ApiErrorWrapper:
      description: The basic wrapper around every failed API response
      type: object
      properties:
        code:
          description: Numerical HTTP code
          type: integer
        status:
          description: String HTTP code
          type: string
        error:
          description: Playfab error code
          type: string
        errorCode:
          description: Numerical PlayFab error code
          type: integer
        errorMessage:
          description: Description for the PlayFab errorCode
          type: string
        errorDetails:
          description: Detailed description of individual issues with the request object
          type: object
      required:
        - code
        - errorCode
  responses:
    CreateGroupRoleResponse:
      description: ''
      content:
        application/json:
          schema:
            type: object
            properties:
              code:
                type: integer
                description: >-
                  The Http status code. If X-ReportErrorAsSuccess header is set
                  to true, this will report the actual http error code.
              status:
                type: string
                description: The Http status code as a string.
              data:
                $ref: '#/components/schemas/CreateGroupRoleResponse'
            example:
              code: 200
              status: OK
              data:
                RoleName: Example Role
                RoleId: ABC123DEF
                ProfileVersion: 17
    ApiErrorWrapper:
      description: This is the outer wrapper for all responses with errors
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ApiErrorWrapper'
  securitySchemes:
    EntityToken:
      type: apiKey
      in: header
      name: X-EntityToken
      description: >-
        This API requires an Entity Session Token, available from the Entity
        GetEntityToken method.

````

## Related topics

- [Create Role](/services/playfab/api-references/rest/groups/groups/create-role.md)
- [Multiplayer roles](/services/xbox-services/multiplayer/concepts/live-multiplayer-roles.md)
- [PFGroupsCreateRoleAsync](/services/playfab/api-references/c/pfgroups/functions/pfgroupscreateroleasync.md)
- [PFGroupsCreateRoleGetResult](/services/playfab/api-references/c/pfgroups/functions/pfgroupscreaterolegetresult.md)
- [PFGroupsCreateRoleGetResultSize](/services/playfab/api-references/c/pfgroups/functions/pfgroupscreaterolegetresultsize.md)
