naftiko: 1.0.0-alpha2 info: label: PDCP API — scan_log description: 'PDCP API — scan_log. 3 operations. Lead operation: Get scan log of given scan id. Self-contained Naftiko capability covering one Nuclei business surface.' tags: - Nuclei - scan_log created: '2026-05-19' modified: '2026-05-19' binds: - namespace: env keys: NUCLEI_API_KEY: NUCLEI_API_KEY capability: consumes: - type: http namespace: nuclei-scan-log baseUri: https://api.projectdiscovery.io description: PDCP API — scan_log business capability. Self-contained, no shared references. resources: - name: v1-scans-scan_id-scan_log path: /v1/scans/{scan_id}/scan_log operations: - name: getscansidscanlog method: GET description: Get scan log of given scan id outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: host in: query type: string description: target to search in log - name: template in: query type: string description: template to search in log - name: matched in: query type: string description: status to search in log - name: time in: query type: string description: time to filter the logs - name: search in: query type: string description: string to search in error, target and template - name: next_page_token in: query type: string - name: template_severity in: query type: string description: severity to search in log - name: X-Team-Id in: header type: string description: 'Retrieve the Team ID from: https://cloud.projectdiscovery.io/settings/team' - name: v1-scans-scan_id-scan_log-export path: /v1/scans/{scan_id}/scan_log/export operations: - name: getscansidscanlogexport method: GET description: Export scan log of given scan id outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: X-Team-Id in: header type: string description: 'Retrieve the Team ID from: https://cloud.projectdiscovery.io/settings/team' - name: rescan_count in: query type: integer - name: host in: query type: string description: target to search in log - name: template in: query type: string description: template to search in log - name: matched in: query type: string description: status to search in log - name: time in: query type: string description: time to filter the logs - name: search in: query type: string description: string to search in error, target and template - name: error in: query type: string description: error to search in log - name: format in: query type: string description: format of the log file - name: async in: query type: boolean - name: alert_email in: query type: string - name: severity in: query type: string - name: v1-scans-scan_id-scan_log-stats path: /v1/scans/{scan_id}/scan_log/stats operations: - name: getscansidscanlogstats method: GET description: Get scan log stats of given scan id outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: rescan_count in: query type: integer - name: host in: query type: string description: target to search in log - name: template in: query type: string description: template to search in log - name: matched in: query type: string description: status to search in log - name: time in: query type: string description: time to filter the logs - name: search in: query type: string description: string to search in error, target and template - name: error in: query type: string description: error to search in log - name: severity in: query type: string authentication: type: apikey key: X-API-Key value: '{{env.NUCLEI_API_KEY}}' placement: header exposes: - type: rest namespace: nuclei-scan-log-rest port: 8080 description: REST adapter for PDCP API — scan_log. One Spectral-compliant resource per consumed operation, prefixed with /v1. resources: - path: /v1/v1/scans/{scan-id}/scan-log name: v1-scans-scan-id-scan-log description: REST surface for v1-scans-scan_id-scan_log. operations: - method: GET name: getscansidscanlog description: Get scan log of given scan id call: nuclei-scan-log.getscansidscanlog with: host: rest.host template: rest.template matched: rest.matched time: rest.time search: rest.search next_page_token: rest.next_page_token template_severity: rest.template_severity X-Team-Id: rest.X-Team-Id outputParameters: - type: object mapping: $. - path: /v1/v1/scans/{scan-id}/scan-log/export name: v1-scans-scan-id-scan-log-export description: REST surface for v1-scans-scan_id-scan_log-export. operations: - method: GET name: getscansidscanlogexport description: Export scan log of given scan id call: nuclei-scan-log.getscansidscanlogexport with: X-Team-Id: rest.X-Team-Id rescan_count: rest.rescan_count host: rest.host template: rest.template matched: rest.matched time: rest.time search: rest.search error: rest.error format: rest.format async: rest.async alert_email: rest.alert_email severity: rest.severity outputParameters: - type: object mapping: $. - path: /v1/v1/scans/{scan-id}/scan-log/stats name: v1-scans-scan-id-scan-log-stats description: REST surface for v1-scans-scan_id-scan_log-stats. operations: - method: GET name: getscansidscanlogstats description: Get scan log stats of given scan id call: nuclei-scan-log.getscansidscanlogstats with: rescan_count: rest.rescan_count host: rest.host template: rest.template matched: rest.matched time: rest.time search: rest.search error: rest.error severity: rest.severity outputParameters: - type: object mapping: $. - type: mcp namespace: nuclei-scan-log-mcp port: 9090 transport: http description: MCP adapter for PDCP API — scan_log. One tool per consumed operation, routed inline through this capability's consumes block. tools: - name: get-scan-log-given-scan description: Get scan log of given scan id hints: readOnly: true destructive: false idempotent: true call: nuclei-scan-log.getscansidscanlog with: host: tools.host template: tools.template matched: tools.matched time: tools.time search: tools.search next_page_token: tools.next_page_token template_severity: tools.template_severity X-Team-Id: tools.X-Team-Id outputParameters: - type: object mapping: $. - name: export-scan-log-given-scan description: Export scan log of given scan id hints: readOnly: true destructive: false idempotent: true call: nuclei-scan-log.getscansidscanlogexport with: X-Team-Id: tools.X-Team-Id rescan_count: tools.rescan_count host: tools.host template: tools.template matched: tools.matched time: tools.time search: tools.search error: tools.error format: tools.format async: tools.async alert_email: tools.alert_email severity: tools.severity outputParameters: - type: object mapping: $. - name: get-scan-log-stats-given description: Get scan log stats of given scan id hints: readOnly: true destructive: false idempotent: true call: nuclei-scan-log.getscansidscanlogstats with: rescan_count: tools.rescan_count host: tools.host template: tools.template matched: tools.matched time: tools.time search: tools.search error: tools.error severity: tools.severity outputParameters: - type: object mapping: $.