VirusTotal · Capability

VirusTotal API v3 - Access Control — Access Control - Group Management

VirusTotal API v3 - Access Control — Access Control - Group Management. 12 operations. Lead operation: Get a Group Object. Self-contained Naftiko capability covering one VirusTotal business surface.

Run with Naftiko VirusTotalAccess ControlGroup Management

What You Can Do

GET
Groups — VirusTotal Get a Group Object
/v1/groups/{id}
PATCH
Patchgroup — VirusTotal Update a Group Object
/v1/groups/{id}
GET
Getgroupadministrators — VirusTotal Get Administrators for a Group
/v1/groups/{id}/relationships/administrators
POST
Postgroupadministrators — VirusTotal Grant Group Admin Permissions to a List of Users
/v1/groups/{id}/relationships/administrators
DELETE
Deleteusergroupadministrator — VirusTotal Revoke Group Admin Permissions from a User
/v1/groups/{id}/relationships/administrators/{user_id}
GET
Checkusergroupadministrator — VirusTotal Check if a User is a Group Admin
/v1/groups/{id}/relationships/administrators/{user_id}
GET
Getgroupusers — VirusTotal Get Group Users
/v1/groups/{id}/relationships/users
POST
Updategroupusers — VirusTotal Add Users to a Group
/v1/groups/{id}/relationships/users
DELETE
Deleteuserfromgroup — VirusTotal Remove a User from a Group
/v1/groups/{id}/relationships/users/{user_id}
GET
Checkuseringroup — VirusTotal Check if a User is a Group Member
/v1/groups/{id}/relationships/users/{user_id}
GET
Groupsrelationshipsids — VirusTotal Get Object Descriptors Related to a Group
/v1/groups/{id}/relationships/{relationship}
GET
Groupsrelationships — VirusTotal Get Objects Related to a Group
/v1/groups/{id}/{relationship}

MCP Tools

get-group-object

VirusTotal Get a Group Object

read-only idempotent
update-group-object

VirusTotal Update a Group Object

idempotent
get-administrators-group

VirusTotal Get Administrators for a Group

read-only idempotent
grant-group-admin-permissions-list

VirusTotal Grant Group Admin Permissions to a List of Users

read-only
revoke-group-admin-permissions-user

VirusTotal Revoke Group Admin Permissions from a User

idempotent
check-if-user-is-group

VirusTotal Check if a User is a Group Admin

read-only idempotent
get-group-users

VirusTotal Get Group Users

read-only idempotent
add-users-group

VirusTotal Add Users to a Group

remove-user-group

VirusTotal Remove a User from a Group

idempotent
check-if-user-is-group-2

VirusTotal Check if a User is a Group Member

read-only idempotent
get-object-descriptors-related-group

VirusTotal Get Object Descriptors Related to a Group

read-only idempotent
get-objects-related-group

VirusTotal Get Objects Related to a Group

read-only idempotent

Capability Spec

access-control-access-control-group-management.yaml Raw ↑
naftiko: 1.0.0-alpha2
info:
  label: VirusTotal API v3 - Access Control — Access Control - Group Management
  description: 'VirusTotal API v3 - Access Control — Access Control - Group Management. 12 operations. Lead operation: Get a Group Object. Self-contained Naftiko capability covering one VirusTotal business
    surface.'
  tags:
  - VirusTotal
  - Access Control
  - Group Management
  created: '2026-05-29'
  modified: '2026-05-29'
binds:
- namespace: env
  keys:
    VIRUSTOTAL_API_KEY: VIRUSTOTAL_API_KEY
capability:
  consumes:
  - type: http
    namespace: access-control-access-control-group-management
    baseUri: https://www.virustotal.com/api/v3
    description: VirusTotal API v3 - Access Control — Access Control - Group Management. Self-contained, no shared references.
    authentication:
      type: apikey
      key: x-apikey
      value: '{{env.VIRUSTOTAL_API_KEY}}'
      placement: header
    resources:
    - name: groups-id
      path: /groups/{id}
      operations:
      - name: groups
        method: GET
        description: VirusTotal Get a Group Object
        inputParameters:
        - name: id
          in: path
          type: string
          required: true
          description: Group ID
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
      - name: patchGroup
        method: PATCH
        description: VirusTotal Update a Group Object
        inputParameters:
        - name: id
          in: path
          type: string
          required: true
          description: Group ID
        - name: body
          in: body
          type: object
          required: false
          description: Request body payload.
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: groups-id-relationships-administrators
      path: /groups/{id}/relationships/administrators
      operations:
      - name: getGroupAdministrators
        method: GET
        description: VirusTotal Get Administrators for a Group
        inputParameters:
        - name: id
          in: path
          type: string
          required: true
          description: Group id
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
      - name: postGroupAdministrators
        method: POST
        description: VirusTotal Grant Group Admin Permissions to a List of Users
        inputParameters:
        - name: id
          in: path
          type: string
          required: true
          description: Group id
        - name: body
          in: body
          type: object
          required: false
          description: Request body payload.
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: groups-id-relationships-administrators-user-id
      path: /groups/{id}/relationships/administrators/{user_id}
      operations:
      - name: deleteUserGroupAdministrator
        method: DELETE
        description: VirusTotal Revoke Group Admin Permissions from a User
        inputParameters:
        - name: id
          in: path
          type: string
          required: true
          description: Group id
        - name: user_id
          in: path
          type: string
          required: true
          description: User ID to remove.
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
      - name: checkUserGroupAdministrator
        method: GET
        description: VirusTotal Check if a User is a Group Admin
        inputParameters:
        - name: id
          in: path
          type: string
          required: true
          description: Group id
        - name: user_id
          in: path
          type: string
          required: true
          description: User ID to check.
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: groups-id-relationships-users
      path: /groups/{id}/relationships/users
      operations:
      - name: getGroupUsers
        method: GET
        description: VirusTotal Get Group Users
        inputParameters:
        - name: id
          in: path
          type: string
          required: true
          description: Group ID.
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
      - name: updateGroupUsers
        method: POST
        description: VirusTotal Add Users to a Group
        inputParameters:
        - name: id
          in: path
          type: string
          required: true
          description: Group ID.
        - name: body
          in: body
          type: object
          required: false
          description: Request body payload.
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: groups-id-relationships-users-user-id
      path: /groups/{id}/relationships/users/{user_id}
      operations:
      - name: deleteUserFromGroup
        method: DELETE
        description: VirusTotal Remove a User from a Group
        inputParameters:
        - name: id
          in: path
          type: string
          required: true
          description: Group ID.
        - name: user_id
          in: path
          type: string
          required: true
          description: User to remove.
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
      - name: checkUserInGroup
        method: GET
        description: VirusTotal Check if a User is a Group Member
        inputParameters:
        - name: id
          in: path
          type: string
          required: true
          description: Group ID.
        - name: user_id
          in: path
          type: string
          required: true
          description: User to check.
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: groups-id-relationships-relationship
      path: /groups/{id}/relationships/{relationship}
      operations:
      - name: groupsRelationshipsIds
        method: GET
        description: VirusTotal Get Object Descriptors Related to a Group
        inputParameters:
        - name: id
          in: path
          type: string
          required: true
          description: Group ID.
        - name: relationship
          in: path
          type: string
          required: true
          description: Relationship name (see [table](ref:group-object#relationships))
        - name: limit
          in: query
          type: string
          required: false
          description: Maximum number of related objects to retrieve
        - name: cursor
          in: query
          type: integer
          required: false
          description: Continuation cursor
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: groups-id-relationship
      path: /groups/{id}/{relationship}
      operations:
      - name: groupsRelationships
        method: GET
        description: VirusTotal Get Objects Related to a Group
        inputParameters:
        - name: id
          in: path
          type: string
          required: true
          description: Group ID.
        - name: relationship
          in: path
          type: string
          required: true
          description: Relationship name (see [table](ref:group-object#relationships))
        - name: limit
          in: query
          type: string
          required: false
          description: Maximum number of related objects to retrieve
        - name: cursor
          in: query
          type: integer
          required: false
          description: Continuation cursor
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
  exposes:
  - type: rest
    namespace: access-control-access-control-group-management-rest
    port: 8080
    description: REST adapter for VirusTotal API v3 - Access Control — Access Control - Group Management. One Spectral-compliant resource per consumed operation, prefixed with /v1.
    resources:
    - path: /v1/groups/{id}
      name: groups-id
      description: REST surface for /groups/{id}.
      operations:
      - method: GET
        name: groups
        description: VirusTotal Get a Group Object
        call: access-control-access-control-group-management.groups
        outputParameters:
        - type: object
          mapping: $.
        with:
          id: rest.id
      - method: PATCH
        name: patchGroup
        description: VirusTotal Update a Group Object
        call: access-control-access-control-group-management.patchGroup
        outputParameters:
        - type: object
          mapping: $.
        with:
          id: rest.id
          body: rest.body
    - path: /v1/groups/{id}/relationships/administrators
      name: groups-id-relationships-administrators
      description: REST surface for /groups/{id}/relationships/administrators.
      operations:
      - method: GET
        name: getGroupAdministrators
        description: VirusTotal Get Administrators for a Group
        call: access-control-access-control-group-management.getGroupAdministrators
        outputParameters:
        - type: object
          mapping: $.
        with:
          id: rest.id
      - method: POST
        name: postGroupAdministrators
        description: VirusTotal Grant Group Admin Permissions to a List of Users
        call: access-control-access-control-group-management.postGroupAdministrators
        outputParameters:
        - type: object
          mapping: $.
        with:
          id: rest.id
          body: rest.body
    - path: /v1/groups/{id}/relationships/administrators/{user_id}
      name: groups-id-relationships-administrators-user-id
      description: REST surface for /groups/{id}/relationships/administrators/{user_id}.
      operations:
      - method: DELETE
        name: deleteUserGroupAdministrator
        description: VirusTotal Revoke Group Admin Permissions from a User
        call: access-control-access-control-group-management.deleteUserGroupAdministrator
        outputParameters:
        - type: object
          mapping: $.
        with:
          id: rest.id
          user_id: rest.user_id
      - method: GET
        name: checkUserGroupAdministrator
        description: VirusTotal Check if a User is a Group Admin
        call: access-control-access-control-group-management.checkUserGroupAdministrator
        outputParameters:
        - type: object
          mapping: $.
        with:
          id: rest.id
          user_id: rest.user_id
    - path: /v1/groups/{id}/relationships/users
      name: groups-id-relationships-users
      description: REST surface for /groups/{id}/relationships/users.
      operations:
      - method: GET
        name: getGroupUsers
        description: VirusTotal Get Group Users
        call: access-control-access-control-group-management.getGroupUsers
        outputParameters:
        - type: object
          mapping: $.
        with:
          id: rest.id
      - method: POST
        name: updateGroupUsers
        description: VirusTotal Add Users to a Group
        call: access-control-access-control-group-management.updateGroupUsers
        outputParameters:
        - type: object
          mapping: $.
        with:
          id: rest.id
          body: rest.body
    - path: /v1/groups/{id}/relationships/users/{user_id}
      name: groups-id-relationships-users-user-id
      description: REST surface for /groups/{id}/relationships/users/{user_id}.
      operations:
      - method: DELETE
        name: deleteUserFromGroup
        description: VirusTotal Remove a User from a Group
        call: access-control-access-control-group-management.deleteUserFromGroup
        outputParameters:
        - type: object
          mapping: $.
        with:
          id: rest.id
          user_id: rest.user_id
      - method: GET
        name: checkUserInGroup
        description: VirusTotal Check if a User is a Group Member
        call: access-control-access-control-group-management.checkUserInGroup
        outputParameters:
        - type: object
          mapping: $.
        with:
          id: rest.id
          user_id: rest.user_id
    - path: /v1/groups/{id}/relationships/{relationship}
      name: groups-id-relationships-relationship
      description: REST surface for /groups/{id}/relationships/{relationship}.
      operations:
      - method: GET
        name: groupsRelationshipsIds
        description: VirusTotal Get Object Descriptors Related to a Group
        call: access-control-access-control-group-management.groupsRelationshipsIds
        outputParameters:
        - type: object
          mapping: $.
        with:
          id: rest.id
          relationship: rest.relationship
          limit: rest.limit
          cursor: rest.cursor
    - path: /v1/groups/{id}/{relationship}
      name: groups-id-relationship
      description: REST surface for /groups/{id}/{relationship}.
      operations:
      - method: GET
        name: groupsRelationships
        description: VirusTotal Get Objects Related to a Group
        call: access-control-access-control-group-management.groupsRelationships
        outputParameters:
        - type: object
          mapping: $.
        with:
          id: rest.id
          relationship: rest.relationship
          limit: rest.limit
          cursor: rest.cursor
  - type: mcp
    namespace: access-control-access-control-group-management-mcp
    port: 9090
    transport: http
    description: MCP adapter for VirusTotal API v3 - Access Control — Access Control - Group Management. One tool per consumed operation, routed inline through this capability's consumes block.
    tools:
    - name: get-group-object
      description: VirusTotal Get a Group Object
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: access-control-access-control-group-management.groups
      outputParameters:
      - type: object
        mapping: $.
      with:
        id: tools.id
    - name: update-group-object
      description: VirusTotal Update a Group Object
      hints:
        readOnly: false
        destructive: false
        idempotent: true
      call: access-control-access-control-group-management.patchGroup
      outputParameters:
      - type: object
        mapping: $.
      with:
        id: tools.id
        body: tools.body
    - name: get-administrators-group
      description: VirusTotal Get Administrators for a Group
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: access-control-access-control-group-management.getGroupAdministrators
      outputParameters:
      - type: object
        mapping: $.
      with:
        id: tools.id
    - name: grant-group-admin-permissions-list
      description: VirusTotal Grant Group Admin Permissions to a List of Users
      hints:
        readOnly: true
        destructive: false
        idempotent: false
      call: access-control-access-control-group-management.postGroupAdministrators
      outputParameters:
      - type: object
        mapping: $.
      with:
        id: tools.id
        body: tools.body
    - name: revoke-group-admin-permissions-user
      description: VirusTotal Revoke Group Admin Permissions from a User
      hints:
        readOnly: false
        destructive: true
        idempotent: true
      call: access-control-access-control-group-management.deleteUserGroupAdministrator
      outputParameters:
      - type: object
        mapping: $.
      with:
        id: tools.id
        user_id: tools.user_id
    - name: check-if-user-is-group
      description: VirusTotal Check if a User is a Group Admin
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: access-control-access-control-group-management.checkUserGroupAdministrator
      outputParameters:
      - type: object
        mapping: $.
      with:
        id: tools.id
        user_id: tools.user_id
    - name: get-group-users
      description: VirusTotal Get Group Users
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: access-control-access-control-group-management.getGroupUsers
      outputParameters:
      - type: object
        mapping: $.
      with:
        id: tools.id
    - name: add-users-group
      description: VirusTotal Add Users to a Group
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: access-control-access-control-group-management.updateGroupUsers
      outputParameters:
      - type: object
        mapping: $.
      with:
        id: tools.id
        body: tools.body
    - name: remove-user-group
      description: VirusTotal Remove a User from a Group
      hints:
        readOnly: false
        destructive: true
        idempotent: true
      call: access-control-access-control-group-management.deleteUserFromGroup
      outputParameters:
      - type: object
        mapping: $.
      with:
        id: tools.id
        user_id: tools.user_id
    - name: check-if-user-is-group-2
      description: VirusTotal Check if a User is a Group Member
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: access-control-access-control-group-management.checkUserInGroup
      outputParameters:
      - type: object
        mapping: $.
      with:
        id: tools.id
        user_id: tools.user_id
    - name: get-object-descriptors-related-group
      description: VirusTotal Get Object Descriptors Related to a Group
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: access-control-access-control-group-management.groupsRelationshipsIds
      outputParameters:
      - type: object
        mapping: $.
      with:
        id: tools.id
        relationship: tools.relationship
        limit: tools.limit
        cursor: tools.cursor
    - name: get-objects-related-group
      description: VirusTotal Get Objects Related to a Group
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: access-control-access-control-group-management.groupsRelationships
      outputParameters:
      - type: object
        mapping: $.
      with:
        id: tools.id
        relationship: tools.relationship
        limit: tools.limit
        cursor: tools.cursor