ProjectDiscovery template/v2 API

The template/v2 API from ProjectDiscovery — 1 operation(s) for template/v2.

OpenAPI Specification

projectdiscovery-template-v2-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: PDCP Asset template/v2 API
  version: '1.0'
  summary: ProjectDiscovery Cloud Platform
  description: For more details, checkout https://docs.projectdiscovery.io/api-reference/editor/scan
servers:
- url: https://api.projectdiscovery.io
  description: Production
- url: https://api.dev.projectdiscovery.io
  description: Development
- url: http://localhost:8085
  description: Localhost
security:
- X-API-Key: []
tags:
- name: template/v2
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
components:
  schemas:
    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
    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'
    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
    StatBuckets:
      title: StatBuckets
      type: object
      properties:
        buckets:
          type: object
          additionalProperties:
            type: integer
        missing:
          type: integer
        other:
          type: integer
        total:
          type: integer
    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
  responses:
    MessageResponse:
      description: Example response
      content:
        application/json:
          schema:
            type: object
            required:
            - message
            properties:
              message:
                type: string
  securitySchemes:
    X-API-Key:
      name: X-API-Key
      type: apiKey
      in: header
x-internal: false