ProjectDiscovery results API

The results API from ProjectDiscovery — 4 operation(s) for results.

OpenAPI Specification

projectdiscovery-results-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: PDCP Asset 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/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
          default: unknown,low,medium,high,critical
        in: query
        name: severity
        description: string separated by comma e.g. info,high
      - schema:
          type: string
        in: query
        name: search
        description: search term
      - schema:
          type: string
        in: query
        name: host
        description: comma separated host e.g. hosts=https://example.com,https://x.com
      - in: query
        name: domain
        schema:
          type: string
        description: comma separated domain names e.g-> domain=domain1.com,domain2.com
      - in: query
        name: port
        schema:
          type: string
        description: comma separated ports e.g. ports=80,443
      - schema:
          type: string
        in: query
        name: templates
        description: comma separated templates e.g. templates=tech-detect,azure-takeover
      - schema:
          type: string
        in: query
        name: time
        description: filter by time ( last_day, last_week, last_month )
      - schema:
          type: string
        in: query
        name: vuln_status
        description: comma separated vuln_status e.g vuln_status=open,fixed
      - schema:
          type: string
        in: query
        name: tags
        description: comma separated tags e.g tags=xss,cve
      - schema:
          type: string
        in: query
        name: sort_asc
        description: comma separated ascending sorting e.g sort_asc=created_at,severity
      - schema:
          type: string
        in: query
        name: sort_desc
        description: comma separated descending sorting e.g sort_desc=created_at,severity
      - schema:
          type: boolean
        in: query
        name: is_ticket
        description: Return the records that have issue trackers
      - in: query
        name: labels
        schema:
          type: string
        description: filter by comma separated labels e.g labels=p1,p2
      - in: query
        name: category
        schema:
          type: string
        description: filter by comma separated categories e.g category=cve,xss
      - in: query
        name: is_regression
        schema:
          type: boolean
        description: filter by is_regression
      - in: query
        name: is_internal
        schema:
          type: boolean
        description: filter by is_internal (internal vs external hosts)
      - schema:
          type: boolean
        in: query
        name: asset_metadata
        description: Asset details for the vulnerability
      - schema:
          type: string
        in: header
        name: X-Team-Id
        description: 'Retrieve the Team ID from: https://cloud.projectdiscovery.io/settings/team'
      security:
      - X-API-Key: []
components:
  schemas:
    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
    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
    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
    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
    VulnIssueTrackerItem:
      title: VulnIssueTrackerItem
      type: object
      properties:
        id:
          type: string
        url:
          type: string
    EnumerationSourceValue:
      type: object
      required:
      - source
      - metadata
      properties:
        source:
          type: string
        metadata:
          type: object
          additionalProperties:
            type: string
    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
    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
  responses:
    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
    GetVulnChangelogsResponse:
      description: Example response
      content:
        application/json:
          schema:
            type: object
            required:
            - data
            properties:
              data:
                type: array
                items:
                  $ref: '#/components/schemas/VulnerabilityChangelogs'
    GetScansVulnIdResponse:
      description: /scans/vuln/:vuln_id
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/VulnerabilityResultsOld'
    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
  securitySchemes:
    X-API-Key:
      name: X-API-Key
      type: apiKey
      in: header
x-internal: false