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
  /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/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/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/{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/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/{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/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/apikey/rotate:
    post:
      summary: Rotate API Key
      tags:
        - users
      operationId: post-v1-user-apikey-rotate
      responses:
        '200':
          $ref: '#/components/responses/PostApiKeyRotateResponse'
        '400':
          $ref: '#/components/responses/MessageResponse'
        '401':
          $ref: '#/components/responses/MessageResponse'
        '404':
          $ref: '#/components/responses/MessageResponse'
        '500':
          $ref: '#/components/responses/MessageResponse'
        default:
          $ref: '#/components/responses/ErrorResponse'
      security:
        - X-API-Key: []
      description: Rotate user api-key
  /v1/template/public:
    get:
      summary: Get Public Template List
      tags:
        - templates
      responses:
        '200':
          $ref: '#/components/responses/GetPublicTemplateList'
        '400':
          $ref: '#/components/responses/MessageResponse'
        '500':
          $ref: '#/components/responses/MessageResponse'
        default:
          $ref: '#/components/responses/ErrorResponse'
      operationId: get-v1-template-public
      description: Get public-template list
      parameters:
        - schema:
            type: string
          in: 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/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/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/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/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/{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/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}/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:
            type: integer
            minimum: 1
          in: query
          name: not_seen_for_days
          description: >-
            Return assets that haven't been seen in the last N days. An asset is only included if a scan that covers it has run during that period without rediscovering it, so assets that simply haven't been rescanned recently are not matched.
        - 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/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/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/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/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/{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/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/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}/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/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:
            type: integer
            minimum: 1
          in: query
          name: not_seen_for_days
          description: >-
            Return assets that haven't been seen in the last N days. An asset is only included if a scan that covers it has run during that period without rediscovering it, so assets that simply haven't been rescanned recently are not matched.
        - 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/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/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/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/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
  /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/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'
  /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
  /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/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/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)
        - schema:
            type: integer
            minimum: 1
          in: query
          name: not_seen_for_days
          description: >-
            Return assets that haven't been seen in the last N days. An asset is only included if a scan that covers it has run during that period without rediscovering it, so assets that simply haven't been rescanned recently are not matched.
      security:
        - X-API-Key: []
      description: Get enumeration content by enumerate_id

  /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
            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: []
    parameters: []
  /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
          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)
        - schema:
            type: integer
            minimum: 1
          in: query
          name: not_seen_for_days
          description: >-
            Return assets that haven't been seen in the last N days. An asset is only included if a scan that covers it has run during that period without rediscovering it, so assets that simply haven't been rescanned recently are not matched.
      security:
        - X-API-Key: []
      description: Get All enumeration content
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
        not_seen_for_days:
          type: integer
          minimum: 1
          description: >-
            Return assets that haven't been seen in the last N days. An asset is only included if a scan that covers it has run during that period without rediscovering it, so assets that simply haven't been rescanned recently are not matched.
    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:
        # common scan|enumeration fields
        targets:
          type: array
          items:
            type: string
        # Scan fields
        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
        # Enumeration fields
        enrichment_id:
          type: string
        enumeration_configuration:
          type: string
          format: byte
        # chunk fields
        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:
              - message
              - data
            properties:
              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: []
