openapi: 3.1.0 info: title: PDCP API version: '1.0' summary: ProjectDiscovery Cloud Platform description: >- For more details, checkout https://docs.projectdiscovery.io/api-reference/editor/scan servers: - url: https://api.projectdiscovery.io description: Production - url: https://api.dev.projectdiscovery.io description: Development - url: http://localhost:8085 description: Localhost paths: /v2/template/search: get: summary: Search Templates tags: - template/v2 parameters: - schema: type: string enum: - public - private - public_private default: public_private in: query name: scope description: Scope of templates to search (public or private) - schema: type: integer default: 50 in: query name: limit description: Maximum number of results to return - schema: type: integer default: 0 in: query name: offset description: Number of results to skip for pagination - schema: type: string items: type: string in: query name: fields description: Specific fields to return in the response style: form explode: true - schema: type: string in: query name: sort_asc description: Field to sort results in ascending order - schema: type: string in: query name: sort_desc description: Field to sort results in descending order - schema: type: string in: query name: q description: Search query string - schema: type: boolean default: false in: query name: highlight description: Whether to highlight search matches in results - schema: type: integer default: 5 in: query name: facet_size description: Number of facets to return in the response - schema: type: string in: header name: X-Team-Id responses: '200': description: Successful search response content: application/json: schema: type: object required: - results - total - count - facets properties: results: type: array items: $ref: '#/components/schemas/TemplateData' total: type: integer description: Total number of matching results count: type: integer description: Number of results in this response facets: $ref: '#/components/schemas/TemplateStats' message: type: string '400': $ref: '#/components/responses/MessageResponse' '401': $ref: '#/components/responses/MessageResponse' '500': $ref: '#/components/responses/MessageResponse' default: $ref: '#/components/responses/MessageResponse' security: - 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 tags: - scans responses: '200': $ref: '#/components/responses/GetScansStatusResponse' '400': $ref: '#/components/responses/ErrorResponse' '401': $ref: '#/components/responses/ErrorResponse' '499': $ref: '#/components/responses/ErrorResponse' '500': $ref: '#/components/responses/ErrorResponse' default: $ref: '#/components/responses/ErrorResponse' operationId: get-v1-scans description: Get user scans status security: - X-API-Key: [] parameters: - schema: type: integer in: query name: offset description: number of scan-status results to skip - schema: type: integer in: query name: limit description: number of scan-status results to fetch - schema: type: string in: query name: search description: search term for running scans - schema: type: string in: query name: status description: >- filter by status (failed, finished, queued, running, starting, uploaded, scheduled) - schema: type: string in: query name: sort_asc description: comma separated ascending sorting e.g sort_asc=created_at,severity - schema: type: string in: query name: sort_desc description: comma separated descending sorting e.g sort_desc=created_at,severity - schema: type: boolean in: query name: is_internal description: filter by internal scans - schema: type: string in: header description: >- Retrieve the Team ID from: https://cloud.projectdiscovery.io/settings/team name: X-Team-Id x-internal: false post: summary: Create Scan tags: - scans operationId: post-v1-scans responses: '200': $ref: '#/components/responses/TriggerUserScanResponse' '400': $ref: '#/components/responses/ErrorResponse' '401': $ref: '#/components/responses/ErrorResponse' '500': $ref: '#/components/responses/ErrorResponse' default: $ref: '#/components/responses/ErrorResponse' description: Trigger a scan security: - X-API-Key: [] requestBody: $ref: '#/components/requestBodies/TriggerUserScanRequest' parameters: - 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 in bulk tags: - scans operationId: delete-v1-scans responses: '200': $ref: '#/components/responses/DeleteScansResponse' '400': $ref: '#/components/responses/ErrorResponse' '401': $ref: '#/components/responses/ErrorResponse' '500': $ref: '#/components/responses/ErrorResponse' default: $ref: '#/components/responses/ErrorResponse' requestBody: content: application/json: schema: type: object required: - scan_ids properties: scan_ids: type: array items: type: string description: Delete scans using scan ids 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/{scan_id}: parameters: - schema: type: string name: scan_id in: path required: true get: summary: Get Scan tags: - scans responses: '200': $ref: '#/components/responses/GetScanDetailsResponse' '400': $ref: '#/components/responses/ErrorResponse' '401': $ref: '#/components/responses/ErrorResponse' '404': $ref: '#/components/responses/ErrorResponse' '499': $ref: '#/components/responses/ErrorResponse' '500': $ref: '#/components/responses/ErrorResponse' default: $ref: '#/components/responses/ErrorResponse' operationId: get-v1-scans-scan_id description: Get details of a scan by scan ID security: - X-API-Key: [] 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 tags: - scans operationId: delete-v1-scans-scan_id responses: '200': $ref: '#/components/responses/DeleteScansResponse' '400': $ref: '#/components/responses/ErrorResponse' '401': $ref: '#/components/responses/ErrorResponse' '500': $ref: '#/components/responses/ErrorResponse' default: $ref: '#/components/responses/ErrorResponse' description: Delete a scan using scanId security: - X-API-Key: [] 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 Scan tags: - scans operationId: patch-v1-scans-scan_id responses: '200': $ref: '#/components/responses/MessageResponse' '400': $ref: '#/components/responses/ErrorResponse' '401': $ref: '#/components/responses/ErrorResponse' '500': $ref: '#/components/responses/ErrorResponse' default: $ref: '#/components/responses/ErrorResponse' description: Update scan metadata security: - X-API-Key: [] requestBody: $ref: '#/components/requestBodies/UpdateScanRequest' parameters: - schema: type: string in: header name: X-Team-Id description: >- Retrieve the Team ID from: https://cloud.projectdiscovery.io/settings/team /v1/scans/import: post: summary: Import OSS Scan tags: - scans operationId: post-v1-scans-import responses: '200': $ref: '#/components/responses/ImportScanResponse' '400': $ref: '#/components/responses/ErrorResponse' '401': $ref: '#/components/responses/ErrorResponse' '500': $ref: '#/components/responses/ErrorResponse' default: $ref: '#/components/responses/ErrorResponse' description: Import scan details security: - X-API-Key: [] requestBody: content: application/octet-stream: schema: type: string format: binary parameters: - schema: type: string in: query name: name - schema: type: string 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 tags: - internal responses: '200': description: OK content: application/octet-stream: schema: type: string format: byte '400': $ref: '#/components/responses/MessageResponse' '401': $ref: '#/components/responses/MessageResponse' '500': $ref: '#/components/responses/MessageResponse' default: $ref: '#/components/responses/ErrorResponse' operationId: get-v1-admin-user-search x-internal: true 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 - 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: get: summary: Get billing assets for a user tags: - internal responses: '200': description: OK content: application/octet-stream: schema: type: string format: byte '400': $ref: '#/components/responses/MessageResponse' '401': $ref: '#/components/responses/MessageResponse' '500': $ref: '#/components/responses/MessageResponse' default: $ref: '#/components/responses/ErrorResponse' operationId: get-v1-admin-user-billing-assets x-internal: true parameters: - schema: type: string in: query name: email description: email of the user required: true /v1/admin/user/audit_logs: get: summary: Get audit logs for a user tags: - internal responses: '200': description: OK content: application/octet-stream: schema: type: string format: byte '400': $ref: '#/components/responses/MessageResponse' '401': $ref: '#/components/responses/MessageResponse' '500': $ref: '#/components/responses/MessageResponse' default: $ref: '#/components/responses/ErrorResponse' operationId: get-v1-admin-user-audit-logs x-internal: true parameters: - schema: type: string 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 - schema: type: string in: query name: path_name description: path name filter - schema: type: string in: query name: status_code description: status code filter comma separated e.g status_code=200,404 - schema: type: string in: query name: status_code_not description: status code not filter comma separated e.g status_code_not=200,404 - schema: type: integer in: query name: limit description: limit for pagination /v1/admin/team/change_owner: parameters: - in: header name: X-Team-ID required: true schema: type: string post: 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 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' 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' '500': $ref: '#/components/responses/MessageResponse' default: $ref: '#/components/responses/ErrorResponse' 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 in: query name: method description: '''create'' or ''update'' mode' required: true - schema: type: string in: header description: >- Retrieve the Team ID from: https://cloud.projectdiscovery.io/settings/team name: X-Team-Id parameters: [] patch: tags: - internal summary: Update Scan token for user operationId: patch-v1-admin-scan-token responses: '200': $ref: '#/components/responses/MessageResponse' '400': $ref: '#/components/responses/MessageResponse' '401': $ref: '#/components/responses/MessageResponse' '500': $ref: '#/components/responses/MessageResponse' default: $ref: '#/components/responses/ErrorResponse' security: - X-API-Key: [] 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: type: string enum: - TRIAL - ENT_TRIAL - PRO - ENT - FREE - VERIFIED_FREE - GROWTH description: user tag eg - TRIAL expire_at: 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 get: summary: Get Token Usage (admin) tags: - internal responses: '200': $ref: '#/components/responses/GetScansTokenResponse' '400': $ref: '#/components/responses/MessageResponse' '401': $ref: '#/components/responses/MessageResponse' '404': $ref: '#/components/responses/MessageResponse' '500': $ref: '#/components/responses/MessageResponse' default: $ref: '#/components/responses/ErrorResponse' operationId: get-v1-admin-scan-token description: Get token usage for given user parameters: - schema: type: integer in: query name: user_id description: user id to get scan token usage for required: true - 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 post: summary: Stop Scan tags: - scans operationId: post-v1-scans-scan_id-stop responses: '200': $ref: '#/components/responses/DeleteScansResponse' '400': $ref: '#/components/responses/ErrorResponse' '401': $ref: '#/components/responses/ErrorResponse' '500': $ref: '#/components/responses/ErrorResponse' default: $ref: '#/components/responses/ErrorResponse' security: - X-API-Key: [] description: Stop a running scan, not applied in any other state. 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 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 name: X-Team-Id description: >- Retrieve the Team ID from: https://cloud.projectdiscovery.io/settings/team /v1/scans/vuln/{vuln_id}: get: summary: Get Scan Vulnerability tags: - results responses: '200': $ref: '#/components/responses/GetScansVulnIdResponse' '400': $ref: '#/components/responses/ErrorResponse' '401': $ref: '#/components/responses/ErrorResponse' '500': $ref: '#/components/responses/ErrorResponse' default: $ref: '#/components/responses/ErrorResponse' operationId: get-v1-scans-vuln-:vulnId description: 'Get scan result vulnerability by ID ' security: - X-API-Key: [] parameters: - schema: type: string 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/result/{scanId}: get: summary: Get Scan Results tags: - results responses: '200': $ref: '#/components/responses/GetScanResultsResponse' '400': $ref: '#/components/responses/ErrorResponse' '401': $ref: '#/components/responses/ErrorResponse' '499': $ref: '#/components/responses/ErrorResponse' '500': $ref: '#/components/responses/ErrorResponse' default: $ref: '#/components/responses/ErrorResponse' operationId: get-v1-scans-result-:scanId description: get results of specific scan by id security: - X-API-Key: [] parameters: - schema: type: string in: query name: severity description: comma separated severity e.g. severity=info,high - schema: type: string in: query name: search description: search term - schema: type: integer in: query name: limit description: 'number of results ' - schema: type: integer in: query name: offset description: number of results to skip - schema: type: string in: query name: templates description: comma separated templates e.g. templates=tech-detect,azure-takeover - schema: type: string in: query name: hosts description: comma separated host e.g. hosts=https://example.com,https://x.com - 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 description: filter by time ( last_day, last_week, last_month ) name: time - schema: type: string in: query name: vuln_status description: comma separated vuln_status e.g vuln_status=open,fixed - schema: type: string in: query name: sort_asc description: comma separated ascending sorting e.g sort_asc=created_at,severity - schema: type: string in: query name: sort_desc description: comma separated descending sorting e.g sort_desc=created_at,severity - 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 parameters: - schema: type: string name: scanId in: path required: true description: scan specific results (by scanId) /v1/scans/vuln/{vuln_id}/changelogs: get: summary: Get Vulnerability Changelogs tags: - results responses: '200': $ref: '#/components/responses/GetVulnChangelogsResponse' '400': $ref: '#/components/responses/ErrorResponse' '401': $ref: '#/components/responses/ErrorResponse' '499': $ref: '#/components/responses/ErrorResponse' '500': $ref: '#/components/responses/ErrorResponse' default: $ref: '#/components/responses/ErrorResponse' operationId: get-v1-scans-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: 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 parameters: - schema: type: string name: vuln_id in: path required: true description: vulnerability ID /v1/scans/vuln/changelogs: get: summary: Get all Vulnerability Changelogs tags: - results responses: '200': $ref: '#/components/responses/GetVulnChangelogsResponse' '400': $ref: '#/components/responses/ErrorResponse' '401': $ref: '#/components/responses/ErrorResponse' '499': $ref: '#/components/responses/ErrorResponse' '500': $ref: '#/components/responses/ErrorResponse' default: $ref: '#/components/responses/ErrorResponse' operationId: get-v1-scans-vuln-changelogs description: get changelogs of all vulnerabilities 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: 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 /v1/scans/results: get: summary: Get All Results tags: - results responses: '200': $ref: '#/components/responses/GetScanResultsResponse' '400': $ref: '#/components/responses/ErrorResponse' '401': $ref: '#/components/responses/ErrorResponse' '499': $ref: '#/components/responses/ErrorResponse' '500': $ref: '#/components/responses/ErrorResponse' default: $ref: '#/components/responses/ErrorResponse' operationId: get-v1-results description: Get scans results of a user parameters: - schema: type: integer in: query name: offset description: number of results to skip - schema: type: integer in: query name: limit description: number of results to get - schema: type: string in: query name: severity description: string separated by comma e.g. info,high - schema: type: string in: query name: search description: search term - schema: type: string in: query name: 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 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 tags: - scans responses: '200': $ref: '#/components/responses/ScanStatsResponse' '401': $ref: '#/components/responses/ErrorResponse' '403': $ref: '#/components/responses/ErrorResponse' '499': $ref: '#/components/responses/ErrorResponse' '500': $ref: '#/components/responses/ErrorResponse' default: $ref: '#/components/responses/ErrorResponse' operationId: get-v1-scans-stats parameters: - 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: parameters: - schema: type: string name: vuln_id in: path required: true post: summary: Retest vulnerability tags: - scans operationId: post-v1-scans-vuln_id-retest responses: '200': $ref: '#/components/responses/PostRescanVulnResponse' '400': $ref: '#/components/responses/ErrorResponse' '401': $ref: '#/components/responses/ErrorResponse' '500': $ref: '#/components/responses/ErrorResponse' default: $ref: '#/components/responses/ErrorResponse' security: - X-API-Key: [] description: Retest a scan vulnerability 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 properties: socks5_proxy: type: string agent_id: type: string agent_tags: type: array items: type: string agent_networks: type: array items: type: string /v1/scans/results/filters: get: summary: Get Scans Result Filters tags: - results responses: '200': $ref: '#/components/responses/GetScanResultsFiltersResponse' '401': $ref: '#/components/responses/ErrorResponse' '499': $ref: '#/components/responses/ErrorResponse' '500': $ref: '#/components/responses/ErrorResponse' default: $ref: '#/components/responses/ErrorResponse' operationId: get-v1-scans-results-filters description: Get users scan-result filters security: - X-API-Key: [] parameters: - schema: type: integer in: query name: offset description: >- The number of items to skip before starting to collect the result set - schema: type: integer in: query name: limit description: The numbers of items to return - schema: type: string in: query name: scan_id description: specific scan_id results filters - schema: type: string in: query name: severity description: comma separated severity e.g. severities=info,high - schema: type: string in: query name: templates description: comma separated templates e.g. templates=tech-detect,azure-takeover - schema: type: string in: query name: 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) - 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 tags: - results responses: '200': $ref: '#/components/responses/GetScanResultStatsResponse' '400': $ref: '#/components/responses/ErrorResponse' '401': $ref: '#/components/responses/ErrorResponse' '499': $ref: '#/components/responses/ErrorResponse' '500': $ref: '#/components/responses/ErrorResponse' default: $ref: '#/components/responses/ErrorResponse' operationId: get-v1-scans-results-stats description: Get user scan results stats security: - X-API-Key: [] parameters: - schema: type: integer in: query name: offset description: >- The number of items to skip before starting to collect the result set - schema: type: integer in: query name: limit description: The numbers of items to return - schema: type: string in: query name: 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 tags: - scans responses: '200': $ref: '#/components/responses/GetScanScheduleResponse' '400': $ref: '#/components/responses/ErrorResponse' '401': $ref: '#/components/responses/ErrorResponse' '500': $ref: '#/components/responses/ErrorResponse' default: $ref: '#/components/responses/ErrorResponse' operationId: get-v1-scans-schedule description: Get scan schedules for a 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 post: summary: Set Scan Schedule tags: - scans operationId: post-v1-scans-schedule responses: '200': $ref: '#/components/responses/SetScanScheduleResponse' '400': $ref: '#/components/responses/ErrorResponse' '401': $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' 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 delete: summary: Delete Scan Schedule tags: - scans operationId: delete-v1-scans-schedule responses: '200': $ref: '#/components/responses/DeleteScanScheduleResponse' '400': $ref: '#/components/responses/ErrorResponse' '401': $ref: '#/components/responses/ErrorResponse' '500': $ref: '#/components/responses/ErrorResponse' default: $ref: '#/components/responses/ErrorResponse' 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 tags: - retests responses: '200': $ref: '#/components/responses/GetRetestResultsResponse' '401': $ref: '#/components/responses/ErrorResponse' '500': $ref: '#/components/responses/ErrorResponse' default: $ref: '#/components/responses/ErrorResponse' operationId: get-v1-retest description: Get user retest results security: - X-API-Key: [] parameters: - schema: type: integer in: query name: offset description: number of results to skip required: true - schema: type: integer in: query name: limit description: number of results required: true - 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 tags: - retests operationId: post-v1-retest responses: '200': $ref: '#/components/responses/PostRetestTemplateResponse' '400': $ref: '#/components/responses/ErrorResponse' '401': $ref: '#/components/responses/ErrorResponse' '500': $ref: '#/components/responses/ErrorResponse' default: $ref: '#/components/responses/ErrorResponse' description: Trigger a retest scan security: - X-API-Key: [] requestBody: $ref: '#/components/requestBodies/RetestTemplateRequest' 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}: get: summary: Get Retest Vulnerability tags: - retests responses: '200': $ref: '#/components/responses/GetSingleRetestResultResponse' '400': $ref: '#/components/responses/ErrorResponse' '401': $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) 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 tags: - assets responses: '200': $ref: '#/components/responses/GetAssetsListResponse' '401': $ref: '#/components/responses/ErrorResponse' '500': $ref: '#/components/responses/ErrorResponse' default: $ref: '#/components/responses/ErrorResponse' operationId: get-v1-assets description: Get user asset list security: - X-API-Key: [] parameters: - schema: type: integer in: query name: offset description: number of assets to skip - schema: type: integer in: query name: limit description: number of assets to fetch - schema: type: string in: query name: search description: search term for asset list - 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 tags: - assets operationId: post-v1-assets responses: '200': $ref: '#/components/responses/UploadAssetResponse' '401': $ref: '#/components/responses/ErrorResponse' '500': $ref: '#/components/responses/ErrorResponse' default: $ref: '#/components/responses/ErrorResponse' security: - X-API-Key: [] requestBody: content: application/octet-stream: schema: type: string format: binary parameters: - schema: type: string in: query name: name description: name of asset - 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 get: summary: Get Asset Metadata tags: - assets responses: '200': $ref: '#/components/responses/GetUserAssetResponse' '401': $ref: '#/components/responses/ErrorResponse' '500': $ref: '#/components/responses/ErrorResponse' default: $ref: '#/components/responses/ErrorResponse' operationId: get-v1-assets-assetId security: - X-API-Key: [] description: Get asset metadata 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 tags: - assets operationId: delete-v1-assets-asset_Id responses: '200': $ref: '#/components/responses/DeleteAssetResponse' '401': $ref: '#/components/responses/ErrorResponse' '500': $ref: '#/components/responses/ErrorResponse' default: $ref: '#/components/responses/ErrorResponse' security: - X-API-Key: [] description: Delete asset by ID 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 tags: - assets operationId: patch-v1-assets-asset_Id responses: '200': description: OK content: application/json: schema: type: object properties: message: type: string required: - message '401': $ref: '#/components/responses/ErrorResponse' '500': $ref: '#/components/responses/ErrorResponse' default: $ref: '#/components/responses/ErrorResponse' security: - X-API-Key: [] requestBody: $ref: '#/components/requestBodies/UpdateAssetRequest' description: Update asset metadata parameters: - 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 tags: - assets responses: '200': description: OK content: application/octet-stream: schema: type: string format: binary '401': $ref: '#/components/responses/ErrorResponse' '500': $ref: '#/components/responses/ErrorResponse' default: $ref: '#/components/responses/ErrorResponse' operationId: get-v1-assets-id-contents security: - X-API-Key: [] description: Get user asset content parameters: - schema: type: string 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': $ref: '#/components/responses/ErrorResponse' '500': $ref: '#/components/responses/ErrorResponse' default: $ref: '#/components/responses/ErrorResponse' requestBody: content: application/octet-stream: schema: type: string format: binary security: - X-API-Key: [] parameters: - schema: type: string enum: - append - replace in: query name: update_type description: 'use append or replace ' - 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: 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' security: - X-API-Key: [] description: Update user's notification preferences /v1/user/feedback: post: summary: Create Feedback tags: - users operationId: post-v1-user-feedback responses: '200': description: OK content: application/json: schema: type: object properties: message: type: string required: - message '401': $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 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 user from system along with all data tags: - users requestBody: content: application/json: schema: type: object properties: code: type: string required: - code responses: '200': $ref: '#/components/responses/MessageResponse' '400': $ref: '#/components/responses/MessageResponse' '403': $ref: '#/components/responses/MessageResponse' '500': $ref: '#/components/responses/MessageResponse' 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 security: - X-API-Key: [] description: Get user api-key post: summary: Create API Key tags: - users operationId: post-v1-user-apikey responses: '200': $ref: '#/components/responses/GetUserAPIKeyResponse' '400': $ref: '#/components/responses/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/onboarding_status: get: summary: Get User Setup Statistics tags: - users - internal operationId: get-v1-user-setup-stats responses: '200': $ref: '#/components/responses/GetUserSetupStatsResponse' '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: Get user setup statistics /v1/user/billing_assets: get: summary: Get Billing Assets details tags: - users - internal operationId: get-v1-user-billing-assets responses: '200': $ref: '#/components/responses/GetBillingAssetsResponse' '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: Get billing assets details /v1/user/promo_code: get: summary: Get Promocode Details tags: - users operationId: get-v1-user-promocode responses: '200': $ref: '#/components/responses/GetPromocodeDetailsResponse' '400': $ref: '#/components/responses/MessageResponse' '401': $ref: '#/components/responses/MessageResponse' '500': $ref: '#/components/responses/MessageResponse' default: $ref: '#/components/responses/ErrorResponse' security: - X-API-Key: [] parameters: - schema: type: string in: query required: true name: promo_code description: Promocode to get details for description: Get promocode details post: summary: Apply Promocode tags: - users 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-user-promocode security: - X-API-Key: [] description: Apply promocode requestBody: content: application/json: schema: type: object properties: promo_code: type: string 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' security: - X-API-Key: [] description: Rotate user api-key /v1/user/domain-verification/request: post: summary: Request Domain Verification tags: - users operationId: post-v1-user-domain-verification-request 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 '400': $ref: '#/components/responses/ErrorResponse' '401': $ref: '#/components/responses/ErrorResponse' '429': $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 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. 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: [] 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 '400': $ref: '#/components/responses/ErrorResponse' '401': $ref: '#/components/responses/ErrorResponse' '429': $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: 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. 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 /v1/user/domain-verification/confirm: post: summary: Confirm Domain Verification tags: - users operationId: post-v1-user-domain-verification-confirm 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 '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 '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. 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: get: summary: Get Domain Verification Status tags: - users operationId: get-v1-user-domain-verification-status responses: '200': description: OK content: application/json: schema: type: object properties: verification_requests: type: array items: $ref: '#/components/schemas/DomainVerificationRequest' required: - verification_requests '401': $ref: '#/components/responses/ErrorResponse' '500': $ref: '#/components/responses/ErrorResponse' default: $ref: '#/components/responses/ErrorResponse' security: - X-API-Key: [] description: >- Get the status of all domain verification requests for the authenticated user, including pending, verified, and expired requests. 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 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: 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 in: query name: limit description: Pagination limit (max no. of results in response) - schema: type: string in: query 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: 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/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: 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: 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 parameters: - schema: type: string name: template_id in: path required: true description: 'unique Id of template ' /v1/template: get: summary: Get 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-templates security: - X-API-Key: [] description: Get user private(my) 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: [] 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: 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 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 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: template_id in: path required: true description: 'unique Id of template ' get: summary: Get Template tags: - templates responses: '200': $ref: '#/components/responses/GetTemplateResponse' '400': $ref: '#/components/responses/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' '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 description: >- Retrieve the Team ID from: https://cloud.projectdiscovery.io/settings/team name: X-Team-Id /v1/template/share: get: summary: Get Shared Template List tags: - templates responses: '200': $ref: '#/components/responses/GetShareStatusResponse' '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-share 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: string in: query name: fields - 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 description: SortAsc Sort results in ascending order (CSV field names) name: sort_asc - 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: '200': $ref: '#/components/responses/ShareTemplateResponse' '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: $ref: '#/components/requestBodies/ShareTemplateRequest' description: Share a private template (shared-with-link) 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}: parameters: - schema: type: string name: template_id in: path required: true description: unique template ID get: summary: Get Shared Template tags: - templates responses: '200': $ref: '#/components/responses/GetSharedTemplateResponse' '400': $ref: '#/components/responses/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-share-template_id 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: {} 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: [] 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' '500': $ref: '#/components/responses/ErrorResponse' default: $ref: '#/components/responses/ErrorResponse' requestBody: $ref: '#/components/requestBodies/PatchUserProfile' security: - X-API-Key: [] description: (ADMIN) Patch a user profile parameters: [] /v1/admin/user/delete: post: summary: Admin delete user tags: - internal 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-admin-user-delete 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: post: summary: Create New User operationId: post-v1-admin-users tags: - internal responses: '200': $ref: '#/components/responses/PostCreateUserResponse' '400': $ref: '#/components/responses/ErrorResponse' '401': $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: 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 tags: - user 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-migrate-to-team requestBody: $ref: '#/components/requestBodies/CreateTeamRequest' security: - X-API-Key: [] description: Migrate Personal workspace data to a new team /v1/user/team: get: summary: Get Team operationId: get-v1-user-team tags: - internal responses: '200': $ref: '#/components/responses/GetTeamResponse' '401': $ref: '#/components/responses/MessageResponse' '403': $ref: '#/components/responses/MessageResponse' '500': $ref: '#/components/responses/MessageResponse' default: $ref: '#/components/responses/ErrorResponse' security: - X-API-Key: [] description: Get a team metadata 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 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 patch: summary: Update Team operationId: patch-v1-user-team tags: - internal responses: '200': $ref: '#/components/responses/UpdateTeamResponse' '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 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: - 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: get: summary: Get Team Members tags: - internal responses: '200': $ref: '#/components/responses/GetTeamMembersResponse' '401': $ref: '#/components/responses/ErrorResponse' '403': $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 parameters: - 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: - 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: - 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: - 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 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' 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' 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 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/SetDefaultTeamMembersRequest' description: Set (replace) the list of 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 delete: summary: Delete Default Team Members operationId: delete-v1-user-team-default-members 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/DeleteDefaultTeamMemberRequest' description: Delete default team members (specific or all) 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: post: summary: Add Team Member (Admin) operationId: post-v1-admin-team-member tags: - internal responses: '200': $ref: '#/components/responses/MessageResponse' '400': $ref: '#/components/responses/MessageResponse' '401': $ref: '#/components/responses/MessageResponse' '403': $ref: '#/components/responses/MessageResponse' '500': $ref: '#/components/responses/MessageResponse' default: $ref: '#/components/responses/ErrorResponse' security: - X-API-Key: [] requestBody: $ref: '#/components/requestBodies/AdminAddTeamMemberRequest' description: (ADMIN) Invite a new team member /v1/scans/scan_ips: get: summary: Get Scan IPs tags: - scans responses: '200': $ref: '#/components/responses/StaticScanIPsResponse' '400': $ref: '#/components/responses/ErrorResponse' '401': $ref: '#/components/responses/ErrorResponse' '403': $ref: '#/components/responses/ErrorResponse' '500': $ref: '#/components/responses/ErrorResponse' default: $ref: '#/components/responses/ErrorResponse' operationId: get-v1-scans-scan_ips security: - X-API-Key: [] description: Get user static scan IPs list 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: parameters: - schema: type: string name: scan_id in: path required: true patch: summary: Update Imported Scan operationId: patch-v1-scans-scan_id-import tags: - scans responses: '200': $ref: '#/components/responses/MessageResponse' '401': $ref: '#/components/responses/ErrorResponse' '403': $ref: '#/components/responses/ErrorResponse' '500': $ref: '#/components/responses/ErrorResponse' default: $ref: '#/components/responses/ErrorResponse' description: Import more results to a given scan requestBody: content: application/octet-stream: schema: type: string format: binary security: - X-API-Key: [] 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: parameters: - schema: type: string name: scan_id in: path required: true - schema: type: boolean in: query name: async get: summary: Export Scan tags: - scans 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 '401': $ref: '#/components/responses/ErrorResponse' '403': $ref: '#/components/responses/ErrorResponse' '500': $ref: '#/components/responses/ErrorResponse' default: $ref: '#/components/responses/ErrorResponse' operationId: get-v1-scans-scan_id-export parameters: - schema: type: string enum: - json - csv - pdf in: query name: type description: json, csv, pdf (default json) - 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 scan results post: summary: Export Filtered Scan tags: - scans 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 '401': $ref: '#/components/responses/ErrorResponse' '403': $ref: '#/components/responses/ErrorResponse' '500': $ref: '#/components/responses/ErrorResponse' default: $ref: '#/components/responses/ErrorResponse' operationId: post-v1-scans-scan_id-export parameters: - schema: type: string enum: - json - csv - pdf in: query name: type description: json, csv, pdf (default json) - 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: parameters: - schema: type: boolean in: query name: async post: summary: Export filtered Scan results tags: - export 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 '401': $ref: '#/components/responses/ErrorResponse' '403': $ref: '#/components/responses/ErrorResponse' '500': $ref: '#/components/responses/ErrorResponse' default: $ref: '#/components/responses/ErrorResponse' 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 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 tags: - export 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/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': $ref: '#/components/responses/ErrorResponse' '500': $ref: '#/components/responses/ErrorResponse' default: $ref: '#/components/responses/ErrorResponse' operationId: get-v1-scans-vuln-vuln_id-export parameters: - schema: type: string enum: - json - csv in: query name: type description: json, csv (default json) - 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 tags: - scans responses: '200': $ref: '#/components/responses/MessageResponse' '400': $ref: '#/components/responses/ErrorResponse' '401': $ref: '#/components/responses/ErrorResponse' '500': $ref: '#/components/responses/ErrorResponse' default: $ref: '#/components/responses/ErrorResponse' requestBody: $ref: '#/components/requestBodies/PatchScanVulnsRequest' security: - X-API-Key: [] description: Batch update vulnerability status 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: - scans responses: '200': $ref: '#/components/responses/MessageResponse' '400': $ref: '#/components/responses/ErrorResponse' '401': $ref: '#/components/responses/ErrorResponse' '500': $ref: '#/components/responses/ErrorResponse' default: $ref: '#/components/responses/ErrorResponse' requestBody: $ref: '#/components/requestBodies/DeleteVulnsRequest' security: - X-API-Key: [] description: Batch Delete scan vulnerability 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 responses: '200': $ref: '#/components/responses/MessageResponse' '400': $ref: '#/components/responses/ErrorResponse' '401': $ref: '#/components/responses/ErrorResponse' '500': $ref: '#/components/responses/ErrorResponse' default: $ref: '#/components/responses/ErrorResponse' requestBody: $ref: '#/components/requestBodies/PatchScanVulnsLabelsRequest' security: - X-API-Key: [] description: Batch update vulnerability labels 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 Configs List tags: - configurations responses: '200': description: OK content: application/json: schema: type: array items: $ref: '#/components/schemas/ConfigResponse' '400': $ref: '#/components/responses/ErrorResponse' '401': $ref: '#/components/responses/ErrorResponse' '403': $ref: '#/components/responses/ErrorResponse' '500': $ref: '#/components/responses/ErrorResponse' default: $ref: '#/components/responses/ErrorResponse' operationId: get-v1-scans-config parameters: - schema: enum: - scan - reporting - template - alerting - cloudlist - subfinder - remediation - vuln_score type: string in: query name: type description: filter by the type of config - schema: type: string in: query name: search description: search by config name - schema: type: integer in: query name: limit description: The numbers of items to return - schema: type: integer in: query description: >- The number of items to skip before starting to collect the result set name: offset - 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: - 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: - configurations responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/ConfigResponse' '400': $ref: '#/components/responses/ErrorResponse' '401': $ref: '#/components/responses/ErrorResponse' '403': $ref: '#/components/responses/ErrorResponse' '500': $ref: '#/components/responses/ErrorResponse' default: $ref: '#/components/responses/ErrorResponse' operationId: get-v1-scans-config-config_id security: - X-API-Key: [] description: Get a scan configuration 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 name: config_json description: config is in json format patch: summary: Update Config operationId: patch-v1-scans-config-config_id tags: - configurations responses: '200': $ref: '#/components/responses/PostScanConfigResponse' '400': $ref: '#/components/responses/ErrorResponse' '401': $ref: '#/components/responses/ErrorResponse' '403': $ref: '#/components/responses/ErrorResponse' '500': $ref: '#/components/responses/ErrorResponse' default: $ref: '#/components/responses/ErrorResponse' requestBody: content: application/json: schema: type: object properties: name: type: string config: type: string global: type: boolean security: - X-API-Key: [] description: Update existing scan configuration 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 tags: - configurations responses: '200': $ref: '#/components/responses/MessageResponse' '400': $ref: '#/components/responses/ErrorResponse' '401': $ref: '#/components/responses/ErrorResponse' '403': $ref: '#/components/responses/ErrorResponse' '500': $ref: '#/components/responses/ErrorResponse' default: $ref: '#/components/responses/ErrorResponse' security: - X-API-Key: [] description: Delete scan configuration 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 tags: - configurations responses: '200': $ref: '#/components/responses/VerifyConfigResponse' '400': $ref: '#/components/responses/ErrorResponse' '401': $ref: '#/components/responses/ErrorResponse' '500': $ref: '#/components/responses/ErrorResponse' default: $ref: '#/components/responses/ErrorResponse' operationId: post-v1-scans-config-verify requestBody: $ref: '#/components/requestBodies/VerifyConfigRequest' security: - X-API-Key: [] description: Verify scan configuration 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 tags: - configurations responses: '200': $ref: '#/components/responses/VerifyConfigContentsResponse' '400': $ref: '#/components/responses/ErrorResponse' '401': $ref: '#/components/responses/ErrorResponse' '500': $ref: '#/components/responses/ErrorResponse' default: $ref: '#/components/responses/ErrorResponse' operationId: post-v1-scans-config-verify-contents requestBody: $ref: '#/components/requestBodies/VerifyConfigContentsRequest' security: - X-API-Key: [] description: Get Verify scan configuration contents 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 get: summary: Get Scan Config tags: - scans responses: '200': description: OK headers: {} content: application/json: schema: $ref: '#/components/schemas/ScanConfig' '400': $ref: '#/components/responses/ErrorResponse' '401': $ref: '#/components/responses/ErrorResponse' '500': $ref: '#/components/responses/ErrorResponse' default: $ref: '#/components/responses/ErrorResponse' operationId: get-scans-id-config security: - X-API-Key: [] description: 'Get scan metadata config ' 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 tags: - scans responses: '200': description: OK content: application/json: schema: type: object properties: ok: type: boolean '400': $ref: '#/components/responses/ErrorResponse' '401': $ref: '#/components/responses/ErrorResponse' '500': $ref: '#/components/responses/ErrorResponse' default: $ref: '#/components/responses/ErrorResponse' requestBody: content: application/json: schema: $ref: '#/components/schemas/ScanConfigUpdateItem' security: - X-API-Key: [] description: Update scan metadata config parameters: - schema: type: string enum: - append - replace default: append in: query name: update_type description: 'Update type: append or replace' - 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 responses: '200': description: OK content: application/json: schema: type: object properties: 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' 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-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: 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: type: array 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: schema: type: object properties: data: $ref: '#/components/schemas/StatisticsResponse' '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-scans-id-error-stats /v1/template/leaderboard/{name}: parameters: - schema: type: string name: name in: path required: true get: summary: Get Leaderboard ID Details tags: [] responses: '200': description: Shared Response content: application/json: schema: type: object properties: count: type: integer description: The number of results facets: type: object description: The search facets additionalProperties: $ref: '#/components/schemas/Facets' results: type: array description: The search results items: $ref: '#/components/schemas/TemplateData' total: type: integer description: The total number of results '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-template-leaderboard-id description: Get public templates leaderboard ID details parameters: - schema: type: array items: type: string in: query name: fields description: List of fields to return(comma separated) - 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 /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: - 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: - 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 responses: '200': description: OK content: application/json: schema: type: object properties: ok: type: boolean required: - ok '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: post-v1-task-chunk-status 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: string enum: - ack - nack - in_progress 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: - schema: type: string in: query name: os description: Operating system - schema: type: string in: query name: arch description: Architecture - schema: type: string in: query name: id description: Agent ID - schema: type: string in: query name: name description: Agent name - schema: type: string in: query name: tags description: Comma-separated tags - schema: type: string in: query name: networks description: Comma-separated networks - schema: type: string in: query name: network_subnets description: Comma-separated network subnets - schema: type: string enum: - agent - tunnel 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: - schema: type: string 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: 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: [] responses: '200': description: OK content: application/json: schema: type: object properties: agents: $ref: '#/components/schemas/Agents' 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' patch: summary: Bulk Update Agents tags: - agents operationId: patch-v1-agents 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}: parameters: - schema: type: string name: id 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 tags: - agents operationId: post-v1-agents-id 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: [] 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/leaks/status: post: summary: Update leak status description: >- Mark leaks as fixed or reopen them. Requires authentication and domain verification for employee/customer leaks. See [Domain Verification](/cloud/credential-monitoring#domain-verification) for setup instructions. tags: - leaks responses: '200': description: OK content: application/json: schema: type: object properties: status: type: string message: type: string leak_id: type: string new_status: $ref: '#/components/schemas/LeaksEntityStatus' '400': $ref: '#/components/responses/ErrorResponse' '401': $ref: '#/components/responses/ErrorResponse' '403': description: Access denied - Insufficient permissions to update this leak status content: application/json: schema: type: object properties: message: type: string example: 'Access denied: you don''t have access to this leak' '404': $ref: '#/components/responses/ErrorResponse' '500': $ref: '#/components/responses/ErrorResponse' default: $ref: '#/components/responses/ErrorResponse' operationId: post-v1-leaks-status requestBody: content: application/json: schema: type: object properties: leakid: type: string leakids: type: array items: type: string status: $ref: '#/components/schemas/LeaksEntityStatus' /v1/leaks/info: post: summary: Get leak information by ID description: >- Retrieve detailed leak information by leak ID. Passwords are unmasked after domain verification. See [Domain Verification](/cloud/credential-monitoring#domain-verification) for setup instructions. tags: - leaks operationId: post-v1-leaks-info requestBody: required: true content: application/json: schema: type: object required: - leakid properties: leakid: type: string description: 32-character MD5 hash identifying the leak pattern: ^[a-fA-F0-9]{32}$ example: b3652f2555841f7652badd9804859f4e responses: '200': description: Leak information retrieved successfully content: application/json: schema: type: object properties: success: type: boolean example: true data: 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 description: >- Domain this leak is associated with - used for filtering email_domain: type: string description: Domain extracted from email addresses fetched_at: type: string status: type: string '400': description: Bad request - Invalid leak ID format or missing leak ID content: application/json: schema: type: object properties: success: type: boolean example: false message: type: string example: Invalid leak ID format '401': $ref: '#/components/responses/MessageResponse' '403': description: Access denied - Insufficient permissions to access this leak content: application/json: schema: type: object properties: message: type: string 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' /v2/vulnerability/product/search: get: summary: Search Products tags: [] responses: '200': description: OK 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 '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 get: summary: Get Product by ID tags: [] responses: '200': description: OK content: application/json: schema: type: object properties: data: $ref: '#/components/schemas/Product' '400': $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 parameters: - schema: type: string in: query name: fields description: 'product data fields ' /v2/vulnerability/product/{id}/vulns: parameters: - schema: type: string name: id in: path required: true get: summary: Get Vulnerabilities for Product tags: [] responses: '200': description: OK 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/Vulnerability' total: type: integer '400': $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 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 /v2/vulnerability/product/{id}/timeline: parameters: - schema: type: string name: id in: path required: true get: summary: Get Vulnerability Timeline for Product tags: [] responses: '200': description: OK 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/Vulnerability' total: type: integer '400': $ref: '#/components/responses/ErrorResponse' '404': $ref: '#/components/responses/ErrorResponse' '500': $ref: '#/components/responses/ErrorResponse' default: $ref: '#/components/responses/ErrorResponse' operationId: get-product-timeline description: >- Get vulnerability timeline for a specific product (sorted by cve_created_at descending) 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 /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: - schema: type: string enum: - executive_summary - security_posture in: query name: report_type - schema: type: string default: all_time enum: - all_time - last_month - last_3_months - last_6_months - last_12_months in: query name: time - schema: type: string format: date description: Filter by start date in: query name: start_date - schema: type: string format: date description: Filter by end date in: query name: end_date - 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 tags: - internal responses: '200': description: OK 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: put-v1-report-export-export_id-status 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 parameters: - schema: type: string in: header name: X-Api-Key required: true /v1/admin/report/{report_type}: parameters: - schema: type: string enum: - executive_summary - security_posture name: report_type 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: [] 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': $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: - 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: get: summary: Get asset policy suggestions tags: [] responses: '200': description: OK content: application/json: schema: $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-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: 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: 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: - schema: type: integer in: query name: limit description: 'Maximum results per page (default: 50, max: 100)' - schema: type: integer in: query name: offset description: Number of items to skip for pagination components: schemas: TimelineEvent: title: TimelineEvent type: object required: - timestamp - event_type properties: timestamp: type: string format: date-time event_type: type: string description: >- Type of event (template_released, detected, status_change, severity_change, reopened) old_value: type: string new_value: type: string description: type: string VulnTimelineResponse: title: VulnTimelineResponse type: object properties: template_released_at: type: string format: date-time description: Date when the template was first released (created) template_updated_at: type: string format: date-time description: Date when the template was last updated template_raw: type: string description: Raw template content (YAML) for public templates first_detected_at: type: string format: date-time last_seen_at: type: string format: date-time current_status: type: string events: type: array items: $ref: '#/components/schemas/TimelineEvent' AssetCategory: title: AssetCategory type: object required: - name - total_assets - technologies properties: name: type: string total_assets: type: integer technologies: type: object additionalProperties: type: integer CoverageStats: title: CoverageStats description: Coverage statistics showing template availability type: object required: - percentage - total - covered properties: percentage: type: number format: float description: Coverage percentage total: type: integer description: Total number of items (CVEs, KEVs, or POCs) covered: type: integer description: Number of items with templates remaining: type: integer description: Number of items without templates (total - covered) DomainVerificationRequest: title: DomainVerificationRequest type: object required: - domain - status - created_at - verification_attempts properties: domain: type: string description: The domain being verified status: type: string enum: - pending - verified - expired - deleted - failed description: Current verification status verification_string: type: string description: TXT record value to add to DNS (only present for pending requests) created_at: type: string format: date-time description: When the verification request was created verification_attempts: type: integer description: Number of verification attempts made last_attempt_at: type: string format: date-time description: When the last verification attempt was made verification_type: $ref: '#/components/schemas/DomainVerificationType' VerifyConfigContentsRequestProvider: title: VerifyConfigContentsRequestProvider type: string enum: - jira - linear OAuthStatus: title: OAuthStatus type: string enum: - not_connected - pending - success OAuthMetadata: title: OAuthMetadata type: object properties: installation_url: type: string required: - installation_url LogExportFormat: title: LogExportFormat type: string enum: - raw - json - csv EnumExportFormats: title: EnumExportFormats type: string enum: - raw - json - csv TimeRangeQueryParameter: title: TimeRangeQueryParameter type: string enum: - last_day - last_week - last_month - last_3_months - last_6_months - last_12_months - all_time EnumerateFilterTypes: title: EnumerateFilterTypes type: string enum: - host - port - ip - cname - technologies - status_code - content_length - title - webserver - favicon - domain - labels ExcludeConfigRequestType: title: ExcludeConfigRequestType type: string enum: - scan_target - template - enumeration_target AssetChangelogs: type: object required: - id - enumeration_id - name - created_at - updated_at properties: id: type: integer format: int64 enumeration_id: type: string name: type: string created_at: type: string format: date-time updated_at: type: string format: date-time status_code: type: integer technologies: type: array items: type: string webserver: type: string request: type: string response: type: string cname: type: array items: type: string labels: type: array items: type: string ip: type: string content_length: type: integer title: type: string host: type: string port: type: integer technology_details: type: string format: json is_new: type: boolean body: type: string change_event: type: array items: $ref: '#/components/schemas/VulnerabilityChangelogsEvent' EnumerateFiltersItem: title: EnumerateFiltersItem type: object required: - value - count properties: labels: type: string value: type: string port: type: integer technologies: type: integer categories: type: array items: type: string description: type: string website: type: string cpe: type: string icon: type: string favicon_body: type: string count: type: integer updated_at: type: string format: date-time VulnerabilityResults: type: object required: - matcher_status - vuln_id - target - created_at - scan_id - event - template_id - result_type - vuln_hash properties: matcher_status: type: boolean vuln_id: type: string target: type: string template_url: type: string created_at: type: string updated_at: type: string scan_id: type: string event: type: array items: $ref: '#/components/schemas/VulnerabilityEvent' template_id: type: string template_path: type: string template_encoded: type: string result_type: type: string vuln_status: type: string vuln_hash: type: string is_regression: type: boolean is_internal: type: boolean labels: type: array items: type: string port: type: integer asset_metadata: type: object $ref: '#/components/schemas/EnumerationContent' remediation: type: string description: type: string impact: type: string reference: type: array items: type: string VulnerabilityChangelogs: title: VulnerabilityChangelogs type: object properties: matcher_status: type: boolean vuln_id: type: string target: type: string template_url: type: string created_at: type: string updated_at: type: string scan_id: type: string event: type: object $ref: '#/components/schemas/VulnerabilityEvent' change_event: type: array items: $ref: '#/components/schemas/VulnerabilityChangelogsEvent' template_id: type: string template_path: type: string template_encoded: type: string result_type: type: string vuln_status: type: string vuln_hash: type: string labels: type: array items: type: string required: - matcher_status - vuln_id - target - created_at - scan_id - event - template_id - result_type - vuln_hash PrivateTemplates: title: PrivateTemplates type: object properties: name: type: string contents: type: string required: - name - contents AssetListItem: title: AssetListItem type: object properties: asset_count: type: integer asset_id: type: string uploaded_at: type: string name: type: string required: - asset_count - asset_id - uploaded_at - name ScanSchedule: title: ScanSchedule type: object required: - scan_frequency - scan_id - schedule_last_run - schedule_next_run properties: scan_frequency: type: string scan_id: type: string schedule_last_run: type: string schedule_next_run: type: string start_time: type: string format: time hourly_frequency: type: integer custom_weekdays: type: array description: >- Array of integer denoting the weekdays on which the scan is supposed to run. 0-6 denoting Sunday-Saturday. items: type: integer minimum: 0 maximum: 6 ScanAssetListItem: title: ScanAssetListItem type: object required: - host - scanned_on properties: host: type: string port: type: integer scanned_on: type: string format: date-time ScanAssetListItemOptional: title: ScanAssetListItem type: object required: - host - scanned_on properties: host: type: string port: type: integer scanned_on: type: string format: date-time EnumerationDomainListItem: title: EnumerationDomainListItem type: object required: - domain - enumerated_on properties: domain: type: string enumerated_on: type: string format: date-time ScanStatusItem: title: ScanStatusItem type: object required: - scan_id - status - scan_time_elapsed - progress - failure_reason - created_at - updated_at - total_target - completed_at - total_scan - total_template - name - is_oss - is_cloud - total_result properties: scan_id: type: string status: type: string scan_time_elapsed: type: string progress: type: integer failure_reason: type: string created_at: type: string updated_at: type: string total_target: type: integer completed_at: type: string total_scan: type: integer total_template: type: integer name: type: string severity: type: object is_oss: type: boolean is_cloud: type: boolean asset_ids: type: array items: type: string is_rescan: type: boolean public_templates: type: array items: type: string report_config_ids: type: array items: type: string rescan_count: type: integer scan_config_ids: type: array items: type: string template_ids: type: array items: type: string template_urls: type: array items: type: string schedule: $ref: '#/components/schemas/ScanSchedule' total_result: type: integer is_automatic: 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 is_internal: type: boolean JiraVerifyContentItemIssueType: title: JiraVerifyContentItemIssueType type: object properties: id: type: string name: type: string statuses: type: array items: type: string required: - id - name JiraField: title: JiraField type: object properties: id: type: string name: type: string field_type: type: string required: - id - name - field_type JiraVerifyContentItem: title: JiraVerifyContentItem type: object properties: project_id: type: string cloud_id: type: object properties: id: type: string name: type: string url: type: string required: - id - name - url project_name: type: string issue_types: type: array items: type: object $ref: '#/components/schemas/JiraVerifyContentItemIssueType' fields: type: array items: type: object $ref: '#/components/schemas/JiraField' required: - project_id - project_name - issue_types LinearVerifyContentItemOpenState: title: LinearVerifyContentItemOpenState type: object properties: id: type: string name: type: string required: - id - name LinearVerifyContentItem: title: LinearVerifyContentItem type: object properties: team_id: type: string team_name: type: string open_states: type: array items: type: object $ref: '#/components/schemas/LinearVerifyContentItemOpenState' required: - team_id - team_name - open_states VulnerabilityChangelogsEvent: title: VulnerabilityChangelogsEvent type: object properties: name: description: The name of the event type: string from: description: The from value of the event to: description: The to value of the event VulnerabilityEvent: title: VulnerabilityEvent type: object properties: curl-command: type: string extracted-results: type: array items: type: string extractor-name: type: string host: type: string info: type: object required: - name properties: classification: type: object properties: cpe: type: string cve-id: type: array items: type: string cvss-metrics: type: string cvss-score: type: number cwe-id: type: array items: type: string epss-percentile: type: number epss-score: type: number metadata: type: object author: type: array items: type: string description: type: string impact: type: string name: type: string tags: type: array items: type: string reference: type: array items: type: string remediation: type: string severity: type: string ip: type: string matched-at: type: string matched-line: type: array items: type: integer matcher-name: type: string matcher-status: type: boolean path: type: string request: type: string response: type: string template-id: type: string template-path: type: string timestamp: type: string type: type: string error: type: string issue_trackers: type: object properties: jira: $ref: '#/components/schemas/VulnIssueTrackerItem' github: $ref: '#/components/schemas/VulnIssueTrackerItem' gitlab: $ref: '#/components/schemas/VulnIssueTrackerItem' linear: $ref: '#/components/schemas/VulnIssueTrackerItem' custom: $ref: '#/components/schemas/VulnIssueTrackerItem' port: type: string FiltersItem: title: FilterItem type: object properties: value: type: string name: type: string severity: type: string count: type: integer required: - value - count UserWorkspaces: title: UserWorkspaces type: object required: - name - team_id - active - plan - member_count - role - default properties: name: type: string team_id: type: string active: type: boolean plan: type: string member_count: type: integer role: type: string default: type: boolean ScanStats: title: ScanStats type: object properties: cves: type: integer matched: type: integer not_matched: type: integer severity: type: object total_count: type: integer total_scan: type: integer total_target: type: integer total_template: type: integer vuln_status: type: object total_regression: type: integer format: int64 is_internal: type: integer format: int64 description: Count of internal vulnerabilities is_external: type: integer format: int64 description: Count of external vulnerabilities required: - cves - matched - not_matched - total_count - total_scan - total_target - total_template - total_regression VulnerabilityResultsOld: title: VulnerabilityResultsOld type: object required: - scan_id - target - template_id - vuln_id - matcher_status - created_at - event properties: scan_id: type: string target: type: string template_encoded: type: string template_url: type: string template_path: type: string template_id: type: string vuln_id: type: string matcher_status: type: boolean created_at: type: string updated_at: type: string event: $ref: '#/components/schemas/VulnerabilityEvent' id: type: string vuln_status: type: string vuln_hash: type: string port: type: integer asset_metadata: type: object $ref: '#/components/schemas/EnumerationContent' remediation: type: string impact: type: string description: type: string reference: type: array items: type: string templateListItem: title: templateListItem type: object properties: created_at: type: string id: type: string name: type: string shared_publicly: type: boolean updated_at: type: string required: - created_at - id - name ExportListItem: title: ExportListItem type: object properties: id: type: string name: type: string export_status: type: string item_type: type: string download_signed_url: type: string created_at: type: string format: date-time description: Export List Item required: - id - name - export_status - item_type - created_at UserAuditLogItems: title: UserAuditLogItems type: object required: - created_at - email - action - status - method - ip - path properties: created_at: type: string email: type: string action: type: string status: type: integer method: type: string ip: type: string path: type: string source: type: string nullable: true enum: - api - platform - unknown description: >- Request origin - "api" for x-api-key authentication, "platform" for JWT token, "unknown" for fallback. NULL for historical records (displayed as "-" in UI) PublicTemplateListItem: title: PublicTemplateListItem type: object properties: id: type: string templateURL: type: string name: type: string required: - id - templateURL - name EarlyTemplateListItem: title: EarlyTemplateListItem type: object properties: id: type: string templateURL: type: string name: type: string required: - id - templateURL - name TeamMemberItem: title: TeamMemberItem type: object properties: email: type: string status: type: string role: type: string description: Team member role. Values are OWNER, ADMIN, MEMBER, VIEWER, GUEST. invited_at: type: string accepted_at: type: string profile_image: type: string last_sign_in: type: string required: - email - status - role InvoiceItem: description: Example response type: object required: - invoice_number - amount - paid_on - status - invoice_url properties: invoice_number: type: string description: The invoice number amount: type: integer format: int64 description: Total amount of the invoice in USD paid_on: type: string format: date-time nullable: true description: The date when the invoice was paid status: type: string description: The status of the invoice invoice_url: type: string format: uri description: URL to view the invoice WorkspaceItem: title: TeamMemberItem type: object properties: id: type: string name: type: string created_at: type: string member_count: type: integer owner_email: type: string required: - id - name - created_at - member_count - owner_email ScanUsageStatsResponse: title: ScanUsageStatsResponse type: object description: 'Scan Usage Stats ' properties: time: type: string format: date-time scan_id: type: string user_id: type: integer format: int64 completed_request: type: integer format: int64 total_target: type: integer format: int64 total_templates: type: integer format: int64 total_result: type: integer format: int64 severity_breakdown: type: string format: json required: - time - scan_id - user_id - completed_request - total_target - total_templates - total_result - severity_breakdown VulnStatusEnum: title: VulnStatusEnum enum: - open - false_positive - fixed - duplicate - fix_in_progress - accepted_risk - triaged ConfigResponse: title: ConfigResponse type: object properties: id: type: string config: type: string config_type: $ref: '#/components/schemas/ConfigTypeEnum' name: type: string read_only: type: boolean global: type: boolean provider_name: type: string created_at: type: string format: date-time updated_at: type: string format: date-time required: - id - config - config_type - name - created_at - updated_at ConfigTypeEnum: title: ConfigTypeEnum type: string enum: - scan - reporting - template - alerting - cloudlist - subfinder EnumerationStats: title: EnumerationStats type: object required: - hosts - http - endpoints - ports - total_assets properties: hosts: type: integer format: int64 http: type: integer format: int64 endpoints: type: integer format: int64 ports: type: integer format: int64 total_assets: type: integer format: int64 total_asset_groups: type: integer format: int64 EnumerateData: title: EnumerateData type: object required: - id - name - status - created_at properties: id: type: string name: type: string status: type: string failure_reason: type: string completed_at: type: string format: date-time enumeration_time: type: string format: duration enumeration_type: type: string enumeration_stats: $ref: '#/components/schemas/EnumerationStats' created_at: type: string format: date-time updated_at: type: string format: date-time root_domains: type: array items: type: string exclusions: type: array items: type: string description: >- Combined inclusion (prefixed with +) and exclusion patterns for discovery scope enrichment_hosts_count: type: integer is_rescan: type: boolean rescan_count: type: integer cloudlist_config_ids: type: array items: type: string cloudlist_provider_name: type: string enumeration_time_elapsed: type: string total_assets: type: integer format: int64 new_assets: type: integer format: int64 domain_names: type: array items: type: string schedule: $ref: '#/components/schemas/EnumerationSchedule' is_public: type: boolean asset_group_filters: type: object $ref: '#/components/schemas/AssetFilters' body: type: string 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 automatic_vuln_scans: type: boolean is_internal: type: boolean EnumerationContent: title: EnumerationContent type: object required: - enumeration_id - name - created_at - id - is_new properties: enumeration_id: type: string name: type: string created_at: type: string updated_at: type: string id: type: integer format: int64 labels: type: array items: type: string cname: type: array items: type: string host: type: string port: type: integer ip: type: array items: type: string status_code: type: integer content_length: type: integer vulnerabilities: type: integer format: int64 title: type: string technologies: type: array items: type: string webserver: type: string method: type: string is_new: type: boolean type: type: string asset_hash: type: string technology_details: type: object additionalProperties: $ref: '#/components/schemas/EnumerationContentTechnologyDetails' screenshot_path: type: string favicon: type: string favicon_body: type: string cdn_name: type: string chain_status_codes: type: array items: type: string domain_name: type: string redirect_location: type: string asn: as_number: type: string as_country: type: string as_name: type: string as_range: type: array items: type: string type: object properties: as_country: type: string as_name: type: string as_number: type: string as_range: type: array items: type: string tls_serial_number: type: string tls_subject_org: type: string tls_issuer_org: type: string tls_expired: type: boolean tls_not_before: type: string format: date-time tls_self_signed: type: boolean tls_mismatched: type: boolean tls_revoked: type: boolean tls_untrusted: type: boolean tls_subject_cn: type: string tls_subject_an: type: array items: type: string body: type: string tls_not_after: type: string format: date-time enumeration_name: type: string extended_metadata: type: object source_type: type: string source: type: array items: $ref: '#/components/schemas/EnumerationSourceValue' is_internal: type: boolean EnumerationSourceValue: type: object required: - source - metadata properties: source: type: string metadata: type: object additionalProperties: type: string EnumerationContentTechnologyDetails: title: EnumerationContentTechnologyDetails type: object properties: description: type: string website: type: string icon: type: string categories: type: array items: type: string EnumerationIds: title: EnumerationIds type: object required: - id properties: id: type: string EnumerationSchedule: title: EnumerationSchedule type: object required: - enumeration_id - scan_frequency - schedule_last_run - schedule_next_run properties: enumeration_id: type: string scan_frequency: type: string schedule_last_run: type: string schedule_next_run: type: string start_time: type: string format: time hourly_frequency: type: integer custom_weekdays: type: array description: >- Array of integer denoting the weekdays on which the scan is supposed to run. 0-6 denoting Sunday-Saturday. items: type: integer minimum: 0 maximum: 6 ScansHistoryItems: title: ScansHistoryItems type: object properties: completed_request: type: integer name: type: string scan_id: type: string scan_time: type: string severity: type: object status: type: string time: type: string total_request: type: integer total_result: type: integer total_target: type: integer total_templates: type: integer error_details: type: string GithubTemplateListItem: title: GithubTemplateListItem type: object properties: id: type: string templateURL: type: string name: type: string required: - id - templateURL - name IntegrationListItems: title: GithubTemplateListItem type: object properties: connection_id: type: string integration_id: type: string status: type: string identifier: type: string org_name: type: string account_type: type: string handle: type: string required: - connection_id - integration_id - status - identifier - org_name - account_type - handle TemplateStats: type: object x-examples: Example 1: date: '2024-02-03T08:40:19.911720715Z' statistics: authors: 0h1in9e: 1 0ri2n: 13 0ut0fb4nd: 1 0w4ys: 3 classification: total: 4772 cvss-metrics: 4650 cvss-score: 2999 cve-id: 2349 cwe-id: 4679 description: 6665 directory: total: 0 name: 7810 references: 5369 remediation: 2231 severity: total: 7810 critical: 947 high: 1563 medium: 1457 low: 257 info: 3551 unknown: 35 tags: '360': 1 '3600': 1 '''rpcms''': 1 total: 7810 type: total: 7810 http: 7005 dns: 21 network: 134 file: 312 ssl: 27 websocket: 0 workflow: 191 headless: 16 template-version: main required: - buckets - missing - other - total properties: is_new: $ref: '#/components/schemas/StatBuckets' creation_stats: $ref: '#/components/schemas/StatBuckets' author: $ref: '#/components/schemas/StatBuckets' is_early: $ref: '#/components/schemas/StatBuckets' dir: $ref: '#/components/schemas/StatBuckets' product: $ref: '#/components/schemas/StatBuckets' severity: $ref: '#/components/schemas/StatBuckets' tags: $ref: '#/components/schemas/StatBuckets' type: $ref: '#/components/schemas/StatBuckets' vendor: $ref: '#/components/schemas/StatBuckets' TemplateLeaderboard: type: object properties: data: type: array items: type: object properties: author: type: string category: type: object properties: cloud: type: integer cve: type: integer fuzz: type: integer kve: type: integer links: type: object properties: email: type: string github: type: string linkedin: type: string twitter: type: string website: type: string points: type: integer protocol: type: object properties: dns: type: integer file: type: integer headless: type: integer http: type: integer ssl: type: integer tcp: type: integer rank: type: integer severity: type: object properties: critical: type: integer high: type: integer info: type: integer low: type: integer medium: type: integer unknown: type: integer templates: type: integer date: type: string result: type: integer total: type: integer x-examples: Example 1: data: - author: dhiyaneshdk category: cloud: 0 cve: 154 fuzz: 1 kve: 34 links: email: '' github: '' linkedin: '' twitter: '' website: '' points: 26065 protocol: dns: 0 file: 85 headless: 1 http: 1044 ssl: 0 tcp: 1 rank: 1 severity: critical: 90 high: 195 info: 592 low: 89 medium: 161 unknown: 12 templates: 1139 - author: naglis category: cloud: 0 cve: 0 fuzz: 0 kve: 0 links: email: '' github: '' linkedin: '' twitter: '' website: '' points: 10 protocol: dns: 0 file: 1 headless: 0 http: 0 ssl: 0 tcp: 0 rank: 792 severity: critical: 0 high: 0 info: 1 low: 0 medium: 0 unknown: 0 templates: 1 date: all_time result: 794 total: 794 EnumerationIDTypes: title: EnumerationIDTypes type: object required: - id properties: id: type: string EnumerationIDTypesDetail: title: EnumerationIDTypesDetail type: object properties: id: type: string name: type: string total_assets: type: integer enumeration_type: type: string cloudlist_provider_name: type: string types: type: array items: enum: - hosts - ports - http - endpoints required: - id - types - name - enumeration_type ScanConfigItem: title: ScanConfigItem type: object properties: id: type: string name: type: string provider_name: type: string config_type: type: string required: - id - name - config_type ScanConfig: title: ScanConfig type: object properties: targets: type: array items: type: string assets_lists: type: array items: type: string public_templates: type: array items: type: string early_templates: type: array items: type: string template_urls: type: array items: type: string template_ids: type: array items: type: string scan_config_ids: type: array items: $ref: '#/components/schemas/ScanConfigItem' report_config_ids: type: array items: $ref: '#/components/schemas/ScanConfigItem' alerting_config_ids: type: array items: $ref: '#/components/schemas/ScanConfigItem' enumeration_ids: type: array items: $ref: '#/components/schemas/EnumerationIDTypesDetail' socks5_proxy: type: string 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 scan_all_assets: type: boolean asset_filters: $ref: '#/components/schemas/AssetFilters' ScanConfigUpdateItem: title: ScanConfigUpdateItem type: object properties: targets: type: array items: type: string assets_lists: type: array items: type: string templates: type: array items: type: string early_templates: type: array items: type: string scan_config_ids: type: array items: type: string report_config_ids: type: array items: type: string alerting_config_ids: type: array items: type: string enumeration_ids: type: array items: $ref: '#/components/schemas/EnumerationIDTypes' socks5_proxy: type: string 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 scan_all_assets: type: boolean asset_filters: $ref: '#/components/schemas/AssetFilters' ScanLogResp: title: ScanLogResp type: object required: - target - template_id - matched - timestamp properties: target: type: string template_id: type: string matched: type: boolean error: type: string timestamp: type: string severity: type: string event: type: string vuln_hash: type: string SchedulerFrequency: title: SchedulerFrequency type: string enum: - hourly - daily - weekly - monthly - custom description: Allowed frequencies for the scheduler ExcludedTemplate: title: Excluded Templates and targets type: object properties: id: type: integer format: int64 value: type: string exclude_type: $ref: '#/components/schemas/ExcludeConfigRequestType' scan_id: type: string description: Optional scan ID if this rule is scoped to a specific scan enumeration_id: type: string description: >- Optional enumeration ID if this rule is scoped to a specific enumeration created_at: type: string format: date-time updated_at: type: string format: date-time required: - id - value - exclude_type - created_at - updated_at EnumerationCounts: description: Example response title: EnumerationCounts type: object properties: total_enumeration: type: integer format: int64 total_unique_enumeration: type: integer format: int64 total_uploaded_enumeration: type: integer format: int64 total_discovery_enumeration: type: integer format: int64 total_cloud_enumeration: type: integer format: int64 AssetStats: title: AssetStats type: object properties: host: type: integer format: int64 new_assets: type: integer format: int64 total_assets: type: integer format: int64 technologies: type: integer format: int64 domains: type: integer format: int64 port: type: integer format: int64 screenshots: type: integer format: int64 vulnerabilities: type: integer format: int64 is_internal: type: integer format: int64 description: Count of internal assets is_external: type: integer format: int64 description: Count of external assets required: - domains - host - port - total_assets - new_assets - technologies - vulnerabilities - screenshots PriceListItem: title: PriceListItem type: object required: - price_id - amount - recurrence - monthly_token properties: price_id: type: string amount: type: integer monthly_token: type: integer recurrence: type: string VulnIssueTrackerItem: title: VulnIssueTrackerItem type: object properties: id: type: string url: type: string AIMeta: type: object properties: model_used: description: The AI model used to generate the template type: string is_prompt_by_human: description: Whether the prompt was written by a human type: boolean is_template_by_human: description: Whether the template was written by a human type: boolean prompt: description: The prompt used to generate the template type: string TemplateData: description: Template Document or object type: object properties: uri: type: string description: The URI of the template (could be a path or a ksuid) id: type: string description: The ID of the template name: type: string description: The name of the template author: type: array description: The authors of the template items: type: string tags: type: array description: The tags of the template items: type: string severity: type: string description: The severity of the template type: type: string description: The type of the template dir: type: string ref: type: string vendor: type: string description: The vendor of the template product: type: string description: The product of the template classification: $ref: '#/components/schemas/Classification' description: >- Classification of template including additional metadata like cve-id, cwe-id etc metadata: type: object digest: type: string description: The digest of the template created_at: type: string format: date-time description: The time when template was created updated_at: type: string format: date-time description: The time when template was updated release_tag: type: string description: >- The release tag of the template (contains tag when the file was first released) is_early: type: boolean description: True if template is in early access raw: type: string description: The raw unparsed template template_id: type: string description: type: string filename: type: string impact: type: string ai_meta: $ref: '#/components/schemas/AIMeta' references: type: array items: type: string template_type: enum: - public - user - shared is_draft: type: boolean is_github: type: boolean is_new: type: boolean is_pdteam: description: Is the template from pdteam type: boolean remediation: type: string SharedTemplateData: allOf: - $ref: '#/components/schemas/TemplateData' - type: object properties: ttl: type: string description: Time to live duration (1d ,1m etc) share_type: type: string description: Type of share (unlisted, users, organization) users_email: type: array description: >- List of email addresses or user IDs to share with (required if share_type is set to 'users') items: type: string organizations: type: array items: type: string Classification: description: >- Classification of template including additional metadata like cve-id, cwe-id etc type: object properties: cve-id: type: array items: type: string description: CVE IDs for the template cwe-id: type: array items: type: string description: CWE IDs for the template cvss-metrics: type: string description: CVSS Metrics for the template cvss-score: type: number format: float description: CVSS Score for the template epss-score: type: number format: float description: EPSS Score for the template epss-percentile: type: number format: float description: EPSS Percentile for the template cpe: type: string description: CPE for the template EnumerationConfig: title: EnumerationConfig type: object properties: name: type: string root_domains: type: array items: type: string enrichment_inputs: type: array items: 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 enum_ports: type: string enumeration_config: $ref: '#/components/schemas/EnumerationLaunchConfig' alerting_config_ids: type: array items: type: string subfinder_config_ids: type: array items: type: string exclusions: type: array items: type: string description: >- Combined inclusion (prefixed with +) and exclusion patterns for discovery scope automatic_vuln_scans: type: boolean EnumerationLaunchConfig: title: EnumerationLaunchConfig type: object properties: follow-redirect: type: boolean ports: type: string UserSetupStatsItem: title: UserSetupStatsItem type: object required: - name - count properties: name: type: string count: type: integer first_created_at: type: string last_created_at: type: string AgentItem: title: AgentItem type: object required: - name - os - arch - tunnel_ip - tunnel_port - client_ip - username - token - id - status - type properties: name: type: string os: type: string arch: type: string tunnel_ip: type: string tunnel_port: type: string client_ip: type: string username: type: string token: type: string id: type: string last_update: type: string status: type: string tags: type: array items: type: string networks: type: array items: type: string network_subnets: type: array items: type: string type: type: string Agents: title: Agents type: array items: $ref: '#/components/schemas/AgentItem' ServiceUsageItem: title: ServiceUsageLimitItem type: object required: - used - remaining - total properties: used: type: integer remaining: type: integer total: type: integer UsageRangeEnum: title: UsageRangeEnum type: string enum: - daily - weekly - monthly - custom GetAutomationsListItem: title: GetAutomationsListItem type: object required: - name - event - status - created_at - updated_at properties: name: type: string event: type: string status: type: string created_at: type: string updated_at: type: string AutomationScanData: title: AutomationScanData type: object properties: targets: type: array items: type: string templates: type: array items: type: string name: type: string alerting_config_ids: type: array items: type: string scan_config_ids: type: array items: type: string reporting_config_ids: type: array items: type: string early_templates: type: array items: type: string exclude_targets: type: array items: type: string enumeration_ids: type: array items: $ref: '#/components/schemas/EnumerationIds' disable_global_alert_config: type: boolean disable_global_report_config: type: boolean disable_global_scan_config: type: boolean socks5_proxy: type: string agent_id: type: string agent_tags: type: array items: type: string agent_networks: type: array items: type: string agent_auto_discover: type: boolean agent_behavior: type: string enum: - distribute - mirror default: distribute scan_id: type: string update_existing_scan: type: boolean scan_all_assets: type: boolean GetAutomationItem: title: GetAutomationItem type: object required: - id - name - event - status - created_at - updated_at - data properties: id: type: integer name: type: string event: type: string status: type: string created_at: type: string updated_at: type: string data: $ref: '#/components/schemas/AutomationScanData' AdminAutomationsItem: title: AdminAutomationsItem type: object required: - name - status - created_at - updated_at - user_id - scan_data properties: name: type: string status: type: string created_at: type: string updated_at: type: string user_id: type: integer scan_data: $ref: '#/components/schemas/AutomationScanData' ExposuresTimeSeries: title: ExposuresTimeSeries type: object properties: date: type: string format: date assets: type: integer technologies: type: integer hosts: type: integer ScanExposuresTimeSeries: title: ScanExposuresTimeSeries type: object required: - date - open_vulnerability - fixed_vulnerability - new_vulnerability properties: date: type: string format: date open_vulnerability: $ref: '#/components/schemas/VulnMetricSeverityBreakdown' fixed_vulnerability: $ref: '#/components/schemas/VulnMetricSeverityBreakdown' new_vulnerability: $ref: '#/components/schemas/VulnMetricSeverityBreakdown' ScanRegressionRemediationTimeSeries: title: ScanRegressionRemediationTimeSeries type: object required: - date - data properties: date: type: string format: date avg_remediation_time: type: string data: $ref: '#/components/schemas/VulnMetricSeverityBreakdown' ContributorSummary: title: ContributorSummary type: object properties: category_breakdown: type: object properties: cloud: type: integer cve: type: integer dast: type: integer kev: type: integer other: type: integer contributor: type: string score: type: integer socials: type: object total_templates: type: integer StatBuckets: title: StatBuckets type: object properties: buckets: type: object additionalProperties: type: integer missing: type: integer other: type: integer total: type: integer VulnerabilityHistoryDetail: type: object additionalProperties: $ref: '#/components/schemas/VulnerabilityHistory' VulnerabilityHistory: type: object properties: history_count: type: integer format: int64 description: The total number of revisions for the vulnerability. history: type: array items: type: object properties: severity: type: string target: type: string template_id: type: string matched: type: boolean timestamp: type: string format: date-time vuln_hash: type: string event: type: string description: A list of events associated with the vulnerability. required: - history_count - history AssetFilters: title: AssetFilters type: object additionalProperties: false properties: is_tech: type: boolean description: Return records that have technologies is_favicon: type: boolean description: Return the records that have favicon is_new: type: boolean description: Filter by new content labels: type: string description: Filter by comma separated labels, e.g-> labels=p1,p2 host: type: string description: Filter by comma separated hosts, e.g-> host=p1,p2 port: type: string description: Filter by comma separated ports, e.g-> port=p1,p2 status_code: type: string description: Filter by comma separated status codes, e.g-> status_code=p1,p2 content_length: type: string description: >- Filter by comma separated content lengths, e.g-> content_length=p1,p2 title: type: string description: Filter by comma separated titles, e.g-> title=p1,p2 domain: type: array description: >- Filter by comma separated domain names, e.g-> domain=domain1.com,domain2.com items: type: string cname: type: string description: Filter by comma separated cnames, e.g-> cname=p1,p2 technologies: type: string description: Filter by comma separated technologies, e.g-> technologies=p1,p2 ip: type: string description: Filter by comma separated ips, e.g-> ip=p1,p2 is_screenshot: type: boolean description: Return the records with screenshots time: $ref: '#/components/schemas/TimeRangeQueryParameter' description: Filter by time range start_date: type: string format: date description: Filter by start date end_date: type: string format: date description: Filter by end date custom_filter: type: string description: Filter by custom filter. Double encode the query string. search: type: string description: Search on the content name enumeration_ids: type: array items: type: string description: Filter by enumeration ids only_dns: type: boolean description: Query only dns FQDN records only_ip: type: boolean description: Query only dns IP records BillingCycle: title: BillingCycle type: object required: - id - start_date - end_date - unique_asset_count properties: id: type: integer start_date: type: string format: date-time end_date: type: string format: date-time unique_asset_count: type: integer VulnMetricSeverityBreakdown: title: VulnMetricSeverityBreakdown type: object required: - total_count - severity_breakdown - total_fixed properties: total_fixed: type: integer total_count: type: integer severity_breakdown: $ref: '#/components/schemas/SeverityBreakdown' status_breakdown: $ref: '#/components/schemas/StatusBreakdown' SeverityBreakdown: title: SeverityBreakdown type: object properties: critical: type: integer high: type: integer medium: type: integer low: type: integer info: type: integer unknown: type: integer StatusBreakdown: title: StatusBreakdown type: object properties: open: type: integer fixed: type: integer false_positive: type: integer duplicate: type: integer fix_in_progress: type: integer accepted_risk: type: integer triaged: type: integer RemediationEfficiencyData: title: RemediationEfficiencyData type: object required: - vulnerability_severity - average_time_to_remediate - target_time_to_remediate - remediation_trend - timely_remediated_count - total_vulnerabilities properties: vulnerability_severity: type: string average_time_to_remediate: type: integer target_time_to_remediate: type: integer remediation_trend: type: integer timely_remediated_count: type: integer total_vulnerabilities: type: integer OrganizationInfo: title: OrganizationInfo description: Organization Information properties: acquirer_slug: description: Slug of acquiring organization if applicable type: string contact_email: description: Contact email address type: string domain: description: Primary domain of the organization type: string image_url: description: URL to organization's image type: string industries: description: Industries of the organization items: type: string type: array legal_name: description: Legal name of the organization type: string linkedin: description: LinkedIn profile URL type: string name: description: The organization name type: string num_employees_enum: description: Employee count range category type: string org_status: description: Status of the organization type: string short_description: description: Brief description of the organization type: string slug: description: URL-friendly identifier type: string subsidary_domains: description: List of subsidiary domains items: type: string type: array total_subdomains: description: Total number of subdomains type: integer total_subsidaries: description: Total number of subsidiaries type: integer total_subsidary_domains: description: Total number of subsidiary domains type: integer total_subsidary_subdomains: description: Total number of subdomains across all subsidiary domains type: integer twitter: description: Twitter profile URL type: string type: object OrganizationFullInfo: allOf: - $ref: '#/components/schemas/OrganizationInfo' - properties: aliases: description: List of organization aliases items: type: string type: array category_groups: description: Macro level category groups (e.g. AI instead of generative_ai) items: type: string type: array created_at: description: Timestamp when the organization record was created format: date-time type: string description: description: Full description of the organization type: string founded_on.value: description: Organization founding date (YYYY-MM-DD) type: string rank: description: Organization's rank type: integer subsidaries: description: List of all subsidiary organizations items: $ref: '#/components/schemas/OrganizationInfo' type: array updated_at: description: Timestamp when the organization record was last updated format: date-time type: string type: object RootDomainInfo: title: RootDomainInfo additionalProperties: false description: Root Domain Information properties: domain: description: The root domain name type: string image_url: description: URL to domain's image type: string name: description: The domain name type: string organization_slug: description: Slug identifier of the associated organization type: string total_subdomains: description: The total number of subdomains type: integer type: object AssociatedDomainEvidence: title: AssociatedDomainEvidence type: object properties: acquired_company: description: Acquired company name type: string acquired_date: description: Acquisition date type: string acquirer_name: description: Acquirer organization name type: string active: description: Whether the domain is reachable type: boolean as_name: description: Autonomous system name type: string as_number: description: Autonomous system number type: integer cert_common_name: description: Certificate common name type: string cert_expiry_date: description: Certificate expiry date type: string cert_issued_date: description: Certificate issued date type: string cert_issuer: description: Certificate issuer type: string cert_org_name: description: Certificate organization name type: string cert_serial: description: Certificate serial number type: string crunchbase_url: description: Crunchbase URL type: string expiry_date: description: Domain expiry date type: string location: description: Geographic location type: string orgname: description: WHOIS organization name type: string probe: description: Probe information type: string registrant_org: description: Registrant organization type: string registrar: description: Registrar name type: string registration_date: description: Domain registration date type: string search_identifier: description: Search identifier type: string status_code: description: HTTP status code type: integer subdomain_count: description: Number of discovered subdomains type: integer title: description: HTTP title type: string update_date: description: Last update date type: string whois_server: description: WHOIS server type: string AssociatedDomainResult: title: AssociatedDomainResult type: object required: - domain - sources properties: domain: description: Associated domain name type: string evidence: $ref: '#/components/schemas/AssociatedDomainEvidence' sources: description: Sources that reported the association type: array items: type: string AssociatedDomainsResultSet: title: AssociatedDomainsResultSet type: object required: - domain - results - sources properties: domain: description: Queried domain type: string results: description: List of associated domains type: array items: $ref: '#/components/schemas/AssociatedDomainResult' sources: description: List of sources used in the query type: array items: type: string sources_count: description: Count of results per source type: object additionalProperties: type: integer unique_count: description: Unique associated domains count type: integer limit: description: Maximum results per page when paginated type: integer page: description: Current page when paginated type: integer total_count: description: Total associated domains when paginated type: integer total_pages: description: Total pages when paginated type: integer DomainSearchItem: title: DomainSearchItem type: object required: - name - type - search_score properties: domain: $ref: '#/components/schemas/RootDomainInfo' name: description: The display name for autocomplete type: string organization: $ref: '#/components/schemas/OrganizationInfo' search_score: description: The search score of the result type: number type: description: Indicates whether this is an organization or domain result enum: - organization - domain type: string OpenVulnerabilityScoreMetrics: title: OpenVulnerabilityScoreMetrics type: object properties: severity_breakdown: $ref: '#/components/schemas/SeverityBreakdown' total_cve: type: integer total_kev: type: integer VulnScoreMetricsTimeSeries: title: VulnScoreMetricsTimeSeries type: object properties: date: type: string format: date security_score: type: number format: double open_vulnerability: $ref: '#/components/schemas/OpenVulnerabilityScoreMetrics' total_scanned_assets: type: integer total_affected_assets: type: integer description: '' SharedTemplateMetaData: title: SharedTemplateMetaData type: object properties: expires_at: type: string format: date-time organizations: type: array items: type: string share_type: type: string template_id: type: string users_email: type: array items: type: string UploadTemplate: title: UploadTemplate type: object properties: ai_meta: $ref: '#/components/schemas/AIMeta' dir: type: string filename: type: string template: type: string TemplateValidationError: title: TemplateValidationError type: object required: - filename - message properties: filename: type: string message: type: string detail: type: string line: type: integer description: Line number reported by the validator (if available) column: type: integer description: Column number reported by the validator (if available) issue_code: type: string description: Optional validator issue identifier TemplateWorkflowRejection: title: TemplateWorkflowRejection type: object required: - filename - reason properties: filename: type: string reason: type: string hint: type: string description: Suggested action to resolve the rejection TemplateFileMetadata: title: TemplateFileMetadata type: object required: - dir - filename - template_id - uri properties: dir: type: string description: | Directory of the template filename: type: string description: | Name of the template template_id: type: string description: Template ID uri: type: string description: URI of the template description: Template File Metadata FailedTemplateFileMetadataUpdate: title: FailedTemplateFileMetadataUpdate type: object required: - dir - filename - template_id - error properties: dir: type: string description: Directory of the template filename: type: string description: Name of the template template_id: type: string description: Template ID error: type: string description: Error message PatchTemplateFileMetadata: title: PatchTemplateFileMetadata type: object required: - dir - filename - template_id properties: dir: type: string filename: type: string template_id: type: string CustomSeverityMapping: title: CustomSeverityMapping type: object required: - id - template_id - original_severity - custom_severity - created_at - updated_at properties: id: type: integer format: int64 template_id: type: string original_severity: type: string custom_severity: type: string vuln_id: type: string created_at: type: string format: date-time updated_at: type: string format: date-time DevicesCount: title: DevicesCount type: object properties: devices: type: number CustomersCount: title: CustomersCount type: object properties: customers: type: number EmployeesCount: title: EmployeesCount type: object properties: employees: type: number UsersCount: title: UsersCount type: object properties: user: type: number CombolistExposureCount: title: CombolistExposureCount type: object properties: combolist_exposure: type: number LeakCountryStats: title: LeakCountryStats type: object properties: Country: type: string CredentialsCount: type: number UsedUrlsCount: title: UsedUrlsCount type: object properties: count: type: number url: type: string LeaksTimeline: title: LeaksTimeline type: object properties: CredentialsCount: type: number Month: type: number Year: type: number LeaksUsersSampleData: title: LeaksUsersSampleData type: object properties: password: type: string username: type: string url: type: string country: type: string log_date: type: string LeaksEntity: title: LeaksEntity type: object properties: id: type: string url: type: string username: type: string password: type: string device_ip: type: string host_username: type: string os: type: string malware_path: type: string country: type: string log_date: type: string hardware_id: type: string hostname: type: string status: $ref: '#/components/schemas/LeaksEntityStatus' domain: type: string description: Domain this leak is associated with - used for filtering email_domain: type: string description: Domain extracted from email addresses EnumerationHistoryDataResponse: title: EnumerationHistoryDataResponse type: object required: - enum_id - name - enum_type - enum_started_at - enum_finished_at - enumeration_time - status - new_assets_discovered - total_targets_processed properties: enum_id: type: string name: type: string enum_type: type: string enum_started_at: type: string format: date-time enum_finished_at: type: string format: date-time enumeration_time: type: string format: duration status: type: string new_assets_discovered: type: integer total_targets_processed: type: integer error_details: type: string Facets: title: Facets type: object properties: buckets: type: object additionalProperties: type: integer missing: type: integer others: type: integer total: type: integer Product: type: object required: - doc_id - vuln_count - kev_count - vulns_with_poc - product - vendor properties: category: description: Product category type: string cpe: description: List of CPEs for this product type: array items: type: string deployment_model: description: Product deployment model type: string doc_id: description: Unique document ID in the form vendor:product type: string exposure: $ref: '#/components/schemas/ExposureStats' first_cve_created_at: description: Date when the earliest CVE was processed for this product type: string format: date-time industry: description: Product industry type: string kev_count: description: Number of KEV vulnerabilities for this product type: integer last_cve_created_at: description: Date when the most recent CVE was processed for this product type: string format: date-time product: description: Product name type: string project_repos: description: List of repository info for this product type: array items: type: object additionalProperties: true projects: description: List of project URLs for this product type: array items: type: string score: description: Impact score based on available parameters mainly used for sorting type: number summary: description: Product summary type: string tech_domain: description: Product tech domain type: string vendor: description: Vendor name type: string vulnerability_count: description: Total number of vulnerabilities for this product type: integer vulnerability_max_cvss: description: Maximum CVSS score among vulnerabilities type: number format: double vulnerability_mean_cvss: description: Mean CVSS score among vulnerabilities type: number format: double vulnerability_poc_count: description: Number of vulnerabilities with PoC for this product type: integer vulnerability_stat_counts: description: Vulnerability statistics by type type: object additionalProperties: type: integer severities: description: Map of severity -> count for vulnerabilities type: object additionalProperties: type: integer vuln_count: description: Total number of vulnerabilities for this product type: integer vuln_impact_breakdown: description: >- Map of vulnerability_impact -> count for vulnerabilities (flattened array) type: object additionalProperties: type: integer vuln_statuses: description: Map of vuln_status -> count for vulnerabilities type: object additionalProperties: type: integer vuln_types: description: Map of vulnerability_type -> count for vulnerabilities type: object additionalProperties: type: integer vulns_with_poc: description: Number of vulnerabilities with PoC for this product type: integer Vulnerability: additionalProperties: false allOf: - $ref: '#/components/schemas/VulnerabilityInfo' - $ref: '#/components/schemas/NucleiTemplate' - properties: affected_products: description: Affected products for the vulnerability items: $ref: '#/components/schemas/ProductInfo' type: array created_at: description: Created at timestamp format: date-time type: string doc_id: description: Document ID of the vulnerability type: string doc_type: description: Type of the document type: string exposure: $ref: '#/components/schemas/VulnExposure' description: Exposure stats for the vulnerability h1: $ref: '#/components/schemas/H1Stats' description: Hackerone stats for the vulnerability ntps: description: Nuclei Template Priority Score type: integer updated_at: description: Updated at timestamp format: date-time type: string template_created_at: description: Timestamp when the template was created format: date-time type: string type: object type: object VulnerabilityInfo: additionalProperties: false allOf: - $ref: '#/components/schemas/CVEInfo' - properties: citations: description: Citations for the vulnerability/template items: $ref: '#/components/schemas/Citation' type: array cwe: description: CWE IDs associated with the vulnerability items: type: string type: array description: description: Description of the vulnerability/template type: string impact: description: Impact of the vulnerability/template type: string name: description: Name of the vulnerability/template type: string product: description: Product associated with the vulnerability/template type: string remediation: description: Remediation for the vulnerability/template type: string severity: description: Severity of the vulnerability/template type: string vendor: description: Vendor associated with the vulnerability/template type: string requirement_type: description: Type of the requirement type: string requirements: description: Requirements for the vulnerability/template type: string template_coverage: description: Coverage of the template type: string vulnerability_impact: description: Impact of the vulnerability/template items: type: string type: array vulnerability_type: description: Type of the vulnerability/template type: string weaknesses: description: Weaknesses associated with the vulnerability items: $ref: '#/components/schemas/Weakness' type: array type: object type: object title: '' CVEInfo: additionalProperties: false properties: age_in_days: description: Age in days for the cve type: integer assignee: description: Assignee for the cve type: string cve_created_at: description: Created at date for the cve format: date-time type: string cve_id: description: CVE ID for the cve type: string cve_updated_at: description: Updated at date for the cve format: date-time type: string cvss_metrics: description: CVSS Metrics for the cve example: 3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H type: string cvss_score: description: CVSS Score for the cve example: 9.8 format: double type: number epss_percentile: description: EPSS Percentile for the template. example: 0.42509 format: double type: number epss_score: description: EPSS Score for the template. example: 0.42509 format: double type: number is_kev: description: True if the cve is a kev type: boolean is_vkev: description: True if the cve is a vkev type: boolean is_oss: description: True if the cve is an oss cve type: boolean is_patch_available: description: True if the cve has a patch available type: boolean is_poc: description: True if the cve has a poc type: boolean is_remote: description: True if the cve is a remote cve type: boolean is_template: description: True if the cve has a template type: boolean kev: description: KEV info for the cve items: $ref: '#/components/schemas/KevInfo' type: array poc_count: description: Count of pocs for the vulnerability type: integer pocs: description: Contains all known proof of concepts for the vulnerability items: $ref: '#/components/schemas/POC' type: array nuclei_template: description: Raw nuclei template content type: string is_auth: description: True if the CVE is an authenticated CVE type: boolean is_exploit_seen: description: True if the CVE has been exploited in the wild type: boolean poc_first_seen: description: First seen date for the poc format: date-time type: string vuln_status: description: Status of the cve type: string type: object KevInfo: title: KevInfo type: object properties: added_date: type: string format: date-time due_date: type: string format: date-time known_ransomware_campaign_use: type: boolean source: type: string POC: title: POC type: object properties: added_at: type: string format: date-time source: type: string url: type: string Citation: additionalProperties: false title: Citation type: object properties: source: type: string description: Source for the citation tags: type: array description: Tags for the citation items: type: string url: type: string description: URL for the citation added_at: description: Added at date for the citation format: date-time type: string Weakness: additionalProperties: false title: Weakness type: object properties: cwe_id: type: string description: CWE ID for the weakness cwe_name: type: string description: CWE Name for the weakness NucleiTemplate: additionalProperties: false allOf: - $ref: '#/components/schemas/TemplateSourceMeta' - $ref: '#/components/schemas/TemplateStatus' - $ref: '#/components/schemas/TemplateFileMeta' - $ref: '#/components/schemas/TemplateContent' - $ref: '#/components/schemas/TemplateSharingMetadata' - properties: ai_meta: $ref: '#/components/schemas/AIMeta' description: AI Meta of the template classification: $ref: '#/components/schemas/Classification' description: Classification of the template id: description: ID of the template type: string user_id: description: User ID of the template type: integer type: object type: object TemplateSharingMetadata: properties: organizations: description: Organizations of the template items: type: string type: array origin_template_id: description: Origin template ID of the template type: string share_type: description: Share type of the template type: string ttl: description: TTL of the template type: string ttl_from: description: TTL from of the template type: string users: description: Users of the template items: type: integer type: array type: object TemplateSourceMeta: properties: category: description: Category of the template type: string integration_id: description: Integration ID of the template type: string integration_type: description: Integration type of the template type: string pull_request: description: Pull request of the template type: string ref: description: Reference of the template type: string release_tag: description: Release tag of the template type: string score: description: Score of the template type: integer template_type: description: Type of the template type: string type: object TemplateStatus: properties: is_draft: description: Is the template a draft type: boolean is_early: description: Is the template in early access type: boolean is_github: description: Is the template from github type: boolean is_new: description: Is the template new type: boolean is_pdteam: description: Is the template from pdteam type: boolean type: object TemplateFileMeta: title: TemplateFileMeta type: object properties: directory: type: string description: Directory of template filename: type: string description: | Filename of template uri: type: string description: Uri of template TemplateContent: title: TemplateContent type: object properties: author: type: array description: Authors of the template items: type: string digest: type: string description: Digest of the template metadata: type: object description: MetaData of the template raw: type: string description: Raw string of the template tags: type: array description: Tags of the template items: type: string type: type: string description: Type of the template ProductInfo: title: ProductInfo type: object properties: cpe: description: CPE of the product type: array items: type: string product: description: Product of the product type: string project_repos: type: object projects: description: Projects of the product type: array items: type: string vendor: description: Vendor of the product type: string product_category: type: string product_type: type: string industry: description: Industry of the product type: string tech_domain: description: Tech domain of the product type: string category: description: Product category of the product type: string deployment_model: description: Deployment model of the product type: string summary: description: Summary of the product type: string SearchEngineStats: title: SearchEngineStats type: object properties: max_hosts: type: integer description: Maximum number of hosts for the product min_hosts: type: integer description: Minimum number of hosts for the product queries: type: array description: Queries for the product items: type: string ExposureStats: title: ExposureStats type: object properties: fofa: $ref: '#/components/schemas/SearchEngineStats' id: type: string max_hosts: type: integer min_hosts: type: integer shodan: $ref: '#/components/schemas/SearchEngineStats' VulnExposure: additionalProperties: false title: VulnExposure type: object properties: max_hosts: description: Maximum number of hosts for the vulnerability type: integer min_hosts: description: Minimum number of hosts for the vulnerability type: integer values: description: Values of the vulnerability type: array items: $ref: '#/components/schemas/ExposureStats' H1Stats: additionalProperties: false title: H1Stats type: object properties: delta_rank: description: Rank delta from previous day type: integer delta_reports: description: Reports delta from previous day type: integer rank: description: Rank of CVE in Hackerone type: integer reports: description: Number of reports for CVE type: integer StatisticsResponse: title: StatisticsResponse type: object properties: status_code_stats: type: object additionalProperties: type: integer error_stats: type: object additionalProperties: type: integer waf_stats: type: object additionalProperties: type: integer TaskChunk: title: TaskChunk type: object properties: targets: type: array items: type: string scan_id: type: string template_request_count: type: integer public_templates: type: array items: type: string private_templates: type: array items: type: string user_id: type: integer format: int64 chunk_id: type: string scan_configuration: type: string format: byte public_workflows: type: array items: type: string private_workflows: type: array items: type: string workflows_urls: type: array items: type: string enrichment_id: type: string enumeration_configuration: type: string format: byte status: type: string enum: - pending - completed - failed - skipped - in_progress LeaksEntityStatus: title: LeaksEntityStatus enum: - fixed - open - NA StripePriceItem: title: StripePriceItem type: object required: - price_id - price - name properties: price_id: type: string description: Stripe price ID price: type: number description: Price amount in dollars name: type: string description: Price display name currency: type: string description: Currency code (e.g., USD) interval: type: string description: Billing interval (month, year, etc.) product_id: type: string description: Associated Stripe product ID PlanDefaultLimit: title: PlanDefaultLimit type: object required: - plan - asset_limit - domain_limit properties: plan: type: string enum: - ENT - ENT_TRIAL - PRO - GROWTH - TRIAL - FREE - VERIFIED_FREE description: Plan type asset_limit: type: integer format: int64 description: Default asset limit for the plan domain_limit: type: integer format: int64 description: Default domain limit for the plan created_at: type: string format: date-time description: Creation timestamp updated_at: type: string format: date-time description: Last update timestamp DomainVerificationType: title: DomainVerificationType enum: - dns_text_record - html_meta_tag - file_upload default: dns_text_record MisconfigurationResponse: title: MisconfigurationResponse type: object properties: id: type: string description: Unique identifier for the finding enumeration_id: type: string description: ID of the enumeration run that discovered this finding finding_type: type: string enum: - dangling_dns - origin_exposure description: >- Type of misconfiguration: dangling_dns (AWS Elastic IP no longer exists) or origin_exposure (Cloudflare origin IP leaked) host: type: string description: The affected hostname or domain severity: type: string enum: - critical - high - medium - low - info - unknown description: Severity level of the finding status: type: string enum: - open - fixed - false_positive - duplicate - fix_in_progress - accepted_risk - triaged - out_of_scope description: Current status of the finding event: type: object additionalProperties: true description: >- Type-specific finding details. For dangling_dns: host, ip, provider (AWS). For origin_exposure: provider (Cloudflare), origin_ip, leaking_hosts. created_at: type: string format: date description: When the finding was first discovered updated_at: type: string format: date description: When the finding was last updated AssetPolicyType: title: AssetPolicyType type: string enum: - alert - delete - set_label - remove_label description: Type of action to perform when policy matches assets AssetPolicy: title: AssetPolicy type: object required: - id - name - policy_type - policies - created_at - updated_at properties: id: type: string description: Unique identifier for the asset policy name: type: string description: Name of the asset policy policy_type: $ref: '#/components/schemas/AssetPolicyType' policies: $ref: '#/components/schemas/AssetFilters' alerting_config_ids: type: array description: >- List of alerting configuration IDs bound to this asset policy (required for alert type) items: type: string labels: type: array description: >- List of labels associated with this policy (used for set_label/remove_label types) items: type: string enumeration_ids: type: array description: >- Optional list of enumeration IDs to scope this policy to specific enumerations items: type: string metadata: type: object description: Additional metadata created_at: type: string format: date-time description: Creation timestamp updated_at: type: string format: date-time description: Last update timestamp last_executed_at: type: string format: date-time description: Timestamp of the last successful policy execution apply_to_existing: type: boolean description: >- Whether this policy applies to existing matching assets in addition to future assets AssetPolicyListResponse: title: AssetPolicyListResponse type: object required: - policies - total properties: policies: type: array description: Total number of asset policies for the user items: $ref: '#/components/schemas/AssetPolicy' total: type: integer format: int64 message: type: string AssetPolicySuggestionsResponse: title: AssetPolicySuggestionsResponse type: object required: - suggestions - total properties: suggestions: type: array description: List of suggested policies based on user asset patterns items: $ref: '#/components/schemas/AssetPolicySuggestion' total: type: integer format: int64 description: Total number of suggestions message: type: string AssetPolicySuggestion: title: AssetPolicySuggestion type: object required: - id - category - title - reason - severity - suggested_policy - affected_count properties: id: type: string description: >- Unique identifier for this suggestion (deterministic based on pattern) category: type: string description: Category of the suggestion (e.g., ip_concentration, repeated_title) title: type: string description: Human-readable title for the suggestion reason: type: string description: Detailed explanation of why this suggestion is made severity: type: string description: Severity level of the suggestion suggested_policy: type: object required: - name - policy_type - policies properties: name: type: string description: Suggested name for the policy policy_type: $ref: '#/components/schemas/AssetPolicyType' policies: $ref: '#/components/schemas/AssetFilters' labels: type: array description: Labels to apply (for set_label/remove_label types) items: type: string affected_count: type: integer format: int64 description: Number of assets affected by this pattern affected_percentage: type: number format: float description: Percentage of total assets affected sample_assets: type: array description: Sample assets matching this pattern items: type: object ActivityEvent: title: ActivityEvent type: object required: - event_type - subject_type - subject_id - status - created_at properties: id: type: string event_type: type: string description: >- Event type (e.g., asset_policy_applied, asset_policy_processed, asset_policy_alert_sent) subject_type: type: string description: Subject type (e.g., asset_policy) subject_id: type: string description: Subject ID (policy ID) subject_name: type: string description: Subject name (policy name) status: enum: - succeeded - failed - pending error_message: type: string channel: type: string description: Notification channel (email, slack, etc.) destination: type: string description: Notification destination (redacted) alert_config_id: type: string asset_policy_id: type: string created_at: type: string format: date-time updated_at: type: string format: date-time seen: type: boolean message_payload: type: object description: Event metadata securitySchemes: X-API-Key: name: X-API-Key type: apiKey in: header responses: GetTemplateDataResponse: description: Example response content: application/json: schema: type: object required: - message properties: message: type: string data: $ref: '#/components/schemas/TemplateData' GetTemplateResponse: description: Example response content: application/json: schema: type: object required: - message properties: message: type: string template: $ref: '#/components/schemas/TemplateData' application/xml: schema: type: object properties: {} examples: {} CreateTemplateResponse: description: Example response content: application/json: schema: type: object required: - message - template_id - template_name properties: message: type: string template_id: type: string template_name: type: string template: $ref: '#/components/schemas/TemplateData' UpdateTemplateResponse: description: Example response content: application/json: schema: type: object required: - message - template_id - template_name properties: message: type: string status: type: boolean template_id: type: string template_name: type: string template: $ref: '#/components/schemas/TemplateData' GenerateTemplateResponse: description: Example response content: application/json: schema: type: object required: - message properties: template_id: type: string message: type: string completion: type: string name: type: string canRun: type: boolean comment: type: string is_valid: type: boolean retry_count: type: integer feedback: type: string targets: type: array items: type: string retest: type: array items: type: object properties: target: type: string matched: type: boolean vuln_id: type: string ShareTemplateResponse: description: Example response content: application/json: schema: type: object required: - message - result properties: message: type: string result: $ref: '#/components/schemas/SharedTemplateMetaData' GetSharedTemplateResponse: description: Example response content: application/json: schema: type: object required: - message - result properties: message: type: string result: $ref: '#/components/schemas/SharedTemplateData' GetUserProfileResponse: description: Example response content: application/json: schema: type: object required: - message properties: ai_status: type: boolean email: type: string name: type: string message: type: string cloud_scans: type: boolean static_scan: type: boolean neo_ai: type: boolean early_template: type: boolean team_name: type: string is_team_owner: type: boolean is_read_only: type: boolean team_owner_name: type: string trial_status: type: string role: type: string plan: type: string personal_account_plan: type: string applied_promo_code: type: string full_port_scan: type: boolean is_leaks_enabled: type: boolean workspaces: type: array items: $ref: '#/components/schemas/UserWorkspaces' real_time_auto_scan: type: boolean growth_plan_availability: type: object properties: price_id: type: string description: Stripe price ID for growth plan is_available: type: boolean description: Whether growth plan is available for this user to buy amount: type: number description: Price amount in dollars recurrence_period: type: string description: Billing period (MONTHLY/YEARLY) feature_flag: type: object properties: internal_scan: type: boolean DeleteTemplateResponse: description: Example response content: application/json: schema: type: object properties: message: type: string status: type: boolean required: - message GetPublicTemplateList: description: Example response content: application/json: schema: type: object required: - message - count - total - results properties: message: type: string count: type: integer total: type: integer results: type: array items: $ref: '#/components/schemas/TemplateData' GetRetestResultsResponse: description: Example response content: application/json: schema: type: object properties: message: type: string results: type: array items: $ref: '#/components/schemas/VulnerabilityResults' required: - message - results application/xml: schema: type: object properties: {} GetSingleRetestResultResponse: description: Example response content: application/json: schema: type: object properties: message: type: string results: $ref: '#/components/schemas/VulnerabilityResults' required: - message - results GetScansStatusResponse: description: Example response content: application/json: schema: type: object properties: current_page: type: integer result_count: type: integer total_results: type: integer total_pages: type: integer message: type: string data: type: array items: $ref: '#/components/schemas/ScanStatusItem' required: - message - current_page - result_count - total_results - total_pages - data TriggerUserScanResponse: description: Example response content: application/json: schema: type: object required: - message properties: id: type: string message: type: string truncated-scan-targets: type: integer application/xml: schema: type: object properties: message: type: string id: type: string multipart/form-data: schema: type: object properties: message: type: string id: type: string required: - message text/html: schema: type: object properties: message: type: string id: type: string required: - message GetScanDetailsResponse: description: Example response content: application/json: schema: $ref: '#/components/schemas/ScanStatusItem' TaskChunkResponse: description: Example response content: application/json: schema: $ref: '#/components/schemas/TaskChunk' DeleteScansResponse: description: Example response content: application/json: schema: type: object properties: message: type: string ok: type: boolean required: - message GetScanResultsResponse: description: Example response content: application/json: schema: type: object required: - current_page - result_count - total_results - total_pages - message - data properties: current_page: type: integer result_count: type: integer total_results: type: integer total_pages: type: integer message: type: string data: type: array items: $ref: '#/components/schemas/VulnerabilityResults' stats: type: object properties: total: type: integer filters: type: object GetVulnChangelogsResponse: description: Example response content: application/json: schema: type: object required: - data properties: data: type: array items: $ref: '#/components/schemas/VulnerabilityChangelogs' PostRetestTemplateResponse: description: Example response content: application/json: schema: type: object properties: message: type: string results: $ref: '#/components/schemas/VulnerabilityResults' required: - message GetScansVulnIdResponse: description: /scans/vuln/:vuln_id content: application/json: schema: $ref: '#/components/schemas/VulnerabilityResultsOld' ImportScanResponse: description: '' content: application/json: schema: type: object description: Scan is a single scan object properties: id: type: string message: type: string required: - id - message GetAssetsListResponse: description: Example response content: application/json: schema: type: object properties: message: type: string data: type: array items: $ref: '#/components/schemas/AssetListItem' required: - message - data UploadAssetResponse: description: Example response content: application/json: schema: type: object properties: message: type: string upload_status: type: string asset_id: type: string uploaded_at: type: string name: type: string required: - message GetUserAssetResponse: description: Example response content: application/json: schema: type: object properties: message: type: string asset_count: type: integer asset_id: type: string uploaded_at: type: string name: type: string required: - message DeleteAssetResponse: description: Example response content: application/json: schema: type: object properties: message: type: string required: - message GetUserAPIKeyResponse: description: Example response content: application/json: schema: type: object properties: message: type: string api_key: type: string required: - message - api_key DeleteUserAPIKeyResponse: description: Example response content: application/json: schema: type: object properties: message: type: string required: - message GetScanResultsFiltersResponse: description: Example response content: application/json: schema: type: object required: - message - current_page - result_count - total_results - total_pages - data - new_matched properties: message: type: string current_page: type: integer result_count: type: integer total_results: type: integer total_pages: type: integer data: type: array items: $ref: '#/components/schemas/FiltersItem' new_matched: type: integer GetScanResultStatsResponse: description: Example response content: application/json: schema: type: object properties: message: type: string stats: $ref: '#/components/schemas/ScanStats' required: - message SetScanScheduleResponse: description: Example response content: application/json: schema: type: object properties: message: type: string required: - message GetScanScheduleResponse: description: Example response content: application/json: schema: type: object properties: message: type: string schedules: type: array items: $ref: '#/components/schemas/ScanSchedule' required: - message - schedules PatchAssetContentResponse: description: Example response content: application/json: schema: type: object properties: message: type: string update_status: type: string required: - message GetUserTemplateListResponse: description: Example response content: application/json: schema: type: object required: - results properties: message: type: string count: type: integer total: type: integer results: type: array items: $ref: '#/components/schemas/TemplateData' GetShareStatusResponse: description: Example response content: application/json: schema: type: object required: - message properties: count: type: integer message: type: string total: type: integer results: type: array items: $ref: '#/components/schemas/SharedTemplateData' DeleteScanScheduleResponse: description: Example response content: application/json: schema: type: object properties: message: type: string required: - message PostApiKeyRotateResponse: description: Example response content: application/json: schema: type: object properties: message: type: string api_key: type: string required: - message - api_key GetUserSetupStatsResponse: description: Example response content: application/json: schema: type: object properties: message: type: string onboarding_steps: type: object properties: vulnerability_scan: type: boolean asset_discovery: type: boolean alerting_integration: type: boolean reporting_integration: type: boolean cloud_integration: type: boolean subfinder_integration: type: boolean vulnerability_upload: type: boolean realtime_autoscan: type: boolean team_member_invitation: type: boolean required: - message - onboarding_steps GetBillingAssetsResponse: description: Example response content: application/json: schema: type: object properties: total_asset: type: integer total_unique_asset: type: integer total_billing_asset: type: integer total_unique_billing_asset: type: integer total_asset_group: type: integer asset_groups: type: array items: type: object properties: name: type: string total_unique_asset: type: integer total_asset: type: integer total_billing_asset: type: integer total_unique_billing_asset: type: integer GetPromocodeDetailsResponse: description: Example response content: application/json: schema: type: object required: - message - promo_code - allowed_plan - valid_for_days - base_domain_count - scan_tokens properties: message: type: string promo_code: type: string allowed_plan: type: array items: type: string valid_for_days: type: integer base_domain_count: type: integer scan_tokens: type: integer MessageResponse: description: Example response content: application/json: schema: type: object required: - message properties: message: type: string PatchUserProfileResponse: description: Example response content: application/json: schema: type: object properties: message: type: string ai_status: type: boolean scan_status: type: boolean static_scan: type: boolean neo_ai: type: boolean early_template: type: boolean required: - message PostCreateUserResponse: description: Example response content: application/json: schema: type: object properties: message: type: string ai_status: type: boolean scan_status: type: boolean static_scan: type: boolean neo_ai: type: boolean early_template: type: boolean user_id: type: integer name: type: string email: type: string role: type: string invite_url: type: string password: type: string required: - message PostRescanVulnResponse: description: Example response content: application/json: schema: type: object properties: message: type: string results: $ref: '#/components/schemas/VulnerabilityResultsOld' required: - message GetEarlyTempateList: description: Early Template Response content: application/json: schema: type: object required: - message properties: message: type: string total: type: integer count: type: integer results: type: array items: $ref: '#/components/schemas/TemplateData' UpdateTeamResponse: description: Example response content: application/json: schema: type: object properties: name: type: string message: type: string required: - message GetTeamResponse: description: Get the workspace details content: application/json: schema: type: object properties: workspaces: type: array items: $ref: '#/components/schemas/WorkspaceItem' message: type: string name: type: string required: - message GetTeamMembersResponse: description: Example response content: application/json: schema: type: object properties: message: type: string max_team_members: type: integer members: type: array items: $ref: '#/components/schemas/TeamMemberItem' required: - message - members - max_team_members GetDefaultTeamMembersResponse: description: Default team members response content: application/json: schema: type: object properties: message: type: string members: type: array items: type: object properties: email: type: string role: type: string required: - email - role required: - message - members StaticScanIPsResponse: description: '' content: application/json: schema: type: object required: - ips properties: ips: type: array items: type: object required: - ip properties: ip: type: string GetEnumerateIdContents: description: Example response content: application/json: schema: type: object required: - current_page - result_count - total_results - total_pages - message - data properties: current_page: type: integer result_count: type: integer total_results: type: integer total_pages: type: integer message: type: string data: type: array items: $ref: '#/components/schemas/EnumerationContent' GetEnumerateIdContentsResponse: description: Example response content: application/json: schema: type: object required: - message - data properties: message: type: string data: $ref: '#/components/schemas/EnumerateData' GetEnumerationScheduleResponse: description: Example response content: application/json: schema: type: object required: - message - schedules properties: message: type: string schedules: type: array items: $ref: '#/components/schemas/EnumerationSchedule' VerifyConfigResponse: description: Example response content: application/json: schema: type: object required: - is_verified - response properties: is_verified: type: boolean response: type: string event: type: object VerifyConfigContentsResponse: description: Example response content: application/json: schema: type: object properties: jira: type: array items: type: object $ref: '#/components/schemas/JiraVerifyContentItem' linear: type: array items: type: object $ref: '#/components/schemas/LinearVerifyContentItem' ScanStatsResponse: description: Example response content: application/json: schema: type: object required: - scan_stats - scan_status properties: scan_stats: type: object required: - total_scan - total_unique_scan - total_uploaded_scan - total_scheduled_scan properties: total_scan: type: integer total_unique_scan: type: integer total_uploaded_scan: type: integer total_scheduled_scan: type: integer scan_status: type: object required: - failed - finished - queued - running - starting - stopped - uploaded properties: failed: type: integer finished: type: integer queued: type: integer running: type: integer starting: type: integer stopped: type: integer uploaded: type: integer GetScansHistoryResponse: description: Example response content: application/json: schema: type: object required: - current_page - result_count - total_results - total_pages - message - data properties: message: type: string current_page: type: integer result_count: type: integer total_results: type: integer total_pages: type: integer data: type: array items: $ref: '#/components/schemas/ScansHistoryItems' total_completed_request: type: integer total_scan_run: type: integer total_unique_scan_run: type: integer EnumerateResponse: description: Example response content: application/json: schema: type: object required: - current_page - result_count - total_results - total_pages - data properties: current_page: type: integer result_count: type: integer total_results: type: integer total_pages: type: integer data: type: array items: $ref: '#/components/schemas/EnumerateData' PostScanConfigResponse: description: Example response content: application/json: schema: type: object required: - message properties: id: type: string message: type: string ErrorResponse: description: Example response content: application/json: schema: type: object required: - message properties: message: type: string kind: type: string code: type: string error: type: string error_id: type: string param: type: string status: type: integer VulnsTrackerExportResponse: description: Example response content: application/json: schema: type: object required: - ok - vuln_id - reporting_config_id - reporting_config_name - ticket_url - ticket_id - tracker_name properties: ok: type: boolean vuln_id: type: string reporting_config_id: type: string reporting_config_name: type: string ticket_url: type: string ticket_id: type: string tracker_name: type: string ExcludedTemplateResponse: description: Example response content: application/json: schema: type: object required: - data properties: data: type: array items: $ref: '#/components/schemas/ExcludedTemplate' GetScansTokenResponse: description: Example response content: application/json: schema: type: object required: - scan_tokens - used_scan_token - remaining_scan_token - is_scannable - start_date - end_date - subscription_type - base_domain_count - remaining_domain_count properties: scan_tokens: type: integer format: int64 used_scan_token: type: integer format: int64 remaining_scan_token: type: integer format: int64 base_domain_count: type: integer format: int64 remaining_domain_count: type: integer format: int64 is_scannable: type: boolean start_date: type: string format: date-time end_date: type: string format: date-time expire_date: type: string format: date-time verified_domain: type: array items: type: string old_plan: type: string old_plan_expired_at: type: string format: date-time is_enforced_limit: type: boolean subscription_type: enum: - TRIAL - ENT_TRIAL - PRO - ENT - FREE - VERIFIED_FREE - GROWTH AssetCountResponse: description: Example response content: application/json: schema: type: object required: - message - asset_count - async properties: message: type: string asset_count: type: integer async: type: boolean description: Whether the operation is running asynchronously GetAssetChangelogsResponse: description: Example response content: application/json: schema: type: object required: - message - current_page - result_count - total_results - total_pages - data properties: message: type: string current_page: type: integer result_count: type: integer total_results: type: integer total_pages: type: integer data: type: array items: type: object $ref: '#/components/schemas/AssetChangelogs' GetAssetResponse: description: Example response content: application/json: schema: type: object required: - id - enumeration_id - name - created_at - updated_at properties: id: type: integer format: int64 enumeration_id: type: string name: type: string created_at: type: string format: date-time updated_at: type: string format: date-time status_code: type: integer technologies: type: array items: type: string webserver: type: string request: type: string response: type: string cname: type: array items: type: string labels: type: array items: type: string ip: type: string content_length: type: integer title: type: string host: type: string port: type: integer technology_details: type: string format: json is_new: type: boolean body: type: string cloud_name: type: string cdn_name: type: string waf_name: type: string source_type: type: string extended_metadata: type: object additionalProperties: {} EnumerationStatsResponse: description: Example response content: application/json: schema: type: object required: - asset_stats properties: asset_stats: $ref: '#/components/schemas/AssetStats' enumeration_stats: $ref: '#/components/schemas/EnumerationCounts' PriceListResponse: description: Example response content: application/json: schema: type: object required: - list - message properties: list: type: array items: $ref: '#/components/schemas/PriceListItem' message: type: string GetScanTokenErrorResponse: description: Example response content: application/json: schema: type: object required: - message - subscription_type properties: message: type: string subscription_type: type: string UsageResponse: description: Example response content: application/json: schema: type: object required: - message properties: message: type: string cvemap: $ref: '#/components/schemas/ServiceUsageItem' chaos: $ref: '#/components/schemas/ServiceUsageItem' asnmap: $ref: '#/components/schemas/ServiceUsageItem' GetEnumerateFiltersResponse: description: Example response content: application/json: schema: type: object required: - message - current_page - result_count - total_results - total_pages - data properties: message: type: string current_page: type: integer result_count: type: integer total_results: type: integer total_pages: type: integer data: type: array items: $ref: '#/components/schemas/EnumerateFiltersItem' ExposureMetricsResponse: description: Example response content: application/json: schema: type: object properties: total_assets: type: integer new_assets: type: integer unique_technologies: type: integer new_technologies: type: integer total_hosts: type: integer new_hosts: type: integer time_series: type: array items: $ref: '#/components/schemas/ExposuresTimeSeries' ScanExposureMetricsResponse: description: Example response content: application/json: schema: type: object properties: new_vulnerability: type: integer open_vulnerability: type: integer fixed_vulnerability: type: integer time_series: type: array items: $ref: '#/components/schemas/ScanExposuresTimeSeries' ScanRegressionRemediationMetricsResponse: description: Example response content: application/json: schema: type: object properties: regression_rate: type: integer avg_remediation_time: type: string regression_state: type: string total_fixed: type: integer total_count: type: integer severity_breakdown: $ref: '#/components/schemas/SeverityBreakdown' status_breakdown: $ref: '#/components/schemas/StatusBreakdown' time_series: type: array items: $ref: '#/components/schemas/ScanRegressionRemediationTimeSeries' GetAutomationsListResponse: description: Example response content: application/json: schema: type: object required: - message - automations properties: message: type: string automations: type: array items: $ref: '#/components/schemas/GetAutomationsListItem' GetAutomationIdResponse: description: Example response content: application/json: schema: type: object required: - message properties: message: type: string automation: $ref: '#/components/schemas/GetAutomationItem' AdminAutomationsResponse: description: Example response content: application/json: schema: type: object required: - message - automations properties: message: type: string automations: type: array items: $ref: '#/components/schemas/AdminAutomationsItem' BillingCycleResponse: description: Example response content: application/json: schema: type: object required: - cycles properties: cycles: type: array items: $ref: '#/components/schemas/BillingCycle' GetRemediationEfficiencyResponse: description: Example response content: application/json: schema: type: object required: - remediation_efficiency - remediation_state - data properties: remediation_efficiency: type: integer remediation_state: type: string data: type: array items: $ref: '#/components/schemas/RemediationEfficiencyData' VulnScoreMetricsResponse: description: Example response content: application/json: schema: type: object required: - security_score - security_state - open_vulnerability - total_scanned_assets - total_affected_assets - time_series properties: security_score: type: number format: double security_state: type: string open_vulnerability: $ref: '#/components/schemas/OpenVulnerabilityScoreMetrics' total_scanned_assets: type: integer total_affected_assets: type: integer time_series: type: array items: $ref: '#/components/schemas/VulnScoreMetricsTimeSeries' AssociatedDomainsResults: description: Associated domains response content: application/json: schema: $ref: '#/components/schemas/AssociatedDomainsResultSet' text/plain: schema: type: string description: Plain text list of domains when raw=true DomainSearchResults: description: Domain Search Results content: application/json: schema: type: object required: - count - results - total properties: count: type: integer results: type: array items: $ref: '#/components/schemas/DomainSearchItem' total: type: integer OrganizationSearchResults: description: Organization Search Results content: application/json: schema: type: object required: - count - results - total properties: count: type: integer results: type: array items: $ref: '#/components/schemas/OrganizationFullInfo' total: type: integer UpdateSharedTemplateResponse: description: Example response content: application/json: schema: type: object required: - message - result properties: message: type: string result: $ref: '#/components/schemas/SharedTemplateMetaData' GetSeverityConfigResponse: description: Example response content: application/json: schema: type: object required: - custom_severity_mappings properties: custom_severity_mappings: type: array items: $ref: '#/components/schemas/CustomSeverityMapping' PostSeverityConfigResponse: description: Example response content: application/json: schema: type: object required: - message - id properties: id: type: integer format: int64 message: type: string parameters: template_id: name: template_id in: query schema: type: string description: short uuid of requested template required: true user_name: name: user_name in: query required: true schema: type: string description: user name of logged in user requestBodies: DeleteAssetsRequest: content: application/json: schema: type: object required: - filters properties: filters: $ref: '#/components/schemas/AssetFilters' UpdateAssetLabelsRequest: content: application/json: schema: type: object required: - filters - labels properties: filters: $ref: '#/components/schemas/AssetFilters' labels: type: array items: type: string AssetIdLabelsRequest: content: application/json: schema: type: object required: - labels properties: labels: type: array items: type: string UpdateTemplateRequest: content: application/json: schema: type: object required: - template - template_id properties: template: type: string template_id: type: string prompt: type: string filename: type: string dir: type: string CreateTemplateRequest: content: application/json: schema: type: object properties: template: type: string GenerateTemplateRequest: content: application/json: schema: type: object required: - prompt properties: prompt: type: string retest: type: boolean disableAutoSave: type: boolean default: false images: type: array items: type: string RetestTemplateRequest: content: application/json: schema: type: object properties: template_encoded: type: string target: type: string template_path: type: string template_url: type: string template_id: type: string vuln_id: type: string ShareTemplateRequest: content: application/json: schema: type: object required: - template_id - share_type properties: template_id: type: string share_type: enum: - unlisted - organization - users ttl: type: string organizations: type: array items: type: string emails: type: array items: type: string TriggerUserScanRequest: content: application/json: schema: type: object properties: targets: type: array items: type: string templates: type: array items: type: string assets: type: array items: type: string private_templates: type: array items: $ref: '#/components/schemas/PrivateTemplates' name: type: string recommended: type: boolean all: type: boolean alerting_config_ids: type: array items: type: string scan_config_ids: type: array items: type: string reporting_config_ids: type: array items: type: string early_templates: type: array items: type: string exclude_targets: type: array items: type: string enumeration_ids: type: array items: $ref: '#/components/schemas/EnumerationIds' schedule_only: type: boolean disable_global_alert_config: type: boolean disable_global_report_config: type: boolean disable_global_scan_config: type: boolean socks5_proxy: type: string agent_id: type: string agent_tags: type: array items: type: string agent_networks: type: array items: type: string agent_behavior: enum: - distribute - mirror default: distribute automatic_scan: type: boolean scan_all_assets: type: boolean exclusions: type: array items: type: string description: >- Combined inclusion and exclusion patterns for scan scope. Exclusion patterns (e.g. `*.staging.company.com`) filter out matching targets. Inclusion patterns use a `+` prefix (e.g. `+prod-*.company.com`) to restrict scanning 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. asset_filters: $ref: '#/components/schemas/AssetFilters' SetScanScheduleRequest: content: application/json: schema: type: object required: - scan_id - scan_frequency properties: scan_id: type: string scan_frequency: $ref: '#/components/schemas/SchedulerFrequency' start_time: type: string format: time hourly_frequency: type: integer minimum: 1 maximum: 24 custom_weekdays: type: array description: |- 0-6 denoting Sunday-Saturday. It accepts an array of weekday items: type: integer minimum: 0 maximum: 6 SetEnumerationScheduleRequest: content: application/json: schema: type: object required: - enumeration_id - scan_frequency properties: enumeration_id: type: string scan_frequency: $ref: '#/components/schemas/SchedulerFrequency' start_time: type: string format: time hourly_frequency: type: integer minimum: 1 maximum: 24 custom_weekdays: type: array description: |- 0-6 denoting Sunday-Saturday. It accepts an array of weekday items: type: integer minimum: 0 maximum: 6 UpdateAssetRequest: content: application/json: schema: type: object properties: name: type: string required: - name UpdateScanRequest: content: application/json: schema: type: object properties: name: type: string required: - name PostFeedbackRequest: content: application/json: schema: type: object properties: feedback_text: type: string required: - feedback_text PatchUserProfile: content: application/json: schema: type: object required: - email properties: email: type: string ai_status: type: boolean scan_status: type: boolean static_scan: type: boolean neo_ai: type: boolean early_template: type: boolean max_team: type: integer read_only: type: boolean audit_log: type: boolean cloud_region: type: string full_port_scan: type: boolean is_leaks_enabled: type: boolean feature_flag: type: object properties: internal_scan: type: boolean CreateTeamRequest: content: application/json: schema: type: object properties: name: type: string required: - name AddTeamMemberRequest: content: application/json: schema: type: object properties: email: type: string required: - email DeleteTeamMemberRequest: content: application/json: schema: type: object properties: email: type: string required: - email InviteTeamMemberRequest: content: application/json: schema: type: object properties: invite_code: type: string required: - invite_code PatchTeamMemberRequest: content: application/json: schema: type: object properties: email: type: string role: type: string description: >- Team member role. Valid values are ADMIN, MEMBER, VIEWER, GUEST. required: - email SetDefaultTeamMembersRequest: content: application/json: schema: type: object properties: members: type: array items: type: object properties: email: type: string role: type: string enum: - ADMIN - MEMBER - VIEWER - GUEST required: - email - role required: - members DeleteDefaultTeamMemberRequest: content: application/json: schema: type: object properties: email: type: string description: Email of specific member to remove. Omit to remove all AdminAddTeamMemberRequest: content: application/json: schema: type: object properties: owner_email: type: string member_email: type: string required: - owner_email - member_email PatchScanVulnsRequest: content: application/json: schema: type: object required: - vuln_status properties: vuln_ids: type: array items: type: string vuln_status: $ref: '#/components/schemas/VulnStatusEnum' type: type: string scan_id: type: string severity: type: array items: type: string host: type: array items: type: string template: type: array items: type: string search: type: string PatchScanVulnsLabelsRequest: content: application/json: schema: type: object required: - ids properties: ids: type: array items: type: string type: type: string labels: type: array items: type: string VerifyConfigRequest: content: application/json: schema: type: object required: - config properties: config: type: string config_type: type: string oauth_config_id: type: string VerifyConfigContentsRequest: content: application/json: schema: type: object properties: config: type: string config_type: type: string provider: $ref: '#/components/schemas/VerifyConfigContentsRequestProvider' oauth_config_id: type: string DeleteVulnsRequest: content: application/json: schema: type: object properties: ids: type: array items: type: string type: type: string vuln_status: type: array items: type: string scan_id: type: string severity: type: array items: type: string host: type: array items: type: string template: type: array items: type: string search: type: string CreateContributeRequest: content: application/json: schema: type: object properties: email: type: string name: type: string template: type: string anonymous: type: boolean required: - template - anonymous ExcludeConfigRequest: content: application/json: schema: type: object required: - values - exclude_type properties: values: type: array items: type: string scan_ids: type: array items: type: string description: >- Optional scan IDs to scope these rules to specific scans. If not provided, rules apply globally. enumeration_ids: type: array items: type: string description: >- Optional enumeration IDs to scope these rules to specific enumerations. If not provided, rules apply globally. exclude_type: $ref: '#/components/schemas/ExcludeConfigRequestType' DeleteExcludedConfigRequest: content: application/json: schema: type: object required: - ids properties: ids: type: array items: type: integer format: int64 UpdateEnumeratedAssetRequest: content: application/json: schema: type: object properties: labels: type: array items: type: string name: type: string PatchTeamAdmin: content: application/json: schema: type: object required: - max_members properties: max_members: type: integer UsageRequest: content: application/json: schema: type: object required: - range properties: range: $ref: '#/components/schemas/UsageRangeEnum' startDate: type: string endDate: type: string AdminSetUsageLimit: content: application/json: schema: type: object required: - email properties: email: type: string format: email chaos_allowed_requests: type: number cvemap_allowed_requests: type: number asnmap_allpwed_requests: type: number AdminUsageRequest: content: application/json: schema: type: object required: - email - range properties: email: type: string format: email range: $ref: '#/components/schemas/UsageRangeEnum' startDate: type: string endDate: type: string AddAutomation: content: application/json: schema: type: object required: - name - status - event - scan_data properties: name: type: string status: type: string event: type: string scan_data: $ref: '#/components/schemas/AutomationScanData' enumeration_id: type: string UpdateAutomationRequest: content: application/json: schema: type: object properties: name: type: string status: type: string scan_data: $ref: '#/components/schemas/AutomationScanData' CreateAssetGroupRequest: content: application/json: schema: type: object required: - filters properties: filters: $ref: '#/components/schemas/AssetFilters' name: type: string UpdateAssetGroupRequest: content: application/json: schema: type: object required: - filters properties: filters: $ref: '#/components/schemas/AssetFilters' name: type: string AddCustomSeverityMappingRequest: content: application/json: schema: type: object required: - template_id - custom_severity properties: template_id: type: string custom_severity: type: string vuln_id: type: string DeleteCustomSeverityMappingRequest: content: application/json: schema: type: object required: - ids properties: ids: type: array items: type: integer format: int64 CreateAssetPolicyRequest: content: application/json: schema: type: object required: - policies properties: policies: $ref: '#/components/schemas/AssetFilters' name: type: string description: Display name for the policy. Auto-generated if not provided. policy_type: $ref: '#/components/schemas/AssetPolicyType' alerting_config_ids: type: array description: >- List of alerting configuration IDs (required when policy_type is 'alert') items: type: string labels: type: array description: >- List of labels to apply/remove (required when policy_type is 'set_label' or 'remove_label') items: type: string enumeration_ids: type: array description: >- Optional list of enumeration IDs to scope this policy to specific enumerations items: type: string apply_to_existing: type: boolean default: false description: >- When true, the policy action is applied to existing assets that match the conditions in addition to future assets. When false (default), the policy only applies to newly discovered assets. UpdateAssetPolicyRequest: content: application/json: schema: type: object properties: policies: $ref: '#/components/schemas/AssetFilters' name: type: string description: Display name for the policy enumeration_ids: type: array description: >- Optional list of enumeration IDs to scope this policy to specific enumerations items: type: string policy_type: $ref: '#/components/schemas/AssetPolicyType' labels: type: array description: >- List of labels to apply/remove (required when policy_type is set_label or remove_label). In append mode, merged with existing labels. In replace mode, replaces all labels. items: type: string alerting_config_ids: type: array description: >- List of alerting configuration IDs (required when policy_type is alert). In append mode, merged with existing configs. In replace mode, replaces all configs. items: type: string apply_to_existing: type: boolean description: >- When true, the policy action is applied to existing matching assets in addition to future assets. x-internal: false security: - X-API-Key: []