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/editor/scan' servers: - url: 'https://api.projectdiscovery.io' description: Production - url: 'https://api.dev.projectdiscovery.io' description: Development - url: 'http://localhost:8080' description: Localhost paths: /v1/scans: get: summary: Get Scan List tags: - scans responses: '200': $ref: '#/components/responses/GetScansStatusResponse' '400': $ref: '#/components/responses/ErrorResponse' '401': $ref: '#/components/responses/ErrorResponse' '499': $ref: '#/components/responses/ErrorResponse' '500': $ref: '#/components/responses/ErrorResponse' default: $ref: '#/components/responses/ErrorResponse' operationId: get-v1-scans description: Get user scans status security: - X-API-Key: [] parameters: - schema: type: integer in: query name: offset description: number of scan-status results to skip - schema: type: integer in: query name: limit description: number of scan-status results to fetch - 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, scheduled)' - schema: type: string in: query name: sort_asc description: 'comma separated ascending sorting e.g sort_asc=created_at,severity' - schema: type: string in: query name: sort_desc description: 'comma separated descending sorting e.g sort_desc=created_at,severity' x-internal: false post: summary: Create Scan tags: - scans operationId: post-v1-scans responses: '200': $ref: '#/components/responses/TriggerUserScanResponse' '400': $ref: '#/components/responses/ErrorResponse' '401': $ref: '#/components/responses/ErrorResponse' '500': $ref: '#/components/responses/ErrorResponse' default: $ref: '#/components/responses/ErrorResponse' 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 tags: - scans responses: '200': $ref: '#/components/responses/GetScanDetailsResponse' '400': $ref: '#/components/responses/ErrorResponse' '401': $ref: '#/components/responses/ErrorResponse' '404': $ref: '#/components/responses/ErrorResponse' '499': $ref: '#/components/responses/ErrorResponse' '500': $ref: '#/components/responses/ErrorResponse' default: $ref: '#/components/responses/ErrorResponse' operationId: get-v1-scans-scan_id description: Get details of a scan by scan ID security: - X-API-Key: [] delete: summary: Delete Scan tags: - scans operationId: delete-v1-scans-scan_id responses: '200': $ref: '#/components/responses/DeleteScansResponse' '400': $ref: '#/components/responses/ErrorResponse' '401': $ref: '#/components/responses/ErrorResponse' '500': $ref: '#/components/responses/ErrorResponse' default: $ref: '#/components/responses/ErrorResponse' description: Delete a scan using scanId security: - X-API-Key: [] patch: summary: Update Scan tags: - scans operationId: patch-v1-scans-scan_id responses: '200': $ref: '#/components/responses/MessageResponse' '400': $ref: '#/components/responses/ErrorResponse' '401': $ref: '#/components/responses/ErrorResponse' '500': $ref: '#/components/responses/ErrorResponse' default: $ref: '#/components/responses/ErrorResponse' description: Update scan metadata security: - X-API-Key: [] requestBody: $ref: '#/components/requestBodies/UpdateScanRequest' /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/ErrorResponse' '401': $ref: '#/components/responses/ErrorResponse' '500': $ref: '#/components/responses/ErrorResponse' default: $ref: '#/components/responses/ErrorResponse' description: Import scan details security: - X-API-Key: [] requestBody: content: application/octet-stream: schema: type: string format: binary /v1/admin/scan/token: post: tags: - internal summary: Set Scan token for user operationId: post-v1-admin-scan-token responses: '200': $ref: '#/components/responses/MessageResponse' '400': $ref: '#/components/responses/MessageResponse' '401': $ref: '#/components/responses/MessageResponse' '500': $ref: '#/components/responses/MessageResponse' security: - X-API-Key: [] requestBody: content: application/json: schema: type: object required: - base_token - extra_token - email properties: base_token: type: number extra_token: type: number email: type: string description: Comma separated emails validity_months: type: integer minimum: 1 maximum: 12 default: 12 x-internal: true parameters: [] get: summary: Get Token Usage (admin) tags: - internal responses: '200': $ref: '#/components/responses/GetScansTokenResponse' '400': $ref: '#/components/responses/MessageResponse' '401': $ref: '#/components/responses/MessageResponse' '404': $ref: '#/components/responses/MessageResponse' '500': $ref: '#/components/responses/MessageResponse' operationId: get-v1-admin-scan-token description: Get token usage for given user parameters: - schema: type: integer in: query name: user_id description: user id to get scan token usage for required: true '/v1/scans/{scan_id}/stop': parameters: - schema: type: string name: scan_id in: path required: true post: summary: Stop Scan tags: - scans operationId: post-v1-scans-scan_id-stop responses: '200': $ref: '#/components/responses/DeleteScansResponse' '400': $ref: '#/components/responses/ErrorResponse' '401': $ref: '#/components/responses/ErrorResponse' '500': $ref: '#/components/responses/ErrorResponse' default: $ref: '#/components/responses/ErrorResponse' security: - X-API-Key: [] description: 'Stop a running scan, not applied in any other state.' '/v1/scans/{scan_id}/rescan': parameters: - schema: type: string name: scan_id in: path required: true post: summary: Rescan scan tags: - scans operationId: post-v1-scans-scan_id-rescan responses: '200': $ref: '#/components/responses/TriggerUserScanResponse' '400': $ref: '#/components/responses/ErrorResponse' '401': $ref: '#/components/responses/ErrorResponse' '500': $ref: '#/components/responses/ErrorResponse' default: $ref: '#/components/responses/ErrorResponse' security: - X-API-Key: [] description: Re-run a existing scan '/v1/scans/vuln/{vuln_id}': get: summary: Get Scan Vulnerability tags: - results responses: '200': $ref: '#/components/responses/GetScansVulnIdResponse' '400': $ref: '#/components/responses/ErrorResponse' '401': $ref: '#/components/responses/ErrorResponse' '500': $ref: '#/components/responses/ErrorResponse' default: $ref: '#/components/responses/ErrorResponse' operationId: 'get-v1-scans-vuln-:vulnId' description: 'Get scan result vulnerability by ID ' security: - X-API-Key: [] parameters: - schema: type: string name: vuln_id in: path required: true description: vulnerability ID '/v1/scans/result/{scanId}': get: summary: Get Scan Results tags: - results responses: '200': $ref: '#/components/responses/GetScanResultsResponse' '400': $ref: '#/components/responses/ErrorResponse' '401': $ref: '#/components/responses/ErrorResponse' '499': $ref: '#/components/responses/ErrorResponse' '500': $ref: '#/components/responses/ErrorResponse' default: $ref: '#/components/responses/ErrorResponse' 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 ' - schema: type: integer in: query name: offset 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' - schema: type: string in: query description: 'filter by time ( last_day, last_week, last_month )' name: time - schema: type: string in: query name: vuln_status description: 'comma separated vuln_status e.g vuln_status=open,fixed' - schema: type: string in: query name: sort_asc description: 'comma separated ascending sorting e.g sort_asc=created_at,severity' - schema: type: string in: query name: sort_desc description: 'comma separated descending sorting e.g sort_desc=created_at,severity' parameters: - schema: type: string name: scanId in: path required: true description: scan specific results (by scanId) /v1/scans/results: get: summary: Get All Results tags: - results responses: '200': $ref: '#/components/responses/GetScanResultsResponse' '400': $ref: '#/components/responses/ErrorResponse' '401': $ref: '#/components/responses/ErrorResponse' '499': $ref: '#/components/responses/ErrorResponse' '500': $ref: '#/components/responses/ErrorResponse' default: $ref: '#/components/responses/ErrorResponse' operationId: get-v1-results description: Get scans results of a user parameters: - schema: type: integer in: query name: offset description: number of results to skip - schema: type: integer in: query 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 )' - schema: type: string in: query name: vuln_status description: 'comma separated vuln_status e.g vuln_status=open,fixed' - schema: type: string in: query name: tags description: 'comma separated tags e.g tags=xss,cve' - schema: type: string in: query name: sort_asc description: 'comma separated ascending sorting e.g sort_asc=created_at,severity' - schema: type: string in: query name: sort_desc description: 'comma separated descending sorting e.g sort_desc=created_at,severity' - in: query name: labels schema: type: string description: 'filter by comma separated labels e.g labels=p1,p2' security: - X-API-Key: [] parameters: [] /v1/scans/stats: get: summary: Get All Scan Stats tags: - scans responses: '200': $ref: '#/components/responses/ScanStatsResponse' '401': $ref: '#/components/responses/ErrorResponse' '403': $ref: '#/components/responses/ErrorResponse' '499': $ref: '#/components/responses/ErrorResponse' '500': $ref: '#/components/responses/ErrorResponse' default: $ref: '#/components/responses/ErrorResponse' operationId: get-v1-scans-stats parameters: [] security: - X-API-Key: [] description: Get all scans statistics for a user '/v1/scans/{vuln_id}/retest': parameters: - schema: type: string name: vuln_id in: path required: true post: summary: Retest vulnerability tags: - scans operationId: post-v1-scans-vuln_id-retest responses: '200': $ref: '#/components/responses/PostRescanVulnResponse' '400': $ref: '#/components/responses/ErrorResponse' '401': $ref: '#/components/responses/ErrorResponse' '500': $ref: '#/components/responses/ErrorResponse' default: $ref: '#/components/responses/ErrorResponse' security: - X-API-Key: [] description: Retest a scan vulnerability /v1/scans/results/filters: get: summary: Get Scans Result Filters tags: - results responses: '200': $ref: '#/components/responses/GetScanResultsFiltersResponse' '401': $ref: '#/components/responses/ErrorResponse' '499': $ref: '#/components/responses/ErrorResponse' '500': $ref: '#/components/responses/ErrorResponse' default: $ref: '#/components/responses/ErrorResponse' operationId: get-v1-scans-results-filters description: Get users scan-result filters security: - X-API-Key: [] parameters: - schema: type: integer in: query name: offset description: The number of items to skip before starting to collect the result set - schema: type: integer in: query name: limit description: The numbers of items to return - 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 )' - schema: type: string in: query name: vuln_status description: 'comma separated vuln_status e.g vuln_status=open,fixed' - schema: type: string in: query name: sort_asc description: 'comma separated ascending sorting e.g sort_asc=created_at,severity' - schema: type: string in: query name: sort_desc description: 'comma separated descending sorting e.g sort_desc=created_at,severity' - schema: type: string in: query name: tags description: 'comma separated tags e.g tags=xss,cve' - schema: type: string in: query name: not_hosts description: 'comma separated hosts that should not be returned e.g. not_hosts=https://example.com,https://x.com' - schema: type: string in: query name: not_severity description: 'comma separated severity that should not be returned e.g. not_severity=info,high' - schema: type: string in: query name: not_templates description: 'comma separated templates that should not be returned e.g. not_templates=tech-detect,azure-takeover' - in: query name: labels schema: type: string description: 'filter by comma separated labels e.g labels=p1,p2' /v1/scans/results/stats: get: summary: Get Results Stats tags: - results responses: '200': $ref: '#/components/responses/GetScanResultStatsResponse' '400': $ref: '#/components/responses/ErrorResponse' '401': $ref: '#/components/responses/ErrorResponse' '499': $ref: '#/components/responses/ErrorResponse' '500': $ref: '#/components/responses/ErrorResponse' default: $ref: '#/components/responses/ErrorResponse' operationId: get-v1-scans-results-stats description: Get user scan results stats security: - X-API-Key: [] parameters: - schema: type: integer in: query name: offset description: The number of items to skip before starting to collect the result set - schema: type: integer in: query name: limit description: 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 - schema: type: string in: query name: vuln_status description: 'comma separated vuln_status e.g vuln_status=open,fixed' - schema: type: string in: query name: tags description: 'comma separated tags e.g tags=xss,cve' - schema: type: string in: query name: not_hosts description: 'comma separated hosts that should not be returned e.g. not_hosts=https://example.com,https://x.com' - schema: type: string in: query name: not_severity description: 'comma separated severity that should not be returned e.g. not_severity=info,high' - schema: type: string in: query name: not_templates description: 'comma separated templates that should not be returned e.g. not_templates=tech-detect,azure-takeover' - in: query name: labels schema: type: string description: 'filter by comma separated labels e.g labels=p1,p2' /v1/scans/schedule: get: summary: Get Scan Schedules tags: - scans responses: '200': $ref: '#/components/responses/GetScanScheduleResponse' '400': $ref: '#/components/responses/GetScanScheduleResponse' '401': $ref: '#/components/responses/SetScanScheduleResponse' '500': $ref: '#/components/responses/SetScanScheduleResponse' 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' '400': $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/DeleteScanScheduleResponse' '400': $ref: '#/components/responses/DeleteScanScheduleResponse' '401': $ref: '#/components/responses/DeleteScanScheduleResponse' '500': $ref: '#/components/responses/DeleteScanScheduleResponse' 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/retest: get: summary: Get All Retest tags: - retests 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: integer 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 tags: - retests operationId: post-v1-retest responses: '200': $ref: '#/components/responses/PostRetestTemplateResponse' '400': $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/retest/{vuln_id}': get: summary: Get Retest Vulnerability tags: - retests responses: '200': $ref: '#/components/responses/GetSingleRetestResultResponse' '400': $ref: '#/components/responses/GetSingleRetestResultResponse' '401': $ref: '#/components/responses/GetSingleRetestResultResponse' '500': $ref: '#/components/responses/GetSingleRetestResultResponse' operationId: get-v1-retest-vuln_id security: - X-API-Key: [] description: Get retest vulnerability (retests from editor) parameters: - schema: type: string name: vuln_id in: path required: true /v1/assets: get: summary: Get Asset List tags: - assets responses: '200': $ref: '#/components/responses/GetAssetsListResponse' '401': $ref: '#/components/responses/ErrorResponse' '500': $ref: '#/components/responses/ErrorResponse' default: $ref: '#/components/responses/ErrorResponse' operationId: get-v1-assets description: Get user asset list security: - X-API-Key: [] parameters: - schema: type: integer in: query name: offset description: number of assets to skip - schema: type: integer in: query name: limit description: number of assets to fetch - 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/ErrorResponse' '500': $ref: '#/components/responses/ErrorResponse' default: $ref: '#/components/responses/ErrorResponse' 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: Manually upload user assets (uploaded to manual enumeration) '/v1/assets/{asset_Id}': parameters: - schema: type: string name: asset_Id in: path required: true get: summary: Get Asset Metadata tags: - assets responses: '200': $ref: '#/components/responses/GetUserAssetResponse' '401': $ref: '#/components/responses/ErrorResponse' '500': $ref: '#/components/responses/ErrorResponse' default: $ref: '#/components/responses/ErrorResponse' operationId: get-v1-assets-assetId security: - X-API-Key: [] description: Get asset metadata delete: summary: Delete Asset tags: - assets operationId: delete-v1-assets-asset_Id responses: '200': $ref: '#/components/responses/DeleteAssetResponse' '401': $ref: '#/components/responses/ErrorResponse' '500': $ref: '#/components/responses/ErrorResponse' default: $ref: '#/components/responses/ErrorResponse' security: - X-API-Key: [] description: Delete asset by ID 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': $ref: '#/components/responses/ErrorResponse' '500': $ref: '#/components/responses/ErrorResponse' default: $ref: '#/components/responses/ErrorResponse' security: - X-API-Key: [] requestBody: $ref: '#/components/requestBodies/UpdateAssetRequest' description: Update asset metadata '/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': $ref: '#/components/responses/ErrorResponse' '500': $ref: '#/components/responses/ErrorResponse' default: $ref: '#/components/responses/ErrorResponse' operationId: get-v1-assets-id-contents security: - X-API-Key: [] description: Get user asset content 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/ErrorResponse' '500': $ref: '#/components/responses/ErrorResponse' default: $ref: '#/components/responses/ErrorResponse' 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 ' description: Update existing asset content /v1/user/feedback: post: summary: Create 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: Shared Response content: application/json: schema: type: object required: - message properties: message: type: string '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' description: Add user feedback /v1/user/delete/code: parameters: [] post: summary: Email user deletion verification code tags: - users responses: '200': $ref: '#/components/responses/MessageResponse' '400': $ref: '#/components/responses/MessageResponse' '403': $ref: '#/components/responses/MessageResponse' '500': $ref: '#/components/responses/MessageResponse' operationId: post-v1-user-delete-code security: - X-API-Key: [] description: generate and email user deletion verification code /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: [] description: Get user profile and permissions delete: summary: Delete user from system along with all data tags: - users requestBody: content: application/json: schema: type: object properties: code: type: string required: - code responses: '200': $ref: '#/components/responses/MessageResponse' '400': $ref: '#/components/responses/MessageResponse' '403': $ref: '#/components/responses/MessageResponse' '500': $ref: '#/components/responses/MessageResponse' operationId: delete-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' '404': $ref: '#/components/responses/GetUserAPIKeyResponse' '500': $ref: '#/components/responses/GetUserAPIKeyResponse' operationId: get-v1-user-apikey security: - X-API-Key: [] description: Get user 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: [] description: 'Create user api-key, this won''t create a new api-key if it already exists.' 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: [] description: Delete user api-key /v1/user/apikey/rotate: post: summary: Rotate API Key tags: - users operationId: post-v1-user-apikey-rotate responses: '200': $ref: '#/components/responses/PostApiKeyRotateResponse' '401': $ref: '#/components/responses/PostApiKeyRotateResponse' '500': $ref: '#/components/responses/PostApiKeyRotateResponse' security: - X-API-Key: [] description: Rotate user 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: Get public-template list /v1/template/early: get: summary: Get Early Template List tags: - templates responses: '200': $ref: '#/components/responses/GetEarlyTempateList' '400': $ref: '#/components/responses/MessageResponse' '403': $ref: '#/components/responses/MessageResponse' '500': $ref: '#/components/responses/MessageResponse' operationId: get-v1-early-templates description: Get pdcp early template lists security: - X-API-Key: [] parameters: [] '/v1/template/early/{id}': get: summary: Get Early Template tags: - templates responses: '200': description: Shared Response content: text/plain: schema: type: string '400': $ref: '#/components/responses/MessageResponse' '403': $ref: '#/components/responses/MessageResponse' '404': $ref: '#/components/responses/MessageResponse' '500': $ref: '#/components/responses/MessageResponse' operationId: get-v1-early-templates-id description: Get early template text security: - X-API-Key: [] parameters: - schema: type: string name: id in: path required: true /v1/template/public/*: get: summary: Get Public Template tags: - templates responses: '200': description: OK headers: {} content: text/plain: schema: type: string operationId: get-v1-template-public-path description: Get public template text using path /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: [] description: Get user private(my) templates parameters: [] post: summary: Create Template tags: - templates operationId: post-v1-template responses: '200': $ref: '#/components/responses/CreateTemplateResponse' '400': $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 prompt: type: string required: - template description: Create a private template patch: summary: Update Template tags: - templates operationId: patch-v1-template responses: '200': $ref: '#/components/responses/UpdateTemplateResponse' '400': $ref: '#/components/responses/UpdateTemplateResponse' '401': $ref: '#/components/responses/UpdateTemplateResponse' '500': $ref: '#/components/responses/UpdateTemplateResponse' security: - X-API-Key: [] requestBody: $ref: '#/components/requestBodies/UpdateTemplateRequest' description: 'Update existing private template ' '/v1/template/{template_id}': parameters: - schema: type: string name: template_id in: path required: true description: 'unique Id of template ' get: summary: Get Template tags: - templates responses: '200': $ref: '#/components/responses/GetTemplateResponse' '400': $ref: '#/components/responses/GetTemplateResponse' '401': $ref: '#/components/responses/GetTemplateResponse' '404': $ref: '#/components/responses/MessageResponse' '500': $ref: '#/components/responses/GetTemplateResponse' operationId: get-v1-template-t_id security: - X-API-Key: [] description: Get private template text using ID delete: summary: Delete Template tags: - templates operationId: delete-v1-template-template_id responses: '200': $ref: '#/components/responses/DeleteTemplateResponse' '400': $ref: '#/components/responses/DeleteTemplateResponse' '401': $ref: '#/components/responses/DeleteTemplateResponse' '500': $ref: '#/components/responses/DeleteTemplateResponse' security: - X-API-Key: [] description: Delete private template using ID /v1/template/ai: post: summary: Generate AI Template tags: - templates operationId: post-v1-template-ai responses: '200': $ref: '#/components/responses/GenerateTemplateResponse' '400': $ref: '#/components/responses/GenerateTemplateResponse' '401': $ref: '#/components/responses/GenerateTemplateResponse' '403': $ref: '#/components/responses/GenerateTemplateResponse' '500': $ref: '#/components/responses/GenerateTemplateResponse' requestBody: $ref: '#/components/requestBodies/GenerateTemplateRequest' security: - X-API-Key: [] description: Generate a private template with AI Engine /v1/template/share: get: summary: Get Share Status tags: - templates responses: '200': $ref: '#/components/responses/GetShareStatusResponse' '400': $ref: '#/components/responses/GetShareStatusResponse' '401': $ref: '#/components/responses/GetShareStatusResponse' '404': $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 description: Get template sahred status (shared-with-link) post: summary: Share Template tags: - templates operationId: post-v1-template-share responses: '200': $ref: '#/components/responses/ShareTemplateResponse' '400': $ref: '#/components/responses/ShareTemplateResponse' '401': $ref: '#/components/responses/ShareTemplateResponse' '404': $ref: '#/components/responses/ShareTemplateResponse' '500': $ref: '#/components/responses/ShareTemplateResponse' security: - X-API-Key: [] requestBody: $ref: '#/components/requestBodies/ShareTemplateRequest' description: Share a private template (shared-with-link) '/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' '400': $ref: '#/components/responses/GetSharedTemplateResponse' '401': $ref: '#/components/responses/GetSharedTemplateResponse' '404': $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 description: Get a shared template text /v1/admin/user/profile: patch: summary: Patch User Profile operationId: patch-v1-admin-user-profile tags: - internal responses: '200': $ref: '#/components/responses/PatchUserProfileResponse' '401': $ref: '#/components/responses/PatchUserProfileResponse' '500': $ref: '#/components/responses/PatchUserProfileResponse' requestBody: $ref: '#/components/requestBodies/PatchUserProfile' security: - X-API-Key: [] description: (ADMIN) Patch a user profile /v1/admin/users: post: summary: Create New User operationId: post-v1-admin-users tags: - internal responses: '200': $ref: '#/components/responses/PostCreateUserResponse' '400': $ref: '#/components/responses/PostCreateUserResponse' '401': $ref: '#/components/responses/PostCreateUserResponse' '500': $ref: '#/components/responses/PostCreateUserResponse' security: - X-API-Key: [] requestBody: content: application/json: schema: type: object properties: ai_status: type: boolean scan_status: type: boolean static_scan: type: boolean early_template: type: boolean email: type: string invite_email: type: boolean required: - email description: (ADMIN) Create a new user /v1/user/team: get: summary: Get Team operationId: get-v1-user-team tags: - internal responses: '200': $ref: '#/components/responses/GetTeamResponse' '401': $ref: '#/components/responses/GetTeamResponse' '403': $ref: '#/components/responses/GetTeamResponse' '500': $ref: '#/components/responses/GetTeamResponse' security: - X-API-Key: [] description: Get a team metadata post: summary: Create Team tags: - internal responses: '200': $ref: '#/components/responses/MessageResponse' '400': $ref: '#/components/responses/MessageResponse' '401': $ref: '#/components/responses/MessageResponse' '500': $ref: '#/components/responses/MessageResponse' operationId: post-v1-user-team requestBody: $ref: '#/components/requestBodies/CreateTeamRequest' security: - X-API-Key: [] description: 'Create a new team ' patch: summary: Update Team operationId: patch-v1-user-team tags: - internal responses: '200': $ref: '#/components/responses/UpdateTeamResponse' '400': $ref: '#/components/responses/UpdateTeamResponse' '401': $ref: '#/components/responses/UpdateTeamResponse' '403': $ref: '#/components/responses/UpdateTeamResponse' '500': $ref: '#/components/responses/UpdateTeamResponse' security: - X-API-Key: [] requestBody: $ref: '#/components/requestBodies/CreateTeamRequest' description: Update a existing team delete: summary: Delete Team tags: - internal responses: '200': description: OK '400': $ref: '#/components/responses/MessageResponse' '403': $ref: '#/components/responses/MessageResponse' '500': $ref: '#/components/responses/MessageResponse' operationId: delete-v1-user-team security: - X-API-Key: [] description: Delete team (require 0 members) /v1/user/team/member: get: summary: Get Team Members tags: - internal responses: '200': $ref: '#/components/responses/GetTeamMembersResponse' '401': $ref: '#/components/responses/GetTeamMembersResponse' '403': $ref: '#/components/responses/GetTeamMembersResponse' '500': $ref: '#/components/responses/GetTeamMembersResponse' operationId: get-v1-user-team-member security: - X-API-Key: [] description: Get team member list post: summary: Add Team Member operationId: post-v1-user-team-member tags: - internal responses: '200': $ref: '#/components/responses/MessageResponse' '400': $ref: '#/components/responses/MessageResponse' '401': $ref: '#/components/responses/MessageResponse' '403': $ref: '#/components/responses/MessageResponse' '500': $ref: '#/components/responses/MessageResponse' security: - X-API-Key: [] requestBody: $ref: '#/components/requestBodies/AddTeamMemberRequest' description: Invite a new team member delete: summary: Delete Team Member operationId: delete-v1-user-team-member tags: - internal responses: '200': $ref: '#/components/responses/MessageResponse' '400': $ref: '#/components/responses/MessageResponse' '401': $ref: '#/components/responses/MessageResponse' '403': $ref: '#/components/responses/MessageResponse' '500': $ref: '#/components/responses/MessageResponse' security: - X-API-Key: [] requestBody: $ref: '#/components/requestBodies/DeleteTeamMemberRequest' description: Delete a team member using member email patch: summary: Update Team Member operationId: patch-v1-user-team-member tags: - internal responses: '200': $ref: '#/components/responses/MessageResponse' '400': $ref: '#/components/responses/MessageResponse' '401': $ref: '#/components/responses/MessageResponse' '403': $ref: '#/components/responses/MessageResponse' '500': $ref: '#/components/responses/MessageResponse' requestBody: $ref: '#/components/requestBodies/InviteTeamMemberRequest' description: Accept team invite /v1/admin/team/member: post: summary: Add Team Member (Admin) operationId: post-v1-admin-team-member tags: - internal responses: '200': $ref: '#/components/responses/MessageResponse' '400': $ref: '#/components/responses/MessageResponse' '401': $ref: '#/components/responses/MessageResponse' '403': $ref: '#/components/responses/MessageResponse' '500': $ref: '#/components/responses/MessageResponse' security: - X-API-Key: [] requestBody: $ref: '#/components/requestBodies/AdminAddTeamMemberRequest' description: (ADMIN) Invite a new team member /v1/scans/scan_ips: get: summary: Get Scan IPs tags: - scans responses: '200': $ref: '#/components/responses/StaticScanIPsResponse' '400': $ref: '#/components/responses/ErrorResponse' '401': $ref: '#/components/responses/ErrorResponse' '403': $ref: '#/components/responses/ErrorResponse' '500': $ref: '#/components/responses/ErrorResponse' default: $ref: '#/components/responses/ErrorResponse' operationId: get-v1-scans-scan_ips security: - X-API-Key: [] description: Get user static scan IPs list '/v1/scans/{scan_id}/import': parameters: - schema: type: string name: scan_id in: path required: true patch: summary: Update Imported Scan operationId: patch-v1-scans-scan_id-import tags: - scans responses: '200': $ref: '#/components/responses/MessageResponse' '401': $ref: '#/components/responses/ErrorResponse' '403': $ref: '#/components/responses/ErrorResponse' '500': $ref: '#/components/responses/ErrorResponse' default: $ref: '#/components/responses/ErrorResponse' description: Import more results to a given scan requestBody: content: application/octet-stream: schema: type: string format: binary security: - X-API-Key: [] '/v1/scans/{scan_id}/export': parameters: - schema: type: string name: scan_id in: path required: true get: summary: Export Scan tags: - scans responses: '200': description: OK content: application/octet-stream: schema: type: string '401': $ref: '#/components/responses/ErrorResponse' '403': $ref: '#/components/responses/ErrorResponse' '500': $ref: '#/components/responses/ErrorResponse' default: $ref: '#/components/responses/ErrorResponse' operationId: get-v1-scans-scan_id-export parameters: - schema: type: string enum: - json - csv - pdf in: query name: type description: 'json, csv, pdf (default json)' security: - X-API-Key: [] description: Export scan results post: summary: Export Filtered Scan tags: - scans responses: '200': description: OK content: application/octet-stream: schema: type: string '401': $ref: '#/components/responses/ErrorResponse' '403': $ref: '#/components/responses/ErrorResponse' '500': $ref: '#/components/responses/ErrorResponse' default: $ref: '#/components/responses/ErrorResponse' operationId: post-v1-scans-scan_id-export parameters: - schema: type: string enum: - json - csv - pdf in: query name: type description: 'json, csv, pdf (default json)' requestBody: content: application/json: schema: type: object properties: ids: type: array items: type: string vuln_status: type: string severity: type: array items: type: string host: type: array items: type: string template: type: array items: type: string search: type: string security: - X-API-Key: [] description: Export filtered scan results '/v1/scans/vuln/{vuln_id}/export': parameters: - schema: type: string name: vuln_id in: path required: true get: summary: Export Scan Vulnerability tags: - scans responses: '200': description: OK content: application/octet-stream: schema: type: string '401': $ref: '#/components/responses/ErrorResponse' '403': $ref: '#/components/responses/ErrorResponse' '500': $ref: '#/components/responses/ErrorResponse' default: $ref: '#/components/responses/ErrorResponse' operationId: get-v1-scans-vuln-vuln_id-export parameters: - schema: type: string enum: - json - csv in: query name: type description: 'json, csv (default json)' security: - X-API-Key: [] description: Export a specific scan vulnerability /v1/scans/vulns: patch: summary: Update Vulnerability Status operationId: patch-v1-scans-vulns tags: - scans responses: '200': $ref: '#/components/responses/MessageResponse' '400': $ref: '#/components/responses/ErrorResponse' '401': $ref: '#/components/responses/ErrorResponse' '500': $ref: '#/components/responses/ErrorResponse' default: $ref: '#/components/responses/ErrorResponse' requestBody: $ref: '#/components/requestBodies/PatchScanVulnsRequest' security: - X-API-Key: [] description: Batch update vulnerability status delete: summary: Delete Scan Vulnerability operationId: delete-v1-scans-vulns tags: - scans responses: '200': $ref: '#/components/responses/MessageResponse' '400': $ref: '#/components/responses/ErrorResponse' '401': $ref: '#/components/responses/ErrorResponse' '500': $ref: '#/components/responses/ErrorResponse' default: $ref: '#/components/responses/ErrorResponse' requestBody: $ref: '#/components/requestBodies/DeleteVulnsRequest' security: - X-API-Key: [] description: Batch Delete scan vulnerability /v1/scans/vulns/labels: patch: summary: Update Vulnerability Labels operationId: patch-v1-scans-vulns-labels tags: - scans responses: '200': $ref: '#/components/responses/MessageResponse' '400': $ref: '#/components/responses/ErrorResponse' '401': $ref: '#/components/responses/ErrorResponse' '500': $ref: '#/components/responses/ErrorResponse' default: $ref: '#/components/responses/ErrorResponse' requestBody: $ref: '#/components/requestBodies/PatchScanVulnsLabelsRequest' security: - X-API-Key: [] description: Batch update vulnerability labels /v1/scans/config: get: summary: Get Configs List tags: - configurations responses: '200': description: OK content: application/json: schema: type: array items: $ref: '#/components/schemas/ConfigResponse' '400': $ref: '#/components/responses/ErrorResponse' '401': $ref: '#/components/responses/ErrorResponse' '403': $ref: '#/components/responses/ErrorResponse' '500': $ref: '#/components/responses/ErrorResponse' default: $ref: '#/components/responses/ErrorResponse' operationId: get-v1-scans-config parameters: - schema: enum: - scan - reporting - template - alerting - cloudlist type: string in: query name: type description: filter by the type of config - schema: type: string in: query name: search description: search by config name - schema: type: integer in: query name: limit description: The numbers of items to return - schema: type: integer in: query description: The number of items to skip before starting to collect the result set name: offset security: - X-API-Key: [] description: Get user scan configurations list post: summary: Add Config operationId: post-v1-scans-config tags: - configurations responses: '200': $ref: '#/components/responses/PostScanConfigResponse' '400': $ref: '#/components/responses/ErrorResponse' '401': $ref: '#/components/responses/ErrorResponse' '403': $ref: '#/components/responses/ErrorResponse' '500': $ref: '#/components/responses/ErrorResponse' default: $ref: '#/components/responses/ErrorResponse' requestBody: content: application/json: schema: type: object properties: config: type: string config_type: $ref: '#/components/schemas/ConfigTypeEnum' name: type: string global: type: boolean required: - config - name security: - X-API-Key: [] description: Add a new scan configuration '/v1/scans/config/{config_id}': parameters: - schema: type: string name: config_id in: path required: true get: summary: Get Config tags: - configurations responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/ConfigResponse' '400': $ref: '#/components/responses/ErrorResponse' '401': $ref: '#/components/responses/ErrorResponse' '403': $ref: '#/components/responses/ErrorResponse' '500': $ref: '#/components/responses/ErrorResponse' default: $ref: '#/components/responses/ErrorResponse' operationId: get-v1-scans-config-config_id security: - X-API-Key: [] description: Get a scan configuration patch: summary: Update Config operationId: patch-v1-scans-config-config_id tags: - configurations responses: '200': $ref: '#/components/responses/PostScanConfigResponse' '400': $ref: '#/components/responses/ErrorResponse' '401': $ref: '#/components/responses/ErrorResponse' '403': $ref: '#/components/responses/ErrorResponse' '500': $ref: '#/components/responses/ErrorResponse' default: $ref: '#/components/responses/ErrorResponse' requestBody: content: application/json: schema: type: object properties: name: type: string config: type: string global: type: boolean security: - X-API-Key: [] description: Update existing scan configuration delete: summary: Delete Config operationId: delete-v1-scans-config-config_id tags: - configurations responses: '200': $ref: '#/components/responses/MessageResponse' '400': $ref: '#/components/responses/ErrorResponse' '401': $ref: '#/components/responses/ErrorResponse' '403': $ref: '#/components/responses/ErrorResponse' '500': $ref: '#/components/responses/ErrorResponse' default: $ref: '#/components/responses/ErrorResponse' security: - X-API-Key: [] description: Delete scan configuration /v1/scans/config/verify: post: summary: Verify Config tags: - configurations responses: '200': $ref: '#/components/responses/VerifyConfigResponse' '400': $ref: '#/components/responses/ErrorResponse' '401': $ref: '#/components/responses/ErrorResponse' '500': $ref: '#/components/responses/ErrorResponse' default: $ref: '#/components/responses/ErrorResponse' operationId: post-v1-scans-config-verify requestBody: $ref: '#/components/requestBodies/VerifyConfigRequest' security: - X-API-Key: [] description: Verify scan configuration '/v1/scans/{scan_id}/config': parameters: - schema: type: string name: scan_id in: path required: true get: summary: Get Scan Config tags: - scans responses: '200': description: OK headers: {} content: application/json: schema: $ref: '#/components/schemas/ScanConfig' '400': $ref: '#/components/responses/ErrorResponse' '401': $ref: '#/components/responses/ErrorResponse' '500': $ref: '#/components/responses/ErrorResponse' default: $ref: '#/components/responses/ErrorResponse' operationId: get-scans-id-config security: - X-API-Key: [] description: 'Get scan metadata config ' patch: summary: Update Scan Config operationId: patch-scans-id-config tags: - scans responses: '200': description: OK content: application/json: schema: type: object properties: ok: type: boolean '400': $ref: '#/components/responses/ErrorResponse' '401': $ref: '#/components/responses/ErrorResponse' '500': $ref: '#/components/responses/ErrorResponse' default: $ref: '#/components/responses/ErrorResponse' requestBody: content: application/json: schema: $ref: '#/components/schemas/ScanConfigUpdateItem' security: - X-API-Key: [] description: Update scan metadata config parameters: - schema: type: string enum: - append - replace default: append in: query name: update_type description: 'Update type: append or replace' /v1/payment/stripe/checkout_session: post: summary: Create Subscription Checkout operationId: post-v1-payment-stripe-checkout_session tags: - internal responses: '200': description: OK content: application/json: schema: type: object properties: message: type: string payment_url: type: string required: - message '400': $ref: '#/components/responses/MessageResponse' '401': $ref: '#/components/responses/MessageResponse' '500': $ref: '#/components/responses/MessageResponse' security: - X-API-Key: [] requestBody: content: application/json: schema: type: object properties: period: type: string required: - period description: Create a new payment checkout parameters: [] /v1/user/subscription: get: summary: Get Subscription Status tags: - users responses: '200': description: OK content: application/json: schema: type: object properties: status: type: string message: type: string required: - status - message '400': description: Bad Request 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 operationId: get-v1-user-subscription security: - X-API-Key: [] description: Get user subscription status /v1/asset/enumerate: get: summary: Get Enumeration List tags: - enumerations responses: '200': $ref: '#/components/responses/EnumerateResponse' '400': $ref: '#/components/responses/ErrorResponse' '401': $ref: '#/components/responses/ErrorResponse' '403': $ref: '#/components/responses/ErrorResponse' '500': $ref: '#/components/responses/ErrorResponse' default: $ref: '#/components/responses/ErrorResponse' operationId: get-v1-asset-enumerate parameters: - schema: type: integer in: query name: offset description: The number of items to skip before starting to collect the result set - schema: type: integer in: query name: limit description: The numbers of items to return - schema: type: string in: query name: search description: search keyword in enumeration list - schema: type: string in: query name: enum_type description: types of enumeration list (comma seperated) security: - X-API-Key: [] description: Get enumeration list post: summary: Create Enumeration tags: - enumerations responses: '200': description: OK content: application/json: schema: type: object properties: id: type: string required: - id '400': $ref: '#/components/responses/ErrorResponse' '401': $ref: '#/components/responses/ErrorResponse' '403': $ref: '#/components/responses/ErrorResponse' '500': $ref: '#/components/responses/ErrorResponse' default: $ref: '#/components/responses/ErrorResponse' operationId: post-v1-asset-enumerate requestBody: content: application/json: schema: type: object properties: root_domains: type: array items: type: string enrichment_inputs: type: array items: type: string cloudlist_config_ids: type: array items: type: string name: type: string steps: type: array items: type: string enum: - dns_resolve - port_scan - http_probe - endpoint_crawling enumeration_ports: type: string security: - X-API-Key: [] description: 'Create a new enumeration ' '/v1/asset/enumerate/{enumerate_id}': parameters: - schema: type: string name: enumerate_id in: path required: true get: summary: Get Enumeration tags: - enumerations responses: '200': $ref: '#/components/responses/GetEnumerateIdContentsResponse' '400': $ref: '#/components/responses/ErrorResponse' '401': $ref: '#/components/responses/ErrorResponse' '403': $ref: '#/components/responses/ErrorResponse' '500': $ref: '#/components/responses/ErrorResponse' default: $ref: '#/components/responses/ErrorResponse' operationId: get-v1-asset-enumerate-enumerate_id security: - X-API-Key: [] description: Get enumeration by enumerate_id patch: summary: Update Enumeration tags: - enumerations responses: '200': $ref: '#/components/responses/MessageResponse' '400': $ref: '#/components/responses/ErrorResponse' '401': $ref: '#/components/responses/ErrorResponse' '403': $ref: '#/components/responses/ErrorResponse' '500': $ref: '#/components/responses/ErrorResponse' default: $ref: '#/components/responses/ErrorResponse' operationId: patch-v1-asset-enumerate-enumerate_id requestBody: content: application/json: schema: type: object properties: name: type: string security: - X-API-Key: [] description: Update enumeration by enumerate_id delete: summary: Delete Enumeration tags: - enumerations responses: '200': $ref: '#/components/responses/MessageResponse' '400': $ref: '#/components/responses/ErrorResponse' '401': $ref: '#/components/responses/ErrorResponse' '500': $ref: '#/components/responses/ErrorResponse' default: $ref: '#/components/responses/ErrorResponse' operationId: delete-v1-asset-enumerate-enumerate_id security: - X-API-Key: [] description: Delete enumeration by enumerate_id '/v1/asset/enumerate/{enumerate_id}/contents': parameters: - schema: type: string name: enumerate_id in: path required: true get: summary: Get Enumeration Contents tags: - enumerations responses: '200': $ref: '#/components/responses/GetEnumerateIdContents' '400': $ref: '#/components/responses/ErrorResponse' '401': $ref: '#/components/responses/ErrorResponse' '403': $ref: '#/components/responses/ErrorResponse' '500': $ref: '#/components/responses/ErrorResponse' default: $ref: '#/components/responses/ErrorResponse' operationId: get-v1-asset-enumerate-enumerate_id-contents parameters: - schema: type: string default: hosts enum: - ports - endpoints - http - hosts - all in: query name: type required: true description: Filter by type of enumeration - schema: type: integer default: 0 in: query name: offset description: The number of items to skip before starting to collect the result set - schema: type: integer default: 100 in: query name: limit description: The numbers of items to return - schema: type: string name: search in: query description: Search on the content name - schema: type: string in: query name: labels description: Filter by comma separated labels, e.g-> labels=p1,p2 security: - X-API-Key: [] description: Get enumeration content by enumerate_id '/v1/asset/enumerate/{enumerate_id}/stop': parameters: - schema: type: string name: enumerate_id in: path required: true post: summary: Stop Enumeration tags: - enumerations responses: '200': $ref: '#/components/responses/MessageResponse' '400': $ref: '#/components/responses/ErrorResponse' '401': $ref: '#/components/responses/ErrorResponse' '500': $ref: '#/components/responses/ErrorResponse' default: $ref: '#/components/responses/ErrorResponse' operationId: post-v1-asset-enumerate-enumerate_id-stop security: - X-API-Key: [] description: Stop a running enumeration '/v1/asset/enumerate/{enumerate_id}/rescan': parameters: - schema: type: string name: enumerate_id in: path required: true post: summary: Rescan Enumeration operationId: post-v1-asset-enumerate-enumerate_id-rescan tags: - enumerations responses: '200': description: OK content: application/json: schema: type: object properties: id: type: string required: - id '400': $ref: '#/components/responses/ErrorResponse' '401': $ref: '#/components/responses/ErrorResponse' '403': $ref: '#/components/responses/ErrorResponse' '500': $ref: '#/components/responses/ErrorResponse' default: $ref: '#/components/responses/ErrorResponse' security: - X-API-Key: [] description: Re-run a existing enumeration '/v1/asset/enumerate/{enum_id}/export': parameters: - schema: type: string name: enum_id in: path required: true get: summary: Export Enumeration tags: - enumerations responses: '200': description: OK content: application/octet-stream: schema: type: string '400': $ref: '#/components/responses/ErrorResponse' '401': $ref: '#/components/responses/ErrorResponse' '500': $ref: '#/components/responses/ErrorResponse' default: $ref: '#/components/responses/ErrorResponse' operationId: get-enumerate-id-export parameters: - schema: type: string enum: - hosts - ports - endpoints - http - all default: hosts in: query name: type required: true - schema: type: string default: raw enum: - raw - json - csv in: query name: format - schema: type: string in: query name: search description: Search by string - schema: type: string in: query name: labels description: Filter by comma separated labels, e.g-> labels=p1,p2 security: - X-API-Key: [] description: Export enumeration content /v1/enumeration/schedule: get: summary: Get Enumeration Schedules tags: - enumerations responses: '200': $ref: '#/components/responses/GetEnumerationScheduleResponse' '400': $ref: '#/components/responses/MessageResponse' '401': $ref: '#/components/responses/MessageResponse' '500': $ref: '#/components/responses/MessageResponse' operationId: get-v1-enumeration-schedule security: - X-API-Key: [] description: Get enumeration re-scan schedule post: summary: Set Enumeration Schedule operationId: post-v1-enumeration-schedule tags: - enumerations responses: '200': $ref: '#/components/responses/MessageResponse' '400': $ref: '#/components/responses/MessageResponse' '401': $ref: '#/components/responses/MessageResponse' '500': $ref: '#/components/responses/MessageResponse' requestBody: $ref: '#/components/requestBodies/SetEnumerationScheduleRequest' security: - X-API-Key: [] description: Set enumeration re-scan frequency delete: summary: Delete Enumeration Schedule operationId: delete-v1-enumeration-schedule tags: - enumerations responses: '200': $ref: '#/components/responses/MessageResponse' '400': $ref: '#/components/responses/MessageResponse' '401': $ref: '#/components/responses/MessageResponse' '500': $ref: '#/components/responses/MessageResponse' parameters: - schema: type: string in: query name: enumeration_id description: enumeration_id of the schedule to be deleted required: true security: - X-API-Key: [] description: Delete a re-scan schedule /v1/scans/history: get: summary: Get All Scans History tags: - scans responses: '200': $ref: '#/components/responses/GetScansHistoryResponse' '400': $ref: '#/components/responses/ErrorResponse' '401': $ref: '#/components/responses/ErrorResponse' '500': $ref: '#/components/responses/ErrorResponse' default: $ref: '#/components/responses/ErrorResponse' operationId: get-v1-scans-history parameters: - schema: type: integer in: query name: offset description: number of rows to skip - schema: type: integer in: query name: limit description: number of rows to get - schema: type: string format: date in: query name: start_date description: start date from which you want to get history - schema: type: string format: date in: query name: end_date description: end date till which you want to get history - schema: type: string enum: - current_month - last_month - last_3_months - last_6_months - last_12_months - all_time in: query name: time_range description: time range to get history security: - X-API-Key: [] description: Get user scan history details '/v1/scans/{scanId}/history': parameters: - schema: type: string name: scanId in: path required: true get: summary: Get Scan History tags: - scans responses: '200': $ref: '#/components/responses/GetScansHistoryResponse' '400': $ref: '#/components/responses/ErrorResponse' '401': $ref: '#/components/responses/ErrorResponse' '500': $ref: '#/components/responses/ErrorResponse' default: $ref: '#/components/responses/ErrorResponse' operationId: get-v1-scans-scanId-history parameters: - schema: type: integer in: query name: offset description: number of rows to skip - schema: type: integer in: query name: limit description: number of rows to get - schema: type: string format: date in: query name: start_date description: start date from which you want to get history - schema: type: string format: date in: query name: end_date description: end date till which you want to get history - schema: type: string enum: - current_month - last_month - last_3_months - last_6_months - last_12_months - all_time in: query name: time_range description: time range to get history security: - X-API-Key: [] description: Get scan history detial by scanId '/v1/integration/{name}': get: summary: Get Integration tags: - internal responses: '200': description: OK content: application/json: schema: type: object properties: status: type: string message: type: string key: type: string connection_id: type: string integration_id: type: string fetching_status: type: boolean required: - status - message - key - connection_id - integration_id - fetching_status '400': description: Bad Request 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 operationId: get-v1-integration security: - X-API-Key: [] description: Get integration list post: summary: Create Integration operationId: post-v1-integration tags: - internal responses: '200': description: OK content: application/json: schema: type: object properties: status: type: string message: type: string key: type: string connection_id: type: string integration_id: type: string fetching_status: type: boolean required: - status - key - connection_id - integration_id - fetching_status '400': description: Bad Request 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 '': type: string security: - X-API-Key: [] description: Add Integration parameters: - schema: type: string name: name in: path required: true patch: summary: Verify Integration operationId: patch-v1-integration tags: - internal responses: '200': description: OK content: application/json: schema: type: object properties: message: type: string required: - message '400': description: Bad Request 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: content: application/json: schema: type: object properties: connection_id: type: string required: - connection_id description: Verify connection_id delete: summary: Delete Integration tags: - internal responses: '200': description: OK '400': description: Bad Request operationId: delete-v1-integration security: - X-API-Key: [] requestBody: content: application/json: schema: type: object properties: connection_id: type: string required: - connection_id description: Deleted integration '/v1/integration/{name}/all': parameters: - schema: type: string name: name in: path required: true get: summary: Get All Integrations tags: - internal responses: '200': description: OK content: application/json: schema: type: object properties: data: type: array items: $ref: '#/components/schemas/IntegrationListItems' required: - data '400': $ref: '#/components/responses/MessageResponse' '500': $ref: '#/components/responses/MessageResponse' operationId: get-v1-integration-name-all security: - X-API-Key: [] description: Get integration list /v1/template/contribute: post: summary: Contribute to Public Templates operationId: post-v1-template-contribute tags: - internal responses: '200': description: OK content: application/json: schema: type: object properties: pr: type: string required: - pr '400': $ref: '#/components/responses/MessageResponse' '500': $ref: '#/components/responses/MessageResponse' security: - X-API-Key: [] requestBody: $ref: '#/components/requestBodies/CreateContributeRequest' description: Contribute template to nuclei-templates parameters: [] '/v1/integration/{name}/profile': get: summary: Get Integration User Profile tags: - internal responses: '200': description: OK content: application/json: schema: type: object properties: name: type: string email: type: string login: type: string required: - name - email - login '400': $ref: '#/components/responses/MessageResponse' '500': $ref: '#/components/responses/MessageResponse' operationId: get-v1-integration-name-profile x-internal: false security: - X-API-Key: [] description: Get user integration profile data parameters: - schema: type: string name: name in: path required: true /v1/template/github: get: summary: Get Github Template List tags: - templates responses: '200': description: OK content: application/json: schema: type: object properties: data: type: array items: $ref: '#/components/schemas/GithubTemplateListItem' required: - data '400': $ref: '#/components/responses/MessageResponse' '401': $ref: '#/components/responses/MessageResponse' '500': $ref: '#/components/responses/MessageResponse' operationId: get-v1-github-templates security: - X-API-Key: [] description: List of all user's github templates parameters: [] '/v1/template/github/{id}': parameters: - schema: type: string name: id in: path required: true get: summary: Get Github Template tags: - templates responses: '200': description: OK content: text/plain: schema: type: string '400': $ref: '#/components/responses/MessageResponse' '404': $ref: '#/components/responses/MessageResponse' '500': $ref: '#/components/responses/MessageResponse' operationId: get-v1-github-templates-id requestBody: content: {} parameters: [] security: - X-API-Key: [] description: Get github template text /v1/template/leaderboard: get: summary: Get Leaderboard tags: - internal responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/TemplateLeaderboard' '400': $ref: '#/components/responses/MessageResponse' '401': $ref: '#/components/responses/MessageResponse' '500': $ref: '#/components/responses/MessageResponse' operationId: get-v1-template-leaderboard parameters: - schema: type: integer in: query name: from description: define result number to return from - schema: type: integer in: query name: size description: define number of results to return - schema: type: string in: query name: q description: query string to match against all response value - schema: type: string in: query description: define specific field to query name: fq - schema: type: string in: query description: define specific field to return name: fl - schema: type: string in: query description: sort response value based on given key name: sort_by - schema: type: string in: query name: sort_dir description: sort direction for given key - schema: type: string in: query description: 'return data for specified year ' name: year - schema: type: string in: query description: 'return data for specified quarter(q1, q2, q3, q4) + year' name: quarter - schema: type: string in: query name: month description: ' return data for specified month + year' description: Get public templates leaderboard list /v1/template/stats: get: summary: Get Public Template Stats tags: - templates responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/TemplateStats' '400': $ref: '#/components/responses/MessageResponse' '401': $ref: '#/components/responses/MessageResponse' '500': $ref: '#/components/responses/MessageResponse' operationId: get-v1-template-stats parameters: - schema: type: integer in: query name: from description: define result number to return from - schema: type: integer in: query name: size description: define number of results to return - schema: type: string in: query name: q description: query string to match against all response value - schema: type: string in: query description: define specific field to query name: fq - schema: type: string in: query description: define specific field to return name: fl - schema: type: string in: query description: sort response value based on given key name: sort_by - schema: type: string in: query name: sort_dir description: sort direction for given key security: - X-API-Key: [] description: Get public template statistics '/v1/scans/{scan_id}/error_log/download': parameters: - schema: type: string name: scan_id in: path required: true get: summary: Download elogs of given scan id tags: - elog responses: '200': description: OK content: application/octet-stream: schema: type: string format: binary '400': $ref: '#/components/responses/ErrorResponse' '401': $ref: '#/components/responses/ErrorResponse' '500': $ref: '#/components/responses/ErrorResponse' default: $ref: '#/components/responses/ErrorResponse' operationId: get-scans-id-elog-download parameters: - schema: type: string in: query name: host description: target to search in log - schema: type: string in: query name: template description: template to search in log - schema: type: string in: query name: matched description: status to search in log - schema: type: string format: date-time in: query name: time description: time to filter the logs - schema: type: string in: query name: search description: 'string to search in error, target and template' - schema: type: string in: query name: error description: error to search in log '/v1/scans/{scan_id}/scan_log/download': parameters: - schema: type: string name: scan_id in: path required: true get: summary: Download scan log of given scan id tags: - scan_log responses: '200': description: OK content: application/octet-stream: schema: type: string format: binary '400': $ref: '#/components/responses/ErrorResponse' '401': $ref: '#/components/responses/ErrorResponse' '500': $ref: '#/components/responses/ErrorResponse' default: $ref: '#/components/responses/ErrorResponse' operationId: get-scans-id-scan-log-download parameters: - schema: type: string in: query name: host description: target to search in log - schema: type: string in: query name: template description: template to search in log - schema: type: string in: query name: matched description: status to search in log - schema: type: string format: date-time in: query name: time description: time to filter the logs - schema: type: string in: query name: search description: 'string to search in error, target and template' '/v1/scans/{scan_id}/error_log': parameters: - schema: type: string name: scan_id in: path required: true get: summary: Get elogs of given scan id tags: - elog responses: '200': description: OK content: application/json: schema: type: object required: - logs - next_page_token properties: logs: type: array items: $ref: '#/components/schemas/ScanLogResp' next_page_token: type: string '400': $ref: '#/components/responses/ErrorResponse' '401': $ref: '#/components/responses/ErrorResponse' '500': $ref: '#/components/responses/ErrorResponse' default: $ref: '#/components/responses/ErrorResponse' operationId: get-scans-id-elog parameters: - schema: type: string in: query name: host description: target to search in log - schema: type: string in: query name: template description: template to search in log - schema: type: string in: query name: matched description: status to search in log - schema: type: string format: date-time in: query name: time description: time to filter the logs - schema: type: string in: query name: search description: 'string to search in error, target and template' - schema: type: string in: query name: error description: error to search in log - schema: type: string in: query name: next_page_token description: next page token '/v1/scans/{scan_id}/scan_log': parameters: - schema: type: string name: scan_id in: path required: true get: summary: Get scan log of given scan id tags: - scan_log responses: '200': description: OK content: application/json: schema: type: object required: - logs - next_page_token properties: logs: type: array items: $ref: '#/components/schemas/ScanLogResp' next_page_token: type: string '400': $ref: '#/components/responses/ErrorResponse' '401': $ref: '#/components/responses/ErrorResponse' '500': $ref: '#/components/responses/ErrorResponse' default: $ref: '#/components/responses/ErrorResponse' operationId: get-scans-id-scan-log parameters: - schema: type: string in: query name: host description: target to search in log - schema: type: string in: query name: template description: template to search in log - schema: type: string in: query name: matched description: status to search in log - schema: type: string format: date-time in: query name: time description: time to filter the logs - schema: type: string in: query name: search description: 'string to search in error, target and template' - schema: type: string in: query name: next_page_token '/v1/scans/vulns/{vuln_id}/ticket': parameters: - schema: type: string name: vuln_id in: path required: true post: summary: Create vulns export to tracker tags: - scans responses: '200': $ref: '#/components/responses/VulnsTrackerExportResponse' '400': $ref: '#/components/responses/ErrorResponse' '401': $ref: '#/components/responses/ErrorResponse' '500': $ref: '#/components/responses/ErrorResponse' default: $ref: '#/components/responses/ErrorResponse' operationId: post-vulns-id-ticket parameters: - schema: type: string in: query name: reporting_config_id security: - X-API-Key: [] description: Create vulns export to tracker /v1/scans/config/exclude: get: summary: Get excluded templates tags: - configurations responses: '200': $ref: '#/components/responses/ExcludedTemplateResponse' '400': $ref: '#/components/responses/ErrorResponse' '401': $ref: '#/components/responses/ErrorResponse' '500': $ref: '#/components/responses/ErrorResponse' default: $ref: '#/components/responses/ErrorResponse' operationId: get-scans-config-exclude parameters: [] security: - X-API-Key: [] description: Get excluded templates post: summary: Add excluded templates operationId: post-scans-config-exclude responses: '200': $ref: '#/components/responses/MessageResponse' '400': $ref: '#/components/responses/ErrorResponse' '401': $ref: '#/components/responses/ErrorResponse' '500': $ref: '#/components/responses/ErrorResponse' default: $ref: '#/components/responses/ErrorResponse' tags: - configurations parameters: [] requestBody: $ref: '#/components/requestBodies/ExcludeConfigRequest' security: - X-API-Key: [] description: Add excluded templates delete: summary: Delete excluded template ids operationId: delete-scans-config-exclude responses: '200': $ref: '#/components/responses/MessageResponse' '400': $ref: '#/components/responses/ErrorResponse' '401': $ref: '#/components/responses/ErrorResponse' '500': $ref: '#/components/responses/ErrorResponse' default: $ref: '#/components/responses/ErrorResponse' tags: - configurations parameters: [] requestBody: $ref: '#/components/requestBodies/DeleteExcludedConfigRequest' security: - X-API-Key: [] description: Delete excluded template ids parameters: [] /v1/scans/token: get: summary: Get Scans Token description: Get user scan token usage details tags: - scans responses: '200': $ref: '#/components/responses/GetScansTokenResponse' '400': $ref: '#/components/responses/MessageResponse' '401': $ref: '#/components/responses/MessageResponse' '404': $ref: '#/components/responses/MessageResponse' '500': $ref: '#/components/responses/MessageResponse' operationId: get-v1-scans-token '/v1/asset/{asset_id}': parameters: - schema: type: string name: asset_id in: path required: true get: summary: Get enumerated asset details tags: - assets responses: '200': $ref: '#/components/responses/GetAssetResponse' '400': $ref: '#/components/responses/ErrorResponse' '401': $ref: '#/components/responses/ErrorResponse' '404': $ref: '#/components/responses/ErrorResponse' '500': $ref: '#/components/responses/ErrorResponse' default: $ref: '#/components/responses/ErrorResponse' operationId: get-v1-asset-id parameters: - schema: type: string enum: - hosts - ports - endpoints - http x-go-type-name: EnumerationContentType in: query name: type description: type of asset required: true delete: summary: Delete enumerated asset tags: - assets responses: '200': $ref: '#/components/responses/MessageResponse' '400': $ref: '#/components/responses/ErrorResponse' '401': $ref: '#/components/responses/ErrorResponse' '500': $ref: '#/components/responses/ErrorResponse' default: $ref: '#/components/responses/ErrorResponse' operationId: delete-v1-asset-asset_id parameters: - schema: type: string enum: - hosts - ports - endpoints - http x-go-type: EnumerationContentType in: query name: type description: type of asset required: true patch: summary: Update asset details tags: - assets responses: '200': $ref: '#/components/responses/MessageResponse' '400': $ref: '#/components/responses/ErrorResponse' '401': $ref: '#/components/responses/ErrorResponse' '500': $ref: '#/components/responses/ErrorResponse' default: $ref: '#/components/responses/ErrorResponse' operationId: patch-v1-asset-asset_id parameters: - schema: type: string enum: - hosts - ports - endpoints - http x-go-type: EnumerationContentType in: query name: type description: type of asset required: true requestBody: $ref: '#/components/requestBodies/UpdateEnumeratedAssetRequest' '/v1/asset/enumerate/{enumerate_id}/stats': parameters: - schema: type: string name: enumerate_id in: path required: true get: summary: Get enumeration stats tags: - enumerations responses: '200': $ref: '#/components/responses/EnumerationStatsResponse' '400': $ref: '#/components/responses/ErrorResponse' '401': $ref: '#/components/responses/ErrorResponse' '500': $ref: '#/components/responses/ErrorResponse' default: $ref: '#/components/responses/ErrorResponse' operationId: get-v1-asset-enumerate-enumerate_id-stats components: schemas: VulnerabilityResults: 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: $ref: '#/components/schemas/VulnerabilityEvent' template_id: type: string template_path: type: string template_encoded: type: string result_type: type: string vuln_status: type: string vuln_hash: type: string labels: type: array items: type: string required: - matcher_status - vuln_id - target - created_at - scan_id - event - template_id - result_type - vuln_hash PrivateTemplates: title: PrivateTemplates type: object properties: name: type: string contents: type: string required: - name - contents AssetListItem: title: AssetListItem 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 - name ScanSchedule: title: ScanSchedule type: object required: - scan_frequency - scan_id - schedule_last_run - schedule_next_run properties: scan_frequency: type: string scan_id: type: string schedule_last_run: type: string schedule_next_run: type: string start_time: type: string format: time hourly_frequency: type: integer custom_weekdays: type: array description: |- Array of integer denoting the weekdays on which the scan is supposed to run. 0-6 denoting Sunday-Saturday. items: type: integer minimum: 0 maximum: 6 ScanStatusItem: title: ScanStatusItem type: object required: - scan_id - status - scan_time_elapsed - progress - failure_reason - created_at - updated_at - total_target - completed_at - total_scan - total_template - name - is_oss - is_cloud properties: scan_id: type: string status: type: string scan_time_elapsed: type: string progress: type: integer failure_reason: type: string created_at: type: string updated_at: type: string total_target: type: integer completed_at: type: string total_scan: type: integer total_template: type: integer name: type: string severity: type: object is_oss: type: boolean is_cloud: type: boolean asset_ids: type: array items: type: string is_rescan: type: boolean public_templates: type: array items: type: string report_config_ids: type: array items: type: string rescan_count: type: integer scan_config_ids: type: array items: type: string template_ids: type: array items: type: string template_urls: type: array items: type: string schedule: $ref: '#/components/schemas/ScanSchedule' VulnerabilityEvent: title: VulnerabilityEvent type: object properties: curl-command: type: string extracted-results: type: array items: type: string extractor-name: type: string host: type: string info: type: object required: - name properties: classification: type: object properties: cpe: type: string cve-id: type: array items: type: string cvss-metrics: type: string cvss-score: type: number cwe-id: type: array items: type: string epss-percentile: type: number epss-score: type: number metadata: type: object author: type: array items: type: string description: type: string impact: type: string name: type: string tags: type: array items: type: string reference: type: array items: type: string remediation: type: string severity: type: string ip: type: string matched-at: type: string matched-line: type: array items: type: integer matcher-name: type: string matcher-status: type: boolean path: type: string request: type: string response: type: string template-id: type: string template-path: type: string timestamp: type: string type: type: string required: - info FiltersItem: title: FilterItem type: object properties: value: type: string name: type: string severity: type: string count: type: integer required: - value - count ScanStats: title: ScanStats type: object properties: cves: type: integer matched: type: integer not_matched: type: integer severity: type: object total_count: type: integer total_scan: type: integer total_target: type: integer total_template: type: integer vuln_status: type: object required: - cves - matched - not_matched - total_count - total_scan - total_target - total_template VulnerabilityResultsOld: title: VulnerabilityResultsOld type: object required: - scan_id - target - template_id - vuln_id - matcher_status - created_at - event 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: $ref: '#/components/schemas/VulnerabilityEvent' id: type: string vuln_status: type: string vuln_hash: type: string templateListItem: title: templateListItem type: object properties: created_at: type: string id: type: string name: type: string shared_publicly: type: boolean updated_at: type: string required: - created_at - id - name PublicTemplateListItem: title: PublicTemplateListItem type: object properties: id: type: string templateURL: type: string name: type: string required: - id - templateURL - name EarlyTemplateListItem: title: EarlyTemplateListItem type: object properties: id: type: string templateURL: type: string name: type: string required: - id - templateURL - name TeamMemberItem: title: TeamMemberItem type: object properties: email: type: string status: type: string invited_at: type: string accepted_at: type: string required: - email - status ScanUsageStatsResponse: title: ScanUsageStatsResponse type: object description: 'Scan Usage Stats ' properties: time: type: string format: date-time scan_id: type: string user_id: type: integer format: int64 completed_request: type: integer format: int64 total_target: type: integer format: int64 total_templates: type: integer format: int64 total_result: type: integer format: int64 severity_breakdown: type: string format: json required: - time - scan_id - user_id - completed_request - total_target - total_templates - total_result - severity_breakdown VulnStatusEnum: title: VulnStatusEnum enum: - open - closed - false_positive - fixed ConfigResponse: title: ConfigResponse type: object properties: id: type: string config: type: string config_type: $ref: '#/components/schemas/ConfigTypeEnum' name: type: string read_only: type: boolean global: type: boolean provider_name: type: string created_at: type: string format: date-time updated_at: type: string format: date-time required: - id - config - config_type - name - created_at - updated_at ConfigTypeEnum: title: ConfigTypeEnum type: string enum: - scan - reporting - template - alerting - cloudlist EnumerationStats: title: EnumerationStats type: object required: - hosts - http - endpoints - ports - total_assets properties: hosts: type: integer format: int64 http: type: integer format: int64 endpoints: type: integer format: int64 ports: type: integer format: int64 total_assets: type: integer format: int64 EnumerateData: title: EnumerateData type: object required: - id - name - status - created_at properties: id: type: string name: type: string status: type: string failure_reason: type: string completed_at: type: string format: date-time enumeration_time: type: string format: duration enumeration_type: type: string enumeration_stats: $ref: '#/components/schemas/EnumerationStats' created_at: type: string format: date-time updated_at: type: string format: date-time root_domains: type: array items: type: string enrichment_hosts_count: type: integer is_rescan: type: boolean rescan_count: type: integer cloudlist_config_ids: type: array items: type: string cloudlist_provider_name: type: string enumeration_time_elapsed: type: string schedule: $ref: '#/components/schemas/EnumerationSchedule' EnumerationContent: title: EnumerationContent type: object required: - enumeration_id - name - created_at - id - is_new properties: enumeration_id: type: string name: type: string created_at: type: string updated_at: type: string id: type: integer format: int64 labels: type: array items: type: string a: type: array items: type: string cname: type: array items: type: string host: type: string port: type: integer ip: type: string status_code: type: integer content_length: type: integer title: type: string technologies: type: array items: type: string webserver: type: string method: type: string source: type: string is_new: type: boolean type: type: string asset_hash: type: string EnumerationIds: title: EnumerationIds type: object properties: id: type: string type: type: array items: type: string required: - id - type EnumerationSchedule: title: EnumerationSchedule type: object required: - enumeration_id - scan_frequency - schedule_last_run - schedule_next_run properties: enumeration_id: type: string scan_frequency: type: string schedule_last_run: type: string schedule_next_run: type: string start_time: type: string format: time hourly_frequency: type: integer custom_weekdays: type: array description: |- Array of integer denoting the weekdays on which the scan is supposed to run. 0-6 denoting Sunday-Saturday. items: type: integer minimum: 0 maximum: 6 ScansHistoryItems: title: ScansHistoryItems type: object properties: completed_request: type: integer name: type: string scan_id: type: string scan_time: type: string severity: type: object status: type: string time: type: string total_request: type: integer total_result: type: integer total_target: type: integer total_templates: type: integer GithubTemplateListItem: title: GithubTemplateListItem type: object properties: id: type: string templateURL: type: string name: type: string required: - id - templateURL - name IntegrationListItems: title: GithubTemplateListItem type: object properties: connection_id: type: string integration_id: type: string status: type: string identifier: type: string org_name: type: string account_type: type: string handle: type: string required: - connection_id - integration_id - status - identifier - org_name - account_type - handle TemplateStats: type: object x-examples: Example 1: date: '2024-02-03T08:40:19.911720715Z' statistics: authors: 0h1in9e: 1 0ri2n: 13 0ut0fb4nd: 1 0w4ys: 3 classification: total: 4772 cvss-metrics: 4650 cvss-score: 2999 cve-id: 2349 cwe-id: 4679 description: 6665 directory: total: 0 name: 7810 references: 5369 remediation: 2231 severity: total: 7810 critical: 947 high: 1563 medium: 1457 low: 257 info: 3551 unknown: 35 tags: '360': 1 '3600': 1 '''rpcms''': 1 total: 7810 type: total: 7810 http: 7005 dns: 21 network: 134 file: 312 ssl: 27 websocket: 0 workflow: 191 headless: 16 template-version: main properties: date: type: string statistics: type: object properties: authors: type: object classification: type: object properties: total: type: integer cvss-metrics: type: integer cvss-score: type: integer cve-id: type: integer cwe-id: type: integer description: type: integer directory: type: object properties: total: type: integer name: type: integer references: type: integer remediation: type: integer severity: type: object properties: total: type: integer critical: type: integer high: type: integer medium: type: integer low: type: integer info: type: integer unknown: type: integer tags: type: object total: type: integer type: type: object properties: total: type: integer http: type: integer dns: type: integer network: type: integer file: type: integer ssl: type: integer websocket: type: integer workflow: type: integer headless: type: integer template-version: type: string TemplateLeaderboard: type: object properties: data: type: array items: type: object properties: author: type: string category: type: object properties: cloud: type: integer cve: type: integer fuzz: type: integer kve: type: integer links: type: object properties: email: type: string github: type: string linkedin: type: string twitter: type: string website: type: string points: type: integer protocol: type: object properties: dns: type: integer file: type: integer headless: type: integer http: type: integer ssl: type: integer tcp: type: integer rank: type: integer severity: type: object properties: critical: type: integer high: type: integer info: type: integer low: type: integer medium: type: integer unknown: type: integer templates: type: integer date: type: string result: type: integer total: type: integer x-examples: Example 1: data: - author: dhiyaneshdk category: cloud: 0 cve: 154 fuzz: 1 kve: 34 links: email: '' github: '' linkedin: '' twitter: '' website: '' points: 26065 protocol: dns: 0 file: 85 headless: 1 http: 1044 ssl: 0 tcp: 1 rank: 1 severity: critical: 90 high: 195 info: 592 low: 89 medium: 161 unknown: 12 templates: 1139 - author: naglis category: cloud: 0 cve: 0 fuzz: 0 kve: 0 links: email: '' github: '' linkedin: '' twitter: '' website: '' points: 10 protocol: dns: 0 file: 1 headless: 0 http: 0 ssl: 0 tcp: 0 rank: 792 severity: critical: 0 high: 0 info: 1 low: 0 medium: 0 unknown: 0 templates: 1 date: all_time result: 794 total: 794 EnumerationIDTypes: title: EnumerationIDTypes type: object properties: id: type: string types: type: array items: enum: - hosts - ports - http - endpoints required: - id - types EnumerationIDTypesDetail: title: EnumerationIDTypesDetail type: object properties: id: type: string name: type: string total_assets: type: integer enumeration_type: type: string cloudlist_provider_name: type: string types: type: array items: enum: - hosts - ports - http - endpoints required: - id - types - name - enumeration_type ScanConfigItem: title: ScanConfigItem type: object properties: id: type: string name: type: string provider_name: type: string config_type: type: string required: - id - name - config_type ScanConfig: title: ScanConfig type: object properties: targets: type: array items: type: string assets_lists: type: array items: type: string public_templates: type: array items: type: string early_templates: type: array items: type: string template_urls: type: array items: type: string template_ids: type: array items: type: string scan_config_ids: type: array items: $ref: '#/components/schemas/ScanConfigItem' report_config_ids: type: array items: $ref: '#/components/schemas/ScanConfigItem' alerting_config_ids: type: array items: $ref: '#/components/schemas/ScanConfigItem' enumeration_ids: type: array items: $ref: '#/components/schemas/EnumerationIDTypesDetail' ScanConfigUpdateItem: title: ScanConfigUpdateItem type: object properties: targets: type: array items: type: string assets_lists: type: array items: type: string public_templates: type: array items: type: string early_templates: type: array items: type: string template_urls: type: array items: type: string template_ids: type: array items: type: string scan_config_ids: type: array items: type: string report_config_ids: type: array items: type: string alerting_config_ids: type: array items: type: string enumeration_ids: type: array items: $ref: '#/components/schemas/EnumerationIDTypes' ScanLogResp: title: ScanLogResp type: object required: - target - template_id - matched - timestamp properties: target: type: string template_id: type: string matched: type: boolean error: type: string timestamp: type: string SchedulerFrequency: title: SchedulerFrequency type: string enum: - hourly - daily - weekly - monthly - custom description: Allowed frequencies for the scheduler ExcludedTemplate: title: ExcludedTemplate type: object properties: id: type: integer format: int64 value: type: string created_at: type: string format: date-time updated_at: type: string format: date-time required: - id - value - created_at - updated_at EnumerationCounts: description: Example response title: EnumerationCounts type: object properties: total_enumeration: type: integer format: int64 total_unique_enumeration: type: integer format: int64 total_uploaded_enumeration: type: integer format: int64 total_discovery_enumeration: type: integer format: int64 total_cloud_enumeration: type: integer format: int64 AssetStats: description: Example response title: AssetStats type: object properties: hosts: type: integer format: int64 http: type: integer format: int64 endpoints: type: integer format: int64 ports: type: integer format: int64 total_assets: type: integer format: int64 required: - hosts - http - endpoints - ports - total_assets securitySchemes: X-API-Key: name: X-API-Key type: apiKey in: header responses: GetTemplateResponse: description: Example response content: application/json: schema: type: object required: - message properties: prompt: type: string message: type: string template: type: string is_public: type: boolean 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 template_name: type: string required: - message - template_id - template_name UpdateTemplateResponse: description: Example response content: application/json: schema: type: object properties: message: type: string status: type: boolean template_id: type: string template_name: type: string required: - message - template_id - template_name GenerateTemplateResponse: description: Example response content: application/json: schema: type: object properties: template_id: type: string message: type: string completion: type: string name: type: string required: - message ShareTemplateResponse: description: Example response content: application/json: schema: type: object properties: message: type: string template_id: type: string status: type: boolean required: - message GetSharedTemplateResponse: description: Example response content: application/json: schema: type: object properties: template: type: string template_name: type: string message: type: string required: - message GetUserProfileResponse: description: Example response content: application/json: schema: type: object required: - message properties: ai_status: type: boolean email: type: string name: type: string message: type: string cloud_scans: type: boolean static_scan: type: boolean early_template: type: boolean team_name: type: string is_team_owner: type: boolean is_read_only: type: boolean team_owner_name: type: string DeleteTemplateResponse: description: Example response content: application/json: schema: type: object properties: message: type: string status: type: boolean required: - message GetPublicTemplateList: description: Example response content: application/json: schema: type: object properties: version: type: string data: type: array items: $ref: '#/components/schemas/PublicTemplateListItem' required: - version - data GetRetestResultsResponse: description: Example response content: application/json: schema: type: object properties: message: type: string results: type: array items: $ref: '#/components/schemas/VulnerabilityResults' required: - message - results application/xml: schema: type: object properties: {} GetSingleRetestResultResponse: description: Example response content: application/json: schema: type: object properties: message: type: string results: $ref: '#/components/schemas/VulnerabilityResults' required: - message - results GetScansStatusResponse: description: Example response content: application/json: schema: type: object properties: current_page: type: integer result_count: type: integer total_results: type: integer total_pages: type: integer message: type: string data: type: array items: $ref: '#/components/schemas/ScanStatusItem' required: - message - current_page - result_count - total_results - total_pages - data 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: $ref: '#/components/schemas/ScanStatusItem' 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 required: - current_page - result_count - total_results - total_pages - message - data properties: current_page: type: integer result_count: type: integer total_results: type: integer total_pages: type: integer message: type: string data: type: array items: $ref: '#/components/schemas/VulnerabilityResults' stats: type: object properties: total: type: integer filters: type: object PostRetestTemplateResponse: description: Example response content: application/json: schema: type: object properties: message: type: string results: $ref: '#/components/schemas/VulnerabilityResults' required: - message GetScansVulnIdResponse: description: '/scans/vuln/:vuln_id' content: application/json: schema: $ref: '#/components/schemas/VulnerabilityResultsOld' 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: $ref: '#/components/schemas/AssetListItem' 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 name: 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 name: 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 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 required: - message - current_page - result_count - total_results - total_pages - data - new_matched properties: message: type: string current_page: type: integer result_count: type: integer total_results: type: integer total_pages: type: integer data: type: array items: $ref: '#/components/schemas/FiltersItem' new_matched: type: integer GetScanResultStatsResponse: description: Example response content: application/json: schema: type: object properties: message: type: string stats: $ref: '#/components/schemas/ScanStats' required: - message SetScanScheduleResponse: description: Example response content: application/json: schema: type: object properties: message: type: string required: - message GetScanScheduleResponse: description: Example response content: application/json: schema: type: object properties: message: type: string schedules: type: array items: $ref: '#/components/schemas/ScanSchedule' required: - message - schedules 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: $ref: '#/components/schemas/templateListItem' message: type: string required: - data - 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 DeleteScanScheduleResponse: description: Example response content: application/json: schema: type: object properties: message: type: string required: - message PostApiKeyRotateResponse: description: Example response content: application/json: schema: type: object properties: message: type: string api_key: type: string required: - message - api_key MessageResponse: description: Example response content: application/json: schema: type: object properties: message: type: string required: - message PatchUserProfileResponse: description: Example response content: application/json: schema: type: object properties: message: type: string ai_status: type: boolean scan_status: type: boolean static_scan: type: boolean early_template: type: boolean required: - message PostCreateUserResponse: description: Example response content: application/json: schema: type: object properties: message: type: string ai_status: type: boolean scan_status: type: boolean static_scan: type: boolean early_template: type: boolean user_id: type: integer name: type: string email: type: string role: type: string required: - message PostRescanVulnResponse: description: Example response content: application/json: schema: type: object properties: message: type: string results: $ref: '#/components/schemas/VulnerabilityResultsOld' required: - message GetEarlyTempateList: description: Early Template Response content: application/json: schema: type: object properties: version: type: string data: type: array items: $ref: '#/components/schemas/EarlyTemplateListItem' required: - version - data UpdateTeamResponse: description: Example response content: application/json: schema: type: object properties: name: type: string message: type: string required: - message GetTeamResponse: description: Example response content: application/json: schema: type: object properties: name: type: string message: type: string required: - message GetTeamMembersResponse: description: Example response content: application/json: schema: type: object properties: message: type: string members: type: array items: $ref: '#/components/schemas/TeamMemberItem' required: - message - members StaticScanIPsResponse: description: '' content: application/json: schema: type: object required: - ips properties: ips: type: array items: type: object required: - ip properties: ip: type: string GetEnumerateIdContents: description: Example response content: application/json: schema: type: object properties: current_page: type: integer result_count: type: integer total_results: type: integer total_pages: type: integer message: type: string data: type: array items: $ref: '#/components/schemas/EnumerationContent' required: - message - current_page - result_count - total_results - total_pages - data GetEnumerateIdContentsResponse: description: Example response content: application/json: schema: type: object required: - message - data properties: message: type: string data: $ref: '#/components/schemas/EnumerateData' GetEnumerationScheduleResponse: description: Example response content: application/json: schema: type: object required: - message - schedules properties: message: type: string schedules: type: array items: $ref: '#/components/schemas/EnumerationSchedule' VerifyConfigResponse: description: Example response content: application/json: schema: type: object required: - ok - response properties: ok: type: boolean response: type: string ScanStatsResponse: description: Example response content: application/json: schema: type: object required: - scan_stats - scan_status properties: scan_stats: type: object required: - total_scan - total_unique_scan - total_uploaded_scan - total_scheduled_scan properties: total_scan: type: integer total_unique_scan: type: integer total_uploaded_scan: type: integer total_scheduled_scan: type: integer scan_status: type: object required: - failed - finished - queued - running - starting - stopped - uploaded properties: failed: type: integer finished: type: integer queued: type: integer running: type: integer starting: type: integer stopped: type: integer uploaded: type: integer GetScansHistoryResponse: description: Example response content: application/json: schema: type: object required: - current_page - result_count - total_results - total_pages - message - data properties: message: type: string current_page: type: integer result_count: type: integer total_results: type: integer total_pages: type: integer data: type: array items: $ref: '#/components/schemas/ScansHistoryItems' total_completed_request: type: integer total_scan_run: type: integer total_unique_scan_run: type: integer EnumerateResponse: description: Example response content: application/json: schema: type: object required: - current_page - result_count - total_results - total_pages - data properties: current_page: type: integer result_count: type: integer total_results: type: integer total_pages: type: integer data: type: array items: $ref: '#/components/schemas/EnumerateData' PostScanConfigResponse: description: Example response content: application/json: schema: type: object required: - message properties: id: type: string message: type: string ErrorResponse: description: Example response content: application/json: schema: type: object required: - message properties: message: type: string kind: type: string code: type: string error: type: string error_id: type: string param: type: string status: type: integer VulnsTrackerExportResponse: description: Example response content: application/json: schema: type: object required: - ok - vuln_id - reporting_config_id - reporting_config_name - ticket_url - ticket_id - tracker_name properties: ok: type: boolean vuln_id: type: string reporting_config_id: type: string reporting_config_name: type: string ticket_url: type: string ticket_id: type: string tracker_name: type: string ExcludedTemplateResponse: description: Example response content: application/json: schema: type: object required: - data properties: data: type: array items: $ref: '#/components/schemas/ExcludedTemplate' GetScansTokenResponse: description: Example response content: application/json: schema: type: object required: - scan_tokens - used_scan_token - remaining_scan_token - is_scannable - start_date - end_date properties: scan_tokens: type: integer format: int64 used_scan_token: type: integer format: int64 remaining_scan_token: type: integer format: int64 is_scannable: type: boolean start_date: type: string format: date-time end_date: type: string format: date-time GetAssetResponse: description: Example response content: application/json: schema: type: object required: - id - enumeration_id - name - created_at - updated_at properties: id: type: integer format: int64 enumeration_id: type: string name: type: string created_at: type: string updated_at: type: string status_code: type: string technologies: type: array items: type: string webserver: type: string request: type: string response: type: string EnumerationStatsResponse: description: Example response content: application/json: schema: type: object required: - asset_stats properties: asset_stats: $ref: '#/components/schemas/AssetStats' enumeration_stats: $ref: '#/components/schemas/EnumerationCounts' 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 required: - target 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 required: - template_id - is_public 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: $ref: '#/components/schemas/PrivateTemplates' name: type: string recommended: type: boolean all: type: boolean alerting_config_ids: type: array items: type: string scan_config_ids: type: array items: type: string reporting_config_ids: type: array items: type: string early_templates: type: array items: type: string exclude_targets: type: array items: type: string enumeration_ids: type: array items: $ref: '#/components/schemas/EnumerationIds' schedule_only: type: boolean disable_global_alert_config: type: boolean disable_global_report_config: type: boolean disable_global_scan_config: type: boolean SetScanScheduleRequest: content: application/json: schema: type: object required: - scan_id - scan_frequency properties: scan_id: type: string scan_frequency: $ref: '#/components/schemas/SchedulerFrequency' start_time: type: string format: time hourly_frequency: type: integer minimum: 1 maximum: 24 custom_weekdays: type: array description: |- 0-6 denoting Sunday-Saturday. It accepts an array of weekday items: type: integer minimum: 0 maximum: 6 SetEnumerationScheduleRequest: content: application/json: schema: type: object required: - enumeration_id - scan_frequency properties: enumeration_id: type: string scan_frequency: $ref: '#/components/schemas/SchedulerFrequency' start_time: type: string format: time hourly_frequency: type: integer minimum: 1 maximum: 24 custom_weekdays: type: array description: |- 0-6 denoting Sunday-Saturday. It accepts an array of weekday items: type: integer minimum: 0 maximum: 6 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 PatchUserProfile: content: application/json: schema: type: object properties: email: type: string ai_status: type: boolean scan_status: type: boolean static_scan: type: boolean early_template: type: boolean required: - email CreateTeamRequest: content: application/json: schema: type: object properties: name: type: string required: - name AddTeamMemberRequest: content: application/json: schema: type: object properties: email: type: string required: - email DeleteTeamMemberRequest: content: application/json: schema: type: object properties: email: type: string required: - email InviteTeamMemberRequest: content: application/json: schema: type: object properties: invite_code: type: string required: - invite_code AdminAddTeamMemberRequest: content: application/json: schema: type: object properties: owner_email: type: string member_email: type: string required: - owner_email - member_email PatchScanVulnsRequest: content: application/json: schema: type: object required: - vuln_status properties: vuln_ids: type: array items: type: string vuln_status: $ref: '#/components/schemas/VulnStatusEnum' type: type: string scan_id: type: string severity: type: array items: type: string host: type: array items: type: string template: type: array items: type: string search: type: string PatchScanVulnsLabelsRequest: content: application/json: schema: type: object required: - ids properties: ids: type: array items: type: string type: type: string labels: type: array items: type: string VerifyConfigRequest: content: application/json: schema: type: object required: - config properties: config: type: string config_type: type: string DeleteVulnsRequest: content: application/json: schema: type: object properties: ids: type: array items: type: string type: type: string vuln_status: type: array items: type: string scan_id: type: string severity: type: array items: type: string host: type: array items: type: string template: type: array items: type: string search: type: string CreateContributeRequest: content: application/json: schema: type: object properties: email: type: string name: type: string template: type: string anonymous: type: boolean required: - template - anonymous ExcludeConfigRequest: content: application/json: schema: type: object required: - values properties: values: type: array items: type: string DeleteExcludedConfigRequest: content: application/json: schema: type: object required: - ids properties: ids: type: array items: type: integer format: int64 UpdateEnumeratedAssetRequest: content: application/json: schema: type: object properties: labels: type: array items: type: string name: type: string x-internal: false security: - X-API-Key: []