Tenable Access Control (Groups) API

The Access Control (Groups) API from Tenable — 4 operation(s) for access control (groups).

OpenAPI Specification

tenable-access-control-groups-api-openapi.yml Raw ↑
openapi: 3.0.0
info:
  version: 1.0.0
  title: Downloads About Access Control (Groups) API
  description: 'The Downloads API enables customers to access and download installation and update files for available Tenable products. You can use the API endpoints to list product pages, list downloads available for a specific product, and to download a file. The endpoints can also be used to determine and download the latest version of a file to facilitate the automation of an installation.


    **Note:** The Tenable Downloads API uses a different server URL than the Tenable Vulnerability Management API:


    `https://www.tenable.com/downloads/api/v2/pages`.


    ### Authentication


    Like the Downloads website, certain files require authentication to download. When files have a `"requires_auth": true` attribute on the product list page, the Downloads API uses bearer token authentication and requires a valid token in the Authorization header to download the file:

    ```

    Authorization: Bearer AbCdEf123456

    ```


    To access or reset your authentication token, navigate to the [Authentication Token](https://www.tenable.com/downloads/api-docs) page.


    Examples of product downloads that **do not** require authentication include Nessus and Nessus Agents.'
servers:
- url: https://www.tenable.com/downloads/api/v2
security:
- Bearer: []
tags:
- name: Access Control (Groups)
  x-displayName: Access Control (Groups)
paths:
  /groups:
    post:
      summary: Create group
      description: Creates a user group.<div class="perms-callout">Requires the Administrator [64] user role. See [Roles](doc:roles).</div>
      operationId: groups-create
      tags:
      - Access Control (Groups)
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Access_Control_Groups_Request-Group'
            examples:
              request:
                value:
                  name: Engineering Team
                  managed_by_saml: true
      responses:
        '200':
          description: Returned if the group was created successfully.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Access_Control_Groups_Response-Group'
              examples:
                response:
                  value:
                    uuid: d4e5f6a7-b8c9-0123-def4-567890abcdef
                    managed_by_saml: true
                    name: Engineering Team
                    id: 1130088
                    container_uuid: c1d2e3f4-a5b6-7890-cdef-123456789abc
        '400':
          description: Returned if your request specified invalid parameters or if your request was improperly formatted.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Access_Control_Groups_ErrorResponse-Error'
        '401':
          description: Returned if the API keys specified in your request are invalid.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Access_Control_Groups_ErrorResponse'
              examples:
                response:
                  value:
                    statusCode: 401
                    error: Unauthorized
                    message: Invalid credentials.
        '403':
          description: Returned if you do not have permission to create groups. For more information, see [Roles](doc:roles) and [Permissions](doc:permissions).
        '409':
          description: Returned if a group with the specified name already exists.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Access_Control_Groups_ErrorResponse-Error'
              examples:
                response:
                  value:
                    error: Duplicate Group name
        '429':
          description: Returned if you attempt to send too many requests in a specific period of time. For more information, see [Rate Limiting](doc:rate-limiting).
          content:
            text/html:
              examples:
                response:
                  value: "<html>\n\n<head>\n    <title>429 Too Many Requests</title>\n</head>\n\n<body bgcolor=\"white\">\n    <center>\n        <h1>429 Too Many Requests</h1>\n    </center>\n    <hr>\n    <center>nginx</center>\n</body>\n\n</html>"
        '500':
          description: Returned if an internal error occurred.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Access_Control_Groups_ErrorResponse'
              examples:
                response:
                  value:
                    statusCode: 500
                    error: Internal Server Error
                    message: An internal server error occurred. Please wait a moment and try your request again.
      security:
      - Access_Control_Groups_cloud: []
    get:
      summary: List groups
      description: Lists all user groups for your container.<div class="perms-callout">Requires the Basic [16] user role. See [Roles](doc:roles).</div>
      operationId: groups-list
      tags:
      - Access Control (Groups)
      responses:
        '200':
          description: Returned if the list of groups was retrieved successfully.
          content:
            application/json:
              schema:
                type: object
                properties:
                  groups:
                    type: array
                    description: An array of group objects.
                    items:
                      $ref: '#/components/schemas/Access_Control_Groups_Response-Group'
              examples:
                response:
                  value:
                    groups:
                    - uuid: a1b2c3d4-e5f6-7890-abcd-ef1234567890
                      name: Security Team
                      user_count: 5
                      id: 1121822
                      container_uuid: c1d2e3f4-a5b6-7890-cdef-123456789abc
                    - uuid: b2c3d4e5-f6a7-8901-bcde-f12345678901
                      managed_by_saml: true
                      name: SAML Admins
                      user_count: 3
                      id: 1130086
                      container_uuid: c1d2e3f4-a5b6-7890-cdef-123456789abc
                    - uuid: 00000000-0000-0000-0000-000000000000
                      immutable: true
                      membership_fixed: true
                      name: All Users
                      user_count: 19
                      id: 0
                      container_uuid: c1d2e3f4-a5b6-7890-cdef-123456789abc
        '401':
          description: Returned if the API keys specified in your request are invalid.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Access_Control_Groups_ErrorResponse'
              examples:
                response:
                  value:
                    statusCode: 401
                    error: Unauthorized
                    message: Invalid credentials.
        '403':
          description: Returned if you do not have permission to list groups. For more information, see [Roles](doc:roles) and [Permissions](doc:permissions).
        '429':
          description: Returned if you attempt to send too many requests in a specific period of time. For more information, see [Rate Limiting](doc:rate-limiting).
          content:
            text/html:
              examples:
                response:
                  value: "<html>\n\n<head>\n    <title>429 Too Many Requests</title>\n</head>\n\n<body bgcolor=\"white\">\n    <center>\n        <h1>429 Too Many Requests</h1>\n    </center>\n    <hr>\n    <center>nginx</center>\n</body>\n\n</html>"
        '500':
          description: Returned if an internal error occurred.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Access_Control_Groups_ErrorResponse'
              examples:
                response:
                  value:
                    statusCode: 500
                    error: Internal Server Error
                    message: An internal server error occurred. Please wait a moment and try your request again.
      security:
      - Access_Control_Groups_cloud: []
  /groups/{group_uuid}:
    put:
      summary: Update group
      description: Updates the specified user group.<div class="perms-callout">Requires the Administrator [64] user role. See [Roles](doc:roles).</div>
      operationId: groups-edit
      tags:
      - Access Control (Groups)
      parameters:
      - description: Specifies the unique identifier (UUID) or integer ID of the group.
        required: true
        name: group_uuid
        in: path
        schema:
          type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Access_Control_Groups_Request-Group'
            examples:
              request:
                value:
                  name: Engineering
                  managed_by_saml: false
      responses:
        '200':
          description: Returned if the specified group was updated successfully.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Access_Control_Groups_Response-Group'
              examples:
                response:
                  value:
                    uuid: d4e5f6a7-b8c9-0123-def4-567890abcdef
                    managed_by_saml: false
                    name: Engineering
                    user_count: 5
                    id: 1130088
                    container_uuid: c1d2e3f4-a5b6-7890-cdef-123456789abc
        '400':
          description: Returned if your request specified invalid parameters or if your request was improperly formatted.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Access_Control_Groups_ErrorResponse-Error'
        '401':
          description: Returned if the API keys specified in your request are invalid.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Access_Control_Groups_ErrorResponse'
              examples:
                response:
                  value:
                    statusCode: 401
                    error: Unauthorized
                    message: Invalid credentials.
        '403':
          description: Returned if you do not have permission to update groups. For more information, see [Roles](doc:roles) and [Permissions](doc:permissions).
        '404':
          description: Returned if the specified group was not found.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Access_Control_Groups_ErrorResponse'
              examples:
                response:
                  value:
                    statusCode: 404
                    error: Not Found
                    message: Not Found
        '409':
          description: Returned if a group with the specified name already exists.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Access_Control_Groups_ErrorResponse-Error'
              examples:
                response:
                  value:
                    error: Duplicate Group name
        '429':
          description: Returned if you attempt to send too many requests in a specific period of time. For more information, see [Rate Limiting](doc:rate-limiting).
          content:
            text/html:
              examples:
                response:
                  value: "<html>\n\n<head>\n    <title>429 Too Many Requests</title>\n</head>\n\n<body bgcolor=\"white\">\n    <center>\n        <h1>429 Too Many Requests</h1>\n    </center>\n    <hr>\n    <center>nginx</center>\n</body>\n\n</html>"
        '500':
          description: Returned if an internal error occurred.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Access_Control_Groups_ErrorResponse'
              examples:
                response:
                  value:
                    statusCode: 500
                    error: Internal Server Error
                    message: An internal server error occurred. Please wait a moment and try your request again.
      security:
      - Access_Control_Groups_cloud: []
    delete:
      summary: Delete group
      description: Deletes the specified user group. The group must have no users before it can be deleted.<div class="perms-callout">Requires the Administrator [64] user role. See [Roles](doc:roles).</div>
      operationId: groups-delete
      tags:
      - Access Control (Groups)
      parameters:
      - description: Specifies the unique identifier (UUID) or integer ID of the group.
        required: true
        name: group_uuid
        in: path
        schema:
          type: string
      responses:
        '200':
          description: Returned if the group was deleted successfully.
          content:
            application/json:
              schema:
                type: object
              examples:
                response:
                  value: {}
        '400':
          description: Returned if your request specified invalid parameters or if your request was improperly formatted.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Access_Control_Groups_ErrorResponse-Error'
              examples:
                response:
                  value:
                    error: Cannot delete Group[UUID=28836618-1db2-4b4c-b3d1-e8982ef8248d, accountUUID=8b42306b-3ebb-451d-a250-0a1985509880] that still has Users associated with it.
        '401':
          description: Returned if the API keys specified in your request are invalid.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Access_Control_Groups_ErrorResponse'
              examples:
                response:
                  value:
                    statusCode: 401
                    error: Unauthorized
                    message: Invalid credentials.
        '403':
          description: Returned if you do not have permission to delete groups. For more information, see [Roles](doc:roles) and [Permissions](doc:permissions).
        '404':
          description: Returned if the specified group was not found.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Access_Control_Groups_ErrorResponse'
              examples:
                response:
                  value:
                    statusCode: 404
                    error: Not Found
                    message: Not Found
        '429':
          description: Returned if you attempt to send too many requests in a specific period of time. For more information, see [Rate Limiting](doc:rate-limiting).
          content:
            text/html:
              examples:
                response:
                  value: "<html>\n\n<head>\n    <title>429 Too Many Requests</title>\n</head>\n\n<body bgcolor=\"white\">\n    <center>\n        <h1>429 Too Many Requests</h1>\n    </center>\n    <hr>\n    <center>nginx</center>\n</body>\n\n</html>"
        '500':
          description: Returned if an internal error occurred.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Access_Control_Groups_ErrorResponse'
              examples:
                response:
                  value:
                    statusCode: 500
                    error: Internal Server Error
                    message: An internal server error occurred. Please wait a moment and try your request again.
      security:
      - Access_Control_Groups_cloud: []
  /groups/{group_uuid}/users:
    get:
      summary: List users in group
      description: Lists the users in the specified group.<div class="perms-callout">Requires the Administrator [64] user role. See [Roles](doc:roles).</div>
      operationId: groups-list-users
      tags:
      - Access Control (Groups)
      parameters:
      - description: Specifies the unique identifier (UUID) or integer ID of the group.
        required: true
        name: group_uuid
        in: path
        schema:
          type: string
      responses:
        '200':
          description: Returned if the list of users for the specified group was retrieved successfully.
          content:
            application/json:
              schema:
                type: object
                properties:
                  users:
                    type: array
                    description: An array of user objects.
                    items:
                      $ref: '#/components/schemas/Access_Control_Groups_user-object'
              examples:
                response:
                  value:
                    users:
                    - uuid: e5f6a7b8-c9d0-1234-ef56-7890abcdef12
                      id: 2322321
                      user_name: user@example.com
                      username: user@example.com
                      email: user@example.com
                      name: User One
                      type: local
                      permissions: 64
                      login_fail_count: 0
                      login_fail_total: 0
                      last_apikey_access: 1764615703580
                      enabled: true
                      group_uuids:
                      - a1b2c3d4-e5f6-7890-abcd-ef1234567890
                      - 00000000-0000-0000-0000-000000000000
                      lockout: 0
                      preferences:
                        enableExplore: 'true'
                        defaultApp: 'null'
                        enableWebAppWorkbench: 'false'
                        tenableGridState: 'null'
                        enableAssetWorkbench: 'false'
                        enableVMWorkbench: 'false'
                        enableExploreV2: 'false'
                        pinnedExposureInitiatives: '[]'
                      container_uuid: c1d2e3f4-a5b6-7890-cdef-123456789abc
                      lastlogin: 1741206963401
                      uuid_id: e5f6a7b8-c9d0-1234-ef56-7890abcdef12
                    - uuid: f6a7b8c9-d0e1-2345-f678-90abcdef1234
                      id: 2354920
                      user_name: user2@example.com
                      username: user2@example.com
                      email: user2@example.com
                      name: User Two
                      type: local
                      permissions: 16
                      login_fail_count: 0
                      login_fail_total: 0
                      enabled: true
                      group_uuids:
                      - 00000000-0000-0000-0000-000000000000
                      lockout: 0
                      preferences:
                        enableExplore: 'true'
                        defaultApp: 'null'
                        enableExploreV2: 'false'
                        enableWebAppWorkbench: 'false'
                        pinnedExposureInitiatives: '[]'
                        tenableGridState: 'null'
                        enableAssetWorkbench: 'false'
                        enableVMWorkbench: 'false'
                      container_uuid: c1d2e3f4-a5b6-7890-cdef-123456789abc
                      uuid_id: f6a7b8c9-d0e1-2345-f678-90abcdef1234
        '401':
          description: Returned if the API keys specified in your request are invalid.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Access_Control_Groups_ErrorResponse'
              examples:
                response:
                  value:
                    statusCode: 401
                    error: Unauthorized
                    message: Invalid credentials.
        '403':
          description: Returned if you do not have permission to list users in groups. For more information, see [Roles](doc:roles) and [Permissions](doc:permissions).
        '404':
          description: Returned if the specified group was not found.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Access_Control_Groups_ErrorResponse'
              examples:
                response:
                  value:
                    statusCode: 404
                    error: Not Found
                    message: Not Found
        '429':
          description: Returned if you attempt to send too many requests in a specific period of time. For more information, see [Rate Limiting](doc:rate-limiting).
          content:
            text/html:
              examples:
                response:
                  value: "<html>\n\n<head>\n    <title>429 Too Many Requests</title>\n</head>\n\n<body bgcolor=\"white\">\n    <center>\n        <h1>429 Too Many Requests</h1>\n    </center>\n    <hr>\n    <center>nginx</center>\n</body>\n\n</html>"
        '500':
          description: Returned if an internal error occurred.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Access_Control_Groups_ErrorResponse'
              examples:
                response:
                  value:
                    statusCode: 500
                    error: Internal Server Error
                    message: An internal server error occurred. Please wait a moment and try your request again.
      security:
      - Access_Control_Groups_cloud: []
  /groups/{group_uuid}/users/{user_uuid}:
    post:
      summary: Add user to group
      description: Adds a user to the specified group.<div class="perms-callout">Requires the Administrator [64] user role. See [Roles](doc:roles).</div>
      operationId: groups-add-user
      tags:
      - Access Control (Groups)
      parameters:
      - description: Specifies the unique identifier (UUID) or integer ID of the group.
        required: true
        name: group_uuid
        in: path
        schema:
          type: string
      - description: Specifies the unique identifier (UUID) or integer ID of the user.
        required: true
        name: user_uuid
        in: path
        schema:
          type: string
      responses:
        '200':
          description: Returned if the user was added to the group successfully.
          content:
            application/json:
              schema:
                type: object
              examples:
                response:
                  value: {}
        '401':
          description: Returned if the API keys specified in your request are invalid.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Access_Control_Groups_ErrorResponse'
              examples:
                response:
                  value:
                    statusCode: 401
                    error: Unauthorized
                    message: Invalid credentials.
        '403':
          description: Returned if you do not have permission to add users to groups. For more information, see [Roles](doc:roles) and [Permissions](doc:permissions).
        '404':
          description: Returned if the specified group or user was not found.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Access_Control_Groups_ErrorResponse'
              examples:
                response:
                  value:
                    statusCode: 404
                    error: Not Found
                    message: Not Found
        '429':
          description: Returned if you attempt to send too many requests in a specific period of time. For more information, see [Rate Limiting](doc:rate-limiting).
          content:
            text/html:
              examples:
                response:
                  value: "<html>\n\n<head>\n    <title>429 Too Many Requests</title>\n</head>\n\n<body bgcolor=\"white\">\n    <center>\n        <h1>429 Too Many Requests</h1>\n    </center>\n    <hr>\n    <center>nginx</center>\n</body>\n\n</html>"
        '500':
          description: Returned if an internal error occurred.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Access_Control_Groups_ErrorResponse'
              examples:
                response:
                  value:
                    statusCode: 500
                    error: Internal Server Error
                    message: An internal server error occurred. Please wait a moment and try your request again.
      security:
      - Access_Control_Groups_cloud: []
    delete:
      summary: Remove user from group
      description: Removes a user from the specified group.<div class="perms-callout">Requires the Administrator [64] user role. See [Roles](doc:roles).</div>
      operationId: groups-delete-user
      tags:
      - Access Control (Groups)
      parameters:
      - description: Specifies the unique identifier (UUID) or integer ID of the group.
        required: true
        name: group_uuid
        in: path
        schema:
          type: string
      - description: Specifies the unique identifier (UUID) or integer ID of the user.
        required: true
        name: user_uuid
        in: path
        schema:
          type: string
      responses:
        '200':
          description: Returned if the user was removed from the group successfully.
          content:
            application/json:
              schema:
                type: object
              examples:
                response:
                  value: {}
        '401':
          description: Returned if the API keys specified in your request are invalid.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Access_Control_Groups_ErrorResponse'
              examples:
                response:
                  value:
                    statusCode: 401
                    error: Unauthorized
                    message: Invalid credentials.
        '403':
          description: Returned if you do not have permission to delete users from groups. For more information, see [Roles](doc:roles) and [Permissions](doc:permissions).
        '404':
          description: Returned if the specified group or user was not found.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Access_Control_Groups_ErrorResponse'
              examples:
                response:
                  value:
                    statusCode: 404
                    error: Not Found
                    message: Not Found
        '429':
          description: Returned if you attempt to send too many requests in a specific period of time. For more information, see [Rate Limiting](doc:rate-limiting).
          content:
            text/html:
              examples:
                response:
                  value: "<html>\n\n<head>\n    <title>429 Too Many Requests</title>\n</head>\n\n<body bgcolor=\"white\">\n    <center>\n        <h1>429 Too Many Requests</h1>\n    </center>\n    <hr>\n    <center>nginx</center>\n</body>\n\n</html>"
        '500':
          description: Returned if an internal error occurred.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Access_Control_Groups_ErrorResponse'
              examples:
                response:
                  value:
                    statusCode: 500
                    error: Internal Server Error
                    message: An internal server error occurred. Please wait a moment and try your request again.
      security:
      - Access_Control_Groups_cloud: []
components:
  schemas:
    Access_Control_Groups_Request-Group:
      type: object
      properties:
        name:
          type: string
          description: Specifies the name of the group.
        managed_by_saml:
          type: boolean
          description: Specifies whether to allow users to be added to or removed from this group during SAML single sign-on (`true`) or to manage group membership independently of SAML (`false`).
      required:
      - name
    Access_Control_Groups_Response-Group:
      type: object
      properties:
        uuid:
          type: string
          format: uuid
          description: The unique identifier (UUID) for the group.
        name:
          type: string
          description: The name of the group.
        id:
          type: integer
          description: The unique integer identifier of the group.
        container_uuid:
          type: string
          format: uuid
          description: The UUID of the container the group belongs to.
        user_count:
          type: integer
          description: The number of users in the group. Only present on list and update responses.
        managed_by_saml:
          type: boolean
          description: A flag indicating whether users can be added to or removed from this group during SAML single sign-on. Only present if SAML management is enabled for the group.
        immutable:
          type: boolean
          description: A flag indicating the group cannot be modified. Only present on the default `All Users` group.
        membership_fixed:
          type: boolean
          description: A flag indicating users cannot be added to or removed from this group. Only present on the default `All Users` group.
    Access_Control_Groups_ErrorResponse-Error:
      type: object
      properties:
        error:
          type: string
          description: A brief description of the error.
    Access_Control_Groups_TwoFactor:
      type: object
      properties:
        sms_phone:
          type: string
          description: The phone number used for two-factor authentication. The phone number begins with the `+` character and the country code. This field is required when sms_enabled is set to `true`.
        sms_enabled:
          type: integer
          description: Indicates whether two-factor authentication is enabled (`1`) or disabled (`0`).
        email_enabled:
          type: integer
          description: Indicates whether backup notification for two-factor authentication is enabled (`1`) or disabled (`0`). If enabled, Tenable Vulnerability Management sends the two-factor verification code via e-mail, as well as via the default SMS message.
    Access_Control_Groups_user-object:
      type: object
      properties:
        uuid:
          type: string
          description: The UUID of the user.
        id:
          type: integer
          description: The unique ID of the user.
        user_name:
          type: string
          description: The username for the user.
        username:
          type: string
          description: The username for the user.
        email:
          type: string
          description: The email address of the user. If this attribute is empty, Tenable Vulnerability Management uses the `username` value as the user's email address.
        name:
          type: string
          description: The name of the user (for example, first and last name).
        type:
          type: string
          description: The type of user. The only supported type is `local`.
        permissions:
          type: integer
          description: The user permissions as described in [Permissions](doc:permissions).
          format: int32
        rbac_roles:
          type: array
          description: The role-based access control (RBAC) roles assigned to the user. This property is only present in the response when the `withRoles` query parameter is set to `true`. For more information, see [Roles](doc:roles).
          items:
            type: object
            properties:
              name:
                type: string
                description: The name of the role assigned to the user.
              uuid:
                type: string
                format: uuid
                description: The unique identifier (UUID) of the role assigned to the user.
        ui_permitted:
          type: boolean
          description: Indicates whether the user is permitted to log

# --- truncated at 32 KB (36 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/tenable/refs/heads/main/openapi/tenable-access-control-groups-api-openapi.yml