---
descriptions:
  create_permission:
    slug: >-
      A unique key to reference the permission. Must be lowercase and contain
      only letters, numbers, hyphens, underscores, colons, periods, and
      asterisks.
    name: A descriptive name for the permission.
    description: An optional description for the permission.
    resource_type_slug: >-
      The slug of the [resource type](/fga/resource-types) to scope the
      permission to. Only applicable when using [Fine-Grained
      Authorization](/fga). Defaults to the organization resource type if not
      provided.
reference:
  curl:
    - key: create_permission
      id: create_permission
      url: /reference/roles/permission/create
      title: /authorization/permissions
      type: POST
      parameters:
        - key: slug
          type: string
          description: (create_permission.slug)
        - key: name
          type: string
          description: (create_permission.name)
        - key: description
          type: string
          optional: true
          description: (create_permission.description)
        - key: resource_type_slug
          type: string
          optional: true
          description: (create_permission.resource_type_slug)
      returns:
        - (permission)
  js:
    - key: createPermission
      id: create_permission
      url: /reference/roles/permission/create
      title: authorization.createPermission()
      parameters:
        - key: options
          type: object
          unwrap: true
          properties:
            - key: slug
              type: string
              description: (create_permission.slug)
            - key: name
              type: string
              description: (create_permission.name)
            - key: description
              type: string
              optional: true
              description: (create_permission.description)
            - key: resourceTypeSlug
              type: string
              optional: true
              description: (create_permission.resource_type_slug)
      returns:
        - key: Permission
          description: (permission.self)
  python:
    - key: create_permission
      id: create_permission
      url: /reference/roles/permission/create
      title: authorization.create_permission()
      parameters:
        - key: slug
          type: str
          description: (create_permission.slug)
        - key: name
          type: str
          description: (create_permission.name)
        - key: description
          type: str
          optional: true
          description: (create_permission.description)
        - key: resource_type_slug
          type: str
          optional: true
          description: (create_permission.resource_type_slug)
      returns:
        - key: Permission
          description: (permission.self)
originalPath: .tmp-workos-clone/packages/docs/content/reference/roles/permission/create.mdx
---

## Create a permission

Create a new permission in your WorkOS environment. The permission can then be assigned to environment roles and organization roles.

The `slug` must be unique within the environment and must be lowercase, containing only letters, numbers, hyphens, underscores, colons, periods, and asterisks.

<CodeBlock referenceId="create_permission">
  <CodeBlockTab title="Request" file="create-permission-request" />
  <CodeBlockTab title="Response" file="create-permission-response" />
</CodeBlock>
