From a12e872ab37b0d457d6ce01a638f158295ed2601 Mon Sep 17 00:00:00 2001 From: mkrs2404 Date: Fri, 8 May 2026 01:13:35 +0530 Subject: [PATCH] remove unecessary APIs and add certain missing ones --- api-reference/assets/add-labels-to-asset.mdx | 9 +- .../configurations/verify-config.mdx | 3 + .../get-all-enumeration-contents.mdx | 3 + .../enumerations/get-enumeration-contents.mdx | 3 + .../leaks/get-all-leaked-credentials.mdx | 3 + api-reference/results/get-all-results.mdx | 3 + mint.json | 5 + openapi.yaml | 15872 ++++------------ 8 files changed, 4005 insertions(+), 11896 deletions(-) create mode 100644 api-reference/configurations/verify-config.mdx create mode 100644 api-reference/enumerations/get-all-enumeration-contents.mdx create mode 100644 api-reference/enumerations/get-enumeration-contents.mdx create mode 100644 api-reference/leaks/get-all-leaked-credentials.mdx create mode 100644 api-reference/results/get-all-results.mdx diff --git a/api-reference/assets/add-labels-to-asset.mdx b/api-reference/assets/add-labels-to-asset.mdx index 3b5cd933..39aa601e 100644 --- a/api-reference/assets/add-labels-to-asset.mdx +++ b/api-reference/assets/add-labels-to-asset.mdx @@ -130,7 +130,7 @@ Sending an empty labels array has no effect: ## Getting the Asset ID -You can retrieve asset IDs from: +You can retrieve asset IDs from enumeration contents: ### From Enumeration Contents ```bash @@ -150,10 +150,3 @@ Response includes `id` field: ] } ``` - -### From Asset Details -```bash -GET /v1/asset/{asset_id} -``` - - diff --git a/api-reference/configurations/verify-config.mdx b/api-reference/configurations/verify-config.mdx new file mode 100644 index 00000000..68b50593 --- /dev/null +++ b/api-reference/configurations/verify-config.mdx @@ -0,0 +1,3 @@ +--- +openapi: post /v1/scans/config/verify +--- diff --git a/api-reference/enumerations/get-all-enumeration-contents.mdx b/api-reference/enumerations/get-all-enumeration-contents.mdx new file mode 100644 index 00000000..929076ae --- /dev/null +++ b/api-reference/enumerations/get-all-enumeration-contents.mdx @@ -0,0 +1,3 @@ +--- +openapi: get /v1/asset/enumerate/contents +--- diff --git a/api-reference/enumerations/get-enumeration-contents.mdx b/api-reference/enumerations/get-enumeration-contents.mdx new file mode 100644 index 00000000..bd09152e --- /dev/null +++ b/api-reference/enumerations/get-enumeration-contents.mdx @@ -0,0 +1,3 @@ +--- +openapi: get /v1/asset/enumerate/{enumerate_id}/contents +--- diff --git a/api-reference/leaks/get-all-leaked-credentials.mdx b/api-reference/leaks/get-all-leaked-credentials.mdx new file mode 100644 index 00000000..ea3348bc --- /dev/null +++ b/api-reference/leaks/get-all-leaked-credentials.mdx @@ -0,0 +1,3 @@ +--- +openapi: get /v1/leaks +--- diff --git a/api-reference/results/get-all-results.mdx b/api-reference/results/get-all-results.mdx new file mode 100644 index 00000000..da7d32f1 --- /dev/null +++ b/api-reference/results/get-all-results.mdx @@ -0,0 +1,3 @@ +--- +openapi: get /v1/scans/results +--- diff --git a/mint.json b/mint.json index 622ede37..ea1ff240 100644 --- a/mint.json +++ b/mint.json @@ -505,6 +505,7 @@ { "group": "Vulnerabilities", "pages": [ + "api-reference/results/get-all-results", "api-reference/results/get-scan-vulnerability", "api-reference/results/get-vulnerability-changelogs", "api-reference/results/get-all-vulnerability-changelogs", @@ -517,6 +518,7 @@ { "group": "Leaks", "pages": [ + "api-reference/leaks/get-all-leaked-credentials", "api-reference/leaks/export-leaks", "api-reference/leaks/get-leak-info", "api-reference/leaks/update-leak-status", @@ -566,6 +568,8 @@ "api-reference/enumerations/export-enumeration-of-user", "api-reference/enumerations/delete-an-asset-group", "api-reference/enumerations/update-an-asset-group", + "api-reference/enumerations/get-all-enumeration-contents", + "api-reference/enumerations/get-enumeration-contents", "api-reference/asset/export-list-of-unique-domains-discovered-in-an-enumeration", "api-reference/assets/get-asset-changelogs-for-a-given-asset_id", "api-reference/assets/update-asset-labels", @@ -591,6 +595,7 @@ "api-reference/configurations/get-config", "api-reference/configurations/delete-config", "api-reference/configurations/update-config", + "api-reference/configurations/verify-config", "api-reference/configurations/get-excluded-templates", "api-reference/configurations/add-excluded-templates-and-targets", "api-reference/configurations/delete-excluded-templates-or-targets-by-ids", diff --git a/openapi.yaml b/openapi.yaml index 145fc7e6..aaf2fb28 100644 --- a/openapi.yaml +++ b/openapi.yaml @@ -119,127 +119,6 @@ paths: - X-API-Key: [] description: 'Search templates with filtering, sorting, and faceting capabilities' operationId: get-v2-template-search - /v2/template/user/upload: - post: - summary: Upload Templates - tags: [] - responses: - '200': - description: OK - content: - application/json: - schema: - type: object - required: - - insert_errors - - total_files - - not_templates - - inserted - - invalid_templates - properties: - insert_errors: - type: integer - total_files: - type: integer - not_templates: - type: integer - inserted: - type: integer - invalid_templates: - type: integer - templates: - type: array - items: - $ref: '#/components/schemas/TemplateData' - validation_errors: - type: array - description: Detailed validation issues detected before upload - items: - $ref: '#/components/schemas/TemplateValidationError' - workflow_rejections: - type: array - description: Templates rejected because workflow files are not supported - items: - $ref: '#/components/schemas/TemplateWorkflowRejection' - trace_id: - type: string - description: Trace identifier that can be shared with support for debugging - '400': - $ref: '#/components/responses/MessageResponse' - '401': - $ref: '#/components/responses/MessageResponse' - '404': - $ref: '#/components/responses/MessageResponse' - '500': - $ref: '#/components/responses/MessageResponse' - default: - $ref: '#/components/responses/MessageResponse' - operationId: post-v2-template-user-upload - description: 'Upload Private/User Templates (Max 10,000)' - requestBody: - content: - application/json: - schema: - type: object - required: - - templates - properties: - templates: - type: array - items: - $ref: '#/components/schemas/UploadTemplate' - patch: - summary: Bulk Update User Template - tags: [] - responses: - '200': - description: OK - content: - application/json: - schema: - type: object - required: - - success_count - - failure_count - - successful_items - - failed_items - properties: - success_count: - type: integer - failure_count: - type: integer - successful_items: - type: array - items: - $ref: '#/components/schemas/TemplateFileMetadata' - failed_items: - type: array - items: - $ref: '#/components/schemas/FailedTemplateFileMetadataUpdate' - '400': - $ref: '#/components/responses/MessageResponse' - '401': - $ref: '#/components/responses/MessageResponse' - '404': - $ref: '#/components/responses/MessageResponse' - '500': - $ref: '#/components/responses/MessageResponse' - default: - $ref: '#/components/responses/MessageResponse' - operationId: patch-v2-template-user-upload - requestBody: - content: - application/json: - schema: - type: object - required: - - templates - properties: - templates: - type: array - items: - $ref: '#/components/schemas/PatchTemplateFileMetadata' - description: 'Bulk Updat Private/User Templates (Max 10,000)' /v1/scans: get: summary: Get Scan List @@ -492,361 +371,328 @@ paths: in: header description: 'Retrieve the Team ID from: https://cloud.projectdiscovery.io/settings/team' name: X-Team-Id - /v1/admin/user/search: - get: - summary: Search user by name or email + '/v1/scans/{scan_id}/stop': + parameters: + - schema: + type: string + name: scan_id + in: path + required: true + post: + summary: Stop Scan tags: - - internal + - scans + operationId: post-v1-scans-scan_id-stop responses: '200': - description: OK - content: - application/octet-stream: - schema: - type: string - format: byte + $ref: '#/components/responses/DeleteScansResponse' '400': - $ref: '#/components/responses/MessageResponse' + $ref: '#/components/responses/ErrorResponse' '401': - $ref: '#/components/responses/MessageResponse' + $ref: '#/components/responses/ErrorResponse' '500': - $ref: '#/components/responses/MessageResponse' + $ref: '#/components/responses/ErrorResponse' default: $ref: '#/components/responses/ErrorResponse' - operationId: get-v1-admin-user-search - x-internal: true + security: + - X-API-Key: [] + description: 'Stop a running scan, not applied in any other state.' parameters: - schema: type: string - in: query - name: q - description: name or email filter - - schema: - type: string - enum: - - TRIAL - - ENT_TRIAL - - PRO - - ENT - - FREE - - VERIFIED_FREE - - GROWTH - in: query - name: plan - description: plan filter - - schema: - type: integer - in: query - name: offset - description: offset for pagination - - schema: - type: integer - in: query - name: limit - description: limit for pagination + in: header + name: X-Team-Id + description: 'Retrieve the Team ID from: https://cloud.projectdiscovery.io/settings/team' + '/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 + parameters: - schema: type: string in: header - description: 'Retrieve the Team ID from: https://cloud.projectdiscovery.io/settings/team' name: X-Team-Id - /v1/admin/user/billing_assets: + description: 'Retrieve the Team ID from: https://cloud.projectdiscovery.io/settings/team' + '/v1/scans/vuln/{vuln_id}': get: - summary: Get billing assets for a user + summary: Get Scan Vulnerability tags: - - internal + - results responses: '200': - description: OK - content: - application/octet-stream: - schema: - type: string - format: byte + $ref: '#/components/responses/GetScansVulnIdResponse' '400': - $ref: '#/components/responses/MessageResponse' + $ref: '#/components/responses/ErrorResponse' '401': - $ref: '#/components/responses/MessageResponse' + $ref: '#/components/responses/ErrorResponse' '500': - $ref: '#/components/responses/MessageResponse' + $ref: '#/components/responses/ErrorResponse' default: $ref: '#/components/responses/ErrorResponse' - operationId: get-v1-admin-user-billing-assets - x-internal: true + operationId: 'get-v1-scans-vuln-:vulnId' + description: 'Get scan result vulnerability by ID ' + security: + - X-API-Key: [] parameters: - schema: type: string - in: query - name: email - description: email of the user - required: true - /v1/admin/user/audit_logs: + in: header + name: X-Team-Id + description: 'Retrieve the Team ID from: https://cloud.projectdiscovery.io/settings/team' + parameters: + - schema: + type: string + name: vuln_id + in: path + required: true + description: vulnerability ID + '/v1/scans/vuln/{vuln_id}/changelogs': get: - summary: Get audit logs for a user + summary: Get Vulnerability Changelogs tags: - - internal + - results responses: '200': - description: OK - content: - application/octet-stream: - schema: - type: string - format: byte + $ref: '#/components/responses/GetVulnChangelogsResponse' '400': - $ref: '#/components/responses/MessageResponse' + $ref: '#/components/responses/ErrorResponse' '401': - $ref: '#/components/responses/MessageResponse' + $ref: '#/components/responses/ErrorResponse' + '499': + $ref: '#/components/responses/ErrorResponse' '500': - $ref: '#/components/responses/MessageResponse' + $ref: '#/components/responses/ErrorResponse' default: $ref: '#/components/responses/ErrorResponse' - operationId: get-v1-admin-user-audit-logs - x-internal: true + operationId: get-v1-scans-vuln-vuln_id-changelogs + description: get changelogs of specific vulnerability by id + security: + - X-API-Key: [] parameters: - schema: type: string + enum: + - last_day + - last_week + - last_month + - last_3_months + - last_6_months + - last_12_months + - all_time + default: all_time in: query - name: email - description: email of the user - - schema: - type: integer - format: int64 - in: query - name: user_id - description: user id of the user - - schema: - type: integer - in: query - name: offset - description: offset for pagination + name: time + description: time filter to select - schema: type: string in: query - name: path_name - description: path name filter + name: event_type + description: 'comma separated event_type e.g. event_type=vul_status,vul_status_change' - schema: type: string in: query - name: status_code - description: 'status code filter comma separated e.g status_code=200,404' + name: sort_asc + description: 'comma separated ascending sorting e.g sort_asc=created_at,severity' - schema: type: string in: query - name: status_code_not - description: 'status code not filter comma separated e.g status_code_not=200,404' + name: sort_desc + description: 'comma separated descending sorting e.g sort_desc=created_at,severity' - schema: type: integer in: query name: limit - description: limit for pagination - /v1/admin/team/change_owner: + description: number of results to get + - schema: + type: integer + in: query + name: offset + description: number of results to skip + - schema: + type: string + in: header + name: X-Team-Id + description: 'Retrieve the Team ID from: https://cloud.projectdiscovery.io/settings/team' parameters: - - in: header - name: X-Team-ID - required: true - schema: + - schema: type: string - post: + name: vuln_id + in: path + required: true + description: vulnerability ID + /v1/scans/vuln/changelogs: + get: + summary: Get all Vulnerability Changelogs tags: - - internal - summary: change owner for a team (New owner will take control of the existing owner's subscription) - operationId: post-v1-admin-team-change_owner + - results responses: '200': - $ref: '#/components/responses/MessageResponse' + $ref: '#/components/responses/GetVulnChangelogsResponse' '400': - $ref: '#/components/responses/MessageResponse' - '401': - $ref: '#/components/responses/MessageResponse' - '404': - $ref: '#/components/responses/MessageResponse' - '500': - $ref: '#/components/responses/MessageResponse' - default: $ref: '#/components/responses/ErrorResponse' - security: - - X-API-Key: [] - requestBody: - content: - application/json: - schema: - type: object - required: - - new_owner_email - properties: - new_owner_email: - type: string - x-internal: true - /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' + $ref: '#/components/responses/ErrorResponse' + '499': + $ref: '#/components/responses/ErrorResponse' '500': - $ref: '#/components/responses/MessageResponse' + $ref: '#/components/responses/ErrorResponse' default: $ref: '#/components/responses/ErrorResponse' + operationId: get-v1-scans-vuln-changelogs + description: get changelogs of all vulnerabilities security: - X-API-Key: [] - requestBody: - content: - application/json: - schema: - type: object - required: - - extra_token - - email - properties: - base_token: - type: number - base_domain_count: - type: integer - extra_token: - type: number - email: - type: string - description: Comma separated emails - validity_months: - type: integer - minimum: 0 - maximum: 12 - expire_at: - type: string - format: date-time - x-internal: true parameters: - schema: type: string enum: - - create - - update + - last_day + - last_week + - last_month + - last_3_months + - last_6_months + - last_12_months + - all_time + default: all_time in: query - name: method - description: '''create'' or ''update'' mode' - required: true + name: time + description: time filter to select + - schema: + type: string + in: query + name: event_type + description: 'comma separated event_type e.g. event_type=vul_status,vul_status_change' + - 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: integer + in: query + name: limit + description: number of results to get + - schema: + type: integer + in: query + name: offset + description: number of results to skip - schema: type: string in: header - description: 'Retrieve the Team ID from: https://cloud.projectdiscovery.io/settings/team' name: X-Team-Id - parameters: [] - patch: + description: 'Retrieve the Team ID from: https://cloud.projectdiscovery.io/settings/team' + '/v1/scans/{vuln_id}/retest': + parameters: + - schema: + type: string + name: vuln_id + in: path + required: true + post: + summary: Retest vulnerability tags: - - internal - summary: Update Scan token for user - operationId: patch-v1-admin-scan-token + - scans + operationId: post-v1-scans-vuln_id-retest responses: '200': - $ref: '#/components/responses/MessageResponse' + $ref: '#/components/responses/PostRescanVulnResponse' '400': - $ref: '#/components/responses/MessageResponse' + $ref: '#/components/responses/ErrorResponse' '401': - $ref: '#/components/responses/MessageResponse' + $ref: '#/components/responses/ErrorResponse' '500': - $ref: '#/components/responses/MessageResponse' + $ref: '#/components/responses/ErrorResponse' default: $ref: '#/components/responses/ErrorResponse' security: - X-API-Key: [] + description: Retest a scan vulnerability + parameters: + - schema: + type: string + in: header + name: X-Team-Id + description: 'Retrieve the Team ID from: https://cloud.projectdiscovery.io/settings/team' requestBody: content: application/json: schema: type: object - required: - - email properties: - base_domain_count: - type: integer - base_count: - type: integer - extra_token: - type: number - email: - type: string - description: Comma separated emails - is_enforced_limit: - type: boolean - tag: + socks5_proxy: type: string - enum: - - TRIAL - - ENT_TRIAL - - PRO - - ENT - - FREE - - VERIFIED_FREE - - GROWTH - description: user tag eg - TRIAL - expire_at: + agent_id: type: string - format: date-time - x-internal: true - parameters: - - schema: - type: string - in: header - name: X-Team-Id - description: 'Retrieve the Team ID from: https://cloud.projectdiscovery.io/settings/team' + agent_tags: + type: array + items: + type: string + agent_networks: + type: array + items: + type: string + /v1/scans/schedule: get: - summary: Get Token Usage (admin) + summary: Get Scan Schedules tags: - - internal + - scans responses: '200': - $ref: '#/components/responses/GetScansTokenResponse' + $ref: '#/components/responses/GetScanScheduleResponse' '400': - $ref: '#/components/responses/MessageResponse' + $ref: '#/components/responses/ErrorResponse' '401': - $ref: '#/components/responses/MessageResponse' - '404': - $ref: '#/components/responses/MessageResponse' + $ref: '#/components/responses/ErrorResponse' '500': - $ref: '#/components/responses/MessageResponse' + $ref: '#/components/responses/ErrorResponse' default: $ref: '#/components/responses/ErrorResponse' - operationId: get-v1-admin-scan-token - description: Get token usage for given user + operationId: get-v1-scans-schedule + description: Get scan schedules for a user + security: + - X-API-Key: [] parameters: - - schema: - type: integer - in: query - name: user_id - description: user id to get scan token usage for - required: true - - schema: - type: string - in: query - name: email - description: email to get scan token usage for - schema: type: string in: header - name: X-Team-Id description: 'Retrieve the Team ID from: https://cloud.projectdiscovery.io/settings/team' - '/v1/scans/{scan_id}/stop': - parameters: - - schema: - type: string - name: scan_id - in: path - required: true + name: X-Team-Id post: - summary: Stop Scan + summary: Set Scan Schedule tags: - scans - operationId: post-v1-scans-scan_id-stop + operationId: post-v1-scans-schedule responses: '200': - $ref: '#/components/responses/DeleteScansResponse' + $ref: '#/components/responses/SetScanScheduleResponse' '400': $ref: '#/components/responses/ErrorResponse' '401': @@ -855,30 +701,25 @@ paths: $ref: '#/components/responses/ErrorResponse' default: $ref: '#/components/responses/ErrorResponse' + description: 'set a scan schedule for a user ' + requestBody: + $ref: '#/components/requestBodies/SetScanScheduleRequest' security: - X-API-Key: [] - description: 'Stop a running scan, not applied in any other state.' parameters: - schema: type: string in: header - name: X-Team-Id description: 'Retrieve the Team ID from: https://cloud.projectdiscovery.io/settings/team' - '/v1/scans/{scan_id}/rescan': - parameters: - - schema: - type: string - name: scan_id - in: path - required: true - post: - summary: Rescan scan + name: X-Team-Id + delete: + summary: Delete Scan Schedule tags: - scans - operationId: post-v1-scans-scan_id-rescan + operationId: delete-v1-scans-schedule responses: '200': - $ref: '#/components/responses/TriggerUserScanResponse' + $ref: '#/components/responses/DeleteScanScheduleResponse' '400': $ref: '#/components/responses/ErrorResponse' '401': @@ -887,23 +728,29 @@ paths: $ref: '#/components/responses/ErrorResponse' default: $ref: '#/components/responses/ErrorResponse' - security: - - X-API-Key: [] - description: Re-run a existing scan parameters: + - schema: + type: string + in: query + name: scan_id + required: true + description: scan_id of schedule to be deleted - schema: type: string in: header - name: X-Team-Id description: 'Retrieve the Team ID from: https://cloud.projectdiscovery.io/settings/team' - '/v1/scans/vuln/{vuln_id}': + name: X-Team-Id + security: + - X-API-Key: [] + description: Delete scan schedule for a user + '/v1/retest/{vuln_id}': get: - summary: Get Scan Vulnerability + summary: Get Retest Vulnerability tags: - - results + - retests responses: '200': - $ref: '#/components/responses/GetScansVulnIdResponse' + $ref: '#/components/responses/GetSingleRetestResultResponse' '400': $ref: '#/components/responses/ErrorResponse' '401': @@ -912,111 +759,254 @@ paths: $ref: '#/components/responses/ErrorResponse' default: $ref: '#/components/responses/ErrorResponse' - operationId: 'get-v1-scans-vuln-:vulnId' - description: 'Get scan result vulnerability by ID ' + operationId: get-v1-retest-vuln_id security: - X-API-Key: [] + description: Get retest vulnerability (retests from editor) parameters: - schema: type: string in: header - name: X-Team-Id description: 'Retrieve the Team ID from: https://cloud.projectdiscovery.io/settings/team' + name: X-Team-Id parameters: - schema: type: string name: vuln_id in: path required: true - description: vulnerability ID - '/v1/scans/result/{scanId}': + /v1/user/apikey: get: - summary: Get Scan Results + summary: Get API Key tags: - - results + - users responses: '200': - $ref: '#/components/responses/GetScanResultsResponse' + $ref: '#/components/responses/GetUserAPIKeyResponse' '400': - $ref: '#/components/responses/ErrorResponse' + $ref: '#/components/responses/MessageResponse' '401': - $ref: '#/components/responses/ErrorResponse' - '499': - $ref: '#/components/responses/ErrorResponse' + $ref: '#/components/responses/MessageResponse' + '404': + $ref: '#/components/responses/MessageResponse' '500': - $ref: '#/components/responses/ErrorResponse' + $ref: '#/components/responses/MessageResponse' default: $ref: '#/components/responses/ErrorResponse' - operationId: 'get-v1-scans-result-:scanId' - description: get results of specific scan by id + operationId: get-v1-user-apikey security: - X-API-Key: [] - parameters: - - schema: - type: string - in: query - name: severity - description: 'comma separated severity e.g. severity=info,high' + 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/MessageResponse' + '401': + $ref: '#/components/responses/MessageResponse' + '404': + $ref: '#/components/responses/MessageResponse' + '500': + $ref: '#/components/responses/MessageResponse' + default: + $ref: '#/components/responses/ErrorResponse' + 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' + '400': + $ref: '#/components/responses/MessageResponse' + '401': + $ref: '#/components/responses/MessageResponse' + '404': + $ref: '#/components/responses/MessageResponse' + '500': + $ref: '#/components/responses/MessageResponse' + default: + $ref: '#/components/responses/ErrorResponse' + 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' + '400': + $ref: '#/components/responses/MessageResponse' + '401': + $ref: '#/components/responses/MessageResponse' + '404': + $ref: '#/components/responses/MessageResponse' + '500': + $ref: '#/components/responses/MessageResponse' + default: + $ref: '#/components/responses/ErrorResponse' + 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' + '400': + $ref: '#/components/responses/MessageResponse' + '500': + $ref: '#/components/responses/MessageResponse' + default: + $ref: '#/components/responses/ErrorResponse' + operationId: get-v1-template-public + description: Get public-template list + parameters: - schema: type: string - in: query - name: search - description: search term + in: header + description: 'Retrieve the Team ID from: https://cloud.projectdiscovery.io/settings/team' + name: X-Team-Id - schema: type: integer in: query - name: limit - description: 'number of results ' + name: offset + description: Pagination offset (no. of results to skip) - schema: type: integer in: query - name: offset - description: number of results to skip + name: limit + description: Pagination limit (max no. of results in response) - schema: type: string in: query - name: templates - description: 'comma separated templates e.g. templates=tech-detect,azure-takeover' + description: 'template data fields ' + name: fields + /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' + default: + $ref: '#/components/responses/ErrorResponse' + operationId: get-v1-early-templates + description: Get pdcp early template lists + security: + - X-API-Key: [] + parameters: - schema: type: string - in: query - name: hosts - description: 'comma separated host e.g. hosts=https://example.com,https://x.com' - - in: query - name: domain - schema: - type: string - description: 'comma separated domain names e.g-> domain=domain1.com,domain2.com' - - in: query - name: port - schema: - type: string - description: 'comma separated ports e.g. ports=80,443' + in: header + description: 'Retrieve the Team ID from: https://cloud.projectdiscovery.io/settings/team' + name: X-Team-Id - schema: - type: string + type: integer in: query - description: 'filter by time ( last_day, last_week, last_month )' - name: time + name: offset - schema: - type: string + type: integer in: query - name: vuln_status - description: 'comma separated vuln_status e.g vuln_status=open,fixed' + name: limit - schema: type: string in: query - name: sort_asc - description: 'comma separated ascending sorting e.g sort_asc=created_at,severity' + name: fields + parameters: [] + '/v1/template/early/{id}': + get: + summary: Get Early Template + tags: + - templates + responses: + '200': + description: Shared Response + content: + text/plain: + schema: + type: string + application/json: + schema: + type: object + required: + - message + properties: + message: + type: string + template: + $ref: '#/components/schemas/TemplateData' + '400': + $ref: '#/components/responses/MessageResponse' + '403': + $ref: '#/components/responses/MessageResponse' + '404': + $ref: '#/components/responses/MessageResponse' + '500': + $ref: '#/components/responses/MessageResponse' + default: + $ref: '#/components/responses/ErrorResponse' + operationId: get-v1-early-templates-id + description: Get early template text + security: + - X-API-Key: [] + parameters: - schema: type: string - in: query - name: sort_desc - description: 'comma separated descending sorting e.g sort_desc=created_at,severity' + in: header + description: 'Retrieve the Team ID from: https://cloud.projectdiscovery.io/settings/team' + name: X-Team-Id + parameters: + - schema: + type: string + name: id + in: path + required: true + '/v1/template/public/{template_id}': + get: + summary: Get Public Template + tags: + - templates + responses: + '200': + $ref: '#/components/responses/GetTemplateDataResponse' + '400': + $ref: '#/components/responses/MessageResponse' + '500': + $ref: '#/components/responses/MessageResponse' + default: + $ref: '#/components/responses/ErrorResponse' + operationId: get-v1-public-template-data + description: Get public template data + parameters: - schema: - type: boolean + type: string in: query - name: asset_metadata - description: Asset details for the vulnerability + name: fields + description: 'template data fields ' - schema: type: string in: header @@ -1025,987 +1015,841 @@ paths: parameters: - schema: type: string - name: scanId + name: template_id in: path required: true - description: scan specific results (by scanId) - '/v1/scans/vuln/{vuln_id}/changelogs': + description: 'unique Id of template ' + /v1/template: get: - summary: Get Vulnerability Changelogs + summary: Get Template List tags: - - results + - templates responses: '200': - $ref: '#/components/responses/GetVulnChangelogsResponse' - '400': - $ref: '#/components/responses/ErrorResponse' + $ref: '#/components/responses/GetUserTemplateListResponse' '401': - $ref: '#/components/responses/ErrorResponse' - '499': - $ref: '#/components/responses/ErrorResponse' + $ref: '#/components/responses/MessageResponse' '500': - $ref: '#/components/responses/ErrorResponse' + $ref: '#/components/responses/MessageResponse' default: $ref: '#/components/responses/ErrorResponse' - operationId: get-v1-scans-vuln-vuln_id-changelogs - description: get changelogs of specific vulnerability by id + operationId: get-v1-templates security: - X-API-Key: [] + description: Get user private(my) templates parameters: - schema: type: string - enum: - - last_day - - last_week - - last_month - - last_3_months - - last_6_months - - last_12_months - - all_time - default: all_time - in: query - name: time - description: time filter to select + in: header + description: 'Retrieve the Team ID from: https://cloud.projectdiscovery.io/settings/team' + name: X-Team-Id - schema: - type: string + type: integer in: query - name: event_type - description: 'comma separated event_type e.g. event_type=vul_status,vul_status_change' + name: offset - schema: - type: string + type: integer in: query - name: sort_asc - description: 'comma separated ascending sorting e.g sort_asc=created_at,severity' + name: limit - schema: type: string in: query - name: sort_desc - description: 'comma separated descending sorting e.g sort_desc=created_at,severity' + name: fields + parameters: [] + post: + summary: Create Template + tags: + - templates + operationId: post-v1-template + responses: + '200': + $ref: '#/components/responses/CreateTemplateResponse' + '400': + $ref: '#/components/responses/MessageResponse' + '401': + $ref: '#/components/responses/MessageResponse' + '500': + $ref: '#/components/responses/MessageResponse' + default: + $ref: '#/components/responses/ErrorResponse' + security: + - X-API-Key: [] + requestBody: + content: + application/json: + schema: + type: object + required: + - template + properties: + template: + type: string + description: | + Template in text format + prompt: + type: string + description: Create a private template + parameters: - schema: - type: integer + type: string + in: header + description: 'Retrieve the Team ID from: https://cloud.projectdiscovery.io/settings/team' + name: X-Team-Id + - schema: + type: string in: query - name: limit - description: number of results to get + name: filename + description: filename for template - schema: - type: integer + type: string in: query - name: offset - description: number of results to skip + name: dir + description: directories for template + patch: + summary: Update Template + tags: + - templates + operationId: patch-v1-template + responses: + '200': + $ref: '#/components/responses/UpdateTemplateResponse' + '400': + $ref: '#/components/responses/MessageResponse' + '401': + $ref: '#/components/responses/MessageResponse' + '500': + $ref: '#/components/responses/MessageResponse' + default: + $ref: '#/components/responses/ErrorResponse' + security: + - X-API-Key: [] + requestBody: + $ref: '#/components/requestBodies/UpdateTemplateRequest' + description: 'Update existing private template ' + parameters: - schema: type: string in: header - name: X-Team-Id description: 'Retrieve the Team ID from: https://cloud.projectdiscovery.io/settings/team' + name: X-Team-Id + '/v1/template/{template_id}': parameters: - schema: type: string - name: vuln_id + name: template_id in: path required: true - description: vulnerability ID - /v1/scans/vuln/changelogs: + description: 'unique Id of template ' get: - summary: Get all Vulnerability Changelogs + summary: Get Template tags: - - results + - templates responses: '200': - $ref: '#/components/responses/GetVulnChangelogsResponse' + $ref: '#/components/responses/GetTemplateResponse' '400': - $ref: '#/components/responses/ErrorResponse' + $ref: '#/components/responses/MessageResponse' '401': - $ref: '#/components/responses/ErrorResponse' - '499': - $ref: '#/components/responses/ErrorResponse' + $ref: '#/components/responses/MessageResponse' + '404': + $ref: '#/components/responses/MessageResponse' '500': - $ref: '#/components/responses/ErrorResponse' + $ref: '#/components/responses/MessageResponse' default: $ref: '#/components/responses/ErrorResponse' - operationId: get-v1-scans-vuln-changelogs - description: get changelogs of all vulnerabilities + operationId: get-v1-template-t_id security: - X-API-Key: [] + description: Get private template text using ID parameters: - schema: type: string - enum: - - last_day - - last_week - - last_month - - last_3_months - - last_6_months - - last_12_months - - all_time - default: all_time - in: query - name: time - description: time filter to select - - schema: - type: string - in: query - name: event_type - description: 'comma separated event_type e.g. event_type=vul_status,vul_status_change' - - schema: - type: string - in: query - name: sort_asc - description: 'comma separated ascending sorting e.g sort_asc=created_at,severity' + in: header + description: 'Retrieve the Team ID from: https://cloud.projectdiscovery.io/settings/team' + name: X-Team-Id + delete: + summary: Delete Template + tags: + - templates + operationId: delete-v1-template-template_id + responses: + '200': + $ref: '#/components/responses/DeleteTemplateResponse' + '400': + $ref: '#/components/responses/MessageResponse' + '401': + $ref: '#/components/responses/MessageResponse' + '500': + $ref: '#/components/responses/MessageResponse' + default: + $ref: '#/components/responses/ErrorResponse' + security: + - X-API-Key: [] + description: Delete private template using ID + parameters: - schema: type: string - in: query - name: sort_desc - description: 'comma separated descending sorting e.g sort_desc=created_at,severity' - - schema: - type: integer - in: query - name: limit - description: number of results to get - - schema: - type: integer - in: query - name: offset - description: number of results to skip + in: header + description: 'Retrieve the Team ID from: https://cloud.projectdiscovery.io/settings/team' + name: X-Team-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/MessageResponse' + '401': + $ref: '#/components/responses/MessageResponse' + '403': + $ref: '#/components/responses/MessageResponse' + '500': + $ref: '#/components/responses/MessageResponse' + default: + $ref: '#/components/responses/ErrorResponse' + requestBody: + $ref: '#/components/requestBodies/GenerateTemplateRequest' + security: + - X-API-Key: [] + description: Generate a private template with AI Engine + parameters: - schema: type: string in: header - name: X-Team-Id description: 'Retrieve the Team ID from: https://cloud.projectdiscovery.io/settings/team' - /v1/scans/results: + name: X-Team-Id + /v1/template/share: get: - summary: Get All Results + summary: Get Shared Template List tags: - - results + - templates responses: '200': - $ref: '#/components/responses/GetScanResultsResponse' + $ref: '#/components/responses/GetShareStatusResponse' '400': - $ref: '#/components/responses/ErrorResponse' + $ref: '#/components/responses/MessageResponse' '401': - $ref: '#/components/responses/ErrorResponse' - '499': - $ref: '#/components/responses/ErrorResponse' + $ref: '#/components/responses/MessageResponse' + '404': + $ref: '#/components/responses/MessageResponse' '500': - $ref: '#/components/responses/ErrorResponse' + $ref: '#/components/responses/MessageResponse' default: $ref: '#/components/responses/ErrorResponse' - operationId: get-v1-results - description: Get scans results of a user + operationId: get-v1-template-share + security: + - X-API-Key: [] parameters: - schema: - type: integer + type: string + in: header + description: 'Retrieve the Team ID from: https://cloud.projectdiscovery.io/settings/team' + name: X-Team-Id + - schema: + type: string in: query - name: offset - description: number of results to skip + name: fields - schema: type: integer in: query name: limit - description: number of results to get + description: Limit The numbers of items to return - schema: - type: string + type: integer in: query - name: severity - description: 'string separated by comma e.g. info,high' + name: offset + description: Offset The numbers of items to skip - schema: type: string in: query - name: search - description: search term - - schema: - type: string - in: query - name: host - description: 'comma separated host e.g. hosts=https://example.com,https://x.com' - - in: query - name: domain - schema: - type: string - description: 'comma separated domain names e.g-> domain=domain1.com,domain2.com' - - in: query - name: port - schema: - type: string - description: 'comma separated ports e.g. ports=80,443' - - 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' + description: SortAsc Sort results in ascending order (CSV field names) + name: sort_asc - schema: type: string in: query name: sort_desc - description: 'comma separated descending sorting e.g sort_desc=created_at,severity' - - schema: - type: boolean - in: query - name: is_ticket - description: Return the records that have issue trackers - - in: query - name: labels - schema: - type: string - description: 'filter by comma separated labels e.g labels=p1,p2' - - in: query - name: category - schema: - type: string - description: 'filter by comma separated categories e.g category=cve,xss' - - in: query - name: is_regression - schema: - type: boolean - description: filter by is_regression - - in: query - name: is_internal - schema: - type: boolean - description: filter by is_internal (internal vs external hosts) - - schema: - type: boolean - in: query - name: asset_metadata - description: Asset details for the vulnerability - - schema: - type: string - in: header - name: X-Team-Id - description: 'Retrieve the Team ID from: https://cloud.projectdiscovery.io/settings/team' - security: - - X-API-Key: [] - parameters: [] - /v1/scans/stats: - get: - summary: Get All Scan Stats + description: SortDesc Sort results in descending order (CSV field names) + description: Shared template list + post: + summary: Share Template tags: - - scans + - templates + operationId: post-v1-template-share responses: '200': - $ref: '#/components/responses/ScanStatsResponse' + $ref: '#/components/responses/ShareTemplateResponse' + '400': + $ref: '#/components/responses/MessageResponse' '401': - $ref: '#/components/responses/ErrorResponse' - '403': - $ref: '#/components/responses/ErrorResponse' - '499': - $ref: '#/components/responses/ErrorResponse' + $ref: '#/components/responses/MessageResponse' + '404': + $ref: '#/components/responses/MessageResponse' '500': - $ref: '#/components/responses/ErrorResponse' + $ref: '#/components/responses/MessageResponse' default: $ref: '#/components/responses/ErrorResponse' - operationId: get-v1-scans-stats + security: + - X-API-Key: [] + requestBody: + $ref: '#/components/requestBodies/ShareTemplateRequest' + description: Share a private template (shared-with-link) parameters: - schema: type: string in: header - name: X-Team-Id description: 'Retrieve the Team ID from: https://cloud.projectdiscovery.io/settings/team' - security: - - X-API-Key: [] - description: Get all scans statistics for a user - '/v1/scans/{vuln_id}/retest': + name: X-Team-Id + '/v1/template/share/{template_id}': parameters: - schema: type: string - name: vuln_id + name: template_id in: path required: true - post: - summary: Retest vulnerability + description: unique template ID + get: + summary: Get Shared Template tags: - - scans - operationId: post-v1-scans-vuln_id-retest + - templates responses: '200': - $ref: '#/components/responses/PostRescanVulnResponse' + $ref: '#/components/responses/GetSharedTemplateResponse' '400': - $ref: '#/components/responses/ErrorResponse' + $ref: '#/components/responses/MessageResponse' '401': - $ref: '#/components/responses/ErrorResponse' + $ref: '#/components/responses/MessageResponse' + '404': + $ref: '#/components/responses/MessageResponse' '500': - $ref: '#/components/responses/ErrorResponse' + $ref: '#/components/responses/MessageResponse' default: $ref: '#/components/responses/ErrorResponse' - security: - - X-API-Key: [] - description: Retest a scan vulnerability + operationId: get-v1-template-share-template_id parameters: - schema: type: string - in: header - name: X-Team-Id - description: 'Retrieve the Team ID from: https://cloud.projectdiscovery.io/settings/team' + in: query + name: fields + description: 'get selected fields e.g. name,template_id,severity, etc' + description: Get a shared template text + requestBody: + content: {} + patch: + summary: Update Shared Template + tags: [] + responses: + '200': + $ref: '#/components/responses/UpdateSharedTemplateResponse' + '400': + $ref: '#/components/responses/MessageResponse' + '401': + $ref: '#/components/responses/MessageResponse' + '500': + $ref: '#/components/responses/MessageResponse' + default: + $ref: '#/components/responses/ErrorResponse' + operationId: patch-v1-template-share-template_id + parameters: [] requestBody: content: application/json: schema: type: object properties: - socks5_proxy: + ttl: type: string - agent_id: + share_type: type: string - agent_tags: + users: + type: array + items: + type: integer + emails: type: array items: type: string - agent_networks: + organizations: type: array items: type: string - /v1/scans/results/filters: + delete: + summary: Unshare/Delete template + tags: [] + responses: + '200': + $ref: '#/components/responses/MessageResponse' + '400': + $ref: '#/components/responses/MessageResponse' + '401': + $ref: '#/components/responses/MessageResponse' + '500': + $ref: '#/components/responses/MessageResponse' + default: + $ref: '#/components/responses/ErrorResponse' + operationId: delete-v1-template-share-template_id + /v1/user/team: get: - summary: Get Scans Result Filters + summary: Get Team + operationId: get-v1-user-team tags: - - results + - internal responses: '200': - $ref: '#/components/responses/GetScanResultsFiltersResponse' + $ref: '#/components/responses/GetTeamResponse' '401': - $ref: '#/components/responses/ErrorResponse' - '499': - $ref: '#/components/responses/ErrorResponse' + $ref: '#/components/responses/MessageResponse' + '403': + $ref: '#/components/responses/MessageResponse' '500': - $ref: '#/components/responses/ErrorResponse' + $ref: '#/components/responses/MessageResponse' default: $ref: '#/components/responses/ErrorResponse' - operationId: get-v1-scans-results-filters - description: Get users scan-result filters security: - X-API-Key: [] + description: Get a team metadata 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: host - description: 'comma separated host e.g. hosts=https://example.com,https://x.com' - - in: query - name: domain - schema: - type: string - description: 'comma separated domain names e.g-> domain=domain1.com,domain2.com' - - in: query - name: port - schema: - type: string - description: 'comma separated ports e.g. ports=80,443' - - 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' - - in: query - name: category - schema: - type: string - description: 'filter by comma separated categories e.g category=cve,xss' - - in: query - name: is_regression - schema: - type: boolean - description: filter by is_regression - - in: query - name: is_internal - schema: - type: boolean - description: filter by is_internal (internal vs external hosts) + in: header + description: 'Retrieve the Team ID from: https://cloud.projectdiscovery.io/settings/team' + name: X-Team-Id + post: + summary: Create Workspace + tags: + - internal + responses: + '200': + description: OK + content: + application/json: + schema: + type: object + properties: + message: + type: string + team_id: + type: string + required: + - message + - team_id + '400': + $ref: '#/components/responses/MessageResponse' + '401': + $ref: '#/components/responses/MessageResponse' + '500': + $ref: '#/components/responses/MessageResponse' + default: + $ref: '#/components/responses/ErrorResponse' + operationId: post-v1-user-team + requestBody: + $ref: '#/components/requestBodies/CreateTeamRequest' + security: + - X-API-Key: [] + description: 'Create a new team ' + parameters: - schema: type: string in: header description: 'Retrieve the Team ID from: https://cloud.projectdiscovery.io/settings/team' name: X-Team-Id - - schema: - type: string - format: date - in: query - name: start_date - description: time filter start date - - schema: - type: string - format: date - in: query - name: end_date - description: time filter end date - /v1/scans/results/stats: - get: - summary: Get Results Stats + patch: + summary: Update Team + operationId: patch-v1-user-team tags: - - results + - internal responses: '200': - $ref: '#/components/responses/GetScanResultStatsResponse' + $ref: '#/components/responses/UpdateTeamResponse' '400': $ref: '#/components/responses/ErrorResponse' '401': $ref: '#/components/responses/ErrorResponse' - '499': + '403': $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: [] + requestBody: + $ref: '#/components/requestBodies/CreateTeamRequest' + description: Update a existing team 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: host - description: 'comma separated host e.g. hosts=https://example.com,https://x.com' - - in: query - name: domain - schema: - type: string - description: 'comma separated domain names e.g-> domain=domain1.com,domain2.com' - - in: query - name: port - schema: - type: string - description: 'comma separated ports e.g. ports=80,443' - - 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' - - in: query - name: category - schema: - type: string - description: 'filter by comma separated categories e.g category=cve,xss' - - in: query - name: is_regression - schema: - type: boolean - description: filter by is_regression - - in: query - name: is_internal - schema: - type: boolean - description: filter by is_internal (internal vs external hosts) - schema: type: string in: header description: 'Retrieve the Team ID from: https://cloud.projectdiscovery.io/settings/team' name: X-Team-Id - - schema: - type: string - format: date - in: query - name: start_date - description: time filter start date - - schema: - type: string - format: date - in: query - name: end_date - description: time filter end date - /v1/scans/schedule: - get: - summary: Get Scan Schedules + delete: + summary: Delete Team tags: - - scans + - internal + requestBody: + content: + application/json: + schema: + type: object + properties: + team_id: + type: string + required: + - team_id responses: '200': - $ref: '#/components/responses/GetScanScheduleResponse' + description: OK '400': - $ref: '#/components/responses/ErrorResponse' - '401': - $ref: '#/components/responses/ErrorResponse' + $ref: '#/components/responses/MessageResponse' + '403': + $ref: '#/components/responses/MessageResponse' '500': - $ref: '#/components/responses/ErrorResponse' + $ref: '#/components/responses/MessageResponse' default: $ref: '#/components/responses/ErrorResponse' - operationId: get-v1-scans-schedule - description: Get scan schedules for a user + operationId: delete-v1-user-team security: - X-API-Key: [] + description: Delete team (require 0 members) parameters: - schema: type: string in: header description: 'Retrieve the Team ID from: https://cloud.projectdiscovery.io/settings/team' name: X-Team-Id - post: - summary: Set Scan Schedule + /v1/user/team/member: + get: + summary: Get Team Members tags: - - scans - operationId: post-v1-scans-schedule + - internal responses: '200': - $ref: '#/components/responses/SetScanScheduleResponse' - '400': - $ref: '#/components/responses/ErrorResponse' + $ref: '#/components/responses/GetTeamMembersResponse' '401': $ref: '#/components/responses/ErrorResponse' + '403': + $ref: '#/components/responses/ErrorResponse' '500': $ref: '#/components/responses/ErrorResponse' default: $ref: '#/components/responses/ErrorResponse' - description: 'set a scan schedule for a user ' - requestBody: - $ref: '#/components/requestBodies/SetScanScheduleRequest' + operationId: get-v1-user-team-member security: - X-API-Key: [] + description: Get team member list parameters: - schema: type: string in: header description: 'Retrieve the Team ID from: https://cloud.projectdiscovery.io/settings/team' name: X-Team-Id - delete: - summary: Delete Scan Schedule + post: + summary: Add Team Member + operationId: post-v1-user-team-member tags: - - scans - operationId: delete-v1-scans-schedule + - internal responses: '200': - $ref: '#/components/responses/DeleteScanScheduleResponse' + $ref: '#/components/responses/MessageResponse' '400': - $ref: '#/components/responses/ErrorResponse' + $ref: '#/components/responses/MessageResponse' '401': - $ref: '#/components/responses/ErrorResponse' + $ref: '#/components/responses/MessageResponse' + '403': + $ref: '#/components/responses/MessageResponse' '500': - $ref: '#/components/responses/ErrorResponse' + $ref: '#/components/responses/MessageResponse' default: $ref: '#/components/responses/ErrorResponse' + security: + - X-API-Key: [] + requestBody: + $ref: '#/components/requestBodies/AddTeamMemberRequest' + description: Invite a new team member parameters: - - schema: - type: string - in: query - name: scan_id - required: true - description: scan_id of schedule to be deleted - schema: type: string in: header description: 'Retrieve the Team ID from: https://cloud.projectdiscovery.io/settings/team' name: X-Team-Id - security: - - X-API-Key: [] - description: Delete scan schedule for a user - /v1/retest: - get: - summary: Get All Retest + delete: + summary: Delete Team Member + operationId: delete-v1-user-team-member tags: - - retests + - internal responses: '200': - $ref: '#/components/responses/GetRetestResultsResponse' + $ref: '#/components/responses/MessageResponse' + '400': + $ref: '#/components/responses/MessageResponse' '401': - $ref: '#/components/responses/ErrorResponse' + $ref: '#/components/responses/MessageResponse' + '403': + $ref: '#/components/responses/MessageResponse' '500': - $ref: '#/components/responses/ErrorResponse' + $ref: '#/components/responses/MessageResponse' default: $ref: '#/components/responses/ErrorResponse' - operationId: get-v1-retest - description: Get user retest results security: - X-API-Key: [] + requestBody: + $ref: '#/components/requestBodies/DeleteTeamMemberRequest' + description: Delete a team member using member email 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 - schema: type: string in: header description: 'Retrieve the Team ID from: https://cloud.projectdiscovery.io/settings/team' name: X-Team-Id - post: - summary: Create Retest + patch: + summary: Update Team Member + operationId: patch-v1-user-team-member tags: - - retests - operationId: post-v1-retest + - internal responses: '200': - $ref: '#/components/responses/PostRetestTemplateResponse' + $ref: '#/components/responses/MessageResponse' '400': - $ref: '#/components/responses/ErrorResponse' + $ref: '#/components/responses/MessageResponse' '401': - $ref: '#/components/responses/ErrorResponse' + $ref: '#/components/responses/MessageResponse' + '403': + $ref: '#/components/responses/MessageResponse' '500': - $ref: '#/components/responses/ErrorResponse' + $ref: '#/components/responses/MessageResponse' default: $ref: '#/components/responses/ErrorResponse' - description: Trigger a retest scan security: - X-API-Key: [] requestBody: - $ref: '#/components/requestBodies/RetestTemplateRequest' + $ref: '#/components/requestBodies/PatchTeamMemberRequest' + description: Accept team invite parameters: - schema: type: string in: header - name: X-Team-Id description: 'Retrieve the Team ID from: https://cloud.projectdiscovery.io/settings/team' - parameters: [] - '/v1/retest/{vuln_id}': + name: X-Team-Id + /v1/user/team/default-members: get: - summary: Get Retest Vulnerability + summary: Get Default Team Members + operationId: get-v1-user-team-default-members tags: - - retests + - internal responses: '200': - $ref: '#/components/responses/GetSingleRetestResultResponse' - '400': - $ref: '#/components/responses/ErrorResponse' + $ref: '#/components/responses/GetDefaultTeamMembersResponse' '401': $ref: '#/components/responses/ErrorResponse' + '403': + $ref: '#/components/responses/ErrorResponse' '500': $ref: '#/components/responses/ErrorResponse' default: $ref: '#/components/responses/ErrorResponse' - operationId: get-v1-retest-vuln_id security: - X-API-Key: [] - description: Get retest vulnerability (retests from editor) + description: Retrieve the list of configured default team members parameters: - schema: type: string in: header description: 'Retrieve the Team ID from: https://cloud.projectdiscovery.io/settings/team' name: X-Team-Id - parameters: - - schema: - type: string - name: vuln_id - in: path - required: true - /v1/assets: - get: - summary: Get Asset List + required: true + post: + summary: Set Default Team Members + operationId: post-v1-user-team-default-members tags: - - assets + - internal responses: '200': - $ref: '#/components/responses/GetAssetsListResponse' + $ref: '#/components/responses/MessageResponse' + '400': + $ref: '#/components/responses/MessageResponse' '401': - $ref: '#/components/responses/ErrorResponse' + $ref: '#/components/responses/MessageResponse' + '403': + $ref: '#/components/responses/MessageResponse' '500': - $ref: '#/components/responses/ErrorResponse' + $ref: '#/components/responses/MessageResponse' default: $ref: '#/components/responses/ErrorResponse' - operationId: get-v1-assets - description: Get user asset list security: - X-API-Key: [] + requestBody: + $ref: '#/components/requestBodies/SetDefaultTeamMembersRequest' + description: Set (replace) the list of default team members 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 - schema: type: string in: header description: 'Retrieve the Team ID from: https://cloud.projectdiscovery.io/settings/team' name: X-Team-Id - post: - summary: Upload Asset + required: true + delete: + summary: Delete Default Team Members + operationId: delete-v1-user-team-default-members tags: - - assets - operationId: post-v1-assets + - internal responses: '200': - $ref: '#/components/responses/UploadAssetResponse' + $ref: '#/components/responses/MessageResponse' + '400': + $ref: '#/components/responses/MessageResponse' '401': - $ref: '#/components/responses/ErrorResponse' + $ref: '#/components/responses/MessageResponse' + '403': + $ref: '#/components/responses/MessageResponse' '500': - $ref: '#/components/responses/ErrorResponse' + $ref: '#/components/responses/MessageResponse' default: $ref: '#/components/responses/ErrorResponse' security: - X-API-Key: [] requestBody: - content: - application/octet-stream: - schema: - type: string - format: binary + $ref: '#/components/requestBodies/DeleteDefaultTeamMemberRequest' + description: Delete default team members (specific or all) parameters: - - schema: - type: string - in: query - name: name - description: name of asset - schema: type: string in: header description: 'Retrieve the Team ID from: https://cloud.projectdiscovery.io/settings/team' name: X-Team-Id - - schema: - type: string - in: header - description: set the content type header - name: Content-Type - description: Manually upload user assets (uploaded to manual enumeration) - '/v1/assets/{asset_Id}': - parameters: - - schema: - type: string - name: asset_Id - in: path - required: true + required: true + /v1/scans/scan_ips: get: - summary: Get Asset Metadata + summary: Get Scan IPs tags: - - assets + - scans responses: '200': - $ref: '#/components/responses/GetUserAssetResponse' + $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-assets-assetId + operationId: get-v1-scans-scan_ips security: - X-API-Key: [] - description: Get asset metadata + description: Get user static scan IPs list parameters: - schema: type: string in: header description: 'Retrieve the Team ID from: https://cloud.projectdiscovery.io/settings/team' name: X-Team-Id - delete: - summary: Delete Asset + '/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: - - assets - operationId: delete-v1-assets-asset_Id + - scans responses: '200': - $ref: '#/components/responses/DeleteAssetResponse' + $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: [] - description: Delete asset by ID parameters: - schema: type: string in: header description: 'Retrieve the Team ID from: https://cloud.projectdiscovery.io/settings/team' name: X-Team-Id - patch: - summary: Update Asset Metadata + '/v1/scans/{scan_id}/export': + parameters: + - schema: + type: string + name: scan_id + in: path + required: true + - schema: + type: boolean + in: query + name: async + get: + summary: Export Scan tags: - - assets - operationId: patch-v1-assets-asset_Id + - scans responses: '200': description: OK + content: + application/octet-stream: + schema: + type: string + '201': + description: Created content: application/json: schema: type: object properties: - message: + export_id: type: string required: - - message + - export_id '401': $ref: '#/components/responses/ErrorResponse' + '403': + $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 + 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)' - schema: type: string in: header description: 'Retrieve the Team ID from: https://cloud.projectdiscovery.io/settings/team' name: X-Team-Id - '/v1/assets/{asset_id}/contents': - get: - summary: Get Asset Content + security: + - X-API-Key: [] + description: Export scan results + post: + summary: Export Filtered Scan tags: - - assets + - scans responses: '200': description: OK @@ -2013,1363 +1857,1376 @@ paths: 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 - in: header - description: 'Retrieve the Team ID from: https://cloud.projectdiscovery.io/settings/team' - name: X-Team-Id - 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': + '201': + description: Created + content: + application/json: + schema: + type: object + properties: + export_id: + type: string + required: + - export_id + '401': + $ref: '#/components/responses/ErrorResponse' + '403': $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: [] + operationId: post-v1-scans-scan_id-export parameters: - schema: type: string enum: - - append - - replace + - json + - csv + - pdf in: query - name: update_type - description: 'use append or replace ' + name: type + description: 'json, csv, pdf (default json)' - schema: type: string in: header description: 'Retrieve the Team ID from: https://cloud.projectdiscovery.io/settings/team' name: X-Team-Id - - schema: - type: string - in: header - description: set the content type header - name: Content-Type - description: Update existing asset content - /v1/user/notification_preference: - get: - summary: Get User Notification Preferences - operationId: get-v1-user-notification-preference - tags: - - user - responses: - '200': - description: User notification preferences - content: - application/json: - schema: - type: object - required: - - weekly_digest_email - - onboard_preference - - real_time_autoscan - - enable_auto_retest - properties: - weekly_digest_email: - type: boolean - description: Whether to receive weekly digest emails - onboard_preference: - type: object - additionalProperties: true - description: Dynamic key-value pairs for onboarding preferences - real_time_autoscan: - type: boolean - description: Whether to receive real-time autoscan notifications - enable_auto_retest: - type: boolean - description: Whether to enable auto retest - leaks_notifications: - type: object - description: Leak notification preferences by type - properties: - my_leaks: - type: boolean - description: Personal email leak notifications - employee_leaks: - type: boolean - description: Corporate/employee domain leak notifications - customer_leaks: - type: boolean - description: Customer domain leak notifications - '401': - $ref: '#/components/responses/MessageResponse' - '500': - $ref: '#/components/responses/MessageResponse' - default: - $ref: '#/components/responses/ErrorResponse' - security: - - X-API-Key: [] - description: Get user's notification preferences - patch: - summary: Update User Notification Preferences - operationId: patch-v1-user-notification-preference - tags: - - user requestBody: - required: true content: application/json: schema: type: object properties: - weekly_digest_email: - type: boolean - description: Whether to receive weekly digest emails - onboard_preference: - type: object - additionalProperties: true - description: Dynamic key-value pairs for onboarding preferences - leaks_notifications: - type: object - description: Leak notification preferences by type - properties: - my_leaks: - type: boolean - description: Personal email leak notifications - employee_leaks: - type: boolean - description: Corporate/employee domain leak notifications - customer_leaks: - type: boolean - description: Customer domain leak notifications - real_time_autoscan: - type: boolean - description: Whether to receive real-time autoscan notifications - enable_auto_retest: - type: boolean - description: Whether to enable auto retest - responses: - '200': - description: Successfully updated notification preferences - content: - application/json: - schema: - type: object - properties: - message: + ids: + type: array + items: type: string - example: Notification preferences updated successfully - '400': - $ref: '#/components/responses/MessageResponse' - '401': - $ref: '#/components/responses/MessageResponse' - '500': - $ref: '#/components/responses/MessageResponse' - default: - $ref: '#/components/responses/ErrorResponse' + vuln_status: + type: string + severity: + type: array + items: + type: string + host: + type: array + items: + type: string + domain: + type: array + items: + type: string + port: + type: array + items: + type: integer + template: + type: array + items: + type: string + search: + type: string + category: + type: array + items: + type: string + is_internal: + type: boolean security: - X-API-Key: [] - description: Update user's notification preferences - /v1/user/feedback: + description: Export filtered scan results + /v1/scans/results/export: + parameters: + - schema: + type: boolean + in: query + name: async post: - summary: Create Feedback + summary: Export filtered Scan results tags: - - users - operationId: post-v1-user-feedback + - export responses: '200': description: OK + content: + application/octet-stream: + schema: + type: string + '201': + description: Created content: application/json: schema: type: object properties: - message: + export_id: type: string required: - - message + - export_id '401': $ref: '#/components/responses/ErrorResponse' - '500': - $ref: '#/components/responses/ErrorResponse' - default: - $ref: '#/components/responses/ErrorResponse' - security: - - X-API-Key: [] - requestBody: - $ref: '#/components/requestBodies/PostFeedbackRequest' - description: Add user feedback - parameters: - - schema: - type: string - in: header - description: 'Retrieve the Team ID from: https://cloud.projectdiscovery.io/settings/team' - name: X-Team-Id - /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' - default: - $ref: '#/components/responses/ErrorResponse' - operationId: post-v1-user-delete-code - security: - - X-API-Key: [] - description: generate and email user deletion verification code - parameters: - - schema: - type: string - in: header - description: 'Retrieve the Team ID from: https://cloud.projectdiscovery.io/settings/team' - name: X-Team-Id - /v1/user: - get: - summary: Get User Profile - tags: - - users - responses: - '200': - $ref: '#/components/responses/GetUserProfileResponse' - '401': $ref: '#/components/responses/ErrorResponse' '500': $ref: '#/components/responses/ErrorResponse' default: $ref: '#/components/responses/ErrorResponse' - operationId: get-v1-user - security: - - X-API-Key: [] - description: Get user profile and permissions + operationId: post-v1-scans-results-export parameters: + - schema: + type: string + enum: + - json + - csv + - pdf + in: query + name: type + description: 'json, csv, pdf (default json)' - schema: type: string in: header description: 'Retrieve the Team ID from: https://cloud.projectdiscovery.io/settings/team' name: X-Team-Id - delete: - summary: Delete user from system along with all data - tags: - - users requestBody: content: application/json: schema: type: object properties: - code: + ids: + type: array + items: + type: string + vuln_status: 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' - default: - $ref: '#/components/responses/ErrorResponse' - operationId: delete-v1-user - security: - - X-API-Key: [] - parameters: - - schema: - type: string - in: header - description: 'Retrieve the Team ID from: https://cloud.projectdiscovery.io/settings/team' - name: X-Team-Id - /v1/user/apikey: - get: - summary: Get API Key - tags: - - users - responses: - '200': - $ref: '#/components/responses/GetUserAPIKeyResponse' - '400': - $ref: '#/components/responses/MessageResponse' - '401': - $ref: '#/components/responses/MessageResponse' - '404': - $ref: '#/components/responses/MessageResponse' - '500': - $ref: '#/components/responses/MessageResponse' - default: - $ref: '#/components/responses/ErrorResponse' - operationId: get-v1-user-apikey + severity: + type: array + items: + type: string + host: + type: array + items: + type: string + domain: + type: array + items: + type: string + port: + type: array + items: + type: integer + template: + type: array + items: + type: string + search: + type: string + category: + type: array + items: + type: string + is_internal: + type: boolean + scan_ids: + type: array + items: + type: string + time: + $ref: '#/components/schemas/TimeRangeQueryParameter' + start_date: + type: string + format: date + end_date: + type: string + format: date security: - X-API-Key: [] - description: Get user api-key - post: - summary: Create 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: - - users - operationId: post-v1-user-apikey + - scans responses: '200': - $ref: '#/components/responses/GetUserAPIKeyResponse' - '400': - $ref: '#/components/responses/MessageResponse' + description: OK + content: + application/octet-stream: + schema: + type: string '401': - $ref: '#/components/responses/MessageResponse' - '404': - $ref: '#/components/responses/MessageResponse' + $ref: '#/components/responses/ErrorResponse' + '403': + $ref: '#/components/responses/ErrorResponse' '500': - $ref: '#/components/responses/MessageResponse' + $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)' + - schema: + type: string + in: header + description: 'Retrieve the Team ID from: https://cloud.projectdiscovery.io/settings/team' + name: X-Team-Id 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 + description: Export a specific scan vulnerability + /v1/scans/vulns: + patch: + summary: Update Vulnerability Status + operationId: patch-v1-scans-vulns tags: - - users - operationId: delete-v1-user-apikey + - scans responses: '200': - $ref: '#/components/responses/DeleteUserAPIKeyResponse' - '400': $ref: '#/components/responses/MessageResponse' + '400': + $ref: '#/components/responses/ErrorResponse' '401': - $ref: '#/components/responses/MessageResponse' - '404': - $ref: '#/components/responses/MessageResponse' + $ref: '#/components/responses/ErrorResponse' '500': - $ref: '#/components/responses/MessageResponse' + $ref: '#/components/responses/ErrorResponse' default: $ref: '#/components/responses/ErrorResponse' + requestBody: + $ref: '#/components/requestBodies/PatchScanVulnsRequest' security: - X-API-Key: [] - description: Delete user api-key - /v1/user/onboarding_status: - get: - summary: Get User Setup Statistics + description: Batch update vulnerability status + parameters: + - schema: + type: string + in: header + description: 'Retrieve the Team ID from: https://cloud.projectdiscovery.io/settings/team' + name: X-Team-Id + delete: + summary: Delete Scan Vulnerability + operationId: delete-v1-scans-vulns tags: - - users - - internal - operationId: get-v1-user-setup-stats + - scans responses: '200': - $ref: '#/components/responses/GetUserSetupStatsResponse' - '400': $ref: '#/components/responses/MessageResponse' + '400': + $ref: '#/components/responses/ErrorResponse' '401': - $ref: '#/components/responses/MessageResponse' + $ref: '#/components/responses/ErrorResponse' '500': - $ref: '#/components/responses/MessageResponse' + $ref: '#/components/responses/ErrorResponse' default: $ref: '#/components/responses/ErrorResponse' + requestBody: + $ref: '#/components/requestBodies/DeleteVulnsRequest' security: - X-API-Key: [] - description: Get user setup statistics - /v1/user/billing_assets: - get: - summary: Get Billing Assets details + description: Batch Delete scan vulnerability + parameters: + - schema: + type: string + in: header + description: 'Retrieve the Team ID from: https://cloud.projectdiscovery.io/settings/team' + name: X-Team-Id + /v1/scans/vulns/labels: + patch: + summary: Update Vulnerability Labels + operationId: patch-v1-scans-vulns-labels tags: - - users - - internal - operationId: get-v1-user-billing-assets + - scans responses: '200': - $ref: '#/components/responses/GetBillingAssetsResponse' - '400': $ref: '#/components/responses/MessageResponse' + '400': + $ref: '#/components/responses/ErrorResponse' '401': - $ref: '#/components/responses/MessageResponse' + $ref: '#/components/responses/ErrorResponse' '500': - $ref: '#/components/responses/MessageResponse' + $ref: '#/components/responses/ErrorResponse' default: $ref: '#/components/responses/ErrorResponse' + requestBody: + $ref: '#/components/requestBodies/PatchScanVulnsLabelsRequest' security: - X-API-Key: [] - description: Get billing assets details - /v1/user/promo_code: + description: Batch update vulnerability labels + parameters: + - schema: + type: string + in: header + description: 'Retrieve the Team ID from: https://cloud.projectdiscovery.io/settings/team' + name: X-Team-Id + /v1/scans/config: get: - summary: Get Promocode Details + summary: Get Configs List tags: - - users - operationId: get-v1-user-promocode + - configurations responses: '200': - $ref: '#/components/responses/GetPromocodeDetailsResponse' + description: OK + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/ConfigResponse' '400': - $ref: '#/components/responses/MessageResponse' + $ref: '#/components/responses/ErrorResponse' '401': - $ref: '#/components/responses/MessageResponse' + $ref: '#/components/responses/ErrorResponse' + '403': + $ref: '#/components/responses/ErrorResponse' '500': - $ref: '#/components/responses/MessageResponse' + $ref: '#/components/responses/ErrorResponse' default: $ref: '#/components/responses/ErrorResponse' - security: - - X-API-Key: [] + operationId: get-v1-scans-config parameters: + - schema: + enum: + - scan + - reporting + - template + - alerting + - cloudlist + - subfinder + - remediation + - vuln_score + type: string + in: query + name: type + description: filter by the type of config - schema: type: string in: query - required: true - name: promo_code - description: Promocode to get details for - description: Get promocode details + 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 + - schema: + type: string + in: header + description: 'Retrieve the Team ID from: https://cloud.projectdiscovery.io/settings/team' + name: X-Team-Id + security: + - X-API-Key: [] + description: Get user scan configurations list post: - summary: Apply Promocode + summary: Add Config + operationId: post-v1-scans-config tags: - - users + - configurations responses: '200': - $ref: '#/components/responses/MessageResponse' + $ref: '#/components/responses/PostScanConfigResponse' '400': - $ref: '#/components/responses/MessageResponse' + $ref: '#/components/responses/ErrorResponse' '401': - $ref: '#/components/responses/MessageResponse' - '404': - $ref: '#/components/responses/MessageResponse' + $ref: '#/components/responses/ErrorResponse' + '403': + $ref: '#/components/responses/ErrorResponse' '500': - $ref: '#/components/responses/MessageResponse' + $ref: '#/components/responses/ErrorResponse' default: $ref: '#/components/responses/ErrorResponse' - operationId: post-v1-user-promocode - security: - - X-API-Key: [] - description: Apply promocode requestBody: content: application/json: schema: type: object properties: - promo_code: + config: + type: string + config_type: + $ref: '#/components/schemas/ConfigTypeEnum' + name: type: string + global: + type: boolean + oauth_config_id: + type: string + description: ID of existing OAuth config to update with the complete configuration required: - - promo_code - /v1/user/apikey/rotate: - post: - summary: Rotate API Key - tags: - - users - operationId: post-v1-user-apikey-rotate - responses: - '200': - $ref: '#/components/responses/PostApiKeyRotateResponse' - '400': - $ref: '#/components/responses/MessageResponse' - '401': - $ref: '#/components/responses/MessageResponse' - '404': - $ref: '#/components/responses/MessageResponse' - '500': - $ref: '#/components/responses/MessageResponse' - default: - $ref: '#/components/responses/ErrorResponse' + - config + - name security: - X-API-Key: [] - description: Rotate user api-key - /v1/user/domain-verification/request: - post: - summary: Request Domain Verification + description: Add a new scan configuration + parameters: + - schema: + type: string + in: header + description: 'Retrieve the Team ID from: https://cloud.projectdiscovery.io/settings/team' + name: X-Team-Id + '/v1/scans/config/{config_id}': + parameters: + - schema: + type: string + name: config_id + in: path + required: true + get: + summary: Get Config tags: - - users - operationId: post-v1-user-domain-verification-request + - configurations responses: '200': description: OK content: application/json: schema: - type: object - properties: - domain: - type: string - description: The domain to be verified - verification_string: - type: string - description: The TXT record value to add to DNS - required: - - domain - - verification_string + $ref: '#/components/schemas/ConfigResponse' '400': $ref: '#/components/responses/ErrorResponse' '401': $ref: '#/components/responses/ErrorResponse' - '429': + '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: [] - requestBody: - required: true - content: - application/json: - schema: - type: object - required: - - domain - properties: - domain: - type: string - description: 'Root domain to verify (e.g., example.com)' - example: example.com - verification_type: - $ref: '#/components/schemas/DomainVerificationType' - description: Request domain ownership verification through DNS TXT record. Only root domains are supported. + description: Get a scan configuration parameters: - schema: type: string in: header description: 'Retrieve the Team ID from: https://cloud.projectdiscovery.io/settings/team' name: X-Team-Id - delete: - summary: Request Domain Delete - tags: [] + - schema: + type: boolean + in: query + name: config_json + description: config is in json format + patch: + summary: Update Config + operationId: patch-v1-scans-config-config_id + tags: + - configurations responses: '200': - description: OK - content: - application/json: - schema: - type: object - required: - - domain - - message - properties: - domain: - type: string - description: The domain to be deleted - message: - type: string + $ref: '#/components/responses/PostScanConfigResponse' '400': $ref: '#/components/responses/ErrorResponse' '401': $ref: '#/components/responses/ErrorResponse' - '429': + '403': $ref: '#/components/responses/ErrorResponse' '500': $ref: '#/components/responses/ErrorResponse' default: $ref: '#/components/responses/ErrorResponse' - operationId: delete-v1-user-domain-verification-request requestBody: content: application/json: schema: type: object - required: - - domain - - verification_type properties: - domain: + name: + type: string + config: type: string - description: 'Root domain to delete (e.g., example.com)' - verification_type: - $ref: '#/components/schemas/DomainVerificationType' - description: Delete domain verification request. Only root domains are supported. + global: + type: boolean security: - X-API-Key: [] + description: Update existing scan configuration parameters: - schema: type: string in: header - name: X-Team-Id description: 'Retrieve the Team ID from: https://cloud.projectdiscovery.io/settings/team' - /v1/user/domain-verification/confirm: - post: - summary: Confirm Domain Verification + name: X-Team-Id + - schema: + type: boolean + in: query + description: Specify payload is in json + name: config_json + delete: + summary: Delete Config + operationId: delete-v1-scans-config-config_id tags: - - users - operationId: post-v1-user-domain-verification-confirm + - configurations responses: '200': - description: OK - content: - application/json: - schema: - type: object - properties: - message: - type: string - description: Success message - domain: - type: string - description: The verified domain - required: - - message - - domain + $ref: '#/components/responses/MessageResponse' '400': $ref: '#/components/responses/ErrorResponse' '401': $ref: '#/components/responses/ErrorResponse' - '404': - description: Not Found - content: - application/json: - schema: - type: object - properties: - message: - type: string - description: Error message - required: - - message + '403': + $ref: '#/components/responses/ErrorResponse' '500': $ref: '#/components/responses/ErrorResponse' default: $ref: '#/components/responses/ErrorResponse' security: - X-API-Key: [] - requestBody: - required: true - content: - application/json: - schema: - type: object - required: - - domain - properties: - domain: - type: string - description: Root domain to confirm verification for - example: example.com - verification_type: - $ref: '#/components/schemas/DomainVerificationType' - email: - type: string - description: Confirm domain ownership by checking if the required DNS TXT record has been added. + description: Delete scan configuration parameters: - schema: type: string in: header description: 'Retrieve the Team ID from: https://cloud.projectdiscovery.io/settings/team' name: X-Team-Id - /v1/user/domain-verification/status: + '/v1/scans/{scan_id}/config': + parameters: + - schema: + type: string + name: scan_id + in: path + required: true get: - summary: Get Domain Verification Status + summary: Get Scan Config tags: - - users - operationId: get-v1-user-domain-verification-status + - scans responses: '200': description: OK + headers: {} content: application/json: schema: - type: object - properties: - verification_requests: - type: array - items: - $ref: '#/components/schemas/DomainVerificationRequest' - required: - - verification_requests + $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 the status of all domain verification requests for the authenticated user, including pending, verified, and expired requests.' + description: 'Get scan metadata config ' parameters: - schema: type: string in: header description: 'Retrieve the Team ID from: https://cloud.projectdiscovery.io/settings/team' name: X-Team-Id - /v1/template/public: - get: - summary: Get Public Template List + patch: + summary: Update Scan Config + operationId: patch-scans-id-config tags: - - templates + - scans responses: '200': - $ref: '#/components/responses/GetPublicTemplateList' + description: OK + content: + application/json: + schema: + type: object + properties: + ok: + type: boolean '400': - $ref: '#/components/responses/MessageResponse' + $ref: '#/components/responses/ErrorResponse' + '401': + $ref: '#/components/responses/ErrorResponse' '500': - $ref: '#/components/responses/MessageResponse' + $ref: '#/components/responses/ErrorResponse' default: $ref: '#/components/responses/ErrorResponse' - operationId: get-v1-template-public - description: Get public-template list + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/ScanConfigUpdateItem' + security: + - X-API-Key: [] + description: Update scan metadata config parameters: - schema: type: string - in: header - description: 'Retrieve the Team ID from: https://cloud.projectdiscovery.io/settings/team' - name: X-Team-Id - - schema: - type: integer - in: query - name: offset - description: Pagination offset (no. of results to skip) - - schema: - type: integer + enum: + - append + - replace + default: append in: query - name: limit - description: Pagination limit (max no. of results in response) + name: update_type + description: 'Update type: append or replace' - schema: type: string - in: query - description: 'template data fields ' - name: fields - /v1/template/early: + in: header + description: 'Retrieve the Team ID from: https://cloud.projectdiscovery.io/settings/team' + name: X-Team-Id + /v1/asset/enumerate: get: - summary: Get Early Template List + summary: Get Enumeration List tags: - - templates + - enumerations responses: '200': - $ref: '#/components/responses/GetEarlyTempateList' + $ref: '#/components/responses/EnumerateResponse' '400': - $ref: '#/components/responses/MessageResponse' + $ref: '#/components/responses/ErrorResponse' + '401': + $ref: '#/components/responses/ErrorResponse' '403': - $ref: '#/components/responses/MessageResponse' + $ref: '#/components/responses/ErrorResponse' '500': - $ref: '#/components/responses/MessageResponse' + $ref: '#/components/responses/ErrorResponse' default: $ref: '#/components/responses/ErrorResponse' - operationId: get-v1-early-templates - description: Get pdcp early template lists - security: - - X-API-Key: [] + operationId: get-v1-asset-enumerate parameters: - - schema: - type: string - in: header - description: 'Retrieve the Team ID from: https://cloud.projectdiscovery.io/settings/team' - name: X-Team-Id - 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: fields - parameters: [] - '/v1/template/early/{id}': - get: - summary: Get Early Template - tags: - - templates - responses: - '200': - description: Shared Response + name: search + description: search keyword in enumeration list + - schema: + type: string + in: query + name: enum_type + description: types of enumeration list (comma seperated) + - schema: + type: string + in: query + name: sort_asc + description: 'comma separated ascending sorting e.g sort_asc=created_at,name' + - schema: + type: string + in: query + name: sort_desc + description: 'comma separated descending sorting e.g sort_desc=created_at,name' + - schema: + type: string + in: query + name: status + description: comma separated filter enumeration result by status + - schema: + type: string + enum: + - last_day + - last_week + - last_month + - last_3_months + - last_6_months + - last_12_months + - all_time + default: all_time + in: query + name: time + description: time range to get enumerations from + - schema: + type: string + format: date + in: query + name: start_date + description: time filter start date + - schema: + type: string + format: date + in: query + name: end_date + description: time filter end date + - schema: + type: string + in: query + name: custom_filter + description: custom query to filter. double encode the query string. + - schema: + type: boolean + in: query + name: is_internal + description: filter by internal enumerations + - schema: + type: string + in: header + description: 'Retrieve the Team ID from: https://cloud.projectdiscovery.io/settings/team' + name: X-Team-Id + security: + - X-API-Key: [] + description: Get enumeration list + post: + summary: Create Enumeration + tags: + - enumerations + responses: + '200': + description: OK content: - text/plain: - schema: - type: string application/json: schema: type: object - required: - - message properties: - message: + id: type: string - template: - $ref: '#/components/schemas/TemplateData' + truncated-scan-targets: + type: integer + is-public: + type: boolean + bulk_ids: + type: array + items: + type: string + failed_domains: + type: object + additionalProperties: + type: string + description: Map of domain to failure reason '400': - $ref: '#/components/responses/MessageResponse' + $ref: '#/components/responses/ErrorResponse' + '401': + $ref: '#/components/responses/ErrorResponse' '403': - $ref: '#/components/responses/MessageResponse' - '404': - $ref: '#/components/responses/MessageResponse' + $ref: '#/components/responses/ErrorResponse' '500': - $ref: '#/components/responses/MessageResponse' + $ref: '#/components/responses/ErrorResponse' default: $ref: '#/components/responses/ErrorResponse' - operationId: get-v1-early-templates-id - description: Get early template text + 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 + - dns_bruteforce + - dns_permute + - port_scan + - http_probe + - http_screenshot + - endpoint_crawling + - dns_passive + - tls_scan + - uncover_assets + - dns_scraping + enumeration_ports: + type: string + alerting_config_ids: + type: array + items: + type: string + disable_global_alert_config: + type: boolean + exclude_targets: + type: array + items: + type: string + enumeration_config: + type: object + properties: + follow-redirect: + type: boolean + ports: + type: string + automatic_vuln_scans: + type: boolean + per_domain_enumeration: + type: boolean + agent_id: + type: string + agent_tags: + type: array + items: + type: string + agent_networks: + type: array + items: + type: string + agent_behavior: + type: string + enum: + - distribute + - mirror + default: distribute + agent_auto_discover: + type: boolean + exclusions: + type: array + items: + type: string + description: >- + Combined inclusion and exclusion patterns for discovery scope. + Exclusion patterns (e.g. `*.staging.company.com`) filter out matching targets. + Inclusion patterns use a `+` prefix (e.g. `+prod-*.company.com`) to restrict discovery to only matching targets (allowlist mode). + When inclusion patterns are present, targets must match at least one inclusion pattern and not match any exclusion pattern. + Supports exact domains, wildcard patterns, IP addresses, and CIDR ranges. security: - X-API-Key: [] + description: Create a new enumeration parameters: - schema: type: string in: header description: 'Retrieve the Team ID from: https://cloud.projectdiscovery.io/settings/team' name: X-Team-Id - parameters: - - schema: - type: string - name: id - in: path - required: true - '/v1/template/public/{template_id}': - get: - summary: Get Public Template + delete: + summary: Delete Assets in bulk tags: - - templates + - enumerations responses: '200': - $ref: '#/components/responses/GetTemplateDataResponse' - '400': $ref: '#/components/responses/MessageResponse' + '400': + $ref: '#/components/responses/ErrorResponse' + '401': + $ref: '#/components/responses/ErrorResponse' '500': - $ref: '#/components/responses/MessageResponse' + $ref: '#/components/responses/ErrorResponse' default: $ref: '#/components/responses/ErrorResponse' - operationId: get-v1-public-template-data - description: Get public template data + operationId: delete-v1-asset-enumerates + requestBody: + content: + application/json: + schema: + type: object + required: + - asset_ids + properties: + asset_ids: + type: array + items: + type: string + security: + - X-API-Key: [] + description: Delete enumeration by enumerate ids parameters: - - schema: - type: string - in: query - name: fields - description: 'template data fields ' - schema: type: string in: header - name: X-Team-Id description: 'Retrieve the Team ID from: https://cloud.projectdiscovery.io/settings/team' + name: X-Team-Id + '/v1/asset/enumerate/{enumerate_id}': parameters: - schema: type: string - name: template_id + name: enumerate_id in: path required: true - description: 'unique Id of template ' - /v1/template: get: - summary: Get Template List + summary: Get Enumeration tags: - - templates + - enumerations responses: '200': - $ref: '#/components/responses/GetUserTemplateListResponse' + $ref: '#/components/responses/GetEnumerateIdContentsResponse' + '400': + $ref: '#/components/responses/ErrorResponse' '401': - $ref: '#/components/responses/MessageResponse' + $ref: '#/components/responses/ErrorResponse' + '403': + $ref: '#/components/responses/ErrorResponse' + '499': + $ref: '#/components/responses/ErrorResponse' '500': - $ref: '#/components/responses/MessageResponse' + $ref: '#/components/responses/ErrorResponse' default: $ref: '#/components/responses/ErrorResponse' - operationId: get-v1-templates + operationId: get-v1-asset-enumerate-enumerate_id security: - X-API-Key: [] - description: Get user private(my) templates + description: Get enumeration by enumerate_id parameters: - schema: type: string in: header description: 'Retrieve the Team ID from: https://cloud.projectdiscovery.io/settings/team' name: X-Team-Id - - schema: - type: integer - in: query - name: offset - - schema: - type: integer - in: query - name: limit - - schema: - type: string - in: query - name: fields - parameters: [] - post: - summary: Create Template + patch: + summary: Update Enumeration tags: - - templates - operationId: post-v1-template + - enumerations responses: '200': - $ref: '#/components/responses/CreateTemplateResponse' - '400': $ref: '#/components/responses/MessageResponse' + '400': + $ref: '#/components/responses/ErrorResponse' '401': - $ref: '#/components/responses/MessageResponse' + $ref: '#/components/responses/ErrorResponse' + '403': + $ref: '#/components/responses/ErrorResponse' '500': - $ref: '#/components/responses/MessageResponse' + $ref: '#/components/responses/ErrorResponse' default: $ref: '#/components/responses/ErrorResponse' - security: - - X-API-Key: [] + operationId: patch-v1-asset-enumerate-enumerate_id requestBody: content: application/json: schema: type: object - required: - - template properties: - template: - type: string - description: | - Template in text format - prompt: + name: type: string - description: Create a private template + security: + - X-API-Key: [] + description: Update enumeration by enumerate_id parameters: - schema: type: string in: header description: 'Retrieve the Team ID from: https://cloud.projectdiscovery.io/settings/team' name: X-Team-Id - - schema: - type: string - in: query - name: filename - description: filename for template - - schema: - type: string - in: query - name: dir - description: directories for template - patch: - summary: Update Template + delete: + summary: Delete Enumeration tags: - - templates - operationId: patch-v1-template + - enumerations responses: '200': - $ref: '#/components/responses/UpdateTemplateResponse' - '400': $ref: '#/components/responses/MessageResponse' + '400': + $ref: '#/components/responses/ErrorResponse' '401': - $ref: '#/components/responses/MessageResponse' + $ref: '#/components/responses/ErrorResponse' '500': - $ref: '#/components/responses/MessageResponse' + $ref: '#/components/responses/ErrorResponse' default: $ref: '#/components/responses/ErrorResponse' + operationId: delete-v1-asset-enumerate-enumerate_id security: - X-API-Key: [] - requestBody: - $ref: '#/components/requestBodies/UpdateTemplateRequest' - description: 'Update existing private template ' + description: Delete enumeration by enumerate_id parameters: - schema: type: string in: header description: 'Retrieve the Team ID from: https://cloud.projectdiscovery.io/settings/team' name: X-Team-Id - '/v1/template/{template_id}': + '/v1/asset/enumerate/{enumerate_id}/rescan': parameters: - schema: type: string - name: template_id + name: enumerate_id in: path required: true - description: 'unique Id of template ' - get: - summary: Get Template + post: + summary: Rescan Enumeration + operationId: post-v1-asset-enumerate-enumerate_id-rescan tags: - - templates + - enumerations responses: '200': - $ref: '#/components/responses/GetTemplateResponse' + description: OK + content: + application/json: + schema: + type: object + required: + - id + properties: + id: + type: string + truncated-scan-targets: + type: integer '400': - $ref: '#/components/responses/MessageResponse' - '401': - $ref: '#/components/responses/MessageResponse' - '404': - $ref: '#/components/responses/MessageResponse' - '500': - $ref: '#/components/responses/MessageResponse' - default: $ref: '#/components/responses/ErrorResponse' - operationId: get-v1-template-t_id - security: - - X-API-Key: [] - description: Get private template text using ID - parameters: - - schema: - type: string - in: header - description: 'Retrieve the Team ID from: https://cloud.projectdiscovery.io/settings/team' - name: X-Team-Id - delete: - summary: Delete Template - tags: - - templates - operationId: delete-v1-template-template_id - responses: - '200': - $ref: '#/components/responses/DeleteTemplateResponse' - '400': - $ref: '#/components/responses/MessageResponse' '401': - $ref: '#/components/responses/MessageResponse' - '500': - $ref: '#/components/responses/MessageResponse' - default: $ref: '#/components/responses/ErrorResponse' - security: - - X-API-Key: [] - description: Delete private template using ID - parameters: - - schema: - type: string - in: header - description: 'Retrieve the Team ID from: https://cloud.projectdiscovery.io/settings/team' - name: X-Team-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/MessageResponse' - '401': - $ref: '#/components/responses/MessageResponse' '403': - $ref: '#/components/responses/MessageResponse' + $ref: '#/components/responses/ErrorResponse' '500': - $ref: '#/components/responses/MessageResponse' + $ref: '#/components/responses/ErrorResponse' default: $ref: '#/components/responses/ErrorResponse' - requestBody: - $ref: '#/components/requestBodies/GenerateTemplateRequest' security: - X-API-Key: [] - description: Generate a private template with AI Engine + description: Re-run a existing enumeration parameters: - schema: type: string in: header description: 'Retrieve the Team ID from: https://cloud.projectdiscovery.io/settings/team' name: X-Team-Id - /v1/template/share: + '/v1/asset/enumerate/{enum_id}/export': + parameters: + - schema: + type: string + name: enum_id + in: path + required: true + - schema: + type: boolean + in: query + name: async get: - summary: Get Shared Template List + summary: Export Enumeration tags: - - templates + - enumerations responses: '200': - $ref: '#/components/responses/GetShareStatusResponse' + description: OK + content: + application/octet-stream: + schema: + type: string + '201': + description: Created + content: + application/json: + schema: + type: object + properties: + export_id: + type: string + required: + - export_id '400': - $ref: '#/components/responses/MessageResponse' + $ref: '#/components/responses/ErrorResponse' '401': - $ref: '#/components/responses/MessageResponse' - '404': - $ref: '#/components/responses/MessageResponse' + $ref: '#/components/responses/ErrorResponse' '500': - $ref: '#/components/responses/MessageResponse' + $ref: '#/components/responses/ErrorResponse' default: $ref: '#/components/responses/ErrorResponse' - operationId: get-v1-template-share - security: - - X-API-Key: [] + operationId: get-enumerate-id-export parameters: + - schema: + $ref: '#/components/schemas/EnumExportFormats' + in: query + name: format - schema: type: string - in: header - description: 'Retrieve the Team ID from: https://cloud.projectdiscovery.io/settings/team' - name: X-Team-Id + in: query + name: search + description: Search by string - schema: type: string in: query - name: fields + name: labels + description: 'Filter by comma separated labels, e.g-> labels=p1,p2' - schema: - type: integer + type: boolean in: query - name: limit - description: Limit The numbers of items to return + name: is_new + description: Filter by new content - schema: - type: integer + type: string in: query - name: offset - description: Offset The numbers of items to skip + name: host + description: 'Filter by comma separated hosts, e.g-> host=p1,p2' - schema: type: string in: query - description: SortAsc Sort results in ascending order (CSV field names) - name: sort_asc + name: domains + description: 'Filter by comma separated domains, e.g-> domains=p1,p2' - schema: type: string in: query - name: sort_desc - description: SortDesc Sort results in descending order (CSV field names) - description: Shared template list - post: - summary: Share Template - tags: - - templates - operationId: post-v1-template-share - responses: + name: port + description: 'Filter by comma separated ports, e.g-> port=p1,p2' + - schema: + type: string + in: query + name: status_code + description: 'Filter by comma separated status codes, e.g-> status_code=p1,p2' + - schema: + type: string + in: query + name: title + description: 'Filter by comma separated titles, e.g-> title=p1,p2' + - schema: + type: string + in: query + name: content_length + description: 'Filter by comma separated content lengths, e.g-> content_length=p1,p2' + - schema: + type: string + in: query + name: cname + description: cname to filter + - schema: + type: string + in: query + name: technologies + description: technologies to filter + - schema: + type: string + in: query + name: ip + description: ips to filter + - schema: + type: string + in: header + description: 'Retrieve the Team ID from: https://cloud.projectdiscovery.io/settings/team' + name: X-Team-Id + - schema: + type: string + in: query + name: custom_filter + description: custom query to filter. double encode the query string. + - schema: + type: boolean + in: query + name: is_screenshot + description: Return records that have screenshots + - schema: + type: boolean + in: query + name: is_tech + description: Return records that have technologies + - schema: + type: boolean + in: query + name: is_favicon + description: Return the records that have favicon + - schema: + $ref: '#/components/schemas/TimeRangeQueryParameter' + default: all_time + in: query + name: time + description: time filter to select + - schema: + type: string + format: date + in: query + name: start_date + description: time filter start date + - schema: + type: string + format: date + in: query + name: end_date + description: time filter end date + - schema: + type: string + in: query + name: favicon + description: 'Filter by comma separated favicons, e.g-> favicon=p1,p2' + - schema: + type: boolean + in: query + name: only_dns + description: Query only dns FQDN records + - schema: + type: boolean + in: query + name: only_ip + description: Query only dns IP records + security: + - X-API-Key: [] + description: Export the list of discovered assets for an enumeration. + /v1/asset/enumerate/group: + post: + summary: Create an asset group + tags: + - enumerations + responses: '200': - $ref: '#/components/responses/ShareTemplateResponse' + description: OK + content: + application/json: + schema: + type: object + required: + - id + properties: + id: + type: string '400': - $ref: '#/components/responses/MessageResponse' + $ref: '#/components/responses/ErrorResponse' '401': - $ref: '#/components/responses/MessageResponse' - '404': - $ref: '#/components/responses/MessageResponse' + $ref: '#/components/responses/ErrorResponse' + '403': + $ref: '#/components/responses/ErrorResponse' '500': - $ref: '#/components/responses/MessageResponse' + $ref: '#/components/responses/ErrorResponse' default: $ref: '#/components/responses/ErrorResponse' - security: - - X-API-Key: [] requestBody: - $ref: '#/components/requestBodies/ShareTemplateRequest' - description: Share a private template (shared-with-link) + $ref: '#/components/requestBodies/CreateAssetGroupRequest' + operationId: post-v1-asset-enumerate-group parameters: - schema: type: string in: header description: 'Retrieve the Team ID from: https://cloud.projectdiscovery.io/settings/team' name: X-Team-Id - '/v1/template/share/{template_id}': + security: + - X-API-Key: [] + description: Create an asset group from existing enumeration data using filters + '/v1/asset/enumerate/group/{group_id}': parameters: - schema: type: string - name: template_id + name: group_id in: path required: true - description: unique template ID - get: - summary: Get Shared Template + delete: + summary: Delete an asset group tags: - - templates + - enumerations responses: '200': - $ref: '#/components/responses/GetSharedTemplateResponse' - '400': $ref: '#/components/responses/MessageResponse' + '400': + $ref: '#/components/responses/ErrorResponse' '401': - $ref: '#/components/responses/MessageResponse' - '404': - $ref: '#/components/responses/MessageResponse' + $ref: '#/components/responses/ErrorResponse' + '403': + $ref: '#/components/responses/ErrorResponse' '500': - $ref: '#/components/responses/MessageResponse' + $ref: '#/components/responses/ErrorResponse' default: $ref: '#/components/responses/ErrorResponse' - operationId: get-v1-template-share-template_id + operationId: delete-v1-asset-enumerate-group parameters: - schema: type: string - in: query - name: fields - description: 'get selected fields e.g. name,template_id,severity, etc' - description: Get a shared template text - requestBody: - content: {} + in: header + description: 'Retrieve the Team ID from: https://cloud.projectdiscovery.io/settings/team' + name: X-Team-Id + security: + - X-API-Key: [] + description: Delete an asset group by id patch: - summary: Update Shared Template - tags: [] - responses: - '200': - $ref: '#/components/responses/UpdateSharedTemplateResponse' - '400': - $ref: '#/components/responses/MessageResponse' - '401': - $ref: '#/components/responses/MessageResponse' - '500': - $ref: '#/components/responses/MessageResponse' - default: - $ref: '#/components/responses/ErrorResponse' - operationId: patch-v1-template-share-template_id - parameters: [] - requestBody: - content: - application/json: - schema: - type: object - properties: - ttl: - type: string - share_type: - type: string - users: - type: array - items: - type: integer - emails: - type: array - items: - type: string - organizations: - type: array - items: - type: string - delete: - summary: Unshare/Delete template - tags: [] + summary: Update an asset group + tags: + - enumerations responses: '200': $ref: '#/components/responses/MessageResponse' '400': - $ref: '#/components/responses/MessageResponse' - '401': - $ref: '#/components/responses/MessageResponse' - '500': - $ref: '#/components/responses/MessageResponse' - default: $ref: '#/components/responses/ErrorResponse' - operationId: delete-v1-template-share-template_id - /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/ErrorResponse' + '403': + $ref: '#/components/responses/ErrorResponse' '500': $ref: '#/components/responses/ErrorResponse' default: $ref: '#/components/responses/ErrorResponse' requestBody: - $ref: '#/components/requestBodies/PatchUserProfile' + $ref: '#/components/requestBodies/UpdateAssetGroupRequest' + operationId: patch-v1-asset-enumerate-group + parameters: + - schema: + type: string + enum: + - append + - replace + default: append + in: query + name: update_type + description: Append vs Replace update_type. Default is append + - schema: + type: string + in: header + description: 'Retrieve the Team ID from: https://cloud.projectdiscovery.io/settings/team' + name: X-Team-Id security: - X-API-Key: [] - description: (ADMIN) Patch a user profile - parameters: [] - /v1/admin/user/delete: - post: - summary: Admin delete user + description: Update an asset group by customising the filters + /v1/enumeration/schedule: + get: + summary: Get Enumeration Schedules tags: - - internal + - enumerations responses: '200': - $ref: '#/components/responses/MessageResponse' + $ref: '#/components/responses/GetEnumerationScheduleResponse' '400': $ref: '#/components/responses/MessageResponse' - '403': + '401': $ref: '#/components/responses/MessageResponse' '500': $ref: '#/components/responses/MessageResponse' default: $ref: '#/components/responses/ErrorResponse' - operationId: post-v1-admin-user-delete + operationId: get-v1-enumeration-schedule security: - X-API-Key: [] - x-internal: true - requestBody: - content: - application/json: - schema: - type: object - required: - - email - properties: - otp: - type: integer - email: - type: string - parameters: [] - /v1/admin/users: + description: Get enumeration re-scan schedule + parameters: + - schema: + type: string + in: header + description: 'Retrieve the Team ID from: https://cloud.projectdiscovery.io/settings/team' + name: X-Team-Id post: - summary: Create New User - operationId: post-v1-admin-users + summary: Set Enumeration Schedule + operationId: post-v1-enumeration-schedule tags: - - internal + - enumerations responses: '200': - $ref: '#/components/responses/PostCreateUserResponse' + $ref: '#/components/responses/MessageResponse' '400': - $ref: '#/components/responses/ErrorResponse' + $ref: '#/components/responses/MessageResponse' '401': - $ref: '#/components/responses/ErrorResponse' + $ref: '#/components/responses/MessageResponse' '500': - $ref: '#/components/responses/ErrorResponse' + $ref: '#/components/responses/MessageResponse' default: $ref: '#/components/responses/ErrorResponse' + requestBody: + $ref: '#/components/requestBodies/SetEnumerationScheduleRequest' security: - X-API-Key: [] - requestBody: - content: - application/json: - schema: - type: object - properties: - ai_status: - type: boolean - scan_status: - type: boolean - static_scan: - type: boolean - neo_ai: - type: boolean - early_template: - type: boolean - create_auth_user: - type: boolean - tag: - type: string - enum: - - TRIAL - - ENT_TRIAL - - PRO - - ENT - - FREE - - VERIFIED_FREE - - GROWTH - email: - type: string - invite_email: - type: boolean - required: - - email - description: (ADMIN) Create a new user - /v1/user/migrate_to_team: - post: - summary: Migrate Personal workspace data to a new team + description: Set enumeration re-scan frequency + parameters: + - schema: + type: string + in: header + description: 'Retrieve the Team ID from: https://cloud.projectdiscovery.io/settings/team' + name: X-Team-Id + delete: + summary: Delete Enumeration Schedule + operationId: delete-v1-enumeration-schedule tags: - - user + - enumerations responses: '200': - description: OK - content: - application/json: - schema: - type: object - properties: - message: - type: string - team_id: - type: string - required: - - message - - team_id + $ref: '#/components/responses/MessageResponse' '400': $ref: '#/components/responses/MessageResponse' '401': @@ -3378,42 +3235,113 @@ paths: $ref: '#/components/responses/MessageResponse' default: $ref: '#/components/responses/ErrorResponse' - operationId: post-v1-user-migrate-to-team - requestBody: - $ref: '#/components/requestBodies/CreateTeamRequest' + parameters: + - schema: + type: string + in: query + name: enumeration_id + description: enumeration_id of the schedule to be deleted + required: true + - schema: + type: string + in: header + description: 'Retrieve the Team ID from: https://cloud.projectdiscovery.io/settings/team' + name: X-Team-Id security: - X-API-Key: [] - description: Migrate Personal workspace data to a new team - /v1/user/team: + description: Delete a re-scan schedule + /v1/team/audit_log: get: - summary: Get Team - operationId: get-v1-user-team - tags: - - internal + summary: Get audit logs for team + tags: [] responses: '200': - $ref: '#/components/responses/GetTeamResponse' - '401': + description: OK + content: + application/json: + schema: + type: object + required: + - message + - data + properties: + message: + type: string + data: + type: array + items: + $ref: '#/components/schemas/UserAuditLogItems' + '400': $ref: '#/components/responses/MessageResponse' - '403': + '401': $ref: '#/components/responses/MessageResponse' '500': $ref: '#/components/responses/MessageResponse' - default: - $ref: '#/components/responses/ErrorResponse' + operationId: get-v1-audit-log security: - X-API-Key: [] - description: Get a team metadata parameters: + - schema: + type: string + in: query + name: email + description: filter by specific user + - schema: + type: string + in: query + name: action + description: filter by specific action name + - 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 logs + - schema: + type: string + format: date + in: query + name: end_date + description: end date till which you want to get logs + - schema: + type: string + enum: + - current_month + - last_month + - last_3_months + - last_6_months + - last_12_months + in: query + name: time_range + description: time range to get logs + - schema: + type: string + enum: + - api + - platform + - unknown + in: query + name: source + description: 'filter by request source (api, platform, unknown)' - schema: type: string in: header description: 'Retrieve the Team ID from: https://cloud.projectdiscovery.io/settings/team' name: X-Team-Id - post: - summary: Create Workspace - tags: - - internal + /v1/team/audit_log/search: + get: + summary: Smart search across audit logs + tags: [] responses: '200': description: OK @@ -3421,426 +3349,466 @@ paths: application/json: schema: type: object + required: + - message + - data properties: message: type: string - team_id: - type: string - required: - - message - - team_id + data: + type: array + items: + $ref: '#/components/schemas/UserAuditLogItems' '400': $ref: '#/components/responses/MessageResponse' '401': $ref: '#/components/responses/MessageResponse' '500': $ref: '#/components/responses/MessageResponse' - default: - $ref: '#/components/responses/ErrorResponse' - operationId: post-v1-user-team - requestBody: - $ref: '#/components/requestBodies/CreateTeamRequest' + operationId: get-v1-team-audit-log-search security: - X-API-Key: [] - description: 'Create a new team ' parameters: + - schema: + type: string + minLength: 1 + maxLength: 200 + in: query + name: q + required: true + description: | + Search query. Automatically detects search intent: + - Status code (404, 200, 500) → Searches status_code field + - Source (api, platform, unknown) → Searches source field + - IP address (192.168.x.x) → Searches ip field + - Email (user@example.com) → Searches email field + - HTTP method (GET, POST, PUT) → Searches method field + - Path (/v1/scans, enumerate) → Searches path_name and path fields + - General text → Searches across path, path_name, request, response + - schema: + type: integer + default: 0 + in: query + name: offset + description: number of rows to skip + - schema: + type: integer + default: 100 + in: query + name: limit + description: number of rows to get (max 100) - schema: type: string in: header - description: 'Retrieve the Team ID from: https://cloud.projectdiscovery.io/settings/team' name: X-Team-Id - patch: - summary: Update Team - operationId: patch-v1-user-team + required: true + description: '''Retrieve the Team ID from: https://cloud.projectdiscovery.io/settings/team''' + /v1/scans/history: + get: + summary: Get All Scans History tags: - - internal + - scans responses: '200': - $ref: '#/components/responses/UpdateTeamResponse' + $ref: '#/components/responses/GetScansHistoryResponse' '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: [] - requestBody: - $ref: '#/components/requestBodies/CreateTeamRequest' - description: Update a existing team + operationId: get-v1-scans-history parameters: - schema: - type: string - in: header - description: 'Retrieve the Team ID from: https://cloud.projectdiscovery.io/settings/team' - name: X-Team-Id - delete: - summary: Delete Team - tags: - - internal - requestBody: - content: - application/json: - schema: - type: object - properties: - team_id: - type: string - required: - - team_id - responses: - '200': - description: OK - '400': - $ref: '#/components/responses/MessageResponse' - '403': - $ref: '#/components/responses/MessageResponse' - '500': - $ref: '#/components/responses/MessageResponse' - default: - $ref: '#/components/responses/ErrorResponse' - operationId: delete-v1-user-team - security: - - X-API-Key: [] - description: Delete team (require 0 members) - parameters: + 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 - schema: type: string in: header description: 'Retrieve the Team ID from: https://cloud.projectdiscovery.io/settings/team' name: X-Team-Id - /v1/user/team/member: + 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 Team Members + summary: Get Scan History tags: - - internal + - scans responses: '200': - $ref: '#/components/responses/GetTeamMembersResponse' - '401': + $ref: '#/components/responses/GetScansHistoryResponse' + '400': $ref: '#/components/responses/ErrorResponse' - '403': + '401': $ref: '#/components/responses/ErrorResponse' '500': $ref: '#/components/responses/ErrorResponse' default: $ref: '#/components/responses/ErrorResponse' - operationId: get-v1-user-team-member - security: - - X-API-Key: [] - description: Get team member list + 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 - in: header - description: 'Retrieve the Team ID from: https://cloud.projectdiscovery.io/settings/team' - name: X-Team-Id - 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' - default: - $ref: '#/components/responses/ErrorResponse' - security: - - X-API-Key: [] - requestBody: - $ref: '#/components/requestBodies/AddTeamMemberRequest' - description: Invite a new team member - parameters: + format: date + in: query + name: start_date + description: start date from which you want to get history - schema: type: string - in: header - description: 'Retrieve the Team ID from: https://cloud.projectdiscovery.io/settings/team' - name: X-Team-Id - 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' - default: - $ref: '#/components/responses/ErrorResponse' - security: - - X-API-Key: [] - requestBody: - $ref: '#/components/requestBodies/DeleteTeamMemberRequest' - description: Delete a team member using member email - parameters: + format: date + in: query + name: end_date + description: end date till which you want to get history - schema: type: string - in: header - description: 'Retrieve the Team ID from: https://cloud.projectdiscovery.io/settings/team' - name: X-Team-Id - 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' - default: - $ref: '#/components/responses/ErrorResponse' - security: - - X-API-Key: [] - requestBody: - $ref: '#/components/requestBodies/PatchTeamMemberRequest' - description: Accept team invite - parameters: + 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 - schema: type: string in: header description: 'Retrieve the Team ID from: https://cloud.projectdiscovery.io/settings/team' name: X-Team-Id - /v1/user/team/member/accept: - patch: - summary: Update Team Member - operationId: patch-v1-user-team-member-accept + security: + - X-API-Key: [] + description: Get scan history detial by scanId + '/v1/scans/{scan_id}/scan_log/export': + parameters: + - schema: + type: string + name: scan_id + in: path + required: true + get: + summary: Export scan log of given scan id tags: - - internal + - scan_log responses: '200': - $ref: '#/components/responses/MessageResponse' + description: OK + content: + application/json: + schema: + type: object + required: + - url + properties: + url: + type: string + '201': + description: Created + content: + application/json: + schema: + type: object + properties: + export_id: + type: string + required: + - export_id '400': - $ref: '#/components/responses/MessageResponse' - '401': - $ref: '#/components/responses/MessageResponse' - '403': - $ref: '#/components/responses/MessageResponse' - '500': - $ref: '#/components/responses/MessageResponse' - default: $ref: '#/components/responses/ErrorResponse' - requestBody: - $ref: '#/components/requestBodies/InviteTeamMemberRequest' - description: Accept team invite - parameters: [] - /v1/user/team/default-members: - get: - summary: Get Default Team Members - operationId: get-v1-user-team-default-members - tags: - - internal - responses: - '200': - $ref: '#/components/responses/GetDefaultTeamMembersResponse' '401': $ref: '#/components/responses/ErrorResponse' - '403': - $ref: '#/components/responses/ErrorResponse' '500': $ref: '#/components/responses/ErrorResponse' default: $ref: '#/components/responses/ErrorResponse' + operationId: get-scans-id-scan-log-export security: - X-API-Key: [] - description: Retrieve the list of configured default team members parameters: - schema: type: string in: header description: 'Retrieve the Team ID from: https://cloud.projectdiscovery.io/settings/team' name: X-Team-Id - required: true - post: - summary: Set Default Team Members - operationId: post-v1-user-team-default-members + - schema: + type: integer + format: int64 + in: query + name: rescan_count + - 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: + $ref: '#/components/schemas/LogExportFormat' + name: format + in: query + description: format of the log file + - schema: + type: boolean + in: query + name: async + - schema: + type: string + in: query + name: alert_email + - schema: + type: string + enum: + - error + - info + - all_logs + default: all_logs + x-go-type-name: ScanLogExportSeverityTypes + in: query + name: severity + /v1/scans/vulns/history: + get: + summary: Get scan log stats of given scan id tags: - - internal + - history + - vuln responses: '200': - $ref: '#/components/responses/MessageResponse' + description: OK + content: + application/json: + schema: + $ref: '#/components/schemas/VulnerabilityHistoryDetail' '400': - $ref: '#/components/responses/MessageResponse' - '401': - $ref: '#/components/responses/MessageResponse' - '403': - $ref: '#/components/responses/MessageResponse' + $ref: '#/components/responses/ErrorResponse' '500': - $ref: '#/components/responses/MessageResponse' + $ref: '#/components/responses/ErrorResponse' default: $ref: '#/components/responses/ErrorResponse' - security: - - X-API-Key: [] - requestBody: - $ref: '#/components/requestBodies/SetDefaultTeamMembersRequest' - description: Set (replace) the list of default team members + operationId: get-vulns-history parameters: - schema: - type: string - in: header - description: 'Retrieve the Team ID from: https://cloud.projectdiscovery.io/settings/team' - name: X-Team-Id - required: true - delete: - summary: Delete Default Team Members - operationId: delete-v1-user-team-default-members + type: array + items: + type: string + in: query + name: vuln_hash + - schema: + type: integer + format: int64 + default: 5 + in: query + name: history_limit + required: false + description: Specifies the maximum number of revisions to be returned. + /v1/scans/config/exclude: + get: + summary: Get excluded templates tags: - - internal + - configurations responses: '200': - $ref: '#/components/responses/MessageResponse' + $ref: '#/components/responses/ExcludedTemplateResponse' '400': - $ref: '#/components/responses/MessageResponse' + $ref: '#/components/responses/ErrorResponse' '401': - $ref: '#/components/responses/MessageResponse' - '403': - $ref: '#/components/responses/MessageResponse' + $ref: '#/components/responses/ErrorResponse' '500': - $ref: '#/components/responses/MessageResponse' + $ref: '#/components/responses/ErrorResponse' default: $ref: '#/components/responses/ErrorResponse' - security: - - X-API-Key: [] - requestBody: - $ref: '#/components/requestBodies/DeleteDefaultTeamMemberRequest' - description: Delete default team members (specific or all) + operationId: get-scans-config-exclude parameters: - schema: type: string in: header description: 'Retrieve the Team ID from: https://cloud.projectdiscovery.io/settings/team' name: X-Team-Id - required: true - /v1/admin/team/member: + security: + - X-API-Key: [] + description: Get excluded templates post: - summary: Add Team Member (Admin) - operationId: post-v1-admin-team-member - tags: - - internal + summary: Add excluded templates and targets + operationId: post-scans-config-exclude responses: '200': $ref: '#/components/responses/MessageResponse' '400': - $ref: '#/components/responses/MessageResponse' + $ref: '#/components/responses/ErrorResponse' '401': - $ref: '#/components/responses/MessageResponse' - '403': - $ref: '#/components/responses/MessageResponse' + $ref: '#/components/responses/ErrorResponse' '500': - $ref: '#/components/responses/MessageResponse' + $ref: '#/components/responses/ErrorResponse' default: $ref: '#/components/responses/ErrorResponse' + tags: + - configurations + parameters: + - schema: + type: string + in: header + description: 'Retrieve the Team ID from: https://cloud.projectdiscovery.io/settings/team' + name: X-Team-Id + requestBody: + $ref: '#/components/requestBodies/ExcludeConfigRequest' 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 + description: Add excluded templates or targets + delete: + summary: Delete excluded templates or targets by ids + operationId: delete-scans-config-exclude responses: '200': - $ref: '#/components/responses/StaticScanIPsResponse' + $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: get-v1-scans-scan_ips - security: - - X-API-Key: [] - description: Get user static scan IPs list + tags: + - configurations parameters: - schema: type: string in: header description: 'Retrieve the Team ID from: https://cloud.projectdiscovery.io/settings/team' name: X-Team-Id - '/v1/scans/{scan_id}/import': + requestBody: + $ref: '#/components/requestBodies/DeleteExcludedConfigRequest' + security: + - X-API-Key: [] + description: Delete excluded templates or targets by ids + parameters: [] + '/v1/scans/{scan_id}/asset/export': parameters: - schema: type: string name: scan_id in: path required: true - patch: - summary: Update Imported Scan - operationId: patch-v1-scans-scan_id-import + get: + summary: Export list of unique assets for a scan tags: - scans responses: '200': + description: OK + content: + application/octet-stream: + schema: + type: string + '400': $ref: '#/components/responses/MessageResponse' '401': - $ref: '#/components/responses/ErrorResponse' - '403': - $ref: '#/components/responses/ErrorResponse' + $ref: '#/components/responses/MessageResponse' + '404': + $ref: '#/components/responses/MessageResponse' '500': - $ref: '#/components/responses/ErrorResponse' + $ref: '#/components/responses/MessageResponse' default: $ref: '#/components/responses/ErrorResponse' - description: Import more results to a given scan - requestBody: - content: - application/octet-stream: - schema: - type: string - format: binary + operationId: get-v1-scans-scan-id-assets-export security: - X-API-Key: [] + description: Export the list of all unique assets for a scan. parameters: - schema: type: string - in: header - description: 'Retrieve the Team ID from: https://cloud.projectdiscovery.io/settings/team' - name: X-Team-Id - '/v1/scans/{scan_id}/export': + in: query + name: search + description: Search with host or port + - schema: + type: string + in: query + name: format + description: 'supported format is csv, json, or raw (default json)' + '/v1/asset/enumerate/{enumerate_id}/domains/export': parameters: - schema: type: string - name: scan_id + name: enumerate_id in: path required: true - - schema: - type: boolean - in: query - name: async get: - summary: Export Scan + summary: Export the list of unique input domains of an enumeration. tags: - - scans + - asset responses: '200': description: OK @@ -3848,349 +3816,209 @@ paths: application/octet-stream: schema: type: string - '201': - description: Created - content: - application/json: - schema: - type: object - properties: - export_id: - type: string - required: - - export_id + '400': + $ref: '#/components/responses/MessageResponse' '401': - $ref: '#/components/responses/ErrorResponse' - '403': - $ref: '#/components/responses/ErrorResponse' + $ref: '#/components/responses/MessageResponse' + '404': + $ref: '#/components/responses/MessageResponse' '500': - $ref: '#/components/responses/ErrorResponse' + $ref: '#/components/responses/MessageResponse' default: $ref: '#/components/responses/ErrorResponse' - operationId: get-v1-scans-scan_id-export + operationId: get-v1-asset-enumerate-enum-id-domains-export + security: + - X-API-Key: [] + description: Export the list of unique input domains of an enumeration. + parameters: + - schema: + type: string + in: query + name: search + description: Search with domain name + - schema: + type: string + in: query + name: format + description: 'supported format is csv, raw, or json (default json)' + '/v1/asset/{asset_id}/changelogs': + parameters: + - schema: + type: integer + format: int64 + name: asset_id + in: path + required: true + get: + summary: Get Asset Changelogs for a given asset_id + tags: + - assets + responses: + '200': + $ref: '#/components/responses/GetAssetChangelogsResponse' + '400': + $ref: '#/components/responses/ErrorResponse' + '401': + $ref: '#/components/responses/ErrorResponse' + '500': + $ref: '#/components/responses/ErrorResponse' + default: + $ref: '#/components/responses/ErrorResponse' + operationId: get-v1-asset-assetId-changelogs parameters: - schema: type: string enum: - - json - - csv - - pdf + - last_day + - last_week + - last_month + - last_3_months + - last_6_months + - last_12_months + - all_time + default: all_time in: query - name: type - description: 'json, csv, pdf (default json)' + name: time + description: time filter to select + - schema: + type: string + in: query + name: event_type + description: 'comma separated event_type e.g. event_type=vul_status,vul_status_change' + - 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: integer + in: query + name: limit + description: number of results to get + - schema: + type: integer + in: query + name: offset + description: number of results to skip - schema: type: string in: header - description: 'Retrieve the Team ID from: https://cloud.projectdiscovery.io/settings/team' name: X-Team-Id + description: 'Retrieve the Team ID from: https://cloud.projectdiscovery.io/settings/team' security: - X-API-Key: [] - description: Export scan results - post: - summary: Export Filtered Scan + description: Get asset changelogs + /v1/asset/labels: + patch: + summary: Update Asset Labels tags: - - scans + - assets responses: '200': - description: OK - content: - application/octet-stream: - schema: - type: string - '201': - description: Created - content: - application/json: - schema: - type: object - properties: - export_id: - type: string - required: - - export_id + $ref: '#/components/responses/AssetCountResponse' + '400': + $ref: '#/components/responses/ErrorResponse' '401': $ref: '#/components/responses/ErrorResponse' - '403': + '404': $ref: '#/components/responses/ErrorResponse' '500': $ref: '#/components/responses/ErrorResponse' default: $ref: '#/components/responses/ErrorResponse' - operationId: post-v1-scans-scan_id-export + operationId: patch-v1-asset-labels parameters: - schema: type: string enum: - - json - - csv - - pdf + - append + - replace + - delete + default: append in: query - name: type - description: 'json, csv, pdf (default json)' + name: update_type + description: Append or Replace update_type - schema: type: string in: header description: 'Retrieve the Team ID from: https://cloud.projectdiscovery.io/settings/team' name: X-Team-Id 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 - domain: - type: array - items: - type: string - port: - type: array - items: - type: integer - template: - type: array - items: - type: string - search: - type: string - category: - type: array - items: - type: string - is_internal: - type: boolean - security: - - X-API-Key: [] - description: Export filtered scan results - /v1/scans/results/export: + $ref: '#/components/requestBodies/UpdateAssetLabelsRequest' + '/v1/asset/{asset_id}/labels': parameters: - schema: - type: boolean - in: query - name: async + type: integer + format: int64 + name: asset_id + in: path + required: true post: - summary: Export filtered Scan results + summary: Add labels to an asset tags: - - export + - assets responses: '200': - description: OK - content: - application/octet-stream: - schema: - type: string - '201': - description: Created - content: - application/json: - schema: - type: object - properties: - export_id: - type: string - required: - - export_id + $ref: '#/components/responses/MessageResponse' + '400': + $ref: '#/components/responses/ErrorResponse' '401': $ref: '#/components/responses/ErrorResponse' - '403': + '404': $ref: '#/components/responses/ErrorResponse' '500': $ref: '#/components/responses/ErrorResponse' default: $ref: '#/components/responses/ErrorResponse' - operationId: post-v1-scans-results-export + operationId: post-v1-asset-id-labels parameters: - - schema: - type: string - enum: - - json - - csv - - pdf - in: query - name: type - description: 'json, csv, pdf (default json)' - schema: type: string in: header description: 'Retrieve the Team ID from: https://cloud.projectdiscovery.io/settings/team' name: X-Team-Id 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 - domain: - type: array - items: - type: string - port: - type: array - items: - type: integer - template: - type: array - items: - type: string - search: - type: string - category: - type: array - items: - type: string - is_internal: - type: boolean - scan_ids: - type: array - items: - type: string - time: - $ref: '#/components/schemas/TimeRangeQueryParameter' - start_date: - type: string - format: date - end_date: - type: string - format: date - security: - - X-API-Key: [] - description: Export filtered scan results - /v1/export/list: - get: - summary: Get export list for user + $ref: '#/components/requestBodies/AssetIdLabelsRequest' + patch: + summary: Modify labels of an asset tags: - - export + - assets responses: '200': - description: OK - 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/ExportListItem' - '401': - $ref: '#/components/responses/ErrorResponse' - '403': - $ref: '#/components/responses/ErrorResponse' - '500': - $ref: '#/components/responses/ErrorResponse' - default: + $ref: '#/components/responses/MessageResponse' + '400': $ref: '#/components/responses/ErrorResponse' - operationId: get-v1-export-list - 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 - - schema: - type: string - in: query - name: export_status - - schema: - type: string - in: header - description: 'Retrieve the Team ID from: https://cloud.projectdiscovery.io/settings/team' - name: X-Team-Id - '/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': + '404': $ref: '#/components/responses/ErrorResponse' '500': $ref: '#/components/responses/ErrorResponse' default: $ref: '#/components/responses/ErrorResponse' - operationId: get-v1-scans-vuln-vuln_id-export + operationId: patch-v1-asset-id-labels parameters: - schema: type: string enum: - - json - - csv + - append + - replace + - delete + default: append in: query - name: type - description: 'json, csv (default json)' - - schema: - type: string - in: header - description: 'Retrieve the Team ID from: https://cloud.projectdiscovery.io/settings/team' - name: X-Team-Id - security: - - X-API-Key: [] - description: Export a specific scan vulnerability - /v1/scans/vulns: - patch: - summary: Update Vulnerability Status - operationId: patch-v1-scans-vulns + name: update_type + description: Append or Replace update_type + requestBody: + $ref: '#/components/requestBodies/AssetIdLabelsRequest' + delete: + summary: Delete labels of an asset tags: - - scans + - assets responses: '200': $ref: '#/components/responses/MessageResponse' @@ -4198,29 +4026,37 @@ paths: $ref: '#/components/responses/ErrorResponse' '401': $ref: '#/components/responses/ErrorResponse' + '404': + $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 + operationId: delete-v1-asset-id-labels parameters: - schema: type: string in: header description: 'Retrieve the Team ID from: https://cloud.projectdiscovery.io/settings/team' name: X-Team-Id - delete: - summary: Delete Scan Vulnerability - operationId: delete-v1-scans-vulns + '/v1/asset/enumerate/{enumerate_id}/config': + parameters: + - schema: + type: string + name: enumerate_id + in: path + required: true + get: + summary: Get enumeration config tags: - - scans + - enumerations responses: '200': - $ref: '#/components/responses/MessageResponse' + description: Shared Response + content: + application/json: + schema: + $ref: '#/components/schemas/EnumerationConfig' '400': $ref: '#/components/responses/ErrorResponse' '401': @@ -4229,23 +4065,16 @@ paths: $ref: '#/components/responses/ErrorResponse' default: $ref: '#/components/responses/ErrorResponse' - requestBody: - $ref: '#/components/requestBodies/DeleteVulnsRequest' - security: - - X-API-Key: [] - description: Batch Delete scan vulnerability + operationId: get-v1-asset-enumerate-enumerate_id-config parameters: - schema: type: string in: header description: 'Retrieve the Team ID from: https://cloud.projectdiscovery.io/settings/team' name: X-Team-Id - /v1/scans/vulns/labels: patch: - summary: Update Vulnerability Labels - operationId: patch-v1-scans-vulns-labels - tags: - - scans + summary: Update enumeration config + tags: [] responses: '200': $ref: '#/components/responses/MessageResponse' @@ -4257,354 +4086,466 @@ paths: $ref: '#/components/responses/ErrorResponse' default: $ref: '#/components/responses/ErrorResponse' - requestBody: - $ref: '#/components/requestBodies/PatchScanVulnsLabelsRequest' - security: - - X-API-Key: [] - description: Batch update vulnerability labels + operationId: patch-v1-asset-enumerate-enumerate_id-config parameters: + - schema: + type: string + enum: + - append + - replace + in: query + name: update_type + description: default mode is append - schema: type: string in: header description: 'Retrieve the Team ID from: https://cloud.projectdiscovery.io/settings/team' name: X-Team-Id - /v1/scans/config: + requestBody: + description: Shared Request + content: + application/json: + schema: + $ref: '#/components/schemas/EnumerationConfig' + /v1/asset/enumerate/export: + parameters: + - schema: + type: boolean + in: query + name: async get: - summary: Get Configs List + summary: Export Enumeration of user tags: - - configurations + - enumerations responses: '200': description: OK + content: + application/octet-stream: + schema: + type: string + '201': + description: Created content: application/json: schema: - type: array - items: - $ref: '#/components/schemas/ConfigResponse' + type: object + properties: + export_id: + type: string + required: + - export_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: get-v1-scans-config + operationId: get-enumerate-export parameters: - schema: - enum: - - scan - - reporting - - template - - alerting - - cloudlist - - subfinder - - remediation - - vuln_score + $ref: '#/components/schemas/EnumExportFormats' + in: query + name: format + - schema: type: string + name: search in: query - name: type - description: filter by the type of config + description: Search on the content name - schema: type: string in: query - name: search - description: search by config name + name: labels + description: 'Filter by comma separated labels, e.g-> labels=p1,p2' - schema: - type: integer + type: boolean in: query - name: limit - description: The numbers of items to return + name: is_new + description: Filter by new content - schema: - type: integer + type: string in: query - description: The number of items to skip before starting to collect the result set - name: offset + name: host + description: 'Filter by comma separated labels, e.g-> host=p1,p2' - schema: type: string - in: header - description: 'Retrieve the Team ID from: https://cloud.projectdiscovery.io/settings/team' - name: X-Team-Id - 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 - oauth_config_id: - type: string - description: ID of existing OAuth config to update with the complete configuration - required: - - config - - name - security: - - X-API-Key: [] - description: Add a new scan configuration - parameters: + in: query + name: port + description: 'Filter by port separated labels, e.g-> port=p1,p2' + - schema: + type: string + in: query + name: status_code + description: 'Filter by status code separated labels, e.g-> status_code=p1,p2' + - schema: + type: string + in: query + name: title + description: 'Filter by title separated labels, e.g-> title=p1,p2' + - schema: + type: string + in: query + name: content_length + description: 'Filter by content length separated labels, e.g-> content_length=p1,p2' + - schema: + type: string + in: query + name: domain + description: 'Filter by domain names separated labels, e.g-> domain=domain1.com,domain2.com' + - schema: + type: string + in: query + name: cname + description: cname to filter + - schema: + type: string + in: query + name: technologies + description: technologies to filter + - schema: + type: string + in: query + name: sort_asc + description: 'comma separated ascending sorting e.g sort_asc=created_at,name' + - schema: + type: string + in: query + name: sort_desc + - schema: + $ref: '#/components/schemas/TimeRangeQueryParameter' + default: all_time + in: query + name: time + description: time filter to select + - schema: + type: string + format: date + in: query + name: start_date + description: time filter start date + - schema: + type: string + format: date + in: query + name: end_date + description: time filter end date - schema: type: string in: header description: 'Retrieve the Team ID from: https://cloud.projectdiscovery.io/settings/team' name: X-Team-Id - '/v1/scans/config/{config_id}': - parameters: - - schema: - type: string - name: config_id - in: path - required: true + - schema: + type: string + in: query + name: custom_filter + description: custom query to filter. double encode the query string. + - schema: + type: boolean + in: query + name: is_screenshot + - schema: + type: string + in: query + name: ip + description: ips to filter + - schema: + type: string + in: query + name: favicon + description: 'Filter by comma separated favicons, e.g-> favicon=p1,p2' + - schema: + type: boolean + in: query + name: only_dns + description: Query only dns FQDN records + - schema: + type: boolean + in: query + name: only_ip + description: Query only dns IP records + security: + - X-API-Key: [] + description: Export the list of discovered assets for all enumerations. + /v1/domain/associated: get: - summary: Get Config + summary: Get Associated Domains + description: Discover domains related to a given domain through acquisition history, certificate transparency logs, and WHOIS records. Returns associated domains with evidence of their relationship. tags: - - configurations + - chaos responses: '200': - description: OK - content: - application/json: - schema: - $ref: '#/components/schemas/ConfigResponse' + $ref: '#/components/responses/AssociatedDomainsResults' '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 + operationId: associated-domains parameters: - schema: type: string - in: header - description: 'Retrieve the Team ID from: https://cloud.projectdiscovery.io/settings/team' - name: X-Team-Id + in: query + name: domain + description: Domain name to fetch associated domains. If omitted, returns associated domains for all your verified domains. + - schema: + type: string + in: query + name: source + description: 'Comma-separated source filter (acquisition_history, certificate_history, whois_history)' - schema: type: boolean in: query - name: config_json - description: config is in json format - patch: - summary: Update Config - operationId: patch-v1-scans-config-config_id + name: active + description: 'Filter by liveness (true=alive, false=unreachable)' + - schema: + type: string + enum: + - active + - domain + - source + - subdomain_count + - update_date + in: query + name: sort + description: Sort results + - schema: + type: integer + in: query + name: limit + description: 'Maximum results per page (pagination). If omitted, returns all.' + - schema: + type: integer + in: query + name: page + description: 'Page number (pagination, starts at 1)' + - schema: + type: boolean + in: query + name: raw + description: 'If true, returns plain text list (one domain per line)' + - schema: + type: string + in: header + name: X-Team-Id + parameters: [] + /v1/scans/config/severity: + get: + summary: Get custom severity mappings tags: - configurations responses: '200': - $ref: '#/components/responses/PostScanConfigResponse' + $ref: '#/components/responses/GetSeverityConfigResponse' '400': $ref: '#/components/responses/ErrorResponse' '401': $ref: '#/components/responses/ErrorResponse' - '403': + '404': $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 + operationId: get-v1-scans-config-severity parameters: - schema: type: string in: header - description: 'Retrieve the Team ID from: https://cloud.projectdiscovery.io/settings/team' name: X-Team-Id - - schema: - type: boolean - in: query - description: Specify payload is in json - name: config_json - delete: - summary: Delete Config - operationId: delete-v1-scans-config-config_id + description: 'Retrieve the Team ID from: https://cloud.projectdiscovery.io/settings/team' + post: + summary: Add custom severity mapping tags: - configurations responses: '200': - $ref: '#/components/responses/MessageResponse' + $ref: '#/components/responses/PostSeverityConfigResponse' '400': $ref: '#/components/responses/ErrorResponse' '401': $ref: '#/components/responses/ErrorResponse' - '403': + '404': $ref: '#/components/responses/ErrorResponse' '500': $ref: '#/components/responses/ErrorResponse' default: $ref: '#/components/responses/ErrorResponse' - security: - - X-API-Key: [] - description: Delete scan configuration + operationId: post-v1-scans-config-severity parameters: - schema: type: string in: header description: 'Retrieve the Team ID from: https://cloud.projectdiscovery.io/settings/team' name: X-Team-Id - /v1/scans/config/verify: - post: - summary: Verify Config + requestBody: + $ref: '#/components/requestBodies/AddCustomSeverityMappingRequest' + delete: + summary: Delete custom severity mapping tags: - configurations responses: '200': - $ref: '#/components/responses/VerifyConfigResponse' + $ref: '#/components/responses/MessageResponse' '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: post-v1-scans-config-verify - requestBody: - $ref: '#/components/requestBodies/VerifyConfigRequest' - security: - - X-API-Key: [] - description: Verify scan configuration + operationId: delete-v1-scans-config-severity parameters: - schema: type: string in: header - description: 'Retrieve the Team ID from: https://cloud.projectdiscovery.io/settings/team' name: X-Team-Id - /v1/scans/config/verify/contents: - post: - summary: Get Verify Config Contents + description: 'Retrieve the Team ID from: https://cloud.projectdiscovery.io/settings/team' + requestBody: + $ref: '#/components/requestBodies/DeleteCustomSeverityMappingRequest' + '/v1/scans/config/{config_id}/severity': + parameters: + - schema: + type: integer + format: int64 + name: config_id + in: path + required: true + patch: + summary: Modify custom severity mapping tags: - configurations responses: '200': - $ref: '#/components/responses/VerifyConfigContentsResponse' + $ref: '#/components/responses/MessageResponse' '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: post-v1-scans-config-verify-contents - requestBody: - $ref: '#/components/requestBodies/VerifyConfigContentsRequest' - security: - - X-API-Key: [] - description: Get Verify scan configuration contents + operationId: patch-v1-scans-config-config_id-severity parameters: - schema: type: string in: header - description: 'Retrieve the Team ID from: https://cloud.projectdiscovery.io/settings/team' name: X-Team-Id - - schema: - type: string - in: query - description: Jira Project ID to fetch details for - name: project_id - - schema: - type: string - in: query - description: Linear Team ID to fetch details for - name: team_id - - schema: - type: string - in: query - description: Specific Jira cloud ID when multiple clouds are available - name: cloud_id - '/v1/scans/{scan_id}/config': - parameters: - - schema: - type: string - name: scan_id - in: path - required: true + description: 'Retrieve the Team ID from: https://cloud.projectdiscovery.io/settings/team' + requestBody: + $ref: '#/components/requestBodies/AddCustomSeverityMappingRequest' + /v1/leaks/stats/domain: get: - summary: Get Scan Config + summary: Get leak statistics for a domain (Public) + description: 'Public endpoint - no authentication required. Returns leak statistics for any domain including employee/customer leak counts, geographic distribution, and top compromised services.' tags: - - scans + - leaks responses: '200': description: OK - headers: {} content: application/json: schema: - $ref: '#/components/schemas/ScanConfig' + type: object + properties: + leak_devices_count: + type: array + items: + $ref: '#/components/schemas/DevicesCount' + leak_customers_count: + type: array + items: + $ref: '#/components/schemas/CustomersCount' + leak_user_count: + type: array + items: + $ref: '#/components/schemas/UsersCount' + leak_employees_count: + type: array + items: + $ref: '#/components/schemas/EmployeesCount' + combolist_exposure: + type: array + items: + $ref: '#/components/schemas/CombolistExposureCount' + leak_country_stats: + type: array + items: + $ref: '#/components/schemas/LeakCountryStats' + top_used_urls_by_customers: + type: array + items: + $ref: '#/components/schemas/UsedUrlsCount' + top_used_urls_by_employees: + type: array + items: + $ref: '#/components/schemas/UsedUrlsCount' + top_used_urls_by_user: + type: array + items: + $ref: '#/components/schemas/UsedUrlsCount' + leak_customers_timeline: + type: array + items: + $ref: '#/components/schemas/LeaksTimeline' + leak_user_timeline: + type: array + items: + $ref: '#/components/schemas/LeaksTimeline' + leak_employees_timeline: + type: array + items: + $ref: '#/components/schemas/LeaksTimeline' + customers_sample_data: + type: array + items: + $ref: '#/components/schemas/LeaksUsersSampleData' + employees_sample_data: + type: array + items: + $ref: '#/components/schemas/LeaksUsersSampleData' + user_sample_data: + type: array + items: + $ref: '#/components/schemas/LeaksUsersSampleData' '400': - $ref: '#/components/responses/ErrorResponse' + $ref: '#/components/responses/MessageResponse' '401': - $ref: '#/components/responses/ErrorResponse' + $ref: '#/components/responses/MessageResponse' + '403': + $ref: '#/components/responses/MessageResponse' + '404': + $ref: '#/components/responses/MessageResponse' '500': - $ref: '#/components/responses/ErrorResponse' + $ref: '#/components/responses/MessageResponse' default: $ref: '#/components/responses/ErrorResponse' - operationId: get-scans-id-config - security: - - X-API-Key: [] - description: 'Get scan metadata config ' + operationId: get-v1-leaks-stats-domain parameters: - schema: type: string - in: header - description: 'Retrieve the Team ID from: https://cloud.projectdiscovery.io/settings/team' - name: X-Team-Id - patch: - summary: Update Scan Config - operationId: patch-scans-id-config + in: query + name: domain + - schema: + type: boolean + in: query + name: unmask_email + /v1/leaks/stats/email: + get: + summary: Get leak statistics for an email (Public) + description: 'Public endpoint - no authentication required. Returns leak statistics for any email address including leak classification, compromised services, and risk timeline.' tags: - - scans + - leaks responses: '200': description: OK @@ -4613,46 +4554,98 @@ paths: schema: type: object properties: - ok: - type: boolean + leak_devices_count: + type: array + items: + $ref: '#/components/schemas/DevicesCount' + leak_customers_count: + type: array + items: + $ref: '#/components/schemas/CustomersCount' + leak_user_count: + type: array + items: + $ref: '#/components/schemas/UsersCount' + leak_employees_count: + type: array + items: + $ref: '#/components/schemas/EmployeesCount' + combolist_exposure: + type: array + items: + $ref: '#/components/schemas/CombolistExposureCount' + leak_country_stats: + type: array + items: + $ref: '#/components/schemas/LeakCountryStats' + top_used_urls_by_customers: + type: array + items: + $ref: '#/components/schemas/UsedUrlsCount' + top_used_urls_by_employees: + type: array + items: + $ref: '#/components/schemas/UsedUrlsCount' + top_used_urls_by_user: + type: array + items: + $ref: '#/components/schemas/UsedUrlsCount' + leak_customers_timeline: + type: array + items: + $ref: '#/components/schemas/LeaksTimeline' + leak_user_timeline: + type: array + items: + $ref: '#/components/schemas/LeaksTimeline' + leak_employees_timeline: + type: array + items: + $ref: '#/components/schemas/LeaksTimeline' + customers_sample_data: + type: array + items: + $ref: '#/components/schemas/LeaksUsersSampleData' + employees_sample_data: + type: array + items: + $ref: '#/components/schemas/LeaksUsersSampleData' + user_sample_data: + type: array + items: + $ref: '#/components/schemas/LeaksUsersSampleData' '400': - $ref: '#/components/responses/ErrorResponse' + $ref: '#/components/responses/MessageResponse' '401': - $ref: '#/components/responses/ErrorResponse' + $ref: '#/components/responses/MessageResponse' + '403': + $ref: '#/components/responses/MessageResponse' + '404': + $ref: '#/components/responses/MessageResponse' '500': - $ref: '#/components/responses/ErrorResponse' + $ref: '#/components/responses/MessageResponse' default: $ref: '#/components/responses/ErrorResponse' - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/ScanConfigUpdateItem' - security: - - X-API-Key: [] - description: Update scan metadata config + operationId: get-v1-leaks-stats-email parameters: - schema: type: string - enum: - - append - - replace - default: append in: query - name: update_type - description: 'Update type: append or replace' + name: email + description: Email to get stats for - schema: - type: string - in: header - description: 'Retrieve the Team ID from: https://cloud.projectdiscovery.io/settings/team' - name: X-Team-Id - /v1/payment/stripe/invoices: - get: - summary: Get a list of invoices for a customer - operationId: get-v1-payment-stripe-invoices + type: boolean + in: query + name: unmask_email + /v1/leaks/export: + post: + summary: Export leaked credentials + description: 'Export leaked credentials with filtering by type, domain, email, date range, and more. Passwords are unmasked after domain verification. See [Domain Verification](/cloud/credential-monitoring#domain-verification) for setup instructions.' + tags: + - export responses: '200': - description: OK + description: Export data returned successfully content: application/json: schema: @@ -4661,8200 +4654,299 @@ paths: data: type: array items: - $ref: '#/components/schemas/InvoiceItem' - required: - - data - '400': - $ref: '#/components/responses/MessageResponse' - '401': - $ref: '#/components/responses/MessageResponse' - '500': - $ref: '#/components/responses/MessageResponse' - default: - $ref: '#/components/responses/ErrorResponse' - security: - - X-API-Key: [] - /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' - default: - $ref: '#/components/responses/ErrorResponse' - security: - - X-API-Key: [] - requestBody: - content: - application/json: - schema: - type: object - properties: - price_id: - type: string - required: - - price_id - description: Create a new payment checkout - parameters: - - schema: - type: string - in: header - description: 'Retrieve the Team ID from: https://cloud.projectdiscovery.io/settings/team' - name: X-Team-Id - 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 - amount: - type: integer - monthly_token: - type: integer - price_id: - type: string - recurrence: - type: string - from: - type: string - to: - type: string - card: - type: string - brand: - type: string - payment_mode: - type: string - cancel_at: - type: string - trial: - type: string - required: - - status - - message - '400': - $ref: '#/components/responses/ErrorResponse' - '500': - $ref: '#/components/responses/ErrorResponse' - default: - $ref: '#/components/responses/ErrorResponse' - operationId: get-v1-user-subscription - security: - - X-API-Key: [] - description: Get user subscription status - parameters: - - schema: - type: string - in: header - description: 'Retrieve the Team ID from: https://cloud.projectdiscovery.io/settings/team' - name: X-Team-Id - patch: - summary: Update current subscription - tags: - - users - responses: - '200': - description: OK - content: - application/json: - schema: - type: object - required: - - message - - status - properties: - message: - type: string - invoice: - type: string - status: - type: string - '400': - $ref: '#/components/responses/MessageResponse' - '403': - $ref: '#/components/responses/MessageResponse' - '500': - $ref: '#/components/responses/MessageResponse' - default: - $ref: '#/components/responses/ErrorResponse' - operationId: patch-v1-user-subscription - security: - - X-API-Key: [] - requestBody: - content: - application/json: - schema: - type: object - required: - - price_id - properties: - price_id: - type: string - parameters: - - schema: - type: string - in: header - description: 'Retrieve the Team ID from: https://cloud.projectdiscovery.io/settings/team' - name: X-Team-Id - /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) - - schema: - type: string - in: query - name: sort_asc - description: 'comma separated ascending sorting e.g sort_asc=created_at,name' - - schema: - type: string - in: query - name: sort_desc - description: 'comma separated descending sorting e.g sort_desc=created_at,name' - - schema: - type: string - in: query - name: status - description: comma separated filter enumeration result by status - - schema: - type: string - enum: - - last_day - - last_week - - last_month - - last_3_months - - last_6_months - - last_12_months - - all_time - default: all_time - in: query - name: time - description: time range to get enumerations from - - schema: - type: string - format: date - in: query - name: start_date - description: time filter start date - - schema: - type: string - format: date - in: query - name: end_date - description: time filter end date - - schema: - type: string - in: query - name: custom_filter - description: custom query to filter. double encode the query string. - - schema: - type: boolean - in: query - name: is_internal - description: filter by internal enumerations - - schema: - type: string - in: header - description: 'Retrieve the Team ID from: https://cloud.projectdiscovery.io/settings/team' - name: X-Team-Id - 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 - truncated-scan-targets: - type: integer - is-public: - type: boolean - bulk_ids: - type: array - items: - type: string - failed_domains: - type: object - additionalProperties: - type: string - description: Map of domain to failure reason - '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 - - dns_bruteforce - - dns_permute - - port_scan - - http_probe - - http_screenshot - - endpoint_crawling - - dns_passive - - tls_scan - - uncover_assets - - dns_scraping - enumeration_ports: - type: string - alerting_config_ids: - type: array - items: - type: string - disable_global_alert_config: - type: boolean - exclude_targets: - type: array - items: - type: string - enumeration_config: - type: object - properties: - follow-redirect: - type: boolean - ports: - type: string - automatic_vuln_scans: - type: boolean - per_domain_enumeration: - type: boolean - agent_id: - type: string - agent_tags: - type: array - items: - type: string - agent_networks: - type: array - items: - type: string - agent_behavior: - type: string - enum: - - distribute - - mirror - default: distribute - agent_auto_discover: - type: boolean - exclusions: - type: array - items: - type: string - description: >- - Combined inclusion and exclusion patterns for discovery scope. - Exclusion patterns (e.g. `*.staging.company.com`) filter out matching targets. - Inclusion patterns use a `+` prefix (e.g. `+prod-*.company.com`) to restrict discovery to only matching targets (allowlist mode). - When inclusion patterns are present, targets must match at least one inclusion pattern and not match any exclusion pattern. - Supports exact domains, wildcard patterns, IP addresses, and CIDR ranges. - security: - - X-API-Key: [] - description: Create a new enumeration - parameters: - - schema: - type: string - in: header - description: 'Retrieve the Team ID from: https://cloud.projectdiscovery.io/settings/team' - name: X-Team-Id - delete: - summary: Delete Assets in bulk - 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-enumerates - requestBody: - content: - application/json: - schema: - type: object - required: - - asset_ids - properties: - asset_ids: - type: array - items: - type: string - security: - - X-API-Key: [] - description: Delete enumeration by enumerate ids - parameters: - - schema: - type: string - in: header - description: 'Retrieve the Team ID from: https://cloud.projectdiscovery.io/settings/team' - name: X-Team-Id - '/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' - '499': - $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 - parameters: - - schema: - type: string - in: header - description: 'Retrieve the Team ID from: https://cloud.projectdiscovery.io/settings/team' - name: X-Team-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 - parameters: - - schema: - type: string - in: header - description: 'Retrieve the Team ID from: https://cloud.projectdiscovery.io/settings/team' - name: X-Team-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 - parameters: - - schema: - type: string - in: header - description: 'Retrieve the Team ID from: https://cloud.projectdiscovery.io/settings/team' - name: X-Team-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: 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: boolean - in: query - name: is_tech - description: Return records that have technologies - - schema: - type: boolean - in: query - name: is_favicon - description: Return the records that have favicon - - 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' - - schema: - type: boolean - in: query - name: is_new - description: Filter by new content - - schema: - type: string - in: query - name: host - description: 'Filter by comma separated hosts, e.g-> host=p1,p2' - - schema: - type: string - in: query - name: port - description: 'Filter by comma separated ports, e.g-> port=p1,p2' - - schema: - type: string - in: query - name: status_code - description: 'Filter by comma separated status codes, e.g-> status_code=p1,p2' - - schema: - type: string - in: query - name: title - description: 'Filter by comma separated titles, e.g-> title=p1,p2' - - schema: - type: string - in: query - name: content_length - description: 'Filter by comma separated content lengths, e.g-> content_length=p1,p2' - - schema: - type: string - in: query - name: cname - description: cname to filter - - schema: - type: string - in: query - name: domain - description: 'Filter by comma separated domain names, e.g-> domain=domain1.com,domain2.com' - - schema: - type: string - in: query - name: technologies - description: technologies to filter - - schema: - type: string - in: query - name: ip - description: ips to filter - - schema: - type: string - in: query - name: sort_asc - description: 'comma separated ascending sorting e.g sort_asc=created_at,name' - - schema: - type: string - in: query - name: sort_desc - description: 'comma separated descending sorting e.g sort_desc=created_at,name' - - schema: - type: boolean - in: query - name: is_screenshot - description: asset with screenshots - - schema: - $ref: '#/components/schemas/TimeRangeQueryParameter' - default: all_time - in: query - name: time - description: time filter to select - - schema: - type: string - format: date - in: query - name: start_date - description: time filter start date - - schema: - type: string - format: date - in: query - name: end_date - description: time filter end date - - schema: - type: string - in: header - description: 'Retrieve the Team ID from: https://cloud.projectdiscovery.io/settings/team' - name: X-Team-Id - - schema: - type: string - in: query - name: custom_filter - description: custom query to filter. double encode the query string. - - schema: - type: string - in: query - name: favicon - description: 'Filter by comma separated favicons, e.g-> favicon=p1,p2' - - schema: - type: boolean - in: query - name: only_dns - description: Query only dns FQDN records - - schema: - type: boolean - in: query - name: only_ip - description: Query only dns IP records - - schema: - type: boolean - in: query - name: is_internal - description: filter by is_internal (internal vs external hosts) - security: - - X-API-Key: [] - description: Get enumeration content by enumerate_id - /v1/asset/enumerate/contents: - get: - summary: Get All 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-contents - parameters: - - schema: - type: integer - default: 0 - in: query - name: offset - description: The number of items to skip before starting to collect the result set - - schema: - $ref: '#/components/schemas/TimeRangeQueryParameter' - default: all_time - in: query - name: time - description: time filter to select - - schema: - type: integer - default: 100 - in: query - name: limit - description: The numbers of items to return - - schema: - type: boolean - in: query - name: is_tech - description: Return records that have technologies - - schema: - type: boolean - in: query - name: is_favicon - description: Return the records that have favicon - - 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' - - schema: - type: boolean - in: query - name: is_new - description: Filter by new content - - schema: - type: string - in: query - name: host - description: 'Filter by comma separated labels, e.g-> host=p1,p2' - - schema: - type: string - in: query - name: port - description: 'Filter by port separated labels, e.g-> port=p1,p2' - - schema: - type: string - in: query - name: status_code - description: 'Filter by status code separated labels, e.g-> status_code=p1,p2' - - schema: - type: string - in: query - name: title - description: 'Filter by title separated labels, e.g-> title=p1,p2' - - schema: - type: string - in: query - name: content_length - description: 'Filter by content length separated labels, e.g-> content_length=p1,p2' - - schema: - type: string - in: query - name: domain - description: 'Filter by domain names separated labels, e.g-> domain=domain1.com,domain2.com' - - schema: - type: string - in: query - name: cname - description: cname to filter - - schema: - type: string - in: query - name: technologies - description: technologies to filter - - schema: - type: string - in: query - name: ip - description: ips to filter - - schema: - type: string - in: query - name: sort_asc - description: 'comma separated ascending sorting e.g sort_asc=created_at,name' - - schema: - type: string - in: query - name: sort_desc - description: 'comma separated descending sorting e.g sort_desc=created_at,name' - - schema: - type: string - in: header - description: 'Retrieve the Team ID from: https://cloud.projectdiscovery.io/settings/team' - name: X-Team-Id - - schema: - type: string - in: query - name: custom_filter - description: custom query to filter. double encode the query string. - - schema: - type: boolean - in: query - name: is_screenshot - description: asset with screenshots - - schema: - type: string - in: query - name: favicon - description: 'Filter by comma separated favicons, e.g-> favicon=p1,p2' - - schema: - type: boolean - in: query - name: only_dns - description: Query only dns FQDN records - - schema: - type: boolean - in: query - name: only_ip - description: Query only dns IP records - - schema: - type: boolean - in: query - name: is_internal - description: filter by is_internal (internal vs external hosts) - security: - - X-API-Key: [] - description: Get All enumeration content - '/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 - parameters: - - schema: - type: string - in: header - description: 'Retrieve the Team ID from: https://cloud.projectdiscovery.io/settings/team' - name: X-Team-Id - '/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 - required: - - id - properties: - id: - type: string - truncated-scan-targets: - type: integer - '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 - parameters: - - schema: - type: string - in: header - description: 'Retrieve the Team ID from: https://cloud.projectdiscovery.io/settings/team' - name: X-Team-Id - '/v1/asset/enumerate/{enum_id}/export': - parameters: - - schema: - type: string - name: enum_id - in: path - required: true - - schema: - type: boolean - in: query - name: async - get: - summary: Export Enumeration - tags: - - enumerations - responses: - '200': - description: OK - content: - application/octet-stream: - schema: - type: string - '201': - description: Created - content: - application/json: - schema: - type: object - properties: - export_id: - type: string - required: - - export_id - '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: - $ref: '#/components/schemas/EnumExportFormats' - 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' - - schema: - type: boolean - in: query - name: is_new - description: Filter by new content - - schema: - type: string - in: query - name: host - description: 'Filter by comma separated hosts, e.g-> host=p1,p2' - - schema: - type: string - in: query - name: domains - description: 'Filter by comma separated domains, e.g-> domains=p1,p2' - - schema: - type: string - in: query - name: port - description: 'Filter by comma separated ports, e.g-> port=p1,p2' - - schema: - type: string - in: query - name: status_code - description: 'Filter by comma separated status codes, e.g-> status_code=p1,p2' - - schema: - type: string - in: query - name: title - description: 'Filter by comma separated titles, e.g-> title=p1,p2' - - schema: - type: string - in: query - name: content_length - description: 'Filter by comma separated content lengths, e.g-> content_length=p1,p2' - - schema: - type: string - in: query - name: cname - description: cname to filter - - schema: - type: string - in: query - name: technologies - description: technologies to filter - - schema: - type: string - in: query - name: ip - description: ips to filter - - schema: - type: string - in: header - description: 'Retrieve the Team ID from: https://cloud.projectdiscovery.io/settings/team' - name: X-Team-Id - - schema: - type: string - in: query - name: custom_filter - description: custom query to filter. double encode the query string. - - schema: - type: boolean - in: query - name: is_screenshot - description: Return records that have screenshots - - schema: - type: boolean - in: query - name: is_tech - description: Return records that have technologies - - schema: - type: boolean - in: query - name: is_favicon - description: Return the records that have favicon - - schema: - $ref: '#/components/schemas/TimeRangeQueryParameter' - default: all_time - in: query - name: time - description: time filter to select - - schema: - type: string - format: date - in: query - name: start_date - description: time filter start date - - schema: - type: string - format: date - in: query - name: end_date - description: time filter end date - - schema: - type: string - in: query - name: favicon - description: 'Filter by comma separated favicons, e.g-> favicon=p1,p2' - - schema: - type: boolean - in: query - name: only_dns - description: Query only dns FQDN records - - schema: - type: boolean - in: query - name: only_ip - description: Query only dns IP records - security: - - X-API-Key: [] - description: Export the list of discovered assets for an enumeration. - /v1/asset/enumerate/group: - post: - summary: Create an asset group - tags: - - enumerations - responses: - '200': - description: OK - content: - application/json: - schema: - type: object - required: - - id - properties: - id: - type: string - '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: - $ref: '#/components/requestBodies/CreateAssetGroupRequest' - operationId: post-v1-asset-enumerate-group - parameters: - - schema: - type: string - in: header - description: 'Retrieve the Team ID from: https://cloud.projectdiscovery.io/settings/team' - name: X-Team-Id - security: - - X-API-Key: [] - description: Create an asset group from existing enumeration data using filters - '/v1/asset/enumerate/group/{group_id}': - parameters: - - schema: - type: string - name: group_id - in: path - required: true - delete: - summary: Delete an asset group - 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: delete-v1-asset-enumerate-group - parameters: - - schema: - type: string - in: header - description: 'Retrieve the Team ID from: https://cloud.projectdiscovery.io/settings/team' - name: X-Team-Id - security: - - X-API-Key: [] - description: Delete an asset group by id - patch: - summary: Update an asset group - 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' - requestBody: - $ref: '#/components/requestBodies/UpdateAssetGroupRequest' - operationId: patch-v1-asset-enumerate-group - parameters: - - schema: - type: string - enum: - - append - - replace - default: append - in: query - name: update_type - description: Append vs Replace update_type. Default is append - - schema: - type: string - in: header - description: 'Retrieve the Team ID from: https://cloud.projectdiscovery.io/settings/team' - name: X-Team-Id - security: - - X-API-Key: [] - description: Update an asset group by customising the filters - /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' - default: - $ref: '#/components/responses/ErrorResponse' - operationId: get-v1-enumeration-schedule - security: - - X-API-Key: [] - description: Get enumeration re-scan schedule - parameters: - - schema: - type: string - in: header - description: 'Retrieve the Team ID from: https://cloud.projectdiscovery.io/settings/team' - name: X-Team-Id - 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' - default: - $ref: '#/components/responses/ErrorResponse' - requestBody: - $ref: '#/components/requestBodies/SetEnumerationScheduleRequest' - security: - - X-API-Key: [] - description: Set enumeration re-scan frequency - parameters: - - schema: - type: string - in: header - description: 'Retrieve the Team ID from: https://cloud.projectdiscovery.io/settings/team' - name: X-Team-Id - 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' - default: - $ref: '#/components/responses/ErrorResponse' - parameters: - - schema: - type: string - in: query - name: enumeration_id - description: enumeration_id of the schedule to be deleted - required: true - - schema: - type: string - in: header - description: 'Retrieve the Team ID from: https://cloud.projectdiscovery.io/settings/team' - name: X-Team-Id - security: - - X-API-Key: [] - description: Delete a re-scan schedule - /v1/team/audit_log: - get: - summary: Get audit logs for team - tags: [] - responses: - '200': - description: OK - content: - application/json: - schema: - type: object - required: - - message - - data - properties: - message: - type: string - data: - type: array - items: - $ref: '#/components/schemas/UserAuditLogItems' - '400': - $ref: '#/components/responses/MessageResponse' - '401': - $ref: '#/components/responses/MessageResponse' - '500': - $ref: '#/components/responses/MessageResponse' - operationId: get-v1-audit-log - security: - - X-API-Key: [] - parameters: - - schema: - type: string - in: query - name: email - description: filter by specific user - - schema: - type: string - in: query - name: action - description: filter by specific action name - - 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 logs - - schema: - type: string - format: date - in: query - name: end_date - description: end date till which you want to get logs - - schema: - type: string - enum: - - current_month - - last_month - - last_3_months - - last_6_months - - last_12_months - in: query - name: time_range - description: time range to get logs - - schema: - type: string - enum: - - api - - platform - - unknown - in: query - name: source - description: 'filter by request source (api, platform, unknown)' - - schema: - type: string - in: header - description: 'Retrieve the Team ID from: https://cloud.projectdiscovery.io/settings/team' - name: X-Team-Id - /v1/team/audit_log/search: - get: - summary: Smart search across audit logs - tags: [] - responses: - '200': - description: OK - content: - application/json: - schema: - type: object - required: - - message - - data - properties: - message: - type: string - data: - type: array - items: - $ref: '#/components/schemas/UserAuditLogItems' - '400': - $ref: '#/components/responses/MessageResponse' - '401': - $ref: '#/components/responses/MessageResponse' - '500': - $ref: '#/components/responses/MessageResponse' - operationId: get-v1-team-audit-log-search - security: - - X-API-Key: [] - parameters: - - schema: - type: string - minLength: 1 - maxLength: 200 - in: query - name: q - required: true - description: | - Search query. Automatically detects search intent: - - Status code (404, 200, 500) → Searches status_code field - - Source (api, platform, unknown) → Searches source field - - IP address (192.168.x.x) → Searches ip field - - Email (user@example.com) → Searches email field - - HTTP method (GET, POST, PUT) → Searches method field - - Path (/v1/scans, enumerate) → Searches path_name and path fields - - General text → Searches across path, path_name, request, response - - schema: - type: integer - default: 0 - in: query - name: offset - description: number of rows to skip - - schema: - type: integer - default: 100 - in: query - name: limit - description: number of rows to get (max 100) - - schema: - type: string - in: header - name: X-Team-Id - required: true - description: '''Retrieve the Team ID from: https://cloud.projectdiscovery.io/settings/team''' - /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 - - schema: - type: string - in: header - description: 'Retrieve the Team ID from: https://cloud.projectdiscovery.io/settings/team' - name: X-Team-Id - 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 - - schema: - type: string - in: header - description: 'Retrieve the Team ID from: https://cloud.projectdiscovery.io/settings/team' - name: X-Team-Id - 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': - $ref: '#/components/responses/ErrorResponse' - '500': - $ref: '#/components/responses/ErrorResponse' - default: - $ref: '#/components/responses/ErrorResponse' - operationId: get-v1-integration - security: - - X-API-Key: [] - description: Get integration list - parameters: - - schema: - type: string - in: header - description: 'Retrieve the Team ID from: https://cloud.projectdiscovery.io/settings/team' - name: X-Team-Id - 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': - $ref: '#/components/responses/ErrorResponse' - '500': - $ref: '#/components/responses/ErrorResponse' - default: - $ref: '#/components/responses/ErrorResponse' - security: - - X-API-Key: [] - description: Add Integration - parameters: - - schema: - type: string - in: header - description: 'Retrieve the Team ID from: https://cloud.projectdiscovery.io/settings/team' - name: X-Team-Id - 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': - $ref: '#/components/responses/ErrorResponse' - '500': - $ref: '#/components/responses/ErrorResponse' - default: - $ref: '#/components/responses/ErrorResponse' - security: - - X-API-Key: [] - requestBody: - content: - application/json: - schema: - type: object - properties: - connection_id: - type: string - required: - - connection_id - description: Verify connection_id - parameters: - - schema: - type: string - in: header - description: 'Retrieve the Team ID from: https://cloud.projectdiscovery.io/settings/team' - name: X-Team-Id - delete: - summary: Delete Integration - tags: - - internal - responses: - '200': - description: OK - '400': - $ref: '#/components/responses/ErrorResponse' - default: - $ref: '#/components/responses/ErrorResponse' - 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 - parameters: - - schema: - type: string - in: header - description: 'Retrieve the Team ID from: https://cloud.projectdiscovery.io/settings/team' - name: X-Team-Id - '/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' - default: - $ref: '#/components/responses/ErrorResponse' - operationId: get-v1-integration-name-all - security: - - X-API-Key: [] - description: Get integration list - parameters: - - schema: - type: string - in: header - description: 'Retrieve the Team ID from: https://cloud.projectdiscovery.io/settings/team' - name: X-Team-Id - /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' - default: - $ref: '#/components/responses/ErrorResponse' - security: - - X-API-Key: [] - requestBody: - $ref: '#/components/requestBodies/CreateContributeRequest' - description: Contribute template to nuclei-templates - parameters: - - schema: - type: string - in: header - description: 'Retrieve the Team ID from: https://cloud.projectdiscovery.io/settings/team' - name: X-Team-Id - 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' - default: - $ref: '#/components/responses/ErrorResponse' - operationId: get-v1-integration-name-profile - x-internal: false - security: - - X-API-Key: [] - description: Get user integration profile data - parameters: - - schema: - type: string - in: header - description: 'Retrieve the Team ID from: https://cloud.projectdiscovery.io/settings/team' - name: X-Team-Id - parameters: - - schema: - type: string - name: name - in: path - required: true - /v1/template/github: - get: - summary: Get Github Template List - tags: - - templates - responses: - '200': - $ref: '#/components/responses/GetUserTemplateListResponse' - '401': - $ref: '#/components/responses/MessageResponse' - '500': - $ref: '#/components/responses/MessageResponse' - default: - $ref: '#/components/responses/ErrorResponse' - operationId: get-v1-github-templates - security: - - X-API-Key: [] - description: List of all user's github templates - parameters: - - schema: - type: string - in: header - description: 'Retrieve the Team ID from: https://cloud.projectdiscovery.io/settings/team' - name: X-Team-Id - - schema: - type: integer - in: query - name: offset - - schema: - type: integer - in: query - name: limit - - schema: - type: string - in: query - name: fields - parameters: [] - '/v1/template/github/{id}': - parameters: - - schema: - type: string - name: id - in: path - required: true - description: 'unique Id of template ' - get: - summary: Get Github Template - tags: - - templates - responses: - '200': - $ref: '#/components/responses/GetTemplateResponse' - '400': - $ref: '#/components/responses/MessageResponse' - '401': - $ref: '#/components/responses/MessageResponse' - '404': - $ref: '#/components/responses/MessageResponse' - '500': - $ref: '#/components/responses/MessageResponse' - default: - $ref: '#/components/responses/ErrorResponse' - parameters: - - schema: - type: string - in: header - description: 'Retrieve the Team ID from: https://cloud.projectdiscovery.io/settings/team' - name: X-Team-Id - operationId: get-v1-github-templates-id - requestBody: - content: {} - description: Get github template text - security: - - X-API-Key: [] - /v1/template/leaderboard: - get: - summary: Get Leaderboard - tags: - - internal - responses: - '200': - description: OK - content: - application/json: - schema: - type: object - required: - - message - properties: - message: - type: string - count: - type: integer - results: - type: array - items: - $ref: '#/components/schemas/ContributorSummary' - '400': - $ref: '#/components/responses/MessageResponse' - '401': - $ref: '#/components/responses/MessageResponse' - '500': - $ref: '#/components/responses/MessageResponse' - default: - $ref: '#/components/responses/ErrorResponse' - operationId: get-v1-template-leaderboard - parameters: - - schema: - type: string - in: query - name: category - description: 'Category Template Category (e.g cve,dast,other etc)' - - schema: - type: string - in: query - name: severity - description: 'Severity Template Severity (e.g critical,high,medium,low,info,unknown)' - - schema: - type: string - in: query - name: type - description: 'Type Template protocol type (e.g http,dns,headless)' - - schema: - type: string - format: date - in: query - description: CreatedAtGte Start date to get contributors for (e.g 2024-01-01) - name: created_at_gte - - schema: - type: integer - in: query - description: Limit The numbers of items to return - name: limit - - schema: - type: integer - in: query - description: Offset The numbers of items to skip - name: offset - - schema: - type: string - format: date - in: query - name: created_at_lte - description: CreatedAtLte End date to get contributors for (e.g 2024-01-01) - - schema: - type: string - in: query - description: SortAsc Sort results in ascending order (CSV field names) - name: sort_asc - - schema: - type: string - in: query - description: SortDesc Sort results in descending order (CSV field names) - name: sort_desc - 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: - type: object - required: - - message - properties: - message: - type: string - facets: - $ref: '#/components/schemas/TemplateStats' - '400': - $ref: '#/components/responses/MessageResponse' - '401': - $ref: '#/components/responses/MessageResponse' - '500': - $ref: '#/components/responses/MessageResponse' - default: - $ref: '#/components/responses/ErrorResponse' - operationId: get-v1-template-stats - parameters: - - schema: - type: integer - in: query - name: limit - description: Limit The numbers of items to return - - schema: - type: integer - in: query - name: offset - description: Offset The numbers of items to skip - - schema: - type: string - in: query - name: fields - - schema: - type: string - in: query - name: sort_asc - description: SortAsc Sort results in ascending order (CSV field names) - - schema: - type: string - in: query - name: sort_desc - description: SortDesc Sort results in descending order (CSV field names) - - schema: - type: string - in: query - name: q - - schema: - type: boolean - in: query - name: highlight - description: Highlight Whether to highlight the search results - security: - - X-API-Key: [] - description: Get public template statistics - '/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 - - schema: - type: string - in: header - description: 'Retrieve the Team ID from: https://cloud.projectdiscovery.io/settings/team' - name: X-Team-Id - - schema: - type: string - in: query - name: template_severity - description: severity to search in log - '/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 - - schema: - type: string - in: query - name: template_severity - description: severity to search in log - - schema: - type: string - in: header - description: 'Retrieve the Team ID from: https://cloud.projectdiscovery.io/settings/team' - name: X-Team-Id - '/v1/scans/{scan_id}/scan_log/export': - parameters: - - schema: - type: string - name: scan_id - in: path - required: true - get: - summary: Export scan log of given scan id - tags: - - scan_log - responses: - '200': - description: OK - content: - application/json: - schema: - type: object - required: - - url - properties: - url: - type: string - '201': - description: Created - content: - application/json: - schema: - type: object - properties: - export_id: - type: string - required: - - export_id - '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-export - security: - - X-API-Key: [] - parameters: - - schema: - type: string - in: header - description: 'Retrieve the Team ID from: https://cloud.projectdiscovery.io/settings/team' - name: X-Team-Id - - schema: - type: integer - format: int64 - in: query - name: rescan_count - - 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: - $ref: '#/components/schemas/LogExportFormat' - name: format - in: query - description: format of the log file - - schema: - type: boolean - in: query - name: async - - schema: - type: string - in: query - name: alert_email - - schema: - type: string - enum: - - error - - info - - all_logs - default: all_logs - x-go-type-name: ScanLogExportSeverityTypes - in: query - name: severity - '/v1/scans/{scan_id}/scan_log/stats': - parameters: - - schema: - type: string - name: scan_id - in: path - required: true - get: - summary: Get scan log stats of given scan id - tags: - - scan_log - - stats - responses: - '200': - description: OK - content: - application/json: - schema: - type: object - properties: - info_count: - type: integer - format: int64 - error_count: - type: integer - format: int64 - total_count: - type: integer - format: int64 - matched_count: - type: integer - format: int64 - unmatched_count: - type: integer - format: int64 - required: - - info_count - - error_count - - total_count - - matched_count - - unmatched_count - '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-stats - parameters: - - schema: - type: integer - format: int64 - in: query - name: rescan_count - - 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 - enum: - - error - - info - - all_logs - default: all_logs - x-go-type: ScanLogExportSeverityTypes - in: query - name: severity - /v1/scans/vulns/history: - get: - summary: Get scan log stats of given scan id - tags: - - history - - vuln - responses: - '200': - description: OK - content: - application/json: - schema: - $ref: '#/components/schemas/VulnerabilityHistoryDetail' - '400': - $ref: '#/components/responses/ErrorResponse' - '500': - $ref: '#/components/responses/ErrorResponse' - default: - $ref: '#/components/responses/ErrorResponse' - operationId: get-vulns-history - parameters: - - schema: - type: array - items: - type: string - in: query - name: vuln_hash - - schema: - type: integer - format: int64 - default: 5 - in: query - name: history_limit - required: false - description: Specifies the maximum number of revisions to be returned. - '/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' - '424': - $ref: '#/components/responses/ErrorResponse' - '500': - $ref: '#/components/responses/ErrorResponse' - default: - $ref: '#/components/responses/ErrorResponse' - operationId: post-vulns-id-ticket - requestBody: - content: - application/json: - schema: - type: object - properties: - custom_reporting_id: - type: string - custom_reporting_url: - type: string - parameters: - - schema: - type: string - in: query - name: reporting_config_id - - schema: - type: string - in: header - description: 'Retrieve the Team ID from: https://cloud.projectdiscovery.io/settings/team' - name: X-Team-Id - security: - - X-API-Key: [] - description: Create vulns export to tracker - delete: - summary: Delete vulns tracker association - 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' - '424': - $ref: '#/components/responses/ErrorResponse' - '500': - $ref: '#/components/responses/ErrorResponse' - default: - $ref: '#/components/responses/ErrorResponse' - operationId: delete-vulns-id-ticket - parameters: - - schema: - type: string - in: query - name: provider_name - - schema: - type: string - in: header - description: 'Retrieve the Team ID from: https://cloud.projectdiscovery.io/settings/team' - name: X-Team-Id - security: - - X-API-Key: [] - description: Delete vulns export 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: - - schema: - type: string - in: header - description: 'Retrieve the Team ID from: https://cloud.projectdiscovery.io/settings/team' - name: X-Team-Id - security: - - X-API-Key: [] - description: Get excluded templates - post: - summary: Add excluded templates and targets - 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: - - schema: - type: string - in: header - description: 'Retrieve the Team ID from: https://cloud.projectdiscovery.io/settings/team' - name: X-Team-Id - requestBody: - $ref: '#/components/requestBodies/ExcludeConfigRequest' - security: - - X-API-Key: [] - description: Add excluded templates or targets - delete: - summary: Delete excluded templates or targets by 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: - - schema: - type: string - in: header - description: 'Retrieve the Team ID from: https://cloud.projectdiscovery.io/settings/team' - name: X-Team-Id - requestBody: - $ref: '#/components/requestBodies/DeleteExcludedConfigRequest' - security: - - X-API-Key: [] - description: Delete excluded templates or targets by ids - parameters: [] - /v1/payment/price_list: - get: - summary: Get price list - tags: - - internal - responses: - '200': - $ref: '#/components/responses/PriceListResponse' - '400': - $ref: '#/components/responses/MessageResponse' - '401': - $ref: '#/components/responses/MessageResponse' - '500': - $ref: '#/components/responses/MessageResponse' - default: - $ref: '#/components/responses/ErrorResponse' - operationId: get-v1-payment-price_list - x-internal: true - security: - - X-API-Key: [] - parameters: - - schema: - type: string - in: header - description: 'Retrieve the Team ID from: https://cloud.projectdiscovery.io/settings/team' - name: X-Team-Id - /v1/scans/asset: - get: - summary: Get list of unique assets scanned in current month. - tags: - - scans - responses: - '200': - description: OK - content: - application/json: - schema: - type: object - required: - - data - - workspace_assets - - total_assets - properties: - data: - type: array - items: - $ref: '#/components/schemas/ScanAssetListItem' - workspace_assets: - type: integer - total_assets: - type: integer - '400': - $ref: '#/components/responses/MessageResponse' - '401': - $ref: '#/components/responses/MessageResponse' - '404': - $ref: '#/components/responses/MessageResponse' - '500': - $ref: '#/components/responses/MessageResponse' - default: - $ref: '#/components/responses/ErrorResponse' - operationId: get-v1-scans-assets - security: - - X-API-Key: [] - description: List of all unique assets scanned in the current month. - parameters: - - schema: - type: string - in: header - description: 'Retrieve the Team ID from: https://cloud.projectdiscovery.io/settings/team' - name: X-Team-Id - - schema: - type: string - in: query - name: search - description: Search with host or port - - schema: - type: integer - in: query - name: limit - description: Limit the number of assets (Default 100) - - schema: - type: integer - in: query - name: offset - description: Offset the number of assets (Default 0) - - schema: - type: string - format: date - in: query - name: start_date - description: 'Start date of the range. If not provided, it will be the first day of the current billing cycle.' - - schema: - type: string - format: date - in: query - name: end_date - description: 'End date of the range. If not provided, it will be the last day of the current billing cycle.' - - schema: - type: string - enum: - - host - in: query - name: type - description: 'Type of asset to filter by. Supported values are host, if not provided, it will return all assets.' - parameters: [] - /v1/scans/asset/export: - get: - summary: Export list of unique assets scanned in current month - tags: - - scans - responses: - '200': - description: OK - content: - application/octet-stream: - schema: - type: string - '400': - $ref: '#/components/responses/MessageResponse' - '401': - $ref: '#/components/responses/MessageResponse' - '404': - $ref: '#/components/responses/MessageResponse' - '500': - $ref: '#/components/responses/MessageResponse' - default: - $ref: '#/components/responses/ErrorResponse' - operationId: get-v1-scans-assets-export - security: - - X-API-Key: [] - description: Export the list of all unique assets scanned in the current month. - parameters: - - schema: - type: string - in: header - description: 'Retrieve the Team ID from: https://cloud.projectdiscovery.io/settings/team' - name: X-Team-Id - - schema: - type: string - in: query - name: search - description: Search with host or port - - schema: - type: string - in: query - name: format - description: 'supported format is csv, json, or raw (default json)' - - schema: - type: string - format: date - in: query - name: start_date - description: 'Start date of the range. If not provided, it will be the first day of the current billing cycle.' - - schema: - type: string - format: date - in: query - name: end_date - description: 'End date of the range. If not provided, it will be the last day of the current billing cycle.' - - schema: - type: string - enum: - - host - in: query - name: type - description: 'Type of asset to filter by. Supported values are host, if not provided, it will return all assets.' - parameters: [] - '/v1/scans/{scan_id}/asset': - parameters: - - schema: - type: string - name: scan_id - in: path - required: true - get: - summary: Get list of unique assets for a scan. - tags: - - scans - responses: - '200': - description: OK - content: - application/json: - schema: - type: object - required: - - data - - total_assets - properties: - data: - type: array - items: - $ref: '#/components/schemas/ScanAssetListItemOptional' - total_assets: - type: integer - total_host_assets: - type: integer - '400': - $ref: '#/components/responses/MessageResponse' - '401': - $ref: '#/components/responses/MessageResponse' - '404': - $ref: '#/components/responses/MessageResponse' - '500': - $ref: '#/components/responses/MessageResponse' - default: - $ref: '#/components/responses/ErrorResponse' - operationId: get-v1-scans-scan-id-assets - security: - - X-API-Key: [] - description: List of all unique assets for a scan. - parameters: - - schema: - type: string - in: query - name: search - description: Search with host or port - - schema: - type: integer - in: query - name: limit - description: Limit the number of assets (Default 100) - - schema: - type: integer - in: query - name: offset - description: Offset the number of assets (Default 0) - '/v1/scans/{scan_id}/asset/export': - parameters: - - schema: - type: string - name: scan_id - in: path - required: true - get: - summary: Export list of unique assets for a scan - tags: - - scans - responses: - '200': - description: OK - content: - application/octet-stream: - schema: - type: string - '400': - $ref: '#/components/responses/MessageResponse' - '401': - $ref: '#/components/responses/MessageResponse' - '404': - $ref: '#/components/responses/MessageResponse' - '500': - $ref: '#/components/responses/MessageResponse' - default: - $ref: '#/components/responses/ErrorResponse' - operationId: get-v1-scans-scan-id-assets-export - security: - - X-API-Key: [] - description: Export the list of all unique assets for a scan. - parameters: - - schema: - type: string - in: query - name: search - description: Search with host or port - - schema: - type: string - in: query - name: format - description: 'supported format is csv, json, or raw (default json)' - /v1/asset/enumerate/domains: - get: - summary: Get list of unique domains discovered in current month - tags: - - asset - responses: - '200': - description: OK - content: - application/json: - schema: - type: object - required: - - data - - workspace_domains - - total_domains - properties: - data: - type: array - items: - $ref: '#/components/schemas/EnumerationDomainListItem' - workspace_domains: - type: integer - total_domains: - type: integer - '400': - $ref: '#/components/responses/MessageResponse' - '401': - $ref: '#/components/responses/MessageResponse' - '404': - $ref: '#/components/responses/MessageResponse' - '500': - $ref: '#/components/responses/MessageResponse' - default: - $ref: '#/components/responses/ErrorResponse' - operationId: get-v1-asset-enumerate-domains - description: Get list of unique domains discovered in current month - parameters: - - schema: - type: string - in: query - name: search - description: Search with domain name - - schema: - type: integer - in: query - name: limit - description: Limit the number of domains (Default 100) - - schema: - type: integer - in: query - name: offset - description: Offset the number of domains (Default 0) - /v1/asset/enumerate/domains/export: - get: - summary: Export list of unique domains discovered in current month - tags: - - asset - responses: - '200': - description: OK - content: - application/octet-stream: - schema: - type: string - '400': - $ref: '#/components/responses/MessageResponse' - '401': - $ref: '#/components/responses/MessageResponse' - '404': - $ref: '#/components/responses/MessageResponse' - '500': - $ref: '#/components/responses/MessageResponse' - default: - $ref: '#/components/responses/ErrorResponse' - operationId: get-v1-asset-enumerate-domains-export - security: - - X-API-Key: [] - description: Export list of unique domains discovered in current month. - parameters: - - schema: - type: string - in: query - name: search - description: Search with domain name - - schema: - type: string - in: query - name: format - description: 'supported format is csv, raw, or json (default json)' - - schema: - type: string - format: date - in: query - name: start_date - description: time filter start date - - schema: - type: string - format: date - in: query - name: end_date - description: time filter end date - parameters: [] - '/v1/asset/enumerate/{enumerate_id}/domains': - parameters: - - schema: - type: string - name: enumerate_id - in: path - required: true - get: - summary: Get list of unique domains discovered in an enumeration - tags: - - asset - responses: - '200': - description: OK - content: - application/json: - schema: - type: object - required: - - data - - total_domains - properties: - data: - type: array - items: - $ref: '#/components/schemas/EnumerationDomainListItem' - total_domains: - type: integer - '400': - $ref: '#/components/responses/MessageResponse' - '401': - $ref: '#/components/responses/MessageResponse' - '404': - $ref: '#/components/responses/MessageResponse' - '500': - $ref: '#/components/responses/MessageResponse' - default: - $ref: '#/components/responses/ErrorResponse' - operationId: get-v1-asset-enumerate-enum-id-domains - description: Get list of unique domains discovered in an enumeration - parameters: - - schema: - type: string - in: query - name: search - description: Search with domain name - - schema: - type: integer - in: query - name: limit - description: Limit the number of domains (Default 100) - - schema: - type: integer - in: query - name: offset - description: Offset the number of domains (Default 0) - '/v1/asset/enumerate/{enumerate_id}/domains/export': - parameters: - - schema: - type: string - name: enumerate_id - in: path - required: true - get: - summary: Export the list of unique input domains of an enumeration. - tags: - - asset - responses: - '200': - description: OK - content: - application/octet-stream: - schema: - type: string - '400': - $ref: '#/components/responses/MessageResponse' - '401': - $ref: '#/components/responses/MessageResponse' - '404': - $ref: '#/components/responses/MessageResponse' - '500': - $ref: '#/components/responses/MessageResponse' - default: - $ref: '#/components/responses/ErrorResponse' - operationId: get-v1-asset-enumerate-enum-id-domains-export - security: - - X-API-Key: [] - description: Export the list of unique input domains of an enumeration. - parameters: - - schema: - type: string - in: query - name: search - description: Search with domain name - - schema: - type: string - in: query - name: format - description: 'supported format is csv, raw, or json (default json)' - /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/ErrorResponse' - '500': - $ref: '#/components/responses/MessageResponse' - default: - $ref: '#/components/responses/ErrorResponse' - operationId: get-v1-scans-token - parameters: - - schema: - type: string - in: header - description: 'Retrieve the Team ID from: https://cloud.projectdiscovery.io/settings/team' - name: X-Team-Id - '/v1/asset/{asset_id}/changelogs': - parameters: - - schema: - type: integer - format: int64 - name: asset_id - in: path - required: true - get: - summary: Get Asset Changelogs for a given asset_id - tags: - - assets - responses: - '200': - $ref: '#/components/responses/GetAssetChangelogsResponse' - '400': - $ref: '#/components/responses/ErrorResponse' - '401': - $ref: '#/components/responses/ErrorResponse' - '500': - $ref: '#/components/responses/ErrorResponse' - default: - $ref: '#/components/responses/ErrorResponse' - operationId: get-v1-asset-assetId-changelogs - parameters: - - schema: - type: string - enum: - - last_day - - last_week - - last_month - - last_3_months - - last_6_months - - last_12_months - - all_time - default: all_time - in: query - name: time - description: time filter to select - - schema: - type: string - in: query - name: event_type - description: 'comma separated event_type e.g. event_type=vul_status,vul_status_change' - - 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: integer - in: query - name: limit - description: number of results to get - - schema: - type: integer - in: query - name: offset - description: number of results to skip - - schema: - type: string - in: header - name: X-Team-Id - description: 'Retrieve the Team ID from: https://cloud.projectdiscovery.io/settings/team' - security: - - X-API-Key: [] - description: Get asset changelogs - /v1/asset/changelogs: - get: - summary: Get Asset Changelogs for all assets - tags: - - assets - responses: - '200': - $ref: '#/components/responses/GetAssetChangelogsResponse' - '400': - $ref: '#/components/responses/ErrorResponse' - '401': - $ref: '#/components/responses/ErrorResponse' - '500': - $ref: '#/components/responses/ErrorResponse' - default: - $ref: '#/components/responses/ErrorResponse' - operationId: get-v1-asset-changelogs - parameters: - - schema: - type: string - enum: - - last_day - - last_week - - last_month - - last_3_months - - last_6_months - - last_12_months - - all_time - default: all_time - in: query - name: time - description: time filter to select - - schema: - type: string - in: query - name: event_type - description: 'comma separated event_type e.g. event_type=vul_status,vul_status_change' - - 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: integer - in: query - name: limit - description: limit the number of changelogs returned - - schema: - type: integer - in: query - name: offset - description: offset the number of changelogs returned - - schema: - type: string - in: header - name: X-Team-Id - description: 'Retrieve the Team ID from: https://cloud.projectdiscovery.io/settings/team' - security: - - X-API-Key: [] - description: Get asset changelogs - '/v1/asset/{asset_id}': - parameters: - - schema: - type: integer - format: int64 - 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 - in: header - description: 'Retrieve the Team ID from: https://cloud.projectdiscovery.io/settings/team' - name: X-Team-Id - 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 - in: header - description: 'Retrieve the Team ID from: https://cloud.projectdiscovery.io/settings/team' - name: X-Team-Id - 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 - requestBody: - $ref: '#/components/requestBodies/UpdateEnumeratedAssetRequest' - parameters: - - schema: - type: string - in: header - description: 'Retrieve the Team ID from: https://cloud.projectdiscovery.io/settings/team' - name: X-Team-Id - /v1/asset: - delete: - summary: Delete asset by filters - tags: - - assets - responses: - '200': - $ref: '#/components/responses/AssetCountResponse' - '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: delete-v1-asset - security: - - X-API-Key: [] - description: Delete asset by filters - parameters: - - schema: - type: string - in: header - description: 'Retrieve the Team ID from: https://cloud.projectdiscovery.io/settings/team' - name: X-Team-Id - requestBody: - $ref: '#/components/requestBodies/DeleteAssetsRequest' - /v1/asset/labels: - patch: - summary: Update Asset Labels - tags: - - assets - responses: - '200': - $ref: '#/components/responses/AssetCountResponse' - '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: patch-v1-asset-labels - parameters: - - schema: - type: string - enum: - - append - - replace - - delete - default: append - in: query - name: update_type - description: Append or Replace update_type - - schema: - type: string - in: header - description: 'Retrieve the Team ID from: https://cloud.projectdiscovery.io/settings/team' - name: X-Team-Id - requestBody: - $ref: '#/components/requestBodies/UpdateAssetLabelsRequest' - '/v1/asset/{asset_id}/labels': - parameters: - - schema: - type: integer - format: int64 - name: asset_id - in: path - required: true - post: - summary: Add labels to an asset - tags: - - assets - responses: - '200': - $ref: '#/components/responses/MessageResponse' - '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: post-v1-asset-id-labels - parameters: - - schema: - type: string - in: header - description: 'Retrieve the Team ID from: https://cloud.projectdiscovery.io/settings/team' - name: X-Team-Id - requestBody: - $ref: '#/components/requestBodies/AssetIdLabelsRequest' - patch: - summary: Modify labels of an asset - tags: - - assets - responses: - '200': - $ref: '#/components/responses/MessageResponse' - '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: patch-v1-asset-id-labels - parameters: - - schema: - type: string - enum: - - append - - replace - - delete - default: append - in: query - name: update_type - description: Append or Replace update_type - requestBody: - $ref: '#/components/requestBodies/AssetIdLabelsRequest' - delete: - summary: Delete labels of an asset - tags: - - assets - responses: - '200': - $ref: '#/components/responses/MessageResponse' - '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: delete-v1-asset-id-labels - parameters: - - schema: - type: string - in: header - description: 'Retrieve the Team ID from: https://cloud.projectdiscovery.io/settings/team' - name: X-Team-Id - '/v1/asset/enumerate/{enumerate_id}/stats': - parameters: - - schema: - type: string - name: enumerate_id - in: path - required: true - - schema: - $ref: '#/components/schemas/TimeRangeQueryParameter' - default: all_time - in: query - name: time - description: time filter to select - - schema: - type: string - format: date - in: query - name: start_date - description: time filter start date - - schema: - type: string - format: date - in: query - name: end_date - description: time filter end date - - schema: - type: boolean - in: query - name: only_dns - description: Query only dns FQDN records - - schema: - type: boolean - in: query - name: only_ip - description: Query only dns IP records - - schema: - type: boolean - in: query - name: is_internal - description: filter by is_internal (internal vs external hosts) - 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 - parameters: - - schema: - type: string - in: header - description: 'Retrieve the Team ID from: https://cloud.projectdiscovery.io/settings/team' - name: X-Team-Id - '/v1/asset/domain/{domain_name}/stats': - parameters: - - schema: - type: string - name: domain_name - in: path - required: true - - schema: - $ref: '#/components/schemas/TimeRangeQueryParameter' - default: all_time - in: query - name: time - description: time filter to select - - schema: - type: string - format: date - in: query - name: start_date - description: time filter start date - - schema: - type: string - format: date - in: query - name: end_date - description: time filter end date - get: - summary: Get domain 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-domain-domain_name-stats - parameters: - - schema: - type: string - in: header - description: 'Retrieve the Team ID from: https://cloud.projectdiscovery.io/settings/team' - name: X-Team-Id - /v1/asset/enumerate/stats: - parameters: - - schema: - $ref: '#/components/schemas/TimeRangeQueryParameter' - default: all_time - in: query - name: time - description: time filter to select - - schema: - type: string - format: date - in: query - name: start_date - description: time filter start date - - schema: - type: string - format: date - in: query - name: end_date - description: time filter end date - - schema: - type: boolean - in: query - name: only_dns - description: Query only dns FQDN records - - schema: - type: boolean - in: query - name: only_ip - description: Query only dns IP records - get: - summary: Get all 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-stats - parameters: - - schema: - type: string - in: header - description: 'Retrieve the Team ID from: https://cloud.projectdiscovery.io/settings/team' - name: X-Team-Id - /v1/admin/team: - parameters: - - in: header - name: X-Team-ID - required: true - schema: - type: string - patch: - summary: Admin API to update team details - tags: - - internal - responses: - '200': - $ref: '#/components/responses/MessageResponse' - '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: patch-v1-admin-team - requestBody: - $ref: '#/components/requestBodies/PatchTeamAdmin' - security: - - X-API-Key: [] - description: Admin API to update team details - '/v1/asset/enumerate/{enumerate_id}/config': - parameters: - - schema: - type: string - name: enumerate_id - in: path - required: true - get: - summary: Get enumeration config - tags: - - enumerations - responses: - '200': - description: Shared Response - content: - application/json: - schema: - $ref: '#/components/schemas/EnumerationConfig' - '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-config - parameters: - - schema: - type: string - in: header - description: 'Retrieve the Team ID from: https://cloud.projectdiscovery.io/settings/team' - name: X-Team-Id - patch: - summary: Update enumeration config - tags: [] - 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-enumerate-enumerate_id-config - parameters: - - schema: - type: string - enum: - - append - - replace - in: query - name: update_type - description: default mode is append - - schema: - type: string - in: header - description: 'Retrieve the Team ID from: https://cloud.projectdiscovery.io/settings/team' - name: X-Team-Id - requestBody: - description: Shared Request - content: - application/json: - schema: - $ref: '#/components/schemas/EnumerationConfig' - /v1/user/usage: - get: - summary: Get API Services Usage - tags: - - usage - responses: - '200': - $ref: '#/components/responses/UsageResponse' - '400': - $ref: '#/components/responses/MessageResponse' - '401': - $ref: '#/components/responses/MessageResponse' - '500': - $ref: '#/components/responses/MessageResponse' - default: - $ref: '#/components/responses/ErrorResponse' - operationId: get-v1-user-usage - requestBody: - $ref: '#/components/requestBodies/UsageRequest' - security: - - X-API-Key: [] - parameters: - - schema: - type: string - in: header - description: 'Retrieve the Team ID from: https://cloud.projectdiscovery.io/settings/team' - name: X-Team-Id - parameters: [] - /v1/admin/usage: - post: - summary: Set Usage Limit - tags: - - internal - responses: - '200': - $ref: '#/components/responses/MessageResponse' - '400': - $ref: '#/components/responses/MessageResponse' - '401': - $ref: '#/components/responses/MessageResponse' - '404': - $ref: '#/components/responses/MessageResponse' - '500': - $ref: '#/components/responses/MessageResponse' - default: - $ref: '#/components/responses/ErrorResponse' - operationId: post-v1-admin-usage - requestBody: - $ref: '#/components/requestBodies/AdminSetUsageLimit' - parameters: [] - get: - summary: Get User API service Usage - tags: - - internal - responses: - '200': - $ref: '#/components/responses/UsageResponse' - '400': - $ref: '#/components/responses/MessageResponse' - '401': - $ref: '#/components/responses/MessageResponse' - '404': - $ref: '#/components/responses/MessageResponse' - '500': - $ref: '#/components/responses/MessageResponse' - default: - $ref: '#/components/responses/ErrorResponse' - operationId: get-v1-admin-usage - requestBody: - $ref: '#/components/requestBodies/AdminUsageRequest' - parameters: [] - /v1/asset/enumerate/filters: - get: - summary: Group assets by filters - tags: - - enumerations - responses: - '200': - $ref: '#/components/responses/GetEnumerateFiltersResponse' - '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-filters - parameters: - - in: query - name: offset - schema: - type: integer - description: The number of items to skip before starting to collect the result set - - in: query - name: limit - schema: - type: integer - description: The numbers of items to return - - in: query - name: host - schema: - type: string - - in: query - name: port - schema: - type: string - - in: query - name: ip - schema: - type: string - - in: query - name: cname - schema: - type: string - - in: query - name: technologies - schema: - type: string - - in: query - name: status_code - schema: - type: string - - in: query - name: content_length - schema: - type: string - - in: query - name: domain - schema: - type: string - - in: query - name: title - schema: - type: string - - in: query - name: webserver - schema: - type: string - - in: query - name: favicon - schema: - type: string - - in: query - name: labels - schema: - type: string - - schema: - $ref: '#/components/schemas/EnumerateFilterTypes' - in: query - name: group_by - description: 'Group by type. e.g. - host, port, favicon.' - required: true - - schema: - type: string - enum: - - cname - - content_length - - favicon - - host - - ip - - port - - status_code - - technologies - - title - - webserver - in: query - name: sort_asc - description: supported sort fields - - schema: - type: string - enum: - - cname - - content_length - - favicon - - host - - ip - - port - - status_code - - technologies - - title - - webserver - in: query - name: sort_desc - description: supported sort fields - - schema: - $ref: '#/components/schemas/TimeRangeQueryParameter' - default: all_time - in: query - name: time - description: time filter to select - - schema: - type: string - format: date - in: query - name: start_date - description: time filter start date - - schema: - type: string - format: date - in: query - name: end_date - description: time filter end date - - schema: - type: string - in: header - description: 'Retrieve the Team ID from: https://cloud.projectdiscovery.io/settings/team' - name: X-Team-Id - - schema: - type: boolean - in: query - name: is_screenshot - - schema: - type: boolean - in: query - name: is_tech - - schema: - type: boolean - in: query - name: is_favicon - description: Filter items with favicon - - schema: - type: boolean - in: query - name: only_dns - description: Query only dns FQDN records - - schema: - type: boolean - in: query - name: only_ip - description: Query only dns IP records - - schema: - type: string - in: query - name: custom_filter - description: Filter by custom filter. Double encode the query string. - '/v1/asset/enumerate/{enumerate_id}/filters': - parameters: - - schema: - type: string - name: enumerate_id - in: path - required: true - get: - summary: Group assets by filters for an enumeration - tags: - - enumerations - responses: - '200': - $ref: '#/components/responses/GetEnumerateFiltersResponse' - '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-id-filters - parameters: - - in: query - name: offset - schema: - type: integer - description: The number of items to skip before starting to collect the result set - - in: query - name: limit - schema: - type: integer - description: The numbers of items to return - - in: query - name: host - schema: - type: string - - in: query - name: port - schema: - type: string - - in: query - name: ip - schema: - type: string - - in: query - name: cname - schema: - type: string - - in: query - name: technologies - schema: - type: string - - in: query - name: status_code - schema: - type: string - - in: query - name: content_length - schema: - type: string - - in: query - name: domain - schema: - type: string - - in: query - name: title - schema: - type: string - - in: query - name: webserver - schema: - type: string - - in: query - name: labels - schema: - type: string - - in: query - name: favicon - schema: - type: string - - schema: - $ref: '#/components/schemas/EnumerateFilterTypes' - in: query - name: group_by - description: 'Group by type. e.g. - host, port, favicon.' - required: true - - schema: - type: string - enum: - - cname - - content_length - - favicon - - host - - ip - - port - - status_code - - technologies - - title - - webserver - - labels - in: query - name: sort_asc - description: supported sort fields - - schema: - type: string - enum: - - cname - - content_length - - favicon - - host - - ip - - port - - status_code - - technologies - - title - - webserver - - labels - in: query - name: sort_desc - description: supported sort fields - - schema: - $ref: '#/components/schemas/TimeRangeQueryParameter' - default: all_time - in: query - name: time - description: time filter to select - - schema: - type: string - format: date - in: query - name: start_date - description: time filter start date - - schema: - type: string - format: date - in: query - name: end_date - description: time filter end date - - schema: - type: string - in: header - description: 'Retrieve the Team ID from: https://cloud.projectdiscovery.io/settings/team' - name: X-Team-Id - - schema: - type: boolean - in: query - name: is_screenshot - - schema: - type: boolean - in: query - name: is_tech - - schema: - type: boolean - in: query - name: is_favicon - description: Filter items with favicon - - schema: - type: boolean - in: query - name: only_dns - description: Query only dns FQDN records - - schema: - type: boolean - in: query - name: only_ip - description: Query only dns IP records - - schema: - type: boolean - in: query - name: is_internal - description: filter by is_internal (internal vs external hosts) - - schema: - type: string - in: query - name: custom_filter - description: Filter by custom filter. Double encode the query string. - '/v1/asset/domain/{domain_name}/filters': - parameters: - - schema: - type: string - name: domain_name - in: path - required: true - get: - summary: Group assets by filters for an domain - tags: - - enumerations - - domains - responses: - '200': - $ref: '#/components/responses/GetEnumerateFiltersResponse' - '400': - $ref: '#/components/responses/ErrorResponse' - '401': - $ref: '#/components/responses/ErrorResponse' - '500': - $ref: '#/components/responses/ErrorResponse' - default: - $ref: '#/components/responses/ErrorResponse' - operationId: get-v1-asset-domain-domain-name-filters - parameters: - - in: query - name: offset - schema: - type: integer - description: The number of items to skip before starting to collect the result set - - in: query - name: limit - schema: - type: integer - description: The numbers of items to return - - in: query - name: host - schema: - type: string - - in: query - name: port - schema: - type: string - - in: query - name: ip - schema: - type: string - - in: query - name: cname - schema: - type: string - - in: query - name: technologies - schema: - type: string - - in: query - name: status_code - schema: - type: string - - in: query - name: content_length - schema: - type: string - - in: query - name: domain - schema: - type: array - items: - type: string - - in: query - name: title - schema: - type: string - - in: query - name: webserver - schema: - type: string - - in: query - name: labels - schema: - type: string - - in: query - name: favicon - schema: - type: string - - schema: - $ref: '#/components/schemas/EnumerateFilterTypes' - in: query - name: group_by - description: 'Group by type. e.g. - host, port, favicon.' - required: true - - schema: - type: string - enum: - - cname - - content_length - - favicon - - host - - ip - - port - - status_code - - technologies - - title - - webserver - - labels - in: query - name: sort_asc - description: supported sort fields - - schema: - type: string - enum: - - cname - - content_length - - favicon - - host - - ip - - port - - status_code - - technologies - - title - - webserver - - labels - in: query - name: sort_desc - description: supported sort fields - - schema: - $ref: '#/components/schemas/TimeRangeQueryParameter' - default: all_time - in: query - name: time - description: time filter to select - - schema: - type: string - format: date - in: query - name: start_date - description: time filter start date - - schema: - type: string - format: date - in: query - name: end_date - description: time filter end date - - schema: - type: string - in: header - description: 'Retrieve the Team ID from: https://cloud.projectdiscovery.io/settings/team' - name: X-Team-Id - - schema: - type: boolean - in: query - name: is_screenshot - /v1/asset/enumerate/export: - parameters: - - schema: - type: boolean - in: query - name: async - get: - summary: Export Enumeration of user - tags: - - enumerations - responses: - '200': - description: OK - content: - application/octet-stream: - schema: - type: string - '201': - description: Created - content: - application/json: - schema: - type: object - properties: - export_id: - type: string - required: - - export_id - '400': - $ref: '#/components/responses/ErrorResponse' - '401': - $ref: '#/components/responses/ErrorResponse' - '500': - $ref: '#/components/responses/ErrorResponse' - default: - $ref: '#/components/responses/ErrorResponse' - operationId: get-enumerate-export - parameters: - - schema: - $ref: '#/components/schemas/EnumExportFormats' - in: query - name: format - - 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' - - schema: - type: boolean - in: query - name: is_new - description: Filter by new content - - schema: - type: string - in: query - name: host - description: 'Filter by comma separated labels, e.g-> host=p1,p2' - - schema: - type: string - in: query - name: port - description: 'Filter by port separated labels, e.g-> port=p1,p2' - - schema: - type: string - in: query - name: status_code - description: 'Filter by status code separated labels, e.g-> status_code=p1,p2' - - schema: - type: string - in: query - name: title - description: 'Filter by title separated labels, e.g-> title=p1,p2' - - schema: - type: string - in: query - name: content_length - description: 'Filter by content length separated labels, e.g-> content_length=p1,p2' - - schema: - type: string - in: query - name: domain - description: 'Filter by domain names separated labels, e.g-> domain=domain1.com,domain2.com' - - schema: - type: string - in: query - name: cname - description: cname to filter - - schema: - type: string - in: query - name: technologies - description: technologies to filter - - schema: - type: string - in: query - name: sort_asc - description: 'comma separated ascending sorting e.g sort_asc=created_at,name' - - schema: - type: string - in: query - name: sort_desc - - schema: - $ref: '#/components/schemas/TimeRangeQueryParameter' - default: all_time - in: query - name: time - description: time filter to select - - schema: - type: string - format: date - in: query - name: start_date - description: time filter start date - - schema: - type: string - format: date - in: query - name: end_date - description: time filter end date - - schema: - type: string - in: header - description: 'Retrieve the Team ID from: https://cloud.projectdiscovery.io/settings/team' - name: X-Team-Id - - schema: - type: string - in: query - name: custom_filter - description: custom query to filter. double encode the query string. - - schema: - type: boolean - in: query - name: is_screenshot - - schema: - type: string - in: query - name: ip - description: ips to filter - - schema: - type: string - in: query - name: favicon - description: 'Filter by comma separated favicons, e.g-> favicon=p1,p2' - - schema: - type: boolean - in: query - name: only_dns - description: Query only dns FQDN records - - schema: - type: boolean - in: query - name: only_ip - description: Query only dns IP records - security: - - X-API-Key: [] - description: Export the list of discovered assets for all enumerations. - /v1/automations: - get: - summary: Get Automations - tags: - - automations - responses: - '200': - $ref: '#/components/responses/GetAutomationsListResponse' - '400': - $ref: '#/components/responses/MessageResponse' - '401': - $ref: '#/components/responses/MessageResponse' - '500': - $ref: '#/components/responses/MessageResponse' - default: - $ref: '#/components/responses/ErrorResponse' - operationId: get-v1-automations - security: - - X-API-Key: [] - parameters: - - schema: - type: integer - in: query - name: offset - - schema: - type: integer - in: query - name: limit - - schema: - type: string - in: header - name: X-Team-Id - description: 'Retrieve the Team ID from: https://cloud.projectdiscovery.io/settings/team' - post: - summary: Create Automation - tags: - - automations - responses: - '200': - $ref: '#/components/responses/MessageResponse' - '201': - $ref: '#/components/responses/MessageResponse' - '400': - $ref: '#/components/responses/MessageResponse' - '401': - $ref: '#/components/responses/MessageResponse' - '500': - $ref: '#/components/responses/ErrorResponse' - operationId: post-v1-automations - security: - - X-API-Key: [] - requestBody: - $ref: '#/components/requestBodies/AddAutomation' - parameters: - - schema: - type: string - in: header - name: X-Team-Id - description: 'Retrieve the Team ID from: https://cloud.projectdiscovery.io/settings/team' - '/v1/automations/{event}': - parameters: - - schema: - type: string - name: event - in: path - required: true - get: - summary: Get Automation - tags: - - automations - responses: - '200': - $ref: '#/components/responses/GetAutomationIdResponse' - '400': - $ref: '#/components/responses/MessageResponse' - '401': - $ref: '#/components/responses/MessageResponse' - '404': - $ref: '#/components/responses/MessageResponse' - '500': - $ref: '#/components/responses/MessageResponse' - default: - $ref: '#/components/responses/ErrorResponse' - operationId: get-v1-automations-event - parameters: - - schema: - type: string - in: header - name: X-Team-Id - description: 'Retrieve the Team ID from: https://cloud.projectdiscovery.io/settings/team' - patch: - summary: Update Automation - tags: - - automations - responses: - '200': - $ref: '#/components/responses/MessageResponse' - '400': - $ref: '#/components/responses/MessageResponse' - '401': - $ref: '#/components/responses/MessageResponse' - '404': - $ref: '#/components/responses/MessageResponse' - '500': - $ref: '#/components/responses/MessageResponse' - default: - $ref: '#/components/responses/ErrorResponse' - operationId: patch-v1-automations-event - requestBody: - $ref: '#/components/requestBodies/UpdateAutomationRequest' - parameters: - - schema: - type: string - in: header - name: X-Team-Id - description: 'Retrieve the Team ID from: https://cloud.projectdiscovery.io/settings/team' - delete: - summary: Delete Automation - tags: - - automations - responses: - '200': - $ref: '#/components/responses/MessageResponse' - '400': - $ref: '#/components/responses/MessageResponse' - '401': - $ref: '#/components/responses/MessageResponse' - '404': - $ref: '#/components/responses/MessageResponse' - '500': - $ref: '#/components/responses/MessageResponse' - default: - $ref: '#/components/responses/ErrorResponse' - operationId: delete-v1-automations-event - parameters: - - schema: - type: string - in: header - name: X-Team-Id - description: 'Retrieve the Team ID from: https://cloud.projectdiscovery.io/settings/team' - /v1/admin/automations: - get: - summary: Get Automations List - tags: - - internal - responses: - '200': - $ref: '#/components/responses/AdminAutomationsResponse' - '400': - $ref: '#/components/responses/MessageResponse' - '401': - $ref: '#/components/responses/MessageResponse' - '404': - $ref: '#/components/responses/MessageResponse' - '500': - $ref: '#/components/responses/MessageResponse' - default: - $ref: '#/components/responses/ErrorResponse' - operationId: get-v1-admin-automations - parameters: - - schema: - type: integer - in: query - name: offset - - schema: - type: integer - in: query - name: limit - - schema: - type: integer - in: query - name: user_id - - schema: - type: string - in: query - name: event - required: true - - schema: - type: string - in: query - name: enumeration_id - delete: - summary: Delete User Automation - tags: - - internal - responses: - '200': - $ref: '#/components/responses/MessageResponse' - '400': - $ref: '#/components/responses/MessageResponse' - '401': - $ref: '#/components/responses/MessageResponse' - '404': - $ref: '#/components/responses/MessageResponse' - '500': - $ref: '#/components/responses/MessageResponse' - default: - $ref: '#/components/responses/ErrorResponse' - operationId: delete-v1-admin-automations - parameters: - - schema: - type: string - in: query - name: event - required: true - description: 'event string ' - - schema: - type: integer - in: query - name: user_id - required: true - - schema: - type: string - in: query - name: enumeration_id - description: enumeration-id for event - patch: - summary: Update Automation (Admin) - tags: - - internal - responses: - '200': - $ref: '#/components/responses/MessageResponse' - '400': - $ref: '#/components/responses/MessageResponse' - '401': - $ref: '#/components/responses/MessageResponse' - '404': - $ref: '#/components/responses/MessageResponse' - '500': - $ref: '#/components/responses/MessageResponse' - default: - $ref: '#/components/responses/ErrorResponse' - requestBody: - content: - application/json: - schema: - type: object - properties: - name: - type: string - status: - type: string - scan_data: - $ref: '#/components/schemas/AutomationScanData' - validate_scan_data: - type: boolean - default: true - operationId: update-v1-admin-automations - parameters: - - schema: - type: integer - in: query - name: user_id - required: true - - schema: - type: string - in: query - name: event - required: true - /v1/asset/exposures/metrics: - get: - summary: Get exposure metrics - tags: - - asset - parameters: - - in: query - name: interval - schema: - type: string - enum: - - monthly - default: monthly - required: false - description: The time interval for the metrics - - schema: - type: string - in: header - description: 'Retrieve the Team ID from: https://cloud.projectdiscovery.io/settings/team' - name: X-Team-Id - responses: - '200': - $ref: '#/components/responses/ExposureMetricsResponse' - '400': - $ref: '#/components/responses/MessageResponse' - '401': - $ref: '#/components/responses/MessageResponse' - '404': - $ref: '#/components/responses/MessageResponse' - '500': - $ref: '#/components/responses/MessageResponse' - default: - $ref: '#/components/responses/ErrorResponse' - operationId: get-v1-asset-exposures-metrics - security: - - X-API-Key: [] - /v1/scans/vulns/exposures/metrics: - get: - summary: Get scan vuln exposure metrics - tags: - - scan - parameters: - - in: query - name: interval - schema: - type: string - enum: - - monthly - default: monthly - required: true - description: The time interval for the metrics - - schema: - type: string - in: header - description: 'Retrieve the Team ID from: https://cloud.projectdiscovery.io/settings/team' - name: X-Team-Id - responses: - '200': - $ref: '#/components/responses/ScanExposureMetricsResponse' - '400': - $ref: '#/components/responses/MessageResponse' - '401': - $ref: '#/components/responses/MessageResponse' - '404': - $ref: '#/components/responses/MessageResponse' - '500': - $ref: '#/components/responses/MessageResponse' - default: - $ref: '#/components/responses/ErrorResponse' - operationId: get-v1-scans-vulns-exposures-metrics - security: - - X-API-Key: [] - /v1/scans/vulns/regression/metrics: - get: - summary: Get scan vuln regression metrics - tags: - - scan - parameters: - - in: query - name: interval - schema: - type: string - enum: - - monthly - default: monthly - required: true - description: The time interval for the metrics - - schema: - type: string - in: header - description: 'Retrieve the Team ID from: https://cloud.projectdiscovery.io/settings/team' - name: X-Team-Id - responses: - '200': - $ref: '#/components/responses/ScanRegressionRemediationMetricsResponse' - '400': - $ref: '#/components/responses/MessageResponse' - '401': - $ref: '#/components/responses/MessageResponse' - '404': - $ref: '#/components/responses/MessageResponse' - '500': - $ref: '#/components/responses/MessageResponse' - default: - $ref: '#/components/responses/ErrorResponse' - operationId: get-v1-scans-vulns-regression-metrics - security: - - X-API-Key: [] - /v1/scans/vulns/remediation/metrics: - get: - summary: Get scan vuln remediation metrics - tags: - - scan - parameters: - - in: query - name: interval - schema: - type: string - enum: - - monthly - default: monthly - required: true - description: The time interval for the metrics - - schema: - type: string - in: header - description: 'Retrieve the Team ID from: https://cloud.projectdiscovery.io/settings/team' - name: X-Team-Id - responses: - '200': - $ref: '#/components/responses/ScanRegressionRemediationMetricsResponse' - '400': - $ref: '#/components/responses/MessageResponse' - '401': - $ref: '#/components/responses/MessageResponse' - '404': - $ref: '#/components/responses/MessageResponse' - '500': - $ref: '#/components/responses/MessageResponse' - default: - $ref: '#/components/responses/ErrorResponse' - operationId: get-v1-scans-vulns-remediation-metrics - security: - - X-API-Key: [] - /v1/scans/validate: - post: - summary: Validate scan token before starting scan - tags: - - scan - parameters: - - schema: - type: string - in: header - description: 'Retrieve the Team ID from: https://cloud.projectdiscovery.io/settings/team' - name: X-Team-Id - responses: - '200': - description: OK - content: - application/json: - schema: - type: object - properties: - unique_asset_to_scan: - type: integer - format: int64 - total_asset_to_scan: - type: integer - format: int64 - required: - - unique_asset_to_scan - - total_asset_to_scan - '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' - requestBody: - content: - application/json: - schema: - type: object - properties: - targets: - type: array - items: - type: string - enumeration_ids: - type: array - items: - $ref: '#/components/schemas/EnumerationIDTypes' - asset_filters: - $ref: '#/components/schemas/AssetFilters' - operationId: post-v1-scans-validate - security: - - X-API-Key: [] - '/v1/integration/oauth/{name}/generate-url': - post: - summary: Get OAuth URL for the service provider - tags: - - oauth - parameters: - - schema: - type: string - name: name - in: path - required: true - - schema: - type: string - in: header - description: 'Retrieve the Team ID from: https://cloud.projectdiscovery.io/settings/team' - name: X-Team-Id - requestBody: - content: - application/json: - schema: - type: object - properties: - integration_type: - type: string - enum: - - neuron - - config - default: neuron - description: 'Type of integration (neuron for AI/automation, config for regular configurations)' - integration_name: - type: string - description: 'Name for the integration (required for config type, ignored for neuron type)' - responses: - '200': - description: OK - content: - application/json: - schema: - type: object - properties: - url: - type: string - required: - - url - '400': - $ref: '#/components/responses/ErrorResponse' - '401': - $ref: '#/components/responses/ErrorResponse' - '500': - $ref: '#/components/responses/ErrorResponse' - default: - $ref: '#/components/responses/ErrorResponse' - operationId: post-v1-generate-oauth-url - security: - - X-API-Key: [] - '/v1/integration/oauth/{name}/exchange-token': - post: - summary: Exchange code for access token - tags: - - oauth - parameters: - - schema: - type: string - name: name - in: path - required: true - - schema: - type: string - in: header - description: 'Retrieve the Team ID from: https://cloud.projectdiscovery.io/settings/team' - name: X-Team-Id - requestBody: - content: - application/json: - schema: - type: object - properties: - code: - type: string - state: - type: string - installation_id: - type: string - required: - - code - - state - responses: - '200': - description: OK - content: - application/json: - schema: - type: object - properties: - message: - type: string - user_auth_integration_id: - type: integer - format: int32 - config_id: - type: string - required: - - message - - user_auth_integration_id - - config_id - '400': - $ref: '#/components/responses/ErrorResponse' - '401': - $ref: '#/components/responses/ErrorResponse' - '500': - $ref: '#/components/responses/ErrorResponse' - default: - $ref: '#/components/responses/ErrorResponse' - operationId: post-v1-exchange-oauth-token - security: - - X-API-Key: [] - '/v1/integration/oauth/{name}/status': - get: - parameters: - - schema: - type: string - name: name - in: path - required: true - - schema: - type: string - in: header - description: 'Retrieve the Team ID from: https://cloud.projectdiscovery.io/settings/team' - name: X-Team-Id - - schema: - type: string - enum: - - neuron - - config - default: neuron - in: query - name: integration_type - description: 'Type of integration (neuron for AI/automation, config for regular configurations)' - - schema: - type: string - in: query - name: integration_name - description: Name of the config integration (required for config type integrations) - summary: Get OAuth status - tags: - - oauth - responses: - '200': - description: OK - content: - application/json: - schema: - type: object - properties: - status: - $ref: '#/components/schemas/OAuthStatus' - metadata: - $ref: '#/components/schemas/OAuthMetadata' - config_id: - type: string - required: - - status - '400': - $ref: '#/components/responses/ErrorResponse' - '401': - $ref: '#/components/responses/ErrorResponse' - '500': - $ref: '#/components/responses/ErrorResponse' - default: - $ref: '#/components/responses/ErrorResponse' - operationId: get-v1-integration-oauth-status - security: - - X-API-Key: [] - '/v1/integration/oauth/{name}/revoke': - delete: - summary: Revoke OAuth token - tags: - - oauth - parameters: - - schema: - type: string - name: name - in: path - required: true - - schema: - type: string - in: query - name: integration_name - description: Name of the config integration to revoke (for config type integrations) - responses: - '200': - description: OK - content: - application/json: - schema: - type: object - properties: - message: - type: string - required: - - message - '400': - $ref: '#/components/responses/ErrorResponse' - '401': - $ref: '#/components/responses/ErrorResponse' - '500': - $ref: '#/components/responses/ErrorResponse' - default: - $ref: '#/components/responses/ErrorResponse' - operationId: delete-v1-integration-oauth-revoke - security: - - X-API-Key: [] - '/v1/integration/oauth/{name}/list': - get: - summary: List OAuth integrations - tags: - - oauth - parameters: - - schema: - type: string - name: name - in: path - required: true - description: 'OAuth provider name (jira, linear, github)' - - schema: - type: string - enum: - - neuron - - config - - all - default: config - in: query - name: integration_type - description: Type of integrations to list - - schema: - type: string - in: header - description: 'Retrieve the Team ID from: https://cloud.projectdiscovery.io/settings/team' - name: X-Team-Id - responses: - '200': - description: OK - content: - application/json: - schema: - type: object - properties: - integrations: - type: array - items: - type: object - properties: - id: - type: integer - config_id: - type: string - provider: - type: string - integration_type: - type: string - integration_name: - type: string - created_at: - type: string - format: date-time - jira_cloud_id: - type: string - github_installation_id: - type: integer - linear_org_id: - type: string - required: - - integrations - '400': - $ref: '#/components/responses/ErrorResponse' - '401': - $ref: '#/components/responses/ErrorResponse' - '500': - $ref: '#/components/responses/ErrorResponse' - default: - $ref: '#/components/responses/ErrorResponse' - operationId: get-v1-integration-oauth-list - security: - - X-API-Key: [] - /v1/admin/automations/alert: - post: - summary: Admin Automations alert - tags: - - internal - responses: - '200': - $ref: '#/components/responses/MessageResponse' - '400': - $ref: '#/components/responses/MessageResponse' - '401': - $ref: '#/components/responses/MessageResponse' - '500': - $ref: '#/components/responses/MessageResponse' - default: - $ref: '#/components/responses/ErrorResponse' - operationId: post-v1-admin-automations-alert - requestBody: - content: - application/json: - schema: - type: object - required: - - template_id - properties: - template_id: - type: string - /v1/admin/aurora_proxy: - post: - summary: Proxy requests to Aurora service - tags: - - internal - x-internal: true - operationId: post-v1-admin-aurora-proxy - requestBody: - content: - application/json: - schema: - type: object - required: - - method - - url_with_params - properties: - method: - type: string - description: HTTP method for the Aurora request - enum: - - GET - - POST - - PUT - - PATCH - - DELETE - url_with_params: - type: string - description: URL path with query parameters for the Aurora endpoint - request_body: - type: object - description: Request body to pass to the Aurora service (optional) - responses: - '200': - description: Success - returns Aurora service response - content: - application/octet-stream: - schema: - type: string - format: binary - '400': - $ref: '#/components/responses/MessageResponse' - '401': - $ref: '#/components/responses/MessageResponse' - '404': - $ref: '#/components/responses/MessageResponse' - '500': - $ref: '#/components/responses/MessageResponse' - default: - $ref: '#/components/responses/ErrorResponse' - /v1/admin/growth-plan/user-mapping: - post: - summary: Create or update growth plan user mapping - tags: - - internal - responses: - '200': - $ref: '#/components/responses/MessageResponse' - '400': - $ref: '#/components/responses/MessageResponse' - '401': - $ref: '#/components/responses/MessageResponse' - '404': - $ref: '#/components/responses/MessageResponse' - '500': - $ref: '#/components/responses/MessageResponse' - default: - $ref: '#/components/responses/ErrorResponse' - operationId: post-v1-admin-growth-plan-user-mapping - requestBody: - content: - application/json: - schema: - type: object - required: - - email - - stripe_price_id - properties: - email: - type: string - description: Email of the user - stripe_price_id: - type: string - description: Stripe price ID for the growth plan - predefined_count: - type: integer - format: int64 - description: Optional predefined scan token count for the user - delete: - summary: Delete growth plan user mapping - tags: - - internal - responses: - '200': - $ref: '#/components/responses/MessageResponse' - '400': - $ref: '#/components/responses/MessageResponse' - '401': - $ref: '#/components/responses/MessageResponse' - '404': - $ref: '#/components/responses/MessageResponse' - '500': - $ref: '#/components/responses/MessageResponse' - default: - $ref: '#/components/responses/ErrorResponse' - operationId: delete-v1-admin-growth-plan-user-mapping - parameters: - - schema: - type: string - in: query - name: email - required: true - description: Email of the user to delete growth plan mapping - get: - summary: Get growth plan user mapping for a specific email - tags: - - internal - responses: - '200': - description: Successfully retrieved growth plan user mapping - content: - application/json: - schema: - type: object - properties: - is_available: - type: boolean - description: Whether growth plan is available for this user - stripe_price_id: - type: string - description: Stripe price ID if growth plan is available - required: - - is_available - '400': - $ref: '#/components/responses/MessageResponse' - '401': - $ref: '#/components/responses/MessageResponse' - '404': - $ref: '#/components/responses/MessageResponse' - '500': - $ref: '#/components/responses/MessageResponse' - default: - $ref: '#/components/responses/ErrorResponse' - operationId: get-v1-admin-growth-plan-user-mapping - parameters: - - name: email - in: query - description: Email of the user to get growth plan mapping - required: true - schema: - type: string - /v1/admin/stripe/prices: - get: - summary: Get all Stripe prices for a product - tags: - - internal - responses: - '200': - description: OK - content: - application/json: - schema: - type: object - properties: - prices: - type: array - items: - $ref: '#/components/schemas/StripePriceItem' - message: - type: string - '400': - $ref: '#/components/responses/MessageResponse' - '401': - $ref: '#/components/responses/MessageResponse' - '403': - $ref: '#/components/responses/MessageResponse' - '500': - $ref: '#/components/responses/MessageResponse' - default: - $ref: '#/components/responses/ErrorResponse' - operationId: get-v1-admin-stripe-prices - x-internal: true - security: - - X-API-Key: [] - parameters: - - name: stripe_product_id - in: query - description: Stripe product ID to fetch prices for - required: true - schema: - type: string - /v1/admin/team/usage-stats: - get: - summary: Get comprehensive team usage statistics - tags: - - internal - responses: - '200': - description: OK - content: - application/octet-stream: - schema: - type: string - format: binary - '400': - $ref: '#/components/responses/MessageResponse' - '401': - $ref: '#/components/responses/MessageResponse' - '404': - $ref: '#/components/responses/MessageResponse' - '500': - $ref: '#/components/responses/MessageResponse' - default: - $ref: '#/components/responses/ErrorResponse' - operationId: get-v1-admin-team-usage-stats - x-internal: true - security: - - X-API-Key: [] - parameters: - - name: email - in: query - description: Email address of the team owner - required: true - schema: - type: string - format: email - /v1/admin/plan-limits: - get: - summary: Get all plan default limits - tags: - - internal - responses: - '200': - description: OK - content: - application/json: - schema: - type: object - properties: - plans: - type: array - items: - $ref: '#/components/schemas/PlanDefaultLimit' - message: - type: string - '401': - $ref: '#/components/responses/MessageResponse' - '500': - $ref: '#/components/responses/MessageResponse' - default: - $ref: '#/components/responses/ErrorResponse' - operationId: get-v1-admin-plan-limits - x-internal: true - security: - - X-API-Key: [] - patch: - summary: Update plan default limits - tags: - - internal - responses: - '200': - $ref: '#/components/responses/MessageResponse' - '400': - $ref: '#/components/responses/MessageResponse' - '401': - $ref: '#/components/responses/MessageResponse' - '404': - $ref: '#/components/responses/MessageResponse' - '500': - $ref: '#/components/responses/MessageResponse' - default: - $ref: '#/components/responses/ErrorResponse' - operationId: patch-v1-admin-plan-limits - x-internal: true - security: - - X-API-Key: [] - requestBody: - content: - application/json: - schema: - type: object - required: - - plan - - asset_limit - - domain_limit - properties: - plan: - type: string - enum: - - ENT - - ENT_TRIAL - - PRO - - GROWTH - - TRIAL - - FREE - - VERIFIED_FREE - asset_limit: - type: integer - format: int64 - minimum: 0 - domain_limit: - type: integer - format: int64 - minimum: 0 - /v1/billing-cycles: - get: - summary: Get the monthly billing cycle dates - tags: - - billing - responses: - '200': - $ref: '#/components/responses/BillingCycleResponse' - '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-billing-cycles - parameters: - - schema: - type: string - in: header - description: 'Retrieve the Team ID from: https://cloud.projectdiscovery.io/settings/team' - name: X-Team-Id - /v1/scans/remediation-efficiency: - get: - summary: Get remediation efficiency stats - tags: - - scan - responses: - '200': - $ref: '#/components/responses/GetRemediationEfficiencyResponse' - '400': - $ref: '#/components/responses/MessageResponse' - '401': - $ref: '#/components/responses/MessageResponse' - '404': - $ref: '#/components/responses/MessageResponse' - '500': - $ref: '#/components/responses/MessageResponse' - default: - $ref: '#/components/responses/ErrorResponse' - operationId: get-v1-scans-remediation-efficiency - parameters: - - schema: - type: string - in: header - description: 'Retrieve the Team ID from: https://cloud.projectdiscovery.io/settings/team' - name: X-Team-Id - /v1/domain/search: - get: - summary: Domain & Organization Name Search - tags: - - chaos - responses: - '200': - $ref: '#/components/responses/DomainSearchResults' - '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: domain-search - parameters: - - schema: - type: string - in: query - name: query - description: Search query for domain or organization name - required: true - - schema: - type: integer - in: query - name: limit - description: Number of results to return - - schema: - type: array - items: - type: string - in: query - name: fields - description: Fields to include in response (CSV) - - schema: - type: string - enum: - - all - - domains - - orgs - in: query - name: scope - description: Scope of search - /v1/domain/associated: - get: - summary: Get Associated Domains - description: Discover domains related to a given domain through acquisition history, certificate transparency logs, and WHOIS records. Returns associated domains with evidence of their relationship. - tags: - - chaos - responses: - '200': - $ref: '#/components/responses/AssociatedDomainsResults' - '400': - $ref: '#/components/responses/ErrorResponse' - '401': - $ref: '#/components/responses/ErrorResponse' - '500': - $ref: '#/components/responses/ErrorResponse' - default: - $ref: '#/components/responses/ErrorResponse' - operationId: associated-domains - parameters: - - schema: - type: string - in: query - name: domain - description: Domain name to fetch associated domains. If omitted, returns associated domains for all your verified domains. - - schema: - type: string - in: query - name: source - description: 'Comma-separated source filter (acquisition_history, certificate_history, whois_history)' - - schema: - type: boolean - in: query - name: active - description: 'Filter by liveness (true=alive, false=unreachable)' - - schema: - type: string - enum: - - active - - domain - - source - - subdomain_count - - update_date - in: query - name: sort - description: Sort results - - schema: - type: integer - in: query - name: limit - description: 'Maximum results per page (pagination). If omitted, returns all.' - - schema: - type: integer - in: query - name: page - description: 'Page number (pagination, starts at 1)' - - schema: - type: boolean - in: query - name: raw - description: 'If true, returns plain text list (one domain per line)' - - schema: - type: string - in: header - name: X-Team-Id - parameters: [] - /v1/organization/search: - get: - summary: Get Organization by Domain - tags: - - chaos - responses: - '200': - $ref: '#/components/responses/OrganizationSearchResults' - '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: organization-search - parameters: - - schema: - type: string - in: query - name: domain - description: Domain name to search and retrieve associated organization information - required: true - - schema: - type: integer - in: query - name: limit - description: Number of results to return - - schema: - type: integer - in: query - name: offset - description: Pagination Offset - /v1/scans/vulns/score/metrics: - get: - summary: Get Vuln Score Metrics - tags: - - vulns - parameters: - - in: query - name: interval - schema: - type: string - enum: - - monthly - default: monthly - description: The time interval for the metrics - - schema: - type: string - in: header - description: 'Retrieve the Team ID from: https://cloud.projectdiscovery.io/settings/team' - name: X-Team-Id - responses: - '200': - $ref: '#/components/responses/VulnScoreMetricsResponse' - '400': - $ref: '#/components/responses/MessageResponse' - '401': - $ref: '#/components/responses/MessageResponse' - '404': - $ref: '#/components/responses/MessageResponse' - '500': - $ref: '#/components/responses/MessageResponse' - default: - $ref: '#/components/responses/ErrorResponse' - operationId: get-v1-scans-vulns-score-metrics - '/v1/asset/enumerate/{enumerate_id}/categories': - parameters: - - schema: - type: string - in: header - description: 'Retrieve the Team ID from: https://cloud.projectdiscovery.io/settings/team' - name: X-Team-Id - - schema: - type: string - name: enumerate_id - in: path - required: true - - schema: - type: string - enum: - - last_day - - last_week - - last_month - - last_3_months - - last_6_months - - last_12_months - - all_time - default: all_time - in: query - name: time - description: time filter to select - - schema: - type: string - format: date - in: query - name: start_date - description: time filter start date - - schema: - type: string - format: date - in: query - name: end_date - description: time filter end date - - schema: - type: boolean - in: query - name: show_hosts - - schema: - type: array - items: - type: string - in: query - name: domain - get: - summary: Get categories for specific enumeration - tags: - - enumeration - responses: - '200': - description: OK - content: - application/json: - schema: - type: object - required: - - asset_categories - properties: - asset_categories: - type: array - items: - $ref: '#/components/schemas/AssetCategory' - '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-categories - security: - - X-API-Key: [] - parameters: [] - /v1/asset/enumerate/categories: - parameters: - - schema: - type: string - in: header - description: 'Retrieve the Team ID from: https://cloud.projectdiscovery.io/settings/team' - name: X-Team-Id - - schema: - type: string - enum: - - last_day - - last_week - - last_month - - last_3_months - - last_6_months - - last_12_months - - all_time - default: all_time - in: query - name: time - description: time filter to select - - schema: - type: string - format: date - in: query - name: start_date - description: time filter start date - - schema: - type: string - format: date - in: query - name: end_date - description: time filter end date - - schema: - type: boolean - in: query - name: show_hosts - - schema: - type: array - items: - type: string - in: query - name: domain - get: - summary: Get categories for all enumerations - tags: - - enumeration - responses: - '200': - description: OK - content: - application/json: - schema: - type: object - required: - - asset_categories - properties: - asset_categories: - type: array - items: - $ref: '#/components/schemas/AssetCategory' - '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-categories - security: - - X-API-Key: [] - '/v1/asset/domain/{domain_name}': - parameters: - - schema: - type: string - name: domain_name - in: path - required: true - get: - summary: Get Enumeration Domain Contents - tags: - - enumerations - - domains - 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-domain-domain_name-contents - parameters: - - 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: boolean - in: query - name: is_tech - description: Return records that have technologies - - schema: - type: boolean - in: query - name: is_favicon - description: Return the records that have favicon - - 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' - - schema: - type: boolean - in: query - name: is_new - description: Filter by new content - - schema: - type: string - in: query - name: host - description: 'Filter by comma separated hosts, e.g-> host=p1,p2' - - schema: - type: string - in: query - name: port - description: 'Filter by comma separated ports, e.g-> port=p1,p2' - - schema: - type: string - in: query - name: status_code - description: 'Filter by comma separated status codes, e.g-> status_code=p1,p2' - - schema: - type: string - in: query - name: title - description: 'Filter by comma separated titles, e.g-> title=p1,p2' - - schema: - type: string - in: query - name: content_length - description: 'Filter by comma separated content lengths, e.g-> content_length=p1,p2' - - schema: - type: string - in: query - name: cname - description: cname to filter - - schema: - type: string - in: query - name: technologies - description: technologies to filter - - schema: - type: string - in: query - name: ip - description: ips to filter - - schema: - type: string - in: query - name: sort_asc - description: 'comma separated ascending sorting e.g sort_asc=created_at,name' - - schema: - type: string - in: query - name: sort_desc - description: 'comma separated descending sorting e.g sort_desc=created_at,name' - - schema: - type: boolean - in: query - name: is_screenshot - description: asset with screenshots - - schema: - $ref: '#/components/schemas/TimeRangeQueryParameter' - default: all_time - in: query - name: time - description: time filter to select - - schema: - type: string - format: date - in: query - name: start_date - description: time filter start date - - schema: - type: string - format: date - in: query - name: end_date - description: time filter end date - - schema: - type: string - in: header - description: 'Retrieve the Team ID from: https://cloud.projectdiscovery.io/settings/team' - name: X-Team-Id - - schema: - type: string - in: query - name: custom_filter - description: custom query to filter. double encode the query string. - - schema: - type: string - in: query - name: favicon - description: 'Filter by comma separated favicons, e.g-> favicon=p1,p2' - security: - - X-API-Key: [] - description: Get enumeration content by domain_name - '/v1/asset/domain/{domain_name}/export': - parameters: - - schema: - type: string - name: domain_name - in: path - required: true - - schema: - type: boolean - in: query - name: async - get: - summary: Export Enumeration of user by domain - tags: - - enumerations - responses: - '200': - description: OK - content: - application/octet-stream: - schema: - type: string - '201': - description: Created - content: - application/json: - schema: - type: object - properties: - export_id: - type: string - required: - - export_id - '400': - $ref: '#/components/responses/ErrorResponse' - '401': - $ref: '#/components/responses/ErrorResponse' - '500': - $ref: '#/components/responses/ErrorResponse' - default: - $ref: '#/components/responses/ErrorResponse' - operationId: get-v1-asset-domain-domain_name-export - parameters: - - schema: - $ref: '#/components/schemas/EnumExportFormats' - in: query - name: format - - 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' - - schema: - type: boolean - in: query - name: is_new - description: Filter by new content - - schema: - type: string - in: query - name: host - description: 'Filter by comma separated labels, e.g-> host=p1,p2' - - schema: - type: string - in: query - name: port - description: 'Filter by port separated labels, e.g-> port=p1,p2' - - schema: - type: string - in: query - name: status_code - description: 'Filter by status code separated labels, e.g-> status_code=p1,p2' - - schema: - type: string - in: query - name: title - description: 'Filter by title separated labels, e.g-> title=p1,p2' - - schema: - type: string - in: query - name: content_length - description: 'Filter by content length separated labels, e.g-> content_length=p1,p2' - - schema: - type: string - in: query - name: domain - description: 'Filter by domain names separated labels, e.g-> domain=domain1.com,domain2.com' - - schema: - type: string - in: query - name: cname - description: cname to filter - - schema: - type: string - in: query - name: technologies - description: technologies to filter - - schema: - type: string - in: query - name: sort_asc - description: 'comma separated ascending sorting e.g sort_asc=created_at,name' - - schema: - type: string - in: query - name: sort_desc - - schema: - $ref: '#/components/schemas/TimeRangeQueryParameter' - default: all_time - in: query - name: time - description: time filter to select - - schema: - type: string - format: date - in: query - name: start_date - description: time filter start date - - schema: - type: string - format: date - in: query - name: end_date - description: time filter end date - - schema: - type: string - in: header - description: 'Retrieve the Team ID from: https://cloud.projectdiscovery.io/settings/team' - name: X-Team-Id - - schema: - type: string - in: query - name: custom_filter - description: custom query to filter. double encode the query string. - - schema: - type: boolean - in: query - name: is_screenshot - - schema: - type: string - in: query - name: ip - description: ips to filter - - schema: - type: string - in: query - name: favicon - description: 'Filter by comma separated favicons, e.g-> favicon=p1,p2' - security: - - X-API-Key: [] - description: Export enumeration content by domain - /v2/template: - get: - summary: Your GET endpoint - tags: [] - responses: - '200': - description: OK - content: - application/json: - schema: - type: object - properties: - count: - type: integer - results: - type: array - items: - $ref: '#/components/schemas/TemplateData' - total: - type: integer - '400': - $ref: '#/components/responses/MessageResponse' - '401': - $ref: '#/components/responses/MessageResponse' - '404': - $ref: '#/components/responses/MessageResponse' - '500': - $ref: '#/components/responses/MessageResponse' - default: - $ref: '#/components/responses/ErrorResponse' - operationId: get-v2-template - description: Get user templates - security: - - X-API-Key: [] - parameters: - - schema: - type: string - in: header - name: X-Team-Id - description: 'Retrieve the Team ID from: https://cloud.projectdiscovery.io/settings/team' - - in: query - name: scope - schema: - type: string - - schema: - type: integer - in: query - name: limit - - schema: - type: integer - in: query - name: offset - - schema: - type: array - items: - type: string - description: List of fields to return(comma separated) - in: query - name: fields - - schema: - type: string - in: query - name: sort_desc - - schema: - type: string - in: query - name: sort_asc - - schema: - type: array - items: - type: string - uniqueItems: false - minItems: 0 - in: query - name: template-ids - allowEmptyValue: false - - schema: - type: array - items: - type: string - in: query - name: id - - schema: - type: array - items: - type: string - in: query - name: exclude-id - - schema: - type: array - items: - type: string - in: query - name: tags - - schema: - type: array - items: - type: string - in: query - name: include-tags - - schema: - type: array - items: - type: string - in: query - name: exclude-tags - - schema: - type: array - items: - type: string - in: query - name: severity - - schema: - type: array - items: - type: string - in: query - name: exclude-severity - - schema: - type: array - items: - type: string - in: query - name: type - - schema: - type: array - items: - type: string - in: query - name: exclude-type - - schema: - type: array - items: - type: string - in: query - name: templates - - schema: - type: array - items: - type: string - in: query - name: exclude-templates - - schema: - type: string - in: query - name: profile_name - - schema: - type: boolean - in: query - name: is_new - - schema: - type: boolean - in: query - name: is_early - - schema: - type: boolean - in: query - name: is_github - - schema: - type: boolean - in: query - name: is_draft - /v1/scans/config/severity: - get: - summary: Get custom severity mappings - tags: - - configurations - responses: - '200': - $ref: '#/components/responses/GetSeverityConfigResponse' - '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-scans-config-severity - parameters: - - schema: - type: string - in: header - name: X-Team-Id - description: 'Retrieve the Team ID from: https://cloud.projectdiscovery.io/settings/team' - post: - summary: Add custom severity mapping - tags: - - configurations - responses: - '200': - $ref: '#/components/responses/PostSeverityConfigResponse' - '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: post-v1-scans-config-severity - parameters: - - schema: - type: string - in: header - description: 'Retrieve the Team ID from: https://cloud.projectdiscovery.io/settings/team' - name: X-Team-Id - requestBody: - $ref: '#/components/requestBodies/AddCustomSeverityMappingRequest' - delete: - summary: Delete custom severity mapping - tags: - - configurations - responses: - '200': - $ref: '#/components/responses/MessageResponse' - '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: delete-v1-scans-config-severity - parameters: - - schema: - type: string - in: header - name: X-Team-Id - description: 'Retrieve the Team ID from: https://cloud.projectdiscovery.io/settings/team' - requestBody: - $ref: '#/components/requestBodies/DeleteCustomSeverityMappingRequest' - '/v1/scans/config/{config_id}/severity': - parameters: - - schema: - type: integer - format: int64 - name: config_id - in: path - required: true - patch: - summary: Modify custom severity mapping - tags: - - configurations - responses: - '200': - $ref: '#/components/responses/MessageResponse' - '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: patch-v1-scans-config-config_id-severity - parameters: - - schema: - type: string - in: header - name: X-Team-Id - description: 'Retrieve the Team ID from: https://cloud.projectdiscovery.io/settings/team' - requestBody: - $ref: '#/components/requestBodies/AddCustomSeverityMappingRequest' - /v1/leaks/stats/domain: - get: - summary: Get leak statistics for a domain (Public) - description: 'Public endpoint - no authentication required. Returns leak statistics for any domain including employee/customer leak counts, geographic distribution, and top compromised services.' - tags: - - leaks - responses: - '200': - description: OK - content: - application/json: - schema: - type: object - properties: - leak_devices_count: - type: array - items: - $ref: '#/components/schemas/DevicesCount' - leak_customers_count: - type: array - items: - $ref: '#/components/schemas/CustomersCount' - leak_user_count: - type: array - items: - $ref: '#/components/schemas/UsersCount' - leak_employees_count: - type: array - items: - $ref: '#/components/schemas/EmployeesCount' - combolist_exposure: - type: array - items: - $ref: '#/components/schemas/CombolistExposureCount' - leak_country_stats: - type: array - items: - $ref: '#/components/schemas/LeakCountryStats' - top_used_urls_by_customers: - type: array - items: - $ref: '#/components/schemas/UsedUrlsCount' - top_used_urls_by_employees: - type: array - items: - $ref: '#/components/schemas/UsedUrlsCount' - top_used_urls_by_user: - type: array - items: - $ref: '#/components/schemas/UsedUrlsCount' - leak_customers_timeline: - type: array - items: - $ref: '#/components/schemas/LeaksTimeline' - leak_user_timeline: - type: array - items: - $ref: '#/components/schemas/LeaksTimeline' - leak_employees_timeline: - type: array - items: - $ref: '#/components/schemas/LeaksTimeline' - customers_sample_data: - type: array - items: - $ref: '#/components/schemas/LeaksUsersSampleData' - employees_sample_data: - type: array - items: - $ref: '#/components/schemas/LeaksUsersSampleData' - user_sample_data: - type: array - items: - $ref: '#/components/schemas/LeaksUsersSampleData' - '400': - $ref: '#/components/responses/MessageResponse' - '401': - $ref: '#/components/responses/MessageResponse' - '403': - $ref: '#/components/responses/MessageResponse' - '404': - $ref: '#/components/responses/MessageResponse' - '500': - $ref: '#/components/responses/MessageResponse' - default: - $ref: '#/components/responses/ErrorResponse' - operationId: get-v1-leaks-stats-domain - parameters: - - schema: - type: string - in: query - name: domain - - schema: - type: boolean - in: query - name: unmask_email - /v1/leaks/stats/email: - get: - summary: Get leak statistics for an email (Public) - description: 'Public endpoint - no authentication required. Returns leak statistics for any email address including leak classification, compromised services, and risk timeline.' - tags: - - leaks - responses: - '200': - description: OK - content: - application/json: - schema: - type: object - properties: - leak_devices_count: - type: array - items: - $ref: '#/components/schemas/DevicesCount' - leak_customers_count: - type: array - items: - $ref: '#/components/schemas/CustomersCount' - leak_user_count: - type: array - items: - $ref: '#/components/schemas/UsersCount' - leak_employees_count: - type: array - items: - $ref: '#/components/schemas/EmployeesCount' - combolist_exposure: - type: array - items: - $ref: '#/components/schemas/CombolistExposureCount' - leak_country_stats: - type: array - items: - $ref: '#/components/schemas/LeakCountryStats' - top_used_urls_by_customers: - type: array - items: - $ref: '#/components/schemas/UsedUrlsCount' - top_used_urls_by_employees: - type: array - items: - $ref: '#/components/schemas/UsedUrlsCount' - top_used_urls_by_user: - type: array - items: - $ref: '#/components/schemas/UsedUrlsCount' - leak_customers_timeline: - type: array - items: - $ref: '#/components/schemas/LeaksTimeline' - leak_user_timeline: - type: array - items: - $ref: '#/components/schemas/LeaksTimeline' - leak_employees_timeline: - type: array - items: - $ref: '#/components/schemas/LeaksTimeline' - customers_sample_data: - type: array - items: - $ref: '#/components/schemas/LeaksUsersSampleData' - employees_sample_data: - type: array - items: - $ref: '#/components/schemas/LeaksUsersSampleData' - user_sample_data: - type: array - items: - $ref: '#/components/schemas/LeaksUsersSampleData' - '400': - $ref: '#/components/responses/MessageResponse' - '401': - $ref: '#/components/responses/MessageResponse' - '403': - $ref: '#/components/responses/MessageResponse' - '404': - $ref: '#/components/responses/MessageResponse' - '500': - $ref: '#/components/responses/MessageResponse' - default: - $ref: '#/components/responses/ErrorResponse' - operationId: get-v1-leaks-stats-email - parameters: - - schema: - type: string - in: query - name: email - description: Email to get stats for - - schema: - type: boolean - in: query - name: unmask_email - /v1/leaks: - get: - summary: Get all leaked credentials - description: 'Returns all leaks (personal, employee, customer) with optional type filtering. Replaces the need for separate endpoint calls.' - tags: [] - responses: - '200': - description: OK - content: - application/json: - schema: - type: object - properties: - data: - type: array - items: - type: object - properties: - id: - type: string - url: - type: string - username: - type: string - password: - type: string - device_ip: - type: string - hostname: - type: string - os: - type: string - malware_path: - type: string - country: - type: string - log_date: - type: string - hardware_id: - type: string - domain: - type: string - email_domain: - type: string - url_domain: - type: string - fetched_at: - type: string - status: - type: string - user_type: - type: string - description: 'Classification of leak type (personal, employee, customer, external_vendor_leaks, organization_leaks)' - total_leaks: - type: number - total_pages: - type: number - total_count: - type: number - summary: - type: object - properties: - total_leaks: - type: number - personal_leaks: - type: number - employee_leaks: - type: number - customer_leaks: - type: number - external_vendor_leaks: - type: number - description: Employee leaks on external vendor systems (login URL domain != email domain) - organization_leaks: - type: number - description: Employee leaks on organization systems (login URL domain == email domain) - group_summary: - type: array - description: Group summary data when group_by parameter is used - items: - type: object - additionalProperties: true - description: Dynamic group summary with field name as key and count - '400': - $ref: '#/components/responses/MessageResponse' - '401': - $ref: '#/components/responses/MessageResponse' - '403': - $ref: '#/components/responses/MessageResponse' - '404': - $ref: '#/components/responses/MessageResponse' - '500': - $ref: '#/components/responses/MessageResponse' - default: - $ref: '#/components/responses/ErrorResponse' - operationId: get-v1-leaks - parameters: - - schema: - type: string - enum: - - all - - personal - - employee - - customer - - external_vendor_leaks - - organization_leaks - default: all - in: query - name: type - description: Filter by specific leak type (single value only) - - schema: - type: string - in: query - name: domain - description: Filter leaks by specific domain (applies to employee/customer leaks) - - schema: - type: string - in: query - name: email - description: 'Filter leaks by specific email (can be personal, employee, or customer email from user''s authorized results)' - - schema: - type: string - in: query - name: search - description: Search query to filter results across all fields - - schema: - type: number - in: query - name: limit - description: Number of results per page for pagination - - schema: - type: number - in: query - name: page_number - description: Page number for pagination (starts from 1) - - schema: - type: string - format: date - in: query - name: start_date - description: time filter start date - - schema: - type: string - default: all_time - enum: - - all_time - - current_month - - last_month - - last_3_months - - last_6_months - - last_12_months - in: query - name: time_range - - schema: - type: string - format: date - in: query - name: end_date - description: time filter end date - - schema: - type: string - enum: - - url - - username - - log_date - - country - - device_ip - - host_username - - hostname - - os - - hardware_id - - malware_path - in: query - name: sort_by - description: supported sort fields - - schema: - type: string - enum: - - asc - - desc - in: query - name: sort_order - description: supported sort order (asc or desc) - - schema: - type: string - enum: - - fixed - - open - in: query - name: status - description: supported status (fixed or open) - - schema: - type: string - enum: - - url - - country - - device_ip - - hostname - - email - - hardware_id - in: query - name: group_by - description: Group results by field - returns group summaries when used without field-specific filtering - - schema: - type: string - in: query - name: url - description: Filter by specific URL (used with group_by for drill-down) - - schema: - type: string - in: query - name: country - description: Filter by specific country (used with group_by for drill-down) - - schema: - type: string - in: query - name: device_ip - description: Filter by specific device IP (used with group_by for drill-down) - - schema: - type: string - in: query - name: hostname - description: Filter by specific hostname (used with group_by for drill-down) - - schema: - type: string - in: query - name: hardware_id - description: Filter by specific hardware ID (used with group_by for drill-down) - /v1/leaks/export: - post: - summary: Export leaked credentials - description: 'Export leaked credentials with filtering by type, domain, email, date range, and more. Passwords are unmasked after domain verification. See [Domain Verification](/cloud/credential-monitoring#domain-verification) for setup instructions.' - tags: - - export - responses: - '200': - description: Export data returned successfully - content: - application/json: - schema: - type: object - properties: - data: - type: array - items: - type: object - properties: - id: - type: string - url: - type: string - username: - type: string - password: - type: string - device_ip: - type: string - hostname: - type: string - os: - type: string - malware_path: - type: string - country: - type: string - log_date: - type: string - hardware_id: - type: string - domain: - type: string - email_domain: - type: string - url_domain: - type: string - fetched_at: - type: string - status: - type: string - user_type: - type: string - description: 'Classification of leak type (personal, employee, customer, external_vendor_leaks, organization_leaks)' - total_leaks: - type: number - total_pages: - type: number - total_count: - type: number - summary: - type: object - properties: - total_leaks: - type: number - personal_leaks: - type: number - employee_leaks: - type: number - customer_leaks: - type: number - external_vendor_leaks: - type: number - description: Employee leaks on external vendor systems (login URL domain != email domain) - organization_leaks: - type: number - description: Employee leaks on organization systems (login URL domain == email domain) - group_summary: - type: array - description: Group summary data when group_by parameter is used - items: - type: object - additionalProperties: true - description: Dynamic group summary with field name as key and count - text/csv: - schema: - type: string - description: CSV formatted export data - '400': - $ref: '#/components/responses/MessageResponse' - '401': - $ref: '#/components/responses/MessageResponse' - '403': - $ref: '#/components/responses/MessageResponse' - '404': - $ref: '#/components/responses/MessageResponse' - '500': - $ref: '#/components/responses/MessageResponse' - default: - $ref: '#/components/responses/ErrorResponse' - operationId: post-v1-leaks-export - parameters: - - schema: - type: string - enum: - - json - - csv - default: json - in: query - name: format - description: Export format (json or csv) - - schema: - type: string - in: header - name: X-Team-Id - description: 'Retrieve the Team ID from: https://cloud.projectdiscovery.io/settings/team' - requestBody: - required: true - content: - application/json: - schema: - type: object - properties: - type: - type: string - enum: - - all - - personal - - employee - - customer - - external_vendor_leaks - - organization_leaks - default: all - description: Filter by specific leak type (single value only) - domain: - type: string - description: Filter leaks by specific domain (applies to employee/customer leaks) - email: - type: string - description: 'Filter leaks by specific email (can be personal, employee, or customer email from user''s authorized results)' - search: - type: string - description: Search query to filter results across all fields - limit: - type: number - description: Number of results per page for pagination - page_number: - type: number - description: Page number for pagination (starts from 1) - start_date: - type: string - format: date - description: time filter start date - time_range: - type: string - enum: - - all_time - - current_month - - last_month - - last_3_months - - last_6_months - - last_12_months - default: all_time - end_date: - type: string - format: date - description: time filter end date - sort_by: - type: string - enum: - - url - - username - - log_date - - country - - device_ip - - host_username - - hostname - - os - - hardware_id - - malware_path - description: supported sort fields - sort_order: - type: string - enum: - - asc - - desc - description: supported sort order (asc or desc) - status: - type: string - enum: - - fixed - - open - description: supported status (fixed or open) - group_by: - type: string - enum: - - url - - country - - device_ip - - hostname - - email - - hardware_id - description: Group results by field - returns group summaries when used without field-specific filtering - url: - type: string - description: Filter by specific URL (used with group_by for drill-down) - country: - type: string - description: Filter by specific country (used with group_by for drill-down) - device_ip: - type: string - description: Filter by specific device IP (used with group_by for drill-down) - hostname: - type: string - description: Filter by specific hostname (used with group_by for drill-down) - hardware_id: - type: string - description: Filter by specific hardware ID (used with group_by for drill-down) - /v1/leaks/domain: - get: - summary: Get employee/corporate leaks for verified domains (DEPRECATED) - deprecated: true - description: | - **DEPRECATED:** This endpoint is deprecated in favor of the consolidated `/v1/leaks` endpoint. - tags: - - deprecated - responses: - '200': - description: OK - content: - application/json: - schema: - type: object - properties: - data: - type: array - items: - $ref: '#/components/schemas/LeaksEntity' - total_leaks: - type: number - filtered: - type: boolean - search_query: - type: string - total_pages: - type: number - current_page: - type: number - '400': - $ref: '#/components/responses/MessageResponse' - '401': - $ref: '#/components/responses/MessageResponse' - '403': - $ref: '#/components/responses/MessageResponse' - '404': - $ref: '#/components/responses/MessageResponse' - '500': - $ref: '#/components/responses/MessageResponse' - default: - $ref: '#/components/responses/ErrorResponse' - operationId: get-v1-leaks-domain - parameters: - - schema: - type: string - in: query - name: search - description: Search query to filter results across all fields - - schema: - type: number - in: query - name: limit - description: Number of results per page for pagination - - schema: - type: number - in: query - name: page_number - description: Page number for pagination (starts from 1) - - schema: - type: string - format: date - in: query - name: start_date - description: time filter start date - - schema: - type: string - default: all_time - enum: - - all_time - - current_month - - last_month - - last_3_months - - last_6_months - - last_12_months - in: query - name: time_range - - schema: - type: string - format: date - in: query - name: end_date - description: time filter end date - - schema: - type: string - enum: - - url - - username - - log_date - - country - - device_ip - - host_username - - hostname - - os - - hardware_id - - malware_path - in: query - name: sort_by - description: supported sort fields - - schema: - type: string - enum: - - asc - - desc - in: query - name: sort_order - description: supported sort order (asc or desc) - - schema: - type: string - enum: - - fixed - - open - in: query - name: status - description: supported status (fixed or open) - /v1/leaks/email: - get: - summary: Get personal email leaks for authenticated user (DEPRECATED) - deprecated: true - description: | - **DEPRECATED:** This endpoint is deprecated in favor of the consolidated `/v1/leaks` endpoint. - tags: - - deprecated - responses: - '200': - description: OK - content: - application/json: - schema: - type: object - properties: - data: - type: array - items: - $ref: '#/components/schemas/LeaksEntity' - total_leaks: - type: number - total_pages: - type: number - current_page: - type: number - '400': - $ref: '#/components/responses/MessageResponse' - '401': - $ref: '#/components/responses/MessageResponse' - '403': - $ref: '#/components/responses/MessageResponse' - '404': - $ref: '#/components/responses/MessageResponse' - '500': - $ref: '#/components/responses/MessageResponse' - default: - $ref: '#/components/responses/ErrorResponse' - operationId: get-v1-leaks-email - parameters: - - schema: - type: string - in: query - name: search - description: Search query to filter results across all fields - - schema: - type: number - in: query - name: limit - description: Number of results per page for pagination - - schema: - type: number - in: query - name: page_number - description: Page number for pagination (starts from 1) - - schema: - type: string - format: date - in: query - name: start_date - description: time filter start date - - schema: - type: string - default: all_time - enum: - - all_time - - current_month - - last_month - - last_3_months - - last_6_months - - last_12_months - in: query - name: time_range - - schema: - type: string - format: date - in: query - name: end_date - description: time filter end date - - schema: - type: string - enum: - - url - - username - - log_date - - country - - device_ip - - host_username - - hostname - - os - - hardware_id - - malware_path - in: query - name: sort_by - description: supported sort fields - - schema: - type: string - enum: - - asc - - desc - in: query - name: sort_order - description: supported sort order (asc or desc) - - schema: - type: string - enum: - - fixed - - open - in: query - name: status - description: supported status (fixed or open) - /v1/leaks/domain/customers: - get: - summary: Get customer leaks for verified domains (DEPRECATED) - deprecated: true - description: | - **DEPRECATED:** This endpoint is deprecated in favor of the consolidated `/v1/leaks` endpoint. - tags: - - deprecated - responses: - '200': - description: OK - content: - application/json: - schema: - type: object - properties: - data: - type: array - items: - $ref: '#/components/schemas/LeaksEntity' + type: object + properties: + id: + type: string + url: + type: string + username: + type: string + password: + type: string + device_ip: + type: string + hostname: + type: string + os: + type: string + malware_path: + type: string + country: + type: string + log_date: + type: string + hardware_id: + type: string + domain: + type: string + email_domain: + type: string + url_domain: + type: string + fetched_at: + type: string + status: + type: string + user_type: + type: string + description: 'Classification of leak type (personal, employee, customer, external_vendor_leaks, organization_leaks)' total_leaks: type: number total_pages: type: number - current_page: + total_count: type: number - '400': - $ref: '#/components/responses/MessageResponse' - '401': - $ref: '#/components/responses/MessageResponse' - '403': - $ref: '#/components/responses/MessageResponse' - '404': - $ref: '#/components/responses/MessageResponse' - '500': - $ref: '#/components/responses/MessageResponse' - default: - $ref: '#/components/responses/ErrorResponse' - operationId: get-v1-leaks-domain-customers - parameters: - - schema: - type: string - in: query - name: search - description: Search query to filter results across all fields - - schema: - type: integer - in: query - name: limit - description: Number of results per page for pagination - - schema: - type: integer - in: query - name: page_number - description: Page number for pagination (starts from 1) - - schema: - type: string - format: date - in: query - name: start_date - description: time filter start date - - schema: - type: string - default: all_time - enum: - - all_time - - current_month - - last_month - - last_3_months - - last_6_months - - last_12_months - in: query - name: time_range - - schema: - type: string - format: date - in: query - name: end_date - description: time filter end date - - schema: - type: string - enum: - - url - - username - - log_date - - country - - device_ip - - host_username - - hostname - - os - - hardware_id - - malware_path - in: query - name: sort_by - description: supported sort fields - - schema: - type: string - enum: - - asc - - desc - in: query - name: sort_order - description: supported sort order (asc or desc) - - schema: - type: string - enum: - - fixed - - open - in: query - name: status - description: supported status (fixed or open) - '/v1/asset/enumerate/{enumerate_id}/history': - parameters: - - schema: - type: string - name: enumerate_id - in: path - required: true - get: - summary: Get asset enumeration history data - tags: [] - responses: - '200': - description: OK - content: - application/json: - schema: - type: object - properties: - current_page: - type: integer - result_count: - type: integer - total_pages: - type: integer - total_results: - type: integer - total_enumeration: - type: integer - format: int64 - total_unique_enumeration: - type: integer - format: int64 - data: - type: array - items: - $ref: '#/components/schemas/EnumerationHistoryDataResponse' - '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-history - 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 - format: date - in: query - name: start_date - description: time filter start date - - schema: - type: string - default: all_time - enum: - - all_time - - current_month - - last_month - - last_3_months - - last_6_months - - last_12_months - in: query - name: time_range - - schema: - type: string - format: date - in: query - name: end_date - description: time filter end date - - schema: - type: string - in: header - name: X-Team-Id - description: 'Retrieve the Team ID from: https://cloud.projectdiscovery.io/settings/team' - description: Get asset enumeration history data - /v1/vulns/coverage: - get: - summary: Get Vulnerability Template Coverage Statistics - tags: [] - operationId: get-v1-vulns-coverage - description: 'Get template coverage statistics for vulnerabilities. Supports all search query filters to calculate coverage for specific subsets (e.g., by product, severity, etc.)' - parameters: - - in: query - name: q - required: false - schema: - type: string - description: 'SearchQL query to filter vulnerabilities (e.g., "severity:critical", "affected_products.product:wordpress")' - - in: query - name: term_facets - required: false - schema: - items: - type: string - type: array - description: List of term facets to apply - - in: query - name: range_facets - required: false - schema: - items: - type: string - type: array - description: List of range facets to apply - responses: - '200': - description: Coverage statistics response - content: - application/json: - schema: - type: object - required: - - cves - - kevs - - pocs - - fts_query - - filter_description - properties: - cves: - type: object - properties: - coverage: - $ref: '#/components/schemas/CoverageStats' - kevs: - type: object - properties: - cisa: - type: object - properties: - all: - type: object - properties: - coverage: - $ref: '#/components/schemas/CoverageStats' - with_public_poc: - type: object - properties: - coverage: - $ref: '#/components/schemas/CoverageStats' - due_date_breakdown: - type: object - properties: - overdue: - type: object - properties: - coverage: - $ref: '#/components/schemas/CoverageStats' - next_7_days: - type: object - properties: - coverage: - $ref: '#/components/schemas/CoverageStats' - next_30_days: - type: object - properties: - coverage: - $ref: '#/components/schemas/CoverageStats' - after_30_days: - type: object - properties: - coverage: - $ref: '#/components/schemas/CoverageStats' - vulncheck: - type: object - properties: - all: - type: object - properties: - coverage: - $ref: '#/components/schemas/CoverageStats' - with_public_poc: - type: object - properties: - coverage: - $ref: '#/components/schemas/CoverageStats' - due_date_breakdown: - type: object - properties: - overdue: - type: object - properties: - coverage: - $ref: '#/components/schemas/CoverageStats' - next_7_days: - type: object - properties: - coverage: - $ref: '#/components/schemas/CoverageStats' - next_30_days: - type: object - properties: - coverage: - $ref: '#/components/schemas/CoverageStats' - after_30_days: - type: object - properties: - coverage: - $ref: '#/components/schemas/CoverageStats' - pocs: + summary: type: object properties: - coverage: - $ref: '#/components/schemas/CoverageStats' - fts_query: - type: string - description: The SearchQL query string used to calculate coverage (before adding the is_template filter) - example: 'is_remote:true AND (cvss_metrics:"pr:n" OR cvss_metrics:"au:n") AND NOT vuln_status:rejected' - filter_description: - type: string - description: Human-readable description of the filters applied to calculate coverage statistics - example: 'Default filter: remotely exploitable vulnerabilities with no authentication required, excluding rejected/unconfirmed statuses and hardware/OS/consumer categories' - '400': - $ref: '#/components/responses/ErrorResponse' - '401': - $ref: '#/components/responses/ErrorResponse' - '500': - $ref: '#/components/responses/ErrorResponse' - default: - $ref: '#/components/responses/ErrorResponse' - /v2/vulnerability/search: - get: - summary: Full Text Search - tags: [] - responses: - '200': - description: OK - content: - application/json: - schema: - type: object - properties: - count: - type: integer - facets: - type: object - additionalProperties: - $ref: '#/components/schemas/Facets' - results: + total_leaks: + type: number + personal_leaks: + type: number + employee_leaks: + type: number + customer_leaks: + type: number + external_vendor_leaks: + type: number + description: Employee leaks on external vendor systems (login URL domain != email domain) + organization_leaks: + type: number + description: Employee leaks on organization systems (login URL domain == email domain) + group_summary: type: array + description: Group summary data when group_by parameter is used items: - $ref: '#/components/schemas/Vulnerability' - total: - type: integer - '400': - $ref: '#/components/responses/ErrorResponse' - '401': - $ref: '#/components/responses/ErrorResponse' - '403': - $ref: '#/components/responses/ErrorResponse' - '404': - $ref: '#/components/responses/ErrorResponse' - '500': - $ref: '#/components/responses/ErrorResponse' - default: - $ref: '#/components/responses/ErrorResponse' - operationId: get-v2-vulnerability-search - description: Full text search on vulnerabilities - parameters: - - schema: - type: integer - in: query - name: limit - description: The numbers of items to return - - schema: - type: integer - in: query - name: offset - description: The numbers of items to skip - - schema: - type: string - in: query - name: sort_asc - description: Sort results in ascending order (CSV field names) - - schema: - type: string - in: query - name: sort_desc - description: Sort results in descending order (CSV field names) - - schema: - items: - type: string - type: array - in: query - name: fields - description: List of fields to return(comma separated) - - schema: - items: - type: string - type: array - in: query - name: term_facets - description: List of fields to return(comma separated) - - schema: - items: - type: string - type: array - in: query - name: range_facets - description: List of fields to return(comma separated) - - schema: - type: string - in: query - name: q - description: query - - schema: - type: boolean - in: query - name: highlight - description: Whether to highlight the search results - - schema: - type: integer - in: query - name: facet_size - description: Number of facets to return - parameters: [] - '/v2/vulnerability/{id}': - parameters: - - schema: - type: string - name: id - in: path - required: true - get: - summary: Get Vulnerability by ID - tags: [] - responses: - '200': - description: OK - content: - application/json: - schema: - type: object - properties: - data: - $ref: '#/components/schemas/Vulnerability' - '400': - $ref: '#/components/responses/ErrorResponse' - '404': - $ref: '#/components/responses/ErrorResponse' - '500': - $ref: '#/components/responses/ErrorResponse' - default: - $ref: '#/components/responses/ErrorResponse' - operationId: get-vulnerability-by-id - description: Get Vulnerability by ID - parameters: - - schema: - type: string - in: query - name: fields - description: 'template data fields ' - '/v2/vulnerability/{id}/timeline': - parameters: - - schema: - type: string - name: id - in: path - required: true - get: - summary: Get Vulnerability Timeline - tags: - - vulnerability - parameters: - - schema: - type: array - items: - type: string - enum: - - detected - - status_change - - resolved - - reopened - - severity_change - - template_released - - template_updated - name: event_type - in: query - required: false - description: 'Filter by event types (comma-separated). If not provided, returns all events.' - style: form - explode: false - responses: - '200': - description: OK - content: - application/json: - schema: - $ref: '#/components/schemas/VulnTimelineResponse' - '400': - $ref: '#/components/responses/ErrorResponse' - '404': - $ref: '#/components/responses/ErrorResponse' - '500': - $ref: '#/components/responses/ErrorResponse' - default: - $ref: '#/components/responses/ErrorResponse' - operationId: get-vulnerability-timeline - description: 'Get timeline of events for a vulnerability including template release date, first detection, status changes, and severity changes' - /v2/vulnerability/filters: - get: - summary: Get All Filters for Vulnerabilities - tags: [] - responses: - '200': - content: - application/json: - schema: - items: - properties: - can_sort: - description: Indicates if sorting is possible by this field. - type: boolean - data_type: - description: 'The data type of the filter field (e.g., string, number, datetime).' - type: string - description: - description: A human-readable description of the filter field. - type: string - enum_values: - description: The possible values for this field. - items: - type: string - type: array - examples: - description: Example usage of the filter. - items: - type: string - type: array - facet_possible: - description: Indicates if faceting is possible for this field. - type: boolean - field: - description: The name of the filter field. - type: string - search_analyzer: - description: The search analyzer used for this field. - type: string - required: - - field - - data_type - - description - - facet_possible - - can_sort - - examples - - search_analyzer - - enum_values - type: object - type: array - description: OK - '400': - $ref: '#/components/responses/ErrorResponse' - '404': - $ref: '#/components/responses/ErrorResponse' - '500': - $ref: '#/components/responses/ErrorResponse' - default: - $ref: '#/components/responses/ErrorResponse' - operationId: get-v2-vulnerability-filters - description: Get all filters for vulnerabilities - parameters: [] - '/v1/scans/{scan_id}/error_stats': - parameters: - - schema: - type: string - name: scan_id - in: path - required: true - get: - summary: Get error statistics of given scan id - tags: [] - responses: - '200': - description: OK - content: - application/json: + type: object + additionalProperties: true + description: Dynamic group summary with field name as key and count + text/csv: schema: - type: object - properties: - data: - $ref: '#/components/schemas/StatisticsResponse' + type: string + description: CSV formatted export data '400': - $ref: '#/components/responses/ErrorResponse' + $ref: '#/components/responses/MessageResponse' '401': - $ref: '#/components/responses/ErrorResponse' + $ref: '#/components/responses/MessageResponse' '403': - $ref: '#/components/responses/ErrorResponse' + $ref: '#/components/responses/MessageResponse' + '404': + $ref: '#/components/responses/MessageResponse' '500': - $ref: '#/components/responses/ErrorResponse' + $ref: '#/components/responses/MessageResponse' default: $ref: '#/components/responses/ErrorResponse' - operationId: get-scans-id-error-stats - '/v1/template/leaderboard/{name}': + operationId: post-v1-leaks-export + parameters: + - schema: + type: string + enum: + - json + - csv + default: json + in: query + name: format + description: Export format (json or csv) + - schema: + type: string + in: header + name: X-Team-Id + description: 'Retrieve the Team ID from: https://cloud.projectdiscovery.io/settings/team' + requestBody: + required: true + content: + application/json: + schema: + type: object + properties: + type: + type: string + enum: + - all + - personal + - employee + - customer + - external_vendor_leaks + - organization_leaks + default: all + description: Filter by specific leak type (single value only) + domain: + type: string + description: Filter leaks by specific domain (applies to employee/customer leaks) + email: + type: string + description: 'Filter leaks by specific email (can be personal, employee, or customer email from user''s authorized results)' + search: + type: string + description: Search query to filter results across all fields + limit: + type: number + description: Number of results per page for pagination + page_number: + type: number + description: Page number for pagination (starts from 1) + start_date: + type: string + format: date + description: time filter start date + time_range: + type: string + enum: + - all_time + - current_month + - last_month + - last_3_months + - last_6_months + - last_12_months + default: all_time + end_date: + type: string + format: date + description: time filter end date + sort_by: + type: string + enum: + - url + - username + - log_date + - country + - device_ip + - host_username + - hostname + - os + - hardware_id + - malware_path + description: supported sort fields + sort_order: + type: string + enum: + - asc + - desc + description: supported sort order (asc or desc) + status: + type: string + enum: + - fixed + - open + description: supported status (fixed or open) + group_by: + type: string + enum: + - url + - country + - device_ip + - hostname + - email + - hardware_id + description: Group results by field - returns group summaries when used without field-specific filtering + url: + type: string + description: Filter by specific URL (used with group_by for drill-down) + country: + type: string + description: Filter by specific country (used with group_by for drill-down) + device_ip: + type: string + description: Filter by specific device IP (used with group_by for drill-down) + hostname: + type: string + description: Filter by specific hostname (used with group_by for drill-down) + hardware_id: + type: string + description: Filter by specific hardware ID (used with group_by for drill-down) + '/v1/asset/enumerate/{enumerate_id}/history': parameters: - schema: type: string - name: name + name: enumerate_id in: path required: true get: - summary: Get Leaderboard ID Details + summary: Get asset enumeration history data tags: [] responses: '200': - description: Shared Response + description: OK content: application/json: schema: type: object properties: - count: + current_page: type: integer - description: The number of results - facets: - type: object - description: The search facets - additionalProperties: - $ref: '#/components/schemas/Facets' - results: + result_count: + type: integer + total_pages: + type: integer + total_results: + type: integer + total_enumeration: + type: integer + format: int64 + total_unique_enumeration: + type: integer + format: int64 + data: type: array - description: The search results items: - $ref: '#/components/schemas/TemplateData' - total: - type: integer - description: The total number of results + $ref: '#/components/schemas/EnumerationHistoryDataResponse' '400': $ref: '#/components/responses/ErrorResponse' '401': $ref: '#/components/responses/ErrorResponse' - '404': + '403': $ref: '#/components/responses/ErrorResponse' '500': $ref: '#/components/responses/ErrorResponse' default: $ref: '#/components/responses/ErrorResponse' - operationId: get-v1-template-leaderboard-id - description: Get public templates leaderboard ID details + operationId: get-v1-asset-enumerate-enumerate_id-history parameters: - schema: - type: array - items: - type: string + type: integer in: query - name: fields - description: List of fields to return(comma separated) + 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: integer + type: string + format: date in: query - name: offset - description: The numbers of items to skip - '/v1/tasks/{task_id}/chunk': - parameters: - - schema: - type: string - name: task_id - in: path - required: true - - schema: - type: boolean - in: query - name: done - get: - summary: Get Task Chunk - tags: - - tasks - responses: - '200': - $ref: '#/components/responses/TaskChunkResponse' - '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-task-chunk - description: Get details of a task by Scan ID or Enumeration ID - security: - - X-API-Key: [] - parameters: + name: start_date + description: time filter start date - schema: type: string - in: header - description: 'Retrieve the Team ID from: https://cloud.projectdiscovery.io/settings/team' - name: X-Team-Id - '/v1/tasks/{task_id}/chunk/{chunk_id}': - parameters: - - schema: - type: string - name: task_id - in: path - required: true - - schema: - type: string - name: chunk_id - in: path - required: true - get: - summary: Get task chunk details - tags: - - tasks - responses: - '200': - $ref: '#/components/responses/TaskChunkResponse' - '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-task-chunk-details - description: Get details of a task chunk by scan ID or Enumeration ID and chunk ID - security: - - X-API-Key: [] - parameters: + default: all_time + enum: + - all_time + - current_month + - last_month + - last_3_months + - last_6_months + - last_12_months + in: query + name: time_range + - schema: + type: string + format: date + in: query + name: end_date + description: time filter end date - schema: type: string in: header - description: 'Retrieve the Team ID from: https://cloud.projectdiscovery.io/settings/team' name: X-Team-Id - post: - summary: Update a task chunk status - tags: - - tasks + description: 'Retrieve the Team ID from: https://cloud.projectdiscovery.io/settings/team' + description: Get asset enumeration history data + /v2/vulnerability/search: + get: + summary: Full Text Search + tags: [] responses: '200': description: OK @@ -12863,169 +4955,100 @@ paths: schema: type: object properties: - ok: - type: boolean - required: - - ok + count: + type: integer + facets: + type: object + additionalProperties: + $ref: '#/components/schemas/Facets' + results: + type: array + items: + $ref: '#/components/schemas/Vulnerability' + total: + type: integer '400': $ref: '#/components/responses/ErrorResponse' '401': $ref: '#/components/responses/ErrorResponse' - '404': + '403': $ref: '#/components/responses/ErrorResponse' - '499': + '404': $ref: '#/components/responses/ErrorResponse' '500': $ref: '#/components/responses/ErrorResponse' default: $ref: '#/components/responses/ErrorResponse' - operationId: post-v1-task-chunk-status - security: - - X-API-Key: [] + operationId: get-v2-vulnerability-search + description: Full text search on vulnerabilities parameters: - schema: - type: string - in: header - description: 'Retrieve the Team ID from: https://cloud.projectdiscovery.io/settings/team' - name: X-Team-Id - - schema: - type: string - enum: - - ack - - nack - - in_progress + type: integer in: query - name: status - required: true - description: Status of the chunk elaboration - /v1/agents/in: - post: - summary: Register Agents - tags: - - agents - operationId: post-v1-agents-in - parameters: + name: limit + description: The numbers of items to return - schema: - type: string + type: integer in: query - name: os - description: Operating system + name: offset + description: The numbers of items to skip - schema: type: string in: query - name: arch - description: Architecture + name: sort_asc + description: Sort results in ascending order (CSV field names) - schema: type: string in: query - name: id - description: Agent ID + name: sort_desc + description: Sort results in descending order (CSV field names) - schema: - type: string + items: + type: string + type: array in: query - name: name - description: Agent name + name: fields + description: List of fields to return(comma separated) - schema: - type: string + items: + type: string + type: array in: query - name: tags - description: Comma-separated tags + name: term_facets + description: List of fields to return(comma separated) - schema: - type: string + items: + type: string + type: array in: query - name: networks - description: Comma-separated networks + name: range_facets + description: List of fields to return(comma separated) - schema: type: string in: query - name: network_subnets - description: Comma-separated network subnets + name: q + description: query - schema: - type: string - enum: - - agent - - tunnel + type: boolean in: query - name: type - description: Agent type (agent or tunnel) - - schema: - type: string - in: header - name: x-api-key - description: API key - security: - - X-API-Key: [] - responses: - '200': - description: OK - content: - application/json: - schema: - type: object - properties: - message: - type: string - '404': - description: Not Found - content: - application/json: - schema: - type: object - properties: - error: - type: string - /v1/agents/out: - post: - summary: Deregister Agent - tags: - - agents - operationId: post-v1-agents-out - parameters: + name: highlight + description: Whether to highlight the search results - schema: - type: string + type: integer in: query - name: id - description: Agent ID - - schema: - type: string - in: header - name: x-api-key - description: API key - security: - - X-API-Key: [] - responses: - '200': - description: OK - content: - application/json: - schema: - type: object - properties: - message: - type: string - '404': - description: Not Found - content: - application/json: - schema: - type: object - properties: - error: - type: string - /v1/agents: + name: facet_size + description: Number of facets to return + parameters: [] + '/v2/vulnerability/{id}': + parameters: + - schema: + type: string + name: id + in: path + required: true get: - summary: Get Agents - tags: - - agents - operationId: get-v1-agents - parameters: - - schema: - type: string - in: header - name: x-api-key - description: API key - security: - - X-API-Key: [] + summary: Get Vulnerability by ID + tags: [] responses: '200': description: OK @@ -13034,94 +5057,25 @@ paths: schema: type: object properties: - agents: - $ref: '#/components/schemas/Agents' - message: - type: string + data: + $ref: '#/components/schemas/Vulnerability' '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' - patch: - summary: Bulk Update Agents - tags: - - agents - operationId: patch-v1-agents + operationId: get-vulnerability-by-id + description: Get Vulnerability by ID parameters: - schema: type: string - in: header - name: x-api-key - description: API key - requestBody: - required: true - content: - application/json: - schema: - type: array - items: - type: object - required: - - id - properties: - id: - type: string - description: Agent ID - name: - type: string - description: Agent name - tags: - type: array - items: - type: string - description: Tags - networks: - type: array - items: - type: string - description: Networks - network_subnets: - type: array - items: - type: string - description: Network subnets - security: - - X-API-Key: [] - responses: - '200': - description: OK - content: - application/json: - schema: - type: object - properties: - message: - type: string - '400': - description: Bad Request - content: - application/json: - schema: - type: object - properties: - error: - type: string - '404': - description: Not Found - content: - application/json: - schema: - type: object - properties: - error: - type: string - '/v1/agents/{id}': + in: query + name: fields + description: 'template data fields ' + '/v2/vulnerability/{id}/timeline': parameters: - schema: type: string @@ -13129,103 +5083,107 @@ paths: in: path required: true get: - summary: Get Agent by ID - tags: - - agents - operationId: get-v1-agents-id - parameters: - - schema: - type: string - in: header - name: x-api-key - description: API key - security: - - X-API-Key: [] - responses: - '200': - description: OK - content: - application/json: - schema: - type: object - properties: - agent: - $ref: '#/components/schemas/AgentItem' - '404': - description: Not Found - content: - application/json: - schema: - type: object - properties: - error: - type: string - post: - summary: Update Agent + summary: Get Vulnerability Timeline tags: - - agents - operationId: post-v1-agents-id + - vulnerability parameters: - schema: - type: string - in: header - name: x-api-key - description: API key - requestBody: - required: true - content: - application/json: - schema: - type: object - properties: - name: - type: string - description: Agent name - tags: - type: array - items: - type: string - description: Tags - networks: - type: array - items: - type: string - description: Networks - network_subnets: - type: array - items: - type: string - description: Network subnets - security: - - X-API-Key: [] + type: array + items: + type: string + enum: + - detected + - status_change + - resolved + - reopened + - severity_change + - template_released + - template_updated + name: event_type + in: query + required: false + description: 'Filter by event types (comma-separated). If not provided, returns all events.' + style: form + explode: false responses: '200': description: OK content: application/json: schema: - type: object - properties: - message: - type: string + $ref: '#/components/schemas/VulnTimelineResponse' '400': - description: Bad Request - content: - application/json: - schema: - type: object - properties: - error: - type: string + $ref: '#/components/responses/ErrorResponse' '404': - description: Not Found + $ref: '#/components/responses/ErrorResponse' + '500': + $ref: '#/components/responses/ErrorResponse' + default: + $ref: '#/components/responses/ErrorResponse' + operationId: get-vulnerability-timeline + description: 'Get timeline of events for a vulnerability including template release date, first detection, status changes, and severity changes' + /v2/vulnerability/filters: + get: + summary: Get All Filters for Vulnerabilities + tags: [] + responses: + '200': content: application/json: schema: - type: object - properties: - error: - type: string + items: + properties: + can_sort: + description: Indicates if sorting is possible by this field. + type: boolean + data_type: + description: 'The data type of the filter field (e.g., string, number, datetime).' + type: string + description: + description: A human-readable description of the filter field. + type: string + enum_values: + description: The possible values for this field. + items: + type: string + type: array + examples: + description: Example usage of the filter. + items: + type: string + type: array + facet_possible: + description: Indicates if faceting is possible for this field. + type: boolean + field: + description: The name of the filter field. + type: string + search_analyzer: + description: The search analyzer used for this field. + type: string + required: + - field + - data_type + - description + - facet_possible + - can_sort + - examples + - search_analyzer + - enum_values + type: object + type: array + description: OK + '400': + $ref: '#/components/responses/ErrorResponse' + '404': + $ref: '#/components/responses/ErrorResponse' + '500': + $ref: '#/components/responses/ErrorResponse' + default: + $ref: '#/components/responses/ErrorResponse' + operationId: get-v2-vulnerability-filters + description: Get all filters for vulnerabilities + parameters: [] /v1/leaks/status: post: summary: Update leak status @@ -13374,129 +5332,255 @@ paths: properties: message: type: string - example: 'Access denied: you don''t have access to this leak' + example: 'Access denied: you don''t have access to this leak' + '404': + description: Leak not found + content: + application/json: + schema: + type: object + properties: + success: + type: boolean + example: false + message: + type: string + example: Leak not found + '500': + $ref: '#/components/responses/MessageResponse' + default: + $ref: '#/components/responses/ErrorResponse' + /v1/asset/enumerate/misconfiguration: + get: + summary: List Misconfiguration Findings + description: >- + Retrieve infrastructure misconfiguration findings discovered during asset enumeration. Currently detects AWS dangling DNS (Elastic IPs that no longer exist) and Cloudflare origin IP exposure. + tags: [] + responses: + '200': + description: OK + content: + application/json: + schema: + type: object + properties: + message: + type: string + total_pages: + type: integer + total_results: + type: integer + current_page: + type: integer + data: + type: array + items: + $ref: '#/components/schemas/MisconfigurationResponse' + '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-misconfiguration + parameters: + - schema: + type: string + in: header + name: X-Team-Id + description: 'Retrieve the Team ID from: https://cloud.projectdiscovery.io/settings/team' + - schema: + type: integer + in: query + name: limit + description: The numbers of items to return + - schema: + type: integer + in: query + name: offset + description: The number of items to skip before starting to collect the result set + - schema: + type: string + in: query + name: search + description: Case-insensitive substring search on the host field + - schema: + type: string + enum: + - dangling_dns + - origin_exposure + in: query + name: finding_type + description: Filter by finding type + /v1/asset/policy: + get: + summary: List asset policies + tags: [] + responses: + '200': + description: OK + content: + application/json: + schema: + $ref: '#/components/schemas/AssetPolicyListResponse' + '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-policy + description: List all asset policies configured for your account. Returns each policy with its conditions, action type, and execution metadata. + parameters: + - schema: + type: integer + in: query + name: limit + description: Number of items to return + - schema: + type: integer + in: query + name: offset + description: Number of items to skip + post: + summary: Create asset policy + tags: [] + responses: + '200': + description: OK + content: + application/json: + schema: + type: object + properties: + message: + type: string + id: + type: string + description: Unique identifier of the created policy + '400': + $ref: '#/components/responses/ErrorResponse' + '401': + $ref: '#/components/responses/ErrorResponse' + '404': + $ref: '#/components/responses/ErrorResponse' + '500': + $ref: '#/components/responses/ErrorResponse' + default: + description: Default + operationId: post-v1-asset-policy + description: 'Create a new asset policy that automatically takes action on assets matching defined conditions. Supported actions: alert (send notifications), delete (remove assets), set_label (add labels), and remove_label (remove labels).' + requestBody: + $ref: '#/components/requestBodies/CreateAssetPolicyRequest' + '/v1/asset/policy/{policy_id}': + parameters: + - schema: + type: string + name: policy_id + in: path + required: true + description: Unique identifier of the asset policy + get: + summary: Get asset policy + tags: [] + responses: + '200': + description: OK + content: + application/json: + schema: + type: object + properties: + data: + $ref: '#/components/schemas/AssetPolicy' + message: + type: string + '400': + $ref: '#/components/responses/ErrorResponse' + '401': + $ref: '#/components/responses/ErrorResponse' '404': - description: Leak not found + $ref: '#/components/responses/ErrorResponse' + '500': + $ref: '#/components/responses/ErrorResponse' + default: + $ref: '#/components/responses/ErrorResponse' + operationId: get-v1-asset-policy-policy_id + description: Get a single asset policy by ID, including its conditions, action configuration, and execution metadata. + patch: + summary: Update asset policy + tags: [] + responses: + '200': + description: OK content: application/json: schema: type: object properties: - success: - type: boolean - example: false message: type: string - example: Leak not found + id: + type: string + '400': + $ref: '#/components/responses/ErrorResponse' + '401': + $ref: '#/components/responses/ErrorResponse' + '404': + $ref: '#/components/responses/ErrorResponse' '500': - $ref: '#/components/responses/MessageResponse' + $ref: '#/components/responses/ErrorResponse' default: $ref: '#/components/responses/ErrorResponse' - /v2/vulnerability/product/search: - get: - summary: Search Products + operationId: patch-v1-asset-policy-policy_id + description: Update an existing asset policy. Use `append` mode to merge new values with existing ones (e.g., add alerting configs or labels without removing current ones). Use `replace` mode to completely overwrite the policy configuration. + parameters: + - schema: + type: string + enum: + - append + - replace + in: query + name: update_type + description: 'Update strategy. `append` (default) merges new values with existing ones. `replace` overwrites the entire policy — all required fields for the policy type must be provided.' + requestBody: + $ref: '#/components/requestBodies/UpdateAssetPolicyRequest' + delete: + summary: Delete asset policy tags: [] responses: '200': - description: OK + description: Shared Response content: application/json: schema: type: object properties: - count: - type: integer - facets: - type: object - additionalProperties: - $ref: '#/components/schemas/Facets' - results: - type: array - items: - $ref: '#/components/schemas/Product' - total: - type: integer + message: + type: string '400': $ref: '#/components/responses/ErrorResponse' '401': $ref: '#/components/responses/ErrorResponse' - '403': - $ref: '#/components/responses/ErrorResponse' '404': $ref: '#/components/responses/ErrorResponse' '500': $ref: '#/components/responses/ErrorResponse' default: $ref: '#/components/responses/ErrorResponse' - operationId: get-v2-product-search - description: Search products with filtering and faceting capabilities - parameters: - - schema: - type: integer - in: query - name: limit - description: The numbers of items to return - - schema: - type: integer - in: query - name: offset - description: The numbers of items to skip - - schema: - type: string - in: query - name: sort_asc - description: Sort results in ascending order (CSV field names) - - schema: - type: string - in: query - name: sort_desc - description: Sort results in descending order (CSV field names) - - schema: - items: - type: string - type: array - in: query - name: fields - description: List of fields to return(comma separated) - - schema: - items: - type: string - type: array - in: query - name: term_facets - description: List of fields to return(comma separated) - - schema: - items: - type: string - type: array - in: query - name: range_facets - description: List of fields to return(comma separated) - - schema: - type: string - in: query - name: q - description: query - - schema: - type: boolean - in: query - name: highlight - description: Whether to highlight the search results - - schema: - type: integer - in: query - name: facet_size - description: Number of facets to return - parameters: [] - '/v2/vulnerability/product/{id}': - parameters: - - schema: - type: string - name: id - in: path - required: true + operationId: delete-v1-asset-policy-policy_id + description: Permanently delete an asset policy. This stops all future automatic actions for this policy. + /v1/asset/policy/suggestion: get: - summary: Get Product by ID + summary: Get asset policy suggestions tags: [] responses: '200': @@ -13504,132 +5588,96 @@ paths: content: application/json: schema: - type: object - properties: - data: - $ref: '#/components/schemas/Product' + $ref: '#/components/schemas/AssetPolicySuggestionsResponse' '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-product-by-id - description: Get Product by ID + operationId: get-v1-asset-policy-suggestion + description: Get suggested asset policies based on user data patterns. Analyzes asset data to suggest policies for bad data detection and important asset highlighting. parameters: - schema: type: string in: query - name: fields - description: 'product data fields ' - '/v2/vulnerability/product/{id}/vulns': + name: enumeration_id + description: Optional enumeration ID to scope suggestions + - schema: + type: integer + in: query + name: limit + description: Maximum suggestions per category + - schema: + type: number + in: query + name: threshold + description: Minimum percentage threshold for anomaly detection + '/v1/asset/policy/{policy_id}/events': parameters: - schema: type: string - name: id + name: policy_id in: path required: true + description: Unique identifier of the asset policy get: - summary: Get Vulnerabilities for Product + summary: Get asset policy events tags: [] responses: '200': - description: OK + description: Shared Response content: application/json: schema: type: object properties: - count: - type: integer - facets: + data: type: object - additionalProperties: - $ref: '#/components/schemas/Facets' - results: - type: array - items: - $ref: '#/components/schemas/Vulnerability' + properties: + events: + type: array + items: + $ref: '#/components/schemas/ActivityEvent' total: type: integer + limit: + type: integer + offset: + type: integer + message: + type: string '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-product-vulns - description: Get vulnerabilities for a specific product + operationId: get-v1-asset-policy-policy_id-events + description: Get the execution history for a specific asset policy, including apply actions, alert deliveries, and errors. parameters: - schema: type: integer in: query name: limit - description: The numbers of items to return + description: 'Maximum results per page (default: 50, max: 100)' - schema: type: integer in: query name: offset - description: The numbers of items to skip - - schema: - type: string - in: query - name: sort_asc - description: Sort results in ascending order (CSV field names) - - schema: - type: string - in: query - name: sort_desc - description: Sort results in descending order (CSV field names) - - schema: - items: - type: string - type: array - in: query - name: fields - description: List of fields to return(comma separated) - - schema: - items: - type: string - type: array - in: query - name: term_facets - description: List of fields to return(comma separated) - - schema: - items: - type: string - type: array - in: query - name: range_facets - description: List of fields to return(comma separated) - - schema: - type: string - in: query - name: q - description: query - - schema: - type: boolean - in: query - name: highlight - description: Whether to highlight the search results - - schema: - type: integer - in: query - name: facet_size - description: Number of facets to return - '/v2/vulnerability/product/{id}/timeline': - parameters: - - schema: - type: string - name: id - in: path - required: true + description: Number of items to skip for pagination + /v1/leaks: get: - summary: Get Vulnerability Timeline for Product + summary: Get all leaked credentials + description: 'Returns all leaks (personal, employee, customer) with optional type filtering. Replaces the need for separate endpoint calls.' tags: [] responses: '200': @@ -13639,348 +5687,265 @@ paths: schema: type: object properties: - count: - type: integer - facets: + data: + type: array + items: + type: object + properties: + id: + type: string + url: + type: string + username: + type: string + password: + type: string + device_ip: + type: string + hostname: + type: string + os: + type: string + malware_path: + type: string + country: + type: string + log_date: + type: string + hardware_id: + type: string + domain: + type: string + email_domain: + type: string + url_domain: + type: string + fetched_at: + type: string + status: + type: string + user_type: + type: string + description: 'Classification of leak type (personal, employee, customer, external_vendor_leaks, organization_leaks)' + total_leaks: + type: number + total_pages: + type: number + total_count: + type: number + summary: type: object - additionalProperties: - $ref: '#/components/schemas/Facets' - results: + properties: + total_leaks: + type: number + personal_leaks: + type: number + employee_leaks: + type: number + customer_leaks: + type: number + external_vendor_leaks: + type: number + description: Employee leaks on external vendor systems (login URL domain != email domain) + organization_leaks: + type: number + description: Employee leaks on organization systems (login URL domain == email domain) + group_summary: type: array + description: Group summary data when group_by parameter is used items: - $ref: '#/components/schemas/Vulnerability' - total: - type: integer + type: object + additionalProperties: true + description: Dynamic group summary with field name as key and count '400': - $ref: '#/components/responses/ErrorResponse' + $ref: '#/components/responses/MessageResponse' + '401': + $ref: '#/components/responses/MessageResponse' + '403': + $ref: '#/components/responses/MessageResponse' '404': - $ref: '#/components/responses/ErrorResponse' + $ref: '#/components/responses/MessageResponse' '500': - $ref: '#/components/responses/ErrorResponse' + $ref: '#/components/responses/MessageResponse' default: $ref: '#/components/responses/ErrorResponse' - operationId: get-product-timeline - description: Get vulnerability timeline for a specific product (sorted by cve_created_at descending) + operationId: get-v1-leaks parameters: - schema: - type: integer + type: string + enum: + - all + - personal + - employee + - customer + - external_vendor_leaks + - organization_leaks + default: all in: query - name: limit - description: The numbers of items to return + name: type + description: Filter by specific leak type (single value only) - schema: - type: integer + type: string in: query - name: offset - description: The numbers of items to skip + name: domain + description: Filter leaks by specific domain (applies to employee/customer leaks) - schema: type: string in: query - name: sort_asc - description: Sort results in ascending order (CSV field names) + name: email + description: 'Filter leaks by specific email (can be personal, employee, or customer email from user''s authorized results)' - schema: type: string in: query - name: sort_desc - description: Sort results in descending order (CSV field names) + name: search + description: Search query to filter results across all fields - schema: - items: - type: string - type: array + type: number in: query - name: fields - description: List of fields to return(comma separated) + name: limit + description: Number of results per page for pagination - schema: - items: - type: string - type: array + type: number in: query - name: term_facets - description: List of fields to return(comma separated) + name: page_number + description: Page number for pagination (starts from 1) - schema: - items: - type: string - type: array + type: string + format: date in: query - name: range_facets - description: List of fields to return(comma separated) + name: start_date + description: time filter start date - schema: type: string + default: all_time + enum: + - all_time + - current_month + - last_month + - last_3_months + - last_6_months + - last_12_months in: query - name: q - description: query + name: time_range - schema: - type: boolean + type: string + format: date in: query - name: highlight - description: Whether to highlight the search results + name: end_date + description: time filter end date - schema: - type: integer - in: query - name: facet_size - description: Number of facets to return - /v2/vulnerability/product/filters: - get: - summary: Get All Filters for Products - tags: [] - responses: - '200': - content: - application/json: - schema: - items: - properties: - can_sort: - description: Indicates if sorting is possible by this field. - type: boolean - data_type: - description: 'The data type of the filter field (e.g., string, number, datetime).' - type: string - description: - description: A human-readable description of the filter field. - type: string - enum_values: - description: The possible values for this field. - items: - type: string - type: array - examples: - description: Example usage of the filter. - items: - type: string - type: array - facet_possible: - description: Indicates if faceting is possible for this field. - type: boolean - field: - description: The name of the filter field. - type: string - search_analyzer: - description: The search analyzer used for this field. - type: string - required: - - field - - data_type - - description - - facet_possible - - can_sort - - examples - - search_analyzer - - enum_values - type: object - type: array - description: OK - '400': - $ref: '#/components/responses/ErrorResponse' - '404': - $ref: '#/components/responses/ErrorResponse' - '500': - $ref: '#/components/responses/ErrorResponse' - default: - $ref: '#/components/responses/ErrorResponse' - operationId: get-v2-product-filters - description: Get all filters for products - parameters: [] - /v1/report/export: - post: - summary: Export report - tags: - - export - responses: - '200': - description: OK - content: - application/json: - schema: - type: object - properties: - export_id: - type: string - export_url: - type: string - message: - type: string - '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-report-export - parameters: + type: string + enum: + - url + - username + - log_date + - country + - device_ip + - host_username + - hostname + - os + - hardware_id + - malware_path + in: query + name: sort_by + description: supported sort fields - schema: type: string enum: - - executive_summary - - security_posture + - asc + - desc in: query - name: report_type + name: sort_order + description: supported sort order (asc or desc) - schema: type: string - default: all_time enum: - - all_time - - last_month - - last_3_months - - last_6_months - - last_12_months + - fixed + - open in: query - name: time + name: status + description: supported status (fixed or open) - schema: type: string - format: date - description: Filter by start date + enum: + - url + - country + - device_ip + - hostname + - email + - hardware_id in: query - name: start_date + name: group_by + description: Group results by field - returns group summaries when used without field-specific filtering - schema: type: string - format: date - description: Filter by end date in: query - name: end_date + name: url + description: Filter by specific URL (used with group_by for drill-down) - schema: type: string - in: header - name: X-Team-Id - '/v1/admin/report/export/{export_id}/status': - parameters: - - schema: - type: string - name: export_id - in: path - required: true - put: - summary: Update Export Status + in: query + name: country + description: Filter by specific country (used with group_by for drill-down) + - schema: + type: string + in: query + name: device_ip + description: Filter by specific device IP (used with group_by for drill-down) + - schema: + type: string + in: query + name: hostname + description: Filter by specific hostname (used with group_by for drill-down) + - schema: + type: string + in: query + name: hardware_id + description: Filter by specific hardware ID (used with group_by for drill-down) + + /v1/scans/config/verify: + post: + summary: Verify Config tags: - - internal + - configurations responses: '200': - description: OK - content: - application/json: - schema: - type: object - properties: - message: - type: string + $ref: '#/components/responses/VerifyConfigResponse' '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: put-v1-report-export-export_id-status + operationId: post-v1-scans-config-verify requestBody: - content: - application/json: - schema: - type: object - required: - - user_id - properties: - status: - enum: - - failed - - finished - export_url: - type: string - error_reason: - type: string - user_id: - type: number + $ref: '#/components/requestBodies/VerifyConfigRequest' + security: + - X-API-Key: [] + description: Verify scan configuration parameters: - schema: type: string in: header - name: X-Api-Key - required: true - '/v1/admin/report/{report_type}': + description: 'Retrieve the Team ID from: https://cloud.projectdiscovery.io/settings/team' + name: X-Team-Id + + '/v1/asset/enumerate/{enumerate_id}/contents': parameters: - schema: type: string - enum: - - executive_summary - - security_posture - name: report_type + name: enumerate_id in: path required: true - post: - summary: Generate Report for Team (Admin) - tags: - - internal - responses: - '200': - description: OK - content: - application/json: - schema: - type: object - properties: - export_id: - type: string - message: - type: string - '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: post-v1-admin-report-report_type - requestBody: - content: - application/json: - schema: - type: object - required: - - teamID - - userEmail - properties: - teamID: - type: string - description: The team ID to generate report for - userEmail: - type: string - format: email - description: The user email to associate with the export - x-internal: true - /v1/asset/enumerate/misconfiguration: get: - summary: List Misconfiguration Findings - description: >- - Retrieve infrastructure misconfiguration findings discovered during asset enumeration. Currently detects AWS dangling DNS (Elastic IPs that no longer exist) and Cloudflare origin IP exposure. - tags: [] + summary: Get Enumeration Contents + tags: + - enumerations responses: '200': - description: OK - content: - application/json: - schema: - type: object - properties: - message: - type: string - total_pages: - type: integer - total_results: - type: integer - current_page: - type: integer - data: - type: array - items: - $ref: '#/components/schemas/MisconfigurationResponse' + $ref: '#/components/responses/GetEnumerateIdContents' '400': $ref: '#/components/responses/ErrorResponse' '401': @@ -13991,294 +5956,437 @@ paths: $ref: '#/components/responses/ErrorResponse' default: $ref: '#/components/responses/ErrorResponse' - operationId: get-v1-asset-enumerate-misconfiguration + operationId: get-v1-asset-enumerate-enumerate_id-contents parameters: + - 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: boolean + in: query + name: is_tech + description: Return records that have technologies + - schema: + type: boolean + in: query + name: is_favicon + description: Return the records that have favicon + - 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' + - schema: + type: boolean + in: query + name: is_new + description: Filter by new content + - schema: + type: string + in: query + name: host + description: 'Filter by comma separated hosts, e.g-> host=p1,p2' + - schema: + type: string + in: query + name: port + description: 'Filter by comma separated ports, e.g-> port=p1,p2' + - schema: + type: string + in: query + name: status_code + description: 'Filter by comma separated status codes, e.g-> status_code=p1,p2' + - schema: + type: string + in: query + name: title + description: 'Filter by comma separated titles, e.g-> title=p1,p2' + - schema: + type: string + in: query + name: content_length + description: 'Filter by comma separated content lengths, e.g-> content_length=p1,p2' + - schema: + type: string + in: query + name: cname + description: cname to filter + - schema: + type: string + in: query + name: domain + description: 'Filter by comma separated domain names, e.g-> domain=domain1.com,domain2.com' + - schema: + type: string + in: query + name: technologies + description: technologies to filter + - schema: + type: string + in: query + name: ip + description: ips to filter + - schema: + type: string + in: query + name: sort_asc + description: 'comma separated ascending sorting e.g sort_asc=created_at,name' + - schema: + type: string + in: query + name: sort_desc + description: 'comma separated descending sorting e.g sort_desc=created_at,name' + - schema: + type: boolean + in: query + name: is_screenshot + description: asset with screenshots + - schema: + $ref: '#/components/schemas/TimeRangeQueryParameter' + default: all_time + in: query + name: time + description: time filter to select + - schema: + type: string + format: date + in: query + name: start_date + description: time filter start date + - schema: + type: string + format: date + in: query + name: end_date + description: time filter end date - schema: type: string in: header - name: X-Team-Id description: 'Retrieve the Team ID from: https://cloud.projectdiscovery.io/settings/team' + name: X-Team-Id - schema: - type: integer + type: string in: query - name: limit - description: The numbers of items to return + name: custom_filter + description: custom query to filter. double encode the query string. - schema: - type: integer + type: string in: query - name: offset - description: The number of items to skip before starting to collect the result set + name: favicon + description: 'Filter by comma separated favicons, e.g-> favicon=p1,p2' - schema: - type: string + type: boolean in: query - name: search - description: Case-insensitive substring search on the host field + name: only_dns + description: Query only dns FQDN records - schema: - type: string - enum: - - dangling_dns - - origin_exposure + type: boolean in: query - name: finding_type - description: Filter by finding type - /v1/asset/policy: + name: only_ip + description: Query only dns IP records + - schema: + type: boolean + in: query + name: is_internal + description: filter by is_internal (internal vs external hosts) + security: + - X-API-Key: [] + description: Get enumeration content by enumerate_id + + /v1/scans/results: get: - summary: List asset policies - tags: [] + summary: Get All Results + tags: + - results responses: '200': - description: OK - content: - application/json: - schema: - $ref: '#/components/schemas/AssetPolicyListResponse' + $ref: '#/components/responses/GetScanResultsResponse' '400': $ref: '#/components/responses/ErrorResponse' '401': $ref: '#/components/responses/ErrorResponse' - '404': + '499': $ref: '#/components/responses/ErrorResponse' '500': $ref: '#/components/responses/ErrorResponse' default: $ref: '#/components/responses/ErrorResponse' - operationId: get-v1-asset-policy - description: List all asset policies configured for your account. Returns each policy with its conditions, action type, and execution metadata. + operationId: get-v1-results + description: Get scans results of a user parameters: - schema: type: integer in: query - name: limit - description: Number of items to return + name: offset + description: number of results to skip - schema: type: integer in: query - name: offset - description: Number of items to skip - post: - summary: Create asset policy - tags: [] - responses: - '200': - description: OK - content: - application/json: - schema: - type: object - properties: - message: - type: string - id: - type: string - description: Unique identifier of the created policy - '400': - $ref: '#/components/responses/ErrorResponse' - '401': - $ref: '#/components/responses/ErrorResponse' - '404': - $ref: '#/components/responses/ErrorResponse' - '500': - $ref: '#/components/responses/ErrorResponse' - default: - description: Default - operationId: post-v1-asset-policy - description: 'Create a new asset policy that automatically takes action on assets matching defined conditions. Supported actions: alert (send notifications), delete (remove assets), set_label (add labels), and remove_label (remove labels).' - requestBody: - $ref: '#/components/requestBodies/CreateAssetPolicyRequest' - '/v1/asset/policy/{policy_id}': - parameters: - - schema: - type: string - name: policy_id - in: path - required: true - description: Unique identifier of the asset policy - get: - summary: Get asset policy - tags: [] - responses: - '200': - description: OK - content: - application/json: - schema: - type: object - properties: - data: - $ref: '#/components/schemas/AssetPolicy' - message: - type: string - '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-policy-policy_id - description: Get a single asset policy by ID, including its conditions, action configuration, and execution metadata. - patch: - summary: Update asset policy - tags: [] - responses: - '200': - description: OK - content: - application/json: - schema: - type: object - properties: - message: - type: string - id: - type: string - '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: patch-v1-asset-policy-policy_id - description: Update an existing asset policy. Use `append` mode to merge new values with existing ones (e.g., add alerting configs or labels without removing current ones). Use `replace` mode to completely overwrite the policy configuration. - parameters: + name: limit + description: number of results to get + - schema: + type: string + default: unknown,low,medium,high,critical + 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: host + description: 'comma separated host e.g. hosts=https://example.com,https://x.com' + - in: query + name: domain + schema: + type: string + description: 'comma separated domain names e.g-> domain=domain1.com,domain2.com' + - in: query + name: port + schema: + type: string + description: 'comma separated ports e.g. ports=80,443' + - 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' + - schema: + type: boolean + in: query + name: is_ticket + description: Return the records that have issue trackers + - in: query + name: labels + schema: + type: string + description: 'filter by comma separated labels e.g labels=p1,p2' + - in: query + name: category + schema: + type: string + description: 'filter by comma separated categories e.g category=cve,xss' + - in: query + name: is_regression + schema: + type: boolean + description: filter by is_regression + - in: query + name: is_internal + schema: + type: boolean + description: filter by is_internal (internal vs external hosts) + - schema: + type: boolean + in: query + name: asset_metadata + description: Asset details for the vulnerability - schema: type: string - enum: - - append - - replace - in: query - name: update_type - description: 'Update strategy. `append` (default) merges new values with existing ones. `replace` overwrites the entire policy — all required fields for the policy type must be provided.' - requestBody: - $ref: '#/components/requestBodies/UpdateAssetPolicyRequest' - delete: - summary: Delete asset policy - tags: [] - responses: - '200': - description: Shared Response - content: - application/json: - schema: - type: object - properties: - message: - type: string - '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: delete-v1-asset-policy-policy_id - description: Permanently delete an asset policy. This stops all future automatic actions for this policy. - /v1/asset/policy/suggestion: + in: header + name: X-Team-Id + description: 'Retrieve the Team ID from: https://cloud.projectdiscovery.io/settings/team' + security: + - X-API-Key: [] + parameters: [] + /v1/asset/enumerate/contents: get: - summary: Get asset policy suggestions - tags: [] + summary: Get All Enumeration Contents + tags: + - enumerations responses: '200': - description: OK - content: - application/json: - schema: - $ref: '#/components/schemas/AssetPolicySuggestionsResponse' + $ref: '#/components/responses/GetEnumerateIdContents' '400': $ref: '#/components/responses/ErrorResponse' '401': $ref: '#/components/responses/ErrorResponse' - '404': + '403': $ref: '#/components/responses/ErrorResponse' '500': $ref: '#/components/responses/ErrorResponse' default: $ref: '#/components/responses/ErrorResponse' - operationId: get-v1-asset-policy-suggestion - description: Get suggested asset policies based on user data patterns. Analyzes asset data to suggest policies for bad data detection and important asset highlighting. + operationId: get-v1-asset-enumerate-contents parameters: - schema: - type: string + type: integer + default: 0 in: query - name: enumeration_id - description: Optional enumeration ID to scope suggestions + name: offset + description: The number of items to skip before starting to collect the result set + - schema: + $ref: '#/components/schemas/TimeRangeQueryParameter' + default: all_time + in: query + name: time + description: time filter to select - schema: type: integer in: query name: limit - description: Maximum suggestions per category + description: The numbers of items to return - schema: - type: number + type: boolean in: query - name: threshold - description: Minimum percentage threshold for anomaly detection - '/v1/asset/policy/{policy_id}/events': - parameters: - - schema: - type: string - name: policy_id - in: path - required: true - description: Unique identifier of the asset policy - get: - summary: Get asset policy events - tags: [] - responses: - '200': - description: Shared Response - content: - application/json: - schema: - type: object - properties: - data: - type: object - properties: - events: - type: array - items: - $ref: '#/components/schemas/ActivityEvent' - total: - type: integer - limit: - type: integer - offset: - type: integer - message: - type: string - '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-policy-policy_id-events - description: Get the execution history for a specific asset policy, including apply actions, alert deliveries, and errors. - parameters: + name: is_tech + description: Return records that have technologies - schema: - type: integer + type: boolean in: query - name: limit - description: 'Maximum results per page (default: 50, max: 100)' + name: is_favicon + description: Return the records that have favicon - schema: - type: integer + type: string + name: search in: query - name: offset - description: Number of items to skip for pagination + description: Search on the content name + - schema: + type: string + in: query + name: labels + description: 'Filter by comma separated labels, e.g-> labels=p1,p2' + - schema: + type: boolean + in: query + name: is_new + description: Filter by new content + - schema: + type: string + in: query + name: host + description: 'Filter by comma separated labels, e.g-> host=p1,p2' + - schema: + type: string + in: query + name: port + description: 'Filter by port separated labels, e.g-> port=p1,p2' + - schema: + type: string + in: query + name: status_code + description: 'Filter by status code separated labels, e.g-> status_code=p1,p2' + - schema: + type: string + in: query + name: title + description: 'Filter by title separated labels, e.g-> title=p1,p2' + - schema: + type: string + in: query + name: content_length + description: 'Filter by content length separated labels, e.g-> content_length=p1,p2' + - schema: + type: string + in: query + name: domain + description: 'Filter by domain names separated labels, e.g-> domain=domain1.com,domain2.com' + - schema: + type: string + in: query + name: cname + description: cname to filter + - schema: + type: string + in: query + name: technologies + description: technologies to filter + - schema: + type: string + in: query + name: ip + description: ips to filter + - schema: + type: string + in: query + name: sort_asc + description: 'comma separated ascending sorting e.g sort_asc=created_at,name' + - schema: + type: string + in: query + name: sort_desc + description: 'comma separated descending sorting e.g sort_desc=created_at,name' + - schema: + type: string + in: header + description: 'Retrieve the Team ID from: https://cloud.projectdiscovery.io/settings/team' + name: X-Team-Id + - schema: + type: string + in: query + name: custom_filter + description: custom query to filter. double encode the query string. + - schema: + type: boolean + in: query + name: is_screenshot + description: asset with screenshots + - schema: + type: string + in: query + name: favicon + description: 'Filter by comma separated favicons, e.g-> favicon=p1,p2' + - schema: + type: boolean + in: query + name: only_dns + description: Query only dns FQDN records + - schema: + type: boolean + in: query + name: only_ip + description: Query only dns IP records + - schema: + type: boolean + in: query + name: is_internal + description: filter by is_internal (internal vs external hosts) + security: + - X-API-Key: [] + description: Get All enumeration content components: schemas: TimelineEvent: @@ -19800,21 +11908,9 @@ components: 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: