openapi: 3.1.0 info: title: PDCP API version: '1.0' summary: ProjectDiscovery Cloud Platform description: For more details, checkout https://docs.projectdiscovery.io/api-reference/ servers: - url: https://api.projectdiscovery.io description: Production paths: /v1/scans: get: summary: Get Scans Status tags: [scans] responses: '200': $ref: '#/components/responses/GetScansStatusResponse' '401': $ref: '#/components/responses/GetScansStatusResponse' operationId: get-v1-scans description: Get user scans status security: - X-API-Key: [] parameters: - schema: type: string in: query name: offset description: number of scan-status results to skip required: true - schema: type: integer in: query name: limit description: number of scan-status results to fetch required: true - schema: type: string in: query name: search description: search term for running scans - schema: type: string in: query name: status description: filter by status (failed, finished, queued, running, starting, uploaded) post: summary: Create Scan tags: [scans] operationId: post-v1-scans responses: '200': $ref: '#/components/responses/TriggerUserScanResponse' '401': $ref: '#/components/responses/TriggerUserScanResponse' '500': $ref: '#/components/responses/TriggerUserScanResponse' description: Trigger a scan security: - X-API-Key: [] requestBody: $ref: '#/components/requestBodies/TriggerUserScanRequest' parameters: [] /v1/scans/{scan_id}: parameters: - schema: type: string name: scan_id in: path required: true get: summary: Get Scan by ID tags: [scans] responses: '200': $ref: '#/components/responses/GetScanDetailsResponse' '401': $ref: '#/components/responses/GetScanDetailsResponse' '500': $ref: '#/components/responses/GetScanDetailsResponse' operationId: get-v1-scans-scan_id description: Get details of a scan security: - X-API-Key: [] delete: summary: Delete Scan tags: [scans] operationId: delete-v1-scans-scan_id responses: '200': $ref: '#/components/responses/DeleteScansResponse' '401': $ref: '#/components/responses/DeleteScansResponse' '500': $ref: '#/components/responses/DeleteTemplateResponse' description: Delete a scan using scanId security: - X-API-Key: [] patch: summary: Update Scan tags: [scans] operationId: patch-v1-scans-scan_id responses: '200': description: OK content: application/json: schema: type: object properties: message: type: string required: - message '401': description: Unauthorized content: application/json: schema: type: object properties: message: type: string required: - message '500': description: Internal Server Error content: application/json: schema: type: object properties: message: type: string required: - message description: '' security: - X-API-Key: [] requestBody: $ref: '#/components/requestBodies/UpdateScanRequest' /v1/scans/result/{scanId}: get: summary: Get Result by scanID tags: [results] responses: '200': $ref: '#/components/responses/GetScanResultsResponse' '500': $ref: '#/components/responses/GetScanResultsResponse' '501': $ref: '#/components/responses/GetScanResultsResponse' operationId: get-v1-scans-result-:scanId description: get results of specific scan by id security: - X-API-Key: [] parameters: - schema: type: string in: query name: severity description: comma separated severity e.g. severity=info,high - schema: type: string in: query name: search description: search term - schema: type: integer in: query name: limit description: 'number of results ' required: true - schema: type: string in: query name: offset required: true description: number of results to skip - schema: type: string in: query name: templates description: comma separated templates e.g. templates=tech-detect,azure-takeover - schema: type: string in: query name: hosts description: comma separated host e.g. hosts=https://example.com,https://x.com parameters: - schema: type: string name: scanId in: path required: true description: scan specific results (by scanId) /v1/scans/{scan_id}/stop: get: summary: Stop Scan tags: [scans] responses: '200': $ref: '#/components/responses/DeleteScansResponse' '400': $ref: '#/components/responses/DeleteScansResponse' '401': $ref: '#/components/responses/DeleteScansResponse' '500': $ref: '#/components/responses/DeleteScansResponse' operationId: get-v1-scans-scan_id-stop description: '' security: - X-API-Key: [] parameters: - schema: type: string name: scan_id in: path required: true /v1/scans/results: get: summary: Get Results tags: [results] responses: '200': $ref: '#/components/responses/GetScanResultsResponse' '401': $ref: '#/components/responses/GetScanResultsResponse' '500': $ref: '#/components/responses/GetScanResultsResponse' operationId: get-v1-results description: Get scans results of a user parameters: - schema: type: string in: query name: offset required: true description: number of results to skip - schema: type: integer in: query required: true name: limit description: number of results to get - schema: type: string in: query name: severity description: string separated by comma e.g. info,high - schema: type: string in: query name: search description: search term - schema: type: string in: query name: hosts description: comma separated host e.g. hosts=https://example.com,https://x.com - schema: type: string in: query name: templates description: comma separated templates e.g. templates=tech-detect,azure-takeover - schema: type: string in: query name: time description: filter by time ( last_day, last_week, last_month ) security: - X-API-Key: [] parameters: [] /v1/retest: get: summary: Get Retest Results tags: [retest] responses: '200': $ref: '#/components/responses/GetRetestResultsResponse' '401': $ref: '#/components/responses/GetRetestResultsResponse' '500': $ref: '#/components/responses/GetRetestResultsResponse' operationId: get-v1-retest description: Get user retest results security: - X-API-Key: [] parameters: - schema: type: string in: query name: offset description: number of results to skip required: true - schema: type: integer in: query name: limit description: number of results required: true post: summary: Create Retest Scan tags: [retest] operationId: post-v1-retest responses: '200': $ref: '#/components/responses/PostRetestTemplateResponse' '401': $ref: '#/components/responses/PostRetestTemplateResponse' '500': $ref: '#/components/responses/PostRetestTemplateResponse' description: Trigger a retest scan security: - X-API-Key: [] requestBody: $ref: '#/components/requestBodies/RetestTemplateRequest' parameters: [] /v1/scans/vuln/{vuln_id}: get: summary: Get Vulnerability by ID tags: [results] responses: '200': $ref: '#/components/responses/GetScansVulnIdResponse' '401': $ref: '#/components/responses/GetScansVulnIdResponse' '500': $ref: '#/components/responses/GetScansVulnIdResponse' operationId: get-v1-scans-vuln-:vulnId description: '' security: - X-API-Key: [] requestBody: content: {} parameters: - schema: type: string name: vuln_id in: path required: true description: vulnerability ID post: summary: Rescan vulnerability tags: [results] operationId: post-v1-scans-vuln-vuln_id responses: '200': $ref: '#/components/responses/GetScansVulnIdResponse' '400': $ref: '#/components/responses/GetScansVulnIdResponse' '401': $ref: '#/components/responses/GetScansVulnIdResponse' '500': $ref: '#/components/responses/GetScansVulnIdResponse' security: - X-API-Key: [] /v1/scans/import: post: summary: Import OSS Scan tags: [scans] operationId: post-v1-scans-import responses: '200': $ref: '#/components/responses/ImportScanResponse' '400': $ref: '#/components/responses/ImportScanResponse' '401': $ref: '#/components/responses/ImportScanResponse' '500': $ref: '#/components/responses/ImportScanResponse' description: Import scan details security: - X-API-Key: [] requestBody: content: application/octet-stream: schema: type: string format: binary /v1/assets: get: summary: Get Asset list tags: [assets] responses: '200': $ref: '#/components/responses/GetAssetsListResponse' '401': $ref: '#/components/responses/GetAssetsListResponse' '500': $ref: '#/components/responses/GetAssetsListResponse' operationId: get-v1-assets description: '' security: - X-API-Key: [] parameters: - schema: type: string in: query name: offset description: number of assets to skip required: true - schema: type: integer in: query name: limit description: number of assets to fetch required: true - schema: type: string in: query name: search description: search term for asset list post: summary: Upload Asset tags: [assets] operationId: post-v1-assets responses: '200': $ref: '#/components/responses/UploadAssetResponse' '401': $ref: '#/components/responses/UploadAssetResponse' '500': $ref: '#/components/responses/UploadAssetResponse' security: - X-API-Key: [] requestBody: content: application/octet-stream: schema: type: string format: binary parameters: - schema: type: string in: query name: name description: name of asset description: '' /v1/assets/{asset_Id}: parameters: - schema: type: string name: asset_Id in: path required: true get: summary: Get Asset Info tags: [assets] responses: '200': description: OK '401': $ref: '#/components/responses/GetUserAssetResponse' '500': $ref: '#/components/responses/GetUserAssetResponse' operationId: get-v1-assets-assetId security: - X-API-Key: [] delete: summary: Delete Asset tags: [assets] operationId: delete-v1-assets-asset_Id responses: '200': $ref: '#/components/responses/DeleteAssetResponse' '401': $ref: '#/components/responses/DeleteAssetResponse' '500': $ref: '#/components/responses/DeleteAssetResponse' security: - X-API-Key: [] patch: summary: Update Asset Metadata tags: [assets] operationId: patch-v1-assets-asset_Id responses: '200': description: OK content: application/json: schema: type: object properties: message: type: string required: - message '401': description: Unauthorized content: application/json: schema: type: object properties: message: type: string required: - message '500': description: Internal Server Error content: application/json: schema: type: object properties: message: type: string required: - message security: - X-API-Key: [] requestBody: $ref: '#/components/requestBodies/UpdateAssetRequest' /v1/assets/{asset_id}/contents: get: summary: Get Asset Content tags: [assets] responses: '200': description: OK content: application/octet-stream: schema: type: string format: binary '401': description: Unauthorized content: application/json: schema: type: object properties: message: type: string required: - message '500': description: Internal Server Error content: application/json: schema: type: object x-examples: Example 1: message: | {"message":"could not get asset metadata: could not get asset: no rows in result set","status":500} properties: message: type: string required: - message operationId: get-v1-assets-id-contents security: - X-API-Key: [] parameters: - schema: type: string name: asset_id in: path required: true patch: summary: Update Asset Content tags: [assets] operationId: patch-v1-assets-asset_id-contents responses: '200': $ref: '#/components/responses/PatchAssetContentResponse' '400': $ref: '#/components/responses/PatchAssetContentResponse' '500': $ref: '#/components/responses/PatchAssetContentResponse' requestBody: content: application/octet-stream: schema: type: string format: binary security: - X-API-Key: [] parameters: - schema: type: string in: query name: update_type description: 'use options like: type, replace ' /v1/scans/results/filters: get: summary: Results Filters tags: [results] responses: '200': $ref: '#/components/responses/GetScanResultsFiltersResponse' '401': $ref: '#/components/responses/GetScanResultsFiltersResponse' '500': $ref: '#/components/responses/GetScanResultsFiltersResponse' operationId: get-v1-scans-results-filters description: Get users scan-result filters security: - X-API-Key: [] parameters: - schema: type: string in: query name: offset description: (Required) The number of items to skip before starting to collect the result set required: true - schema: type: integer in: query name: limit description: (Required) The numbers of items to return required: true - schema: type: string in: query name: scan_id description: specific scan_id results filters - schema: type: string in: query name: severity description: comma separated severity e.g. severities=info,high - schema: type: string in: query name: templates description: comma separated templates e.g. templates=tech-detect,azure-takeover - schema: type: string in: query name: hosts description: comma separated host e.g. hosts=https://example.com,https://x.com - schema: type: string in: query name: search description: search term - schema: type: string in: query name: type required: true description: type of filter - schema: type: string in: query name: time description: filter by time ( last_day, last_week, last_month ) /v1/scans/results/stats: get: summary: Results Stats tags: [results] responses: '200': $ref: '#/components/responses/GetScanResultStatsResponse' '401': $ref: '#/components/responses/GetScanResultStatsResponse' '500': $ref: '#/components/responses/GetScanResultStatsResponse' operationId: get-v1-scans-results-stats description: Get user scan results stats security: - X-API-Key: [] parameters: - schema: type: string in: query name: offset required: true description: (Required) The number of items to skip before starting to collect the result set - schema: type: string in: query name: limit required: true description: (Required) The numbers of items to return - schema: type: string in: query name: hosts description: comma separated host e.g. hosts=https://example.com,https://x.com - schema: type: string in: query name: templates description: comma separated templates e.g. templates=tech-detect,azure-takeover - schema: type: string in: query name: severity description: comma separated severity e.g. severities=info,high - schema: type: string in: query name: search description: search term - schema: type: string in: query name: scan_id description: specific scan_id results filters - schema: type: string in: query description: filter by time ( last_day, last_week, last_month ) name: time /v1/scans/schedule: get: summary: Get Scan Schedules tags: [scans] responses: '200': $ref: '#/components/responses/GetScanScheduleResponse' '401': description: Unauthorized content: application/json: schema: type: object properties: message: type: string '500': description: Internal Server Error content: application/json: schema: type: object properties: message: type: string operationId: get-v1-scans-schedule description: Get scan schedules for a user security: - X-API-Key: [] post: summary: Set Scan Schedule tags: [scans] operationId: post-v1-scans-schedule responses: '200': $ref: '#/components/responses/SetScanScheduleResponse' '401': $ref: '#/components/responses/SetScanScheduleResponse' '500': $ref: '#/components/responses/SetScanScheduleResponse' description: 'set a scan schedule for a user ' requestBody: $ref: '#/components/requestBodies/SetScanScheduleRequest' security: - X-API-Key: [] delete: summary: Delete Scan Schedule tags: [scans] operationId: delete-v1-scans-schedule responses: '200': $ref: '#/components/responses/SetScanScheduleResponse' '401': $ref: '#/components/responses/SetScanScheduleResponse' '500': $ref: '#/components/responses/SetScanScheduleResponse' parameters: - schema: type: string in: query name: scan_id required: true description: scan_id of schedule to be deleted security: - X-API-Key: [] description: Delete scan schedule for a user /v1/user/feedback: post: summary: Add feedback tags: [users] operationId: post-v1-user-feedback responses: '200': description: OK content: application/json: schema: type: object properties: message: type: string required: - message '401': description: Unauthorized content: application/json: schema: type: object properties: message: type: string required: - message '500': description: Internal Server Error content: application/json: schema: type: object properties: message: type: string required: - message security: - X-API-Key: [] requestBody: $ref: '#/components/requestBodies/PostFeedbackRequest' /v1/user: get: summary: Get User Profile tags: [users] responses: '200': $ref: '#/components/responses/GetUserProfileResponse' '401': $ref: '#/components/responses/GetUserProfileResponse' '500': $ref: '#/components/responses/GetUserProfileResponse' operationId: get-v1-user security: - X-API-Key: [] /v1/user/apikey: get: summary: Get API Key tags: [users] responses: '200': $ref: '#/components/responses/GetUserAPIKeyResponse' '401': $ref: '#/components/responses/GetUserAPIKeyResponse' '500': $ref: '#/components/responses/GetUserAPIKeyResponse' operationId: get-v1-user-apikey security: - X-API-Key: [] post: summary: Create API Key tags: [users] operationId: post-v1-user-apikey responses: '200': $ref: '#/components/responses/GetUserAPIKeyResponse' '400': $ref: '#/components/responses/GetUserAPIKeyResponse' '500': $ref: '#/components/responses/GetUserAPIKeyResponse' security: - X-API-Key: [] delete: summary: Delete API Key tags: [users] operationId: delete-v1-user-apikey responses: '200': $ref: '#/components/responses/DeleteUserAPIKeyResponse' '401': $ref: '#/components/responses/DeleteUserAPIKeyResponse' '500': $ref: '#/components/responses/DeleteUserAPIKeyResponse' security: - X-API-Key: [] /v1/user/apikey/rotate: post: summary: Rotate API Key tags: [users] operationId: post-v1-user-apikey-rotate responses: '200': $ref: '#/components/responses/GetUserAPIKeyResponse' '401': $ref: '#/components/responses/GetUserAPIKeyResponse' '500': $ref: '#/components/responses/GetUserAPIKeyResponse' security: - X-API-Key: [] /v1/template/public: get: summary: Get Public Template List tags: [templates] responses: '200': $ref: '#/components/responses/GetPublicTemplateList' '201': $ref: '#/components/responses/GetPublicTemplateList' '500': $ref: '#/components/responses/GetPublicTemplateList' operationId: get-v1-template-public description: '' /v1/template/public/*: get: summary: Get Public Template Data tags: [templates] responses: '200': description: OK headers: {} content: text/plain: schema: type: string operationId: get-v1-template-public-path requestBody: content: {} /v1/template: get: summary: Get Template List tags: [templates] responses: '200': $ref: '#/components/responses/GetUserTemplateListResponse' '401': $ref: '#/components/responses/GetUserTemplateListResponse' '500': $ref: '#/components/responses/GetUserTemplateListResponse' operationId: get-v1-templates security: - X-API-Key: [] parameters: [] post: summary: Create Template tags: [templates] operationId: post-v1-template responses: '200': $ref: '#/components/responses/CreateTemplateResponse' '401': $ref: '#/components/responses/CreateTemplateResponse' '500': $ref: '#/components/responses/CreateTemplateResponse' security: - X-API-Key: [] requestBody: content: application/json: schema: type: object properties: template: type: string required: - template patch: summary: Update Template tags: [templates] operationId: patch-v1-template responses: '200': $ref: '#/components/responses/UpdateTemplateResponse' '401': $ref: '#/components/responses/UpdateTemplateResponse' '500': $ref: '#/components/responses/UpdateTemplateResponse' security: - X-API-Key: [] requestBody: $ref: '#/components/requestBodies/UpdateTemplateRequest' /v1/template/{template_id}: parameters: - schema: type: string name: template_id in: path required: true description: 'unique Id of template ' get: summary: Get Template Data tags: [templates] responses: '200': $ref: '#/components/responses/GetTemplateResponse' '401': $ref: '#/components/responses/GetTemplateResponse' '500': $ref: '#/components/responses/GetTemplateResponse' operationId: get-v1-template-t_id security: - X-API-Key: [] delete: summary: Delete Template tags: [templates] operationId: delete-v1-template-template_id responses: '200': $ref: '#/components/responses/DeleteTemplateResponse' '401': $ref: '#/components/responses/DeleteTemplateResponse' '500': $ref: '#/components/responses/DeleteTemplateResponse' security: - X-API-Key: [] /v1/template/ai: post: summary: Generate AI Template tags: [templates] operationId: post-v1-template-ai responses: '200': $ref: '#/components/responses/GenerateTemplateResponse' '401': $ref: '#/components/responses/GenerateTemplateResponse' '500': $ref: '#/components/responses/GenerateTemplateResponse' requestBody: $ref: '#/components/requestBodies/GenerateTemplateRequest' security: - X-API-Key: [] /v1/template/share: get: summary: Get Share Status tags: [templates] responses: '200': $ref: '#/components/responses/GetShareStatusResponse' '401': $ref: '#/components/responses/GetShareStatusResponse' '500': $ref: '#/components/responses/GetShareStatusResponse' operationId: get-v1-template-share security: - X-API-Key: [] parameters: - schema: type: string in: query name: template_id description: short uuid of requested template required: true - schema: type: string in: query name: user_name description: user name of logged in user required: true post: summary: Share Template tags: [templates] operationId: post-v1-template-share responses: '200': $ref: '#/components/responses/ShareTemplateResponse' '201': description: Created '401': $ref: '#/components/responses/ShareTemplateResponse' '500': description: Internal Server Error security: - X-API-Key: [] requestBody: $ref: '#/components/requestBodies/ShareTemplateRequest' /v1/template/share/{template_id}: parameters: - schema: type: string name: template_id in: path required: true description: unique template ID get: summary: Get Shared Template tags: [templates] responses: '200': $ref: '#/components/responses/GetSharedTemplateResponse' '401': $ref: '#/components/responses/GetSharedTemplateResponse' '500': $ref: '#/components/responses/GetSharedTemplateResponse' operationId: get-v1-template-share-template_id parameters: - schema: type: string in: query name: user_name description: user name of template owner required: true /v1/retest/{vuln_id}: parameters: - schema: type: string name: vuln_id in: path required: true get: summary: Get Retest Vulnerability tags: [retest] responses: '200': $ref: '#/components/responses/GetSingleRetestResultResponse' '401': $ref: '#/components/responses/GetSingleRetestResultResponse' '500': $ref: '#/components/responses/GetSingleRetestResultResponse' operationId: get-v1-retest-vuln_id security: - X-API-Key: [] components: schemas: {} securitySchemes: X-API-Key: name: X-API-Key type: apiKey in: header responses: GetTemplateResponse: description: Example response content: application/json: schema: type: object properties: prompt: type: - string - 'null' message: type: string template: type: - string - 'null' required: - message application/xml: schema: type: object properties: {} examples: {} CreateTemplateResponse: description: Example response content: application/json: schema: type: object properties: message: type: string status: type: boolean template_id: type: - string - 'null' required: - message UpdateTemplateResponse: description: Example response content: application/json: schema: type: object properties: message: type: string status: type: boolean template_id: type: - string - 'null' required: - message GenerateTemplateResponse: description: Example response content: application/json: schema: type: object properties: template_id: type: - string - 'null' message: type: string completion: type: - string - 'null' name: type: - string - 'null' required: - message ShareTemplateResponse: description: Example response content: application/json: schema: type: object GetSharedTemplateResponse: description: Example response content: application/json: schema: type: object properties: template: type: - string - 'null' template_name: type: - string - 'null' message: type: string required: - message GetUserProfileResponse: description: Example response content: application/json: schema: type: object properties: ai_status: type: - boolean - 'null' email: type: - string - 'null' name: type: - string - 'null' message: type: string cloud_scans: type: boolean required: - message DeleteTemplateResponse: description: Example response content: application/json: schema: type: object properties: message: type: string status: type: - boolean - 'null' required: - message GetPublicTemplateList: description: Example response content: application/json: schema: type: object properties: version: type: string data: type: array items: type: object properties: id: type: string templateURL: type: string name: type: string required: - version - data GetRetestResultsResponse: description: Example response content: application/json: schema: type: object properties: message: type: string results: type: array items: type: object properties: matcher_status: type: boolean vuln_id: type: string target: type: string template_url: type: string created_at: type: string updated_at: type: string scan_id: type: string event: type: array items: type: object properties: template-id: type: string Info: type: object properties: name: type: string author: type: array items: type: string tags: type: array items: type: string severity: type: string description: type: string impact: type: string remediation: type: string reference: type: array items: type: string metadata: type: object properties: verified: type: boolean max-request: type: integer total-request: type: integer vendor: type: string product: type: string framework: type: string shodan-query: type: string fofa-query: type: string censys-query: type: string publicwww-query: type: string google-query: type: string classification: type: object properties: cvss-metrics: type: string cvss-score: type: number cve-id: type: array items: type: string cwe-id: type: array items: type: string epss-score: type: number epss-percentile: type: number cpe: type: string type: type: string host: type: string request: type: string response: type: string timestamp: type: string matcher-status: type: boolean matched-line: type: array items: type: integer ip: type: string matched-at: type: string curl-command: type: string matcher-name: type: string extracted-results: type: string template-url: type: string template-path: type: string extractor-name: type: string path: type: string template_id: type: string template_path: type: string template_encoded: type: string result_type: type: string required: - matcher_status - vuln_id - target - created_at - scan_id - event - result_type required: - message - results application/xml: schema: type: object properties: {} GetSingleRetestResultResponse: description: Example response content: application/json: schema: type: object properties: message: type: string results: type: object required: - matcher_status - target - event properties: matcher_status: type: boolean vuln_id: type: string target: type: string template_url: type: string created_at: type: string updated_at: type: string event: type: array items: type: object properties: template-id: type: string Info: type: object properties: name: type: string author: type: array items: type: string tags: type: array items: type: string severity: type: string description: type: string impact: type: string remediation: type: string reference: type: array items: type: string classification: type: object properties: cvss-metrics: type: string cvss-score: type: number cve-id: type: array items: type: string cwe-id: type: array items: type: string epss-score: type: number epss-percentile: type: number cpe: type: string metadata: type: object properties: verified: type: boolean max-request: type: integer total-request: type: integer vendor: type: string product: type: string framework: type: string shodan-query: type: string fofa-query: type: string censys-query: type: string publicwww-query: type: string google-query: type: string type: type: string host: type: string request: type: string response: type: string timestamp: type: string matcher-status: type: boolean matched-line: type: array items: type: integer ip: type: string matched-at: type: string curl-command: type: string matcher-name: type: string extracted-results: type: string template-url: type: string template-path: type: string extractor-name: type: string path: type: string required: - message - results GetScansStatusResponse: description: Example response content: application/json: schema: type: object properties: message: type: string data: type: array items: type: object properties: scan_id: type: string status: type: string scan_time_elapsed: type: string progress: type: integer failure_reason: type: string created_at: type: string total_target: type: integer total_scan: type: integer severity: type: object properties: info: type: - string - integer critical: type: - integer - string medium: type: - string - integer low: type: - string - integer high: type: - string - integer unknown: type: - string - integer total_template: type: integer updated_at: type: string name: type: string completed_at: type: string is_oss: type: string is_cloud: type: string scan_frequency: enum: - daily - weekly - monthly schedule_last_run: type: string required: - scan_id - status - progress - created_at - total_target - total_scan - total_template - name required: - data application/xml: schema: type: object properties: message: type: string data: type: array items: type: object properties: id: type: string status: type: string required: - message TriggerUserScanResponse: description: Example response content: application/json: schema: type: object properties: id: type: string message: type: string required: - message application/xml: schema: type: object properties: message: type: string id: type: string multipart/form-data: schema: type: object properties: message: type: string id: type: string required: - message text/html: schema: type: object properties: message: type: string id: type: string required: - message GetScanDetailsResponse: description: Example response content: application/json: schema: type: object properties: message: type: string completed_at: type: string created_at: type: string progress: type: integer scan_id: type: string scan_time_elapsed: type: string status: type: string total_scan: type: integer total_template: type: integer total_target: type: integer is_oss: type: string is_cloud: type: string name: type: string severity: type: object failure_reason: type: string required: - created_at - progress - scan_id - status - total_scan - total_template - total_target - name DeleteScansResponse: description: Example response content: application/json: schema: type: object properties: message: type: string ok: type: boolean required: - message GetScanResultsResponse: description: Example response content: application/json: schema: type: object properties: message: type: string results: type: array items: type: object properties: scan_id: type: string target: type: string template_encoded: type: string template_url: type: string template_path: type: string template_id: type: string vuln_id: type: string matcher_status: type: boolean created_at: type: string updated_at: type: string event: type: array items: type: object properties: info: type: object properties: name: type: string author: type: array items: type: array items: {} tags: type: array items: type: string severity: type: string reference: type: array items: type: string description: type: string remediation: type: string metadata: type: object properties: vendor: type: string product: type: string framework: type: string shodan-query: type: string censys-query: type: string publicwww-query: type: string google-query: type: string verified: type: boolean max-request: type: integer total-request: type: integer classification: type: object properties: cpe: type: string cve-id: type: array items: type: string cwe-id: type: array items: type: string cvss-score: type: number epss-score: type: number cvss-metrics: type: string epss-percentile: type: number ip: type: string host: type: string type: type: string request: type: string response: type: string timestamp: type: string matched-at: type: string template-id: type: string matcher-status: type: boolean curl-command: type: string extracted-results: type: string template-url: type: string template-path: type: string matcher-name: type: string extractor-name: type: string path: type: string matched-line: type: array items: type: integer result_type: type: string required: - scan_id - target - vuln_id - matcher_status - created_at - event - result_type stats: type: object properties: total: type: integer filters: type: object required: - results PostRetestTemplateResponse: description: Example response content: application/json: schema: type: object properties: message: type: string results: type: object properties: matcher_status: type: boolean retest_count: type: integer vuln_id: type: string target: type: string template_url: type: string created_at: type: string updated_at: type: string event: type: array items: type: object properties: host: type: string Info: type: object properties: name: type: string author: type: array items: type: string tags: type: array items: type: string severity: type: string reference: type: array items: type: string description: type: string remediation: type: string impact: type: string metadata: type: object properties: vendor: type: string product: type: string max-request: type: integer total-request: type: integer framework: type: string shodan-query: type: string fofa-query: type: string censys-query: type: string publicwww-query: type: string google-query: type: string verified: type: boolean classification: type: object properties: cpe: type: string cve-id: type: array items: type: string cwe-id: type: array items: type: string cvss-score: type: number epss-score: type: number cvss-metrics: type: string epss-percentile: type: number type: type: string request: type: string response: type: string timestamp: type: string template-id: type: string matcher-status: type: boolean ip: type: string matched-line: type: array items: type: integer matched-at: type: string curl-command: type: string matcher-name: type: string extracted-results: type: string template-url: type: string template-path: type: string extractor-name: type: string path: type: string GetScansVulnIdResponse: description: /scans/vuln/:vuln_id content: application/json: schema: type: object properties: scan_id: type: string target: type: string template_url: type: string vuln_id: type: string matcher_status: type: boolean created_at: type: string updated_at: type: string event: type: object properties: ip: type: string host: type: string Info: type: object properties: name: type: string author: type: array items: type: string tags: type: array items: type: string severity: type: string metadata: type: object properties: max-request: type: integer vendor: type: string product: type: string framework: type: string shodan-query: type: string fofa-query: type: string censys-query: type: string publicwww-query: type: string google-query: type: string verified: type: string total-request: type: integer classification: type: object properties: cpe: type: string cve-id: type: array items: type: string cwe-id: type: array items: type: string cvss-score: type: number epss-score: type: number epss-percentile: type: number cvss-metrics: type: string reference: type: array items: type: string description: type: string remediation: type: string impact: type: string required: - name type: type: string request: type: string response: type: string timestamp: type: string matched-at: type: string template-id: type: string curl-command: type: string matcher-status: type: boolean matcher-name: type: string extracted-results: type: array items: type: string template-url: type: string template-path: type: string extractor-name: type: string path: type: string matched-line: type: array items: type: integer required: - timestamp - template-id template_encoded: type: string template_path: type: string required: - scan_id - target - vuln_id - matcher_status - created_at ImportScanResponse: description: '' content: application/json: schema: type: object description: Scan is a single scan object properties: id: type: string message: type: string required: - id - message GetAssetsListResponse: description: Example response content: application/json: schema: type: object properties: message: type: string data: type: array items: type: object properties: asset_count: type: integer asset_id: type: string uploaded_at: type: string name: type: string required: - asset_count - asset_id - uploaded_at required: - message - data UploadAssetResponse: description: Example response content: application/json: schema: type: object properties: message: type: string upload_status: type: string asset_id: type: string uploaded_at: type: string required: - message GetUserAssetResponse: description: Example response content: application/json: schema: type: object properties: message: type: string asset_count: type: integer asset_id: type: string uploaded_at: type: string required: - message DeleteAssetResponse: description: Example response content: application/json: schema: type: object properties: message: type: string required: - message GetUserAPIKeyResponse: description: Example response content: application/json: schema: type: object properties: message: type: string api_key: type: string format: uuid required: - message - api_key DeleteUserAPIKeyResponse: description: Example response content: application/json: schema: type: object properties: message: type: string required: - message GetScanResultsFiltersResponse: description: Example response content: application/json: schema: type: object properties: message: type: string data: type: array items: type: object properties: value: type: string count: type: string required: - value - count required: - message - data GetScanResultStatsResponse: description: Example response content: application/json: schema: type: object properties: message: type: string stats: type: object properties: cves: type: integer matched: type: integer not_matched: type: integer severity: type: object total_count: type: integer total_target: type: integer total_scan: type: integer total_template: type: integer required: - message SetScanScheduleResponse: description: Example response content: application/json: schema: type: object properties: message: type: string GetScanScheduleResponse: description: Example response content: application/json: schema: type: array items: type: object properties: scan_frequency: enum: - every_2_minutes - daily - weekly - monthly scan_id: type: string schedule_last_run: type: string required: - scan_frequency - scan_id - schedule_last_run PatchAssetContentResponse: description: Example response content: application/json: schema: type: object properties: message: type: string update_status: type: string required: - message GetUserTemplateListResponse: description: Example response content: application/json: schema: type: object properties: data: type: array items: type: object properties: name: type: string id: type: string created_at: type: string updated_at: type: string shared_publicly: type: boolean required: - name - id - created_at message: type: string required: - message GetShareStatusResponse: description: Example response content: application/json: schema: type: object properties: is_public: type: boolean template_identifier: type: string message: type: string required: - message parameters: template_id: name: template_id in: query schema: type: string description: short uuid of requested template required: true user_name: name: user_name in: query required: true schema: type: string description: user name of logged in user requestBodies: UpdateTemplateRequest: content: application/json: schema: type: object properties: template: type: string template_id: type: string prompt: type: string required: - template - template_id CreateTemplateRequest: content: application/json: schema: type: object properties: template: type: string GenerateTemplateRequest: content: application/json: schema: type: object properties: prompt: type: string required: - prompt RetestTemplateRequest: content: application/json: schema: type: object properties: template_encoded: type: string target: type: string template_path: type: string template_url: type: string template_id: type: string vuln_id: type: string ShareTemplateRequest: content: application/json: schema: type: object properties: template_id: type: string is_public: type: boolean TriggerUserScanRequest: content: application/json: schema: type: object properties: targets: type: array items: type: string templates: type: array items: type: string assets: type: array items: type: string private_templates: type: array items: type: object properties: name: type: string contents: type: string scan_id: type: string name: type: string recommended: type: boolean all: type: boolean SetScanScheduleRequest: content: application/json: schema: type: object properties: targets: type: array items: type: string templates: type: array items: type: string assets: type: array items: type: string private_templates: type: array items: type: object properties: name: type: string contents: type: string scan_id: type: string scan_frequency: enum: - daily - monthly - weekly recommended: type: boolean all: type: boolean required: - scan_frequency description: '' UpdateAssetRequest: content: application/json: schema: type: object properties: name: type: string required: - name UpdateScanRequest: content: application/json: schema: type: object properties: name: type: string required: - name PostFeedbackRequest: content: application/json: schema: type: object properties: feedback_text: type: string required: - feedback_text x-internal: false security: - X-API-Key: []