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

# Add User Permissions

> Grant one or more permissions to a user without removing existing ones.

Unlike ``POST /users`` (which replaces the whole permission set), this only adds the given
permissions on top of the current ones. Re-granting a permission the user already has is a no-op.



## OpenAPI

````yaml /openapi-v1.json post /api/v1/users/{user_id}/permissions
openapi: 3.1.0
info:
  title: AGO Public API
  version: 1.0.0
  description: Programmatic access to your AGO workspace.
servers:
  - url: https://{tenant_id}.api.useago.com
    description: AGO Public API v1
    variables:
      tenant_id:
        default: your-tenant-id
        description: Your AGO tenant identifier
security: []
paths:
  /api/v1/users/{user_id}/permissions:
    post:
      tags:
        - Users
      summary: Add User Permissions
      description: >-
        Grant one or more permissions to a user without removing existing ones.


        Unlike ``POST /users`` (which replaces the whole permission set), this
        only adds the given

        permissions on top of the current ones. Re-granting a permission the
        user already has is a no-op.
      operationId: core_api_v1_controllers_users_add_user_permissions
      parameters:
        - in: path
          name: user_id
          schema:
            title: User Id
            type: string
          required: true
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UserPermissionsIn'
        required: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UserOut'
      security:
        - ScopedAPIKeyAuth: []
components:
  schemas:
    UserPermissionsIn:
      description: >-
        Permissions to grant to a user. Added on top of existing ones — never
        overwrites.
      properties:
        permission_ids:
          items:
            type: string
          title: Permission Ids
          type: array
      required:
        - permission_ids
      title: UserPermissionsIn
      type: object
    UserOut:
      properties:
        object:
          default: user
          title: Object
          type: string
        id:
          title: Id
          type: string
        email:
          title: Email
          type: string
        first_name:
          default: ''
          title: First Name
          type: string
        last_name:
          default: ''
          title: Last Name
          type: string
        is_customer:
          default: true
          title: Is Customer
          type: boolean
        email_domain:
          anyOf:
            - type: string
            - type: 'null'
          title: Email Domain
        organization:
          anyOf:
            - additionalProperties: true
              type: object
            - type: 'null'
          title: Organization
        created_at:
          anyOf:
            - type: string
            - type: 'null'
          title: Created At
        permissions:
          anyOf:
            - items:
                $ref: '#/components/schemas/PermissionMini'
              type: array
            - type: 'null'
          title: Permissions
      required:
        - id
        - email
      title: UserOut
      type: object
    PermissionMini:
      properties:
        id:
          title: Id
          type: string
        name:
          title: Name
          type: string
        display_name:
          anyOf:
            - type: string
            - type: 'null'
          title: Display Name
      required:
        - id
        - name
      title: PermissionMini
      type: object
  securitySchemes:
    ScopedAPIKeyAuth:
      type: apiKey
      in: header
      name: X-API-Key

````