---
descriptions:
  permission:
    self: 'The [Permission](/reference/roles/permission) object.'
    object: Distinguishes the Permission object.
    id: Unique identifier of the 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: A description for the Permission.
    system: >-
      Whether the permission is a system permission. System permissions are
      created and managed by WorkOS and cannot be deleted.
    resource_type_slug: The slug of the resource type the permission is scoped to.
    created_at: The timestamp when the Permission was created.
    updated_at: The timestamp when the Permission was last updated.
reference:
  curl:
    - url: /reference/roles/permission
      key: permission
      id: permission
      title: Permission
      properties:
        - key: object
          type: '"permission"'
          description: (permission.object)
        - key: id
          type: string
          description: (permission.id)
        - key: slug
          type: string
          description: (permission.slug)
        - key: name
          type: string
          description: (permission.name)
        - key: description
          type: string | null
          description: (permission.description)
        - key: system
          type: boolean
          description: (permission.system)
        - key: resource_type_slug
          type: string
          description: (permission.resource_type_slug)
        - key: created_at
          type: string
          description: (permission.created_at)
        - key: updated_at
          type: string
          description: (permission.updated_at)
  js:
    - url: /reference/roles/permission
      key: Permission
      id: permission
      title: Permission
      properties:
        - key: object
          type: '"permission"'
          description: (permission.object)
        - key: id
          type: string
          description: (permission.id)
        - key: slug
          type: string
          description: (permission.slug)
        - key: name
          type: string
          description: (permission.name)
        - key: description
          type: string | null
          description: (permission.description)
        - key: system
          type: boolean
          description: (permission.system)
        - key: resourceTypeSlug
          type: string
          description: (permission.resource_type_slug)
        - key: createdAt
          type: string
          description: (permission.created_at)
        - key: updatedAt
          type: string
          description: (permission.updated_at)
  python:
    - url: /reference/roles/permission
      key: Permission
      id: permission
      title: Permission
      properties:
        - key: object
          type: str
          description: (permission.object)
        - key: id
          type: str
          description: (permission.id)
        - key: slug
          type: str
          description: (permission.slug)
        - key: name
          type: str
          description: (permission.name)
        - key: description
          type: str | None
          description: (permission.description)
        - key: system
          type: bool
          description: (permission.system)
        - key: resource_type_slug
          type: str
          description: (permission.resource_type_slug)
        - key: created_at
          type: str
          description: (permission.created_at)
        - key: updated_at
          type: str
          description: (permission.updated_at)
originalPath: .tmp-workos-clone/packages/docs/content/reference/roles/permission/index.mdx
---

# Permission

A permission represents an individual access right that can be assigned to roles. Permissions define what actions users with a given role can perform within your application.

Permissions are defined at the environment level and can be assigned to both environment roles and organization roles. Each permission has a unique slug identifier that you use when assigning it to roles.

<CodeBlock title="Permission" file="permission" referenceId="permission" />
