openapi: 3.1.0 info: title: PDCP agents results 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 security: - X-API-Key: [] tags: - name: results paths: /v1/scans/vuln/{vuln_id}: parameters: - schema: type: string name: vuln_id in: path required: true description: vulnerability 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' /v1/scans/result/{scanId}: parameters: - schema: type: string name: scanId in: path required: true description: scan specific results (by 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' /v1/scans/vuln/{vuln_id}/changelogs: parameters: - schema: type: string name: vuln_id in: path required: true description: vulnerability ID 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' /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: parameters: [] 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: [] /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 components: schemas: EnumerationContentTechnologyDetails: title: EnumerationContentTechnologyDetails type: object properties: description: type: string website: type: string icon: type: string categories: type: array items: type: string 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 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 EnumerationSourceValue: type: object required: - source - metadata properties: source: type: string metadata: type: object additionalProperties: type: string 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 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 FiltersItem: title: FilterItem type: object properties: value: type: string name: type: string severity: type: string count: type: integer required: - value - count 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 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 VulnIssueTrackerItem: title: VulnIssueTrackerItem type: object properties: id: type: string url: type: string responses: GetVulnChangelogsResponse: description: Example response content: application/json: schema: type: object required: - data properties: data: type: array items: $ref: '#/components/schemas/VulnerabilityChangelogs' 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 GetScanResultStatsResponse: description: Example response content: application/json: schema: type: object properties: message: type: string stats: $ref: '#/components/schemas/ScanStats' 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 GetScansVulnIdResponse: description: /scans/vuln/:vuln_id content: application/json: schema: $ref: '#/components/schemas/VulnerabilityResultsOld' 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 securitySchemes: X-API-Key: name: X-API-Key type: apiKey in: header x-internal: false