naftiko: 1.0.0-alpha2 info: label: VirusTotal API v3 - Access Control — Access Control - Quota Management description: 'VirusTotal API v3 - Access Control — Access Control - Quota Management. 3 operations. Lead operation: Get a User’s API Usage. Self-contained Naftiko capability covering one VirusTotal business surface.' tags: - VirusTotal - Access Control - Quota 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-quota-management baseUri: https://www.virustotal.com/api/v3 description: VirusTotal API v3 - Access Control — Access Control - Quota Management. Self-contained, no shared references. authentication: type: apikey key: x-apikey value: '{{env.VIRUSTOTAL_API_KEY}}' placement: header resources: - name: users-id-api-usage path: /users/{id}/api_usage operations: - name: userApiUsage method: GET description: VirusTotal Get a User’s API Usage inputParameters: - name: id in: path type: string required: true description: User ID or API key - name: start_date in: query type: string required: false description: A string in format YYYYMMDD - name: end_date in: query type: string required: false description: A string in format YYYYMMDD outputRawFormat: json outputParameters: - name: result type: object value: $. - name: users-id-overall-quotas path: /users/{id}/overall_quotas operations: - name: getUserOverallQuotas method: GET description: VirusTotal Get a User’s Quota Summary inputParameters: - name: id in: path type: string required: true description: User ID or API key outputRawFormat: json outputParameters: - name: result type: object value: $. - name: groups-id-api-usage path: /groups/{id}/api_usage operations: - name: groupApiUsage method: GET description: VirusTotal Get a Group’s API Usage inputParameters: - name: id in: path type: string required: true description: Group ID - name: start_date in: query type: string required: false description: A string in format YYYYMMDD - name: end_date in: query type: string required: false description: A string in format YYYYMMDD outputRawFormat: json outputParameters: - name: result type: object value: $. exposes: - type: rest namespace: access-control-access-control-quota-management-rest port: 8080 description: REST adapter for VirusTotal API v3 - Access Control — Access Control - Quota Management. One Spectral-compliant resource per consumed operation, prefixed with /v1. resources: - path: /v1/users/{id}/api_usage name: users-id-api-usage description: REST surface for /users/{id}/api_usage. operations: - method: GET name: userApiUsage description: VirusTotal Get a User’s API Usage call: access-control-access-control-quota-management.userApiUsage outputParameters: - type: object mapping: $. with: id: rest.id start_date: rest.start_date end_date: rest.end_date - path: /v1/users/{id}/overall_quotas name: users-id-overall-quotas description: REST surface for /users/{id}/overall_quotas. operations: - method: GET name: getUserOverallQuotas description: VirusTotal Get a User’s Quota Summary call: access-control-access-control-quota-management.getUserOverallQuotas outputParameters: - type: object mapping: $. with: id: rest.id - path: /v1/groups/{id}/api_usage name: groups-id-api-usage description: REST surface for /groups/{id}/api_usage. operations: - method: GET name: groupApiUsage description: VirusTotal Get a Group’s API Usage call: access-control-access-control-quota-management.groupApiUsage outputParameters: - type: object mapping: $. with: id: rest.id start_date: rest.start_date end_date: rest.end_date - type: mcp namespace: access-control-access-control-quota-management-mcp port: 9090 transport: http description: MCP adapter for VirusTotal API v3 - Access Control — Access Control - Quota Management. One tool per consumed operation, routed inline through this capability's consumes block. tools: - name: get-user-s-api-usage description: VirusTotal Get a User’s API Usage hints: readOnly: true destructive: false idempotent: true call: access-control-access-control-quota-management.userApiUsage outputParameters: - type: object mapping: $. with: id: tools.id start_date: tools.start_date end_date: tools.end_date - name: get-user-s-quota-summary description: VirusTotal Get a User’s Quota Summary hints: readOnly: true destructive: false idempotent: true call: access-control-access-control-quota-management.getUserOverallQuotas outputParameters: - type: object mapping: $. with: id: tools.id - name: get-group-s-api-usage description: VirusTotal Get a Group’s API Usage hints: readOnly: true destructive: false idempotent: true call: access-control-access-control-quota-management.groupApiUsage outputParameters: - type: object mapping: $. with: id: tools.id start_date: tools.start_date end_date: tools.end_date