Palo Alto Networks Scan Reports API

Operations for retrieving detailed scan reports

OpenAPI Specification

palo-alto-networks-scan-reports-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  contact:
    email: support@paloaltonetworks.com
    name: Palo Alto Networks Technical Support
    url: https://support.paloaltonetworks.com
  title: Prisma AIRS AI Runtime API Intercept Scan Reports API
  description: "This Open API spec file represents the APIs available for the Prisma AIRS AI Runtime: API Intercept.\n \nThese APIs use the API key authentication and base URL.\n \nTo use the APIs, you must first activate and associate a deployment profile in Customer Support Portal for Prisma AIRS AI Runtime API intercept and then onboard the API intercept in Strata Cloud Manager.For licensing, onboarding, activation, and to obtain the API authentication key and profile name, refer to the Prisma AIRS AI Runtime API intercept [Administration guide](https://docs.paloaltonetworks.com/ai-runtime-security/activation-and-onboarding/ai-runtime-security-api-intercept-overview).\n\n This Open API spec file was created on June 04, 2024.\n\n© 2024 Palo Alto Networks, Inc. Palo Alto Networks is a registered trademark of Palo Alto Networks.A list of our trademarks can be found at https://www.paloaltonetworks.com/company/trademarks.html. All other marks mentioned herein may be trademarks of their respective companies.\n"
  license:
    name: MIT
    url: https://opensource.org/license/mit
  version: 0.0.0
servers:
- url: https://service.api.aisecurity.paloaltonetworks.com
  description: Prisma AIRS API service URL for US regions
- url: https://service-de.api.aisecurity.paloaltonetworks.com
  description: Prisma AIRS API service URL for EU (Germany) regions
- url: https://service-in.api.aisecurity.paloaltonetworks.com
  description: Prisma AIRS API service URL for India regions
- url: https://service-sg.api.aisecurity.paloaltonetworks.com
  description: Prisma AIRS API service URL for Singapore regions
tags:
- name: Scan Reports
  description: Operations for retrieving detailed scan reports
paths:
  /v1/scan/reports:
    get:
      summary: Retrieve Threat Scan Reports
      description: Get the threat scan reports for a given list of report_ids
      security:
      - x-pan-token: []
      tags:
      - Scan Reports
      operationId: GetThreatScanReports
      parameters:
      - name: report_ids
        in: query
        description: Report IDs for results.
        required: true
        allowEmptyValue: false
        schema:
          type: array
          items:
            type: string
          maximum: 5
        style: form
        explode: false
      responses:
        200:
          description: Successfully returned threat scan reports
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ThreatScanReportObjects'
              examples:
                ExampleAsyncReports:
                  $ref: '#/components/examples/ExampleMultipleThreatScanReports'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthenticated'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '405':
          $ref: '#/components/responses/MethodNotAllowed'
        '413':
          $ref: '#/components/responses/RequestTooLarge'
        '415':
          $ref: '#/components/responses/UnsupportedMediaType'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        default:
          description: error occurred
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
components:
  schemas:
    PiReportObject:
      type: object
      properties:
        verdict:
          type: string
          description: Detection service verdict such as "malicious" or "benign"
    CgReportObject:
      type: object
      properties:
        status:
          type: string
          description: Indicates the status of cg explanation such as  "completed" or "pending"
        explanation:
          type: string
          description: Indicates the the contextual grounding explanation given by the model
        category:
          type: string
          description: Indicates the predefined category of contextual grounding results
    CmdEntryObject:
      type: object
      properties:
        code_block:
          type: string
          description: Code block extracted from prompt or response content
        verdict:
          type: string
          description: Detection service verdict such as "malicious" or "benign"
    DlpReportObject:
      type: object
      properties:
        dlp_report_id:
          type: string
          description: Unique identifier for the DLP report
        dlp_profile_name:
          type: string
          description: DLP profile name used for the scan
        dlp_profile_id:
          type: string
          description: Unique identifier for the DLP profile used for the scan
        dlp_profile_version:
          type: integer
          format: int32
          description: Version of the DLP profile used for the scan
        data_pattern_rule1_verdict:
          type: string
          description: Indicates whether there was a content match for this rule such as "MATCHED" or "NOT MATCHED"
        data_pattern_rule2_verdict:
          type: string
          description: Indicates whether there was a content match for this rule such as "MATCHED" or "NOT MATCHED"
        data_pattern_detection_offsets:
          type: array
          description: Matched patterns and their byte locations
          items:
            $ref: '#/components/schemas/DlpPatternDetectionsObject'
    ThreatScanReportObjects:
      type: array
      items:
        $ref: '#/components/schemas/ThreatScanReportObject'
    CmdInjectReportObject:
      type: array
      items:
        $ref: '#/components/schemas/CmdEntryObject'
    TcReportObject:
      type: object
      properties:
        confidence:
          type: string
          description: Confidence level of the threat classification ("high" and "moderate")
        verdict:
          type: string
          description: Detection service verdict such as "malicious" or "benign"
        toxic_categories:
          type: array
          items:
            type: string
          description: Indicates the list of topics that is detected
    DetectionServiceResultObject:
      type: object
      properties:
        data_type:
          type: string
          description: Content type such as "prompt", "response" or "tool_event"
        detection_service:
          type: string
          description: Detection service name generating the results such as "urlf", "dlp", and "prompt injection"
        verdict:
          type: string
          description: Detection service verdict such as "malicious" or "benign"
        action:
          type: string
          description: The action is set to "block" or "allow" based on AI security profile used for scanning
        metadata:
          $ref: '#/components/schemas/DSResultMetadata'
        result_detail:
          $ref: '#/components/schemas/DSDetailResultObject'
    UrlFilterReportObject:
      type: array
      items:
        $ref: '#/components/schemas/UrlfEntryObject'
    Snippets:
      type: array
      maxItems: 10
      description: Up to 10 content snippets; each item must be <= 1000 characters.
      items:
        type: string
        maxLength: 1000
    DbsEntryObject:
      type: object
      properties:
        sub_type:
          type: string
          description: Database security sql query sub-type, such as "create", "read", "update", or "delete"
        verdict:
          type: string
          description: Detection service verdict such as "malicious" or "benign"
        action:
          type: string
          description: The action is set to "block" or "allow" based on AI security profile used for scanning
    MalwareReportObject:
      type: object
      properties:
        verdict:
          type: string
          description: Detection service verdict such as "malicious" or "benign"
    OffsetObject:
      type: array
      description: Array of start, end offsets
      items:
        type: array
        items:
          type: integer
    ThreatScanReportObject:
      type: object
      properties:
        source:
          type: string
          description: Source of the scan request (e.g., 'AI-Runtime-MCP-Server' or 'AI-Runtime-API')
        report_id:
          type: string
          description: Unique identifier for the scan report
        scan_id:
          type: string
          description: Unique identifier for the scan
        req_id:
          type: integer
          format: uint32
          description: Unique identifier of an individual element sent in the batch scan request
        transaction_id:
          type: string
          description: Unique identifier for the transaction
        session_id:
          type: string
          description: Unique identifier for tracking Sessions
        detection_results:
          type: array
          items:
            $ref: '#/components/schemas/DetectionServiceResultObject'
    DlpSnippetObject:
      type: object
      properties:
        meta:
          $ref: '#/components/schemas/DlpSnippetMeta'
        snippets:
          $ref: '#/components/schemas/Snippets'
      required:
      - meta
      - snippets
    TgReportObject:
      type: object
      properties:
        allowed_topic_list:
          type: string
          description: Indicates whether there was a content match for the topic allow list such as "MATCHED" or "NOT MATCHED"
        blocked_topic_list:
          type: string
          description: Indicates whether there was a content match for the topic block list such as "MATCHED" or "NOT MATCHED"
        allowedTopics:
          type: array
          items:
            type: string
          description: Indicates the list of allowed topics if there was a content match for the topic allow list
        blockedTopics:
          type: array
          items:
            type: string
          description: Indicates the list of blocked topics if there was a content match for the topic allow list
    AgentReportObject:
      type: object
      properties:
        model_verdict:
          type: string
          description: Detection service verdict such as "malicious" or "benign"
        agent_framework:
          type: string
          description: Agent builder framework used to build Agents such as "AWS_Agent_Builder", "Microsoft_copilot_studio" and others
        agent_patterns:
          type: array
          items:
            $ref: '#/components/schemas/AgentEntryObject'
    DSResultMetadata:
      type: object
      properties:
        ecosystem:
          type: string
          example: mcp
        method:
          type: string
          example: tools/call
        server_name:
          type: string
          example: MCP server
        tool_invoked:
          type: string
          example: get_file
        direction:
          type: string
          enum:
          - input
          - output
          description: Indicates the direction of data flow, either input to or output from a tool or service
    DlpSnippetMeta:
      type: object
      properties:
        data_pattern:
          description: pattern_id (DLP response snippets map key)
          type: string
        confidence_level:
          type: string
          enum:
          - low
          - medium
          - high
        data_pattern_type:
          description: proximity keyword (first one if any)
          type: string
        occurrence:
          type: integer
          format: int64
      required:
      - data_pattern
      - confidence_level
      - occurrence
    McEntryObject:
      type: object
      properties:
        file_type:
          type: string
          description: code file type, such as "javascript", "Python", "VBScript" and others
        code_sha256:
          type: string
          description: SHA256 of the code file that was analyzed, such as a code snippet containing the potentially malicious code
    Error:
      type: object
      properties:
        status_code:
          type: integer
          format: int32
          description: The HTTP status code for the error
        message:
          type: string
          description: The error message
      required:
      - status_code
      - message
    DSDetailResultObject:
      type: object
      properties:
        urlf_report:
          $ref: '#/components/schemas/UrlFilterReportObject'
        dlp_report:
          $ref: '#/components/schemas/DlpReportObject'
        dlp_snippets:
          $ref: '#/components/schemas/DlpSnippetObject'
        dbs_report:
          $ref: '#/components/schemas/DbsReportObject'
        dbs_snippets:
          $ref: '#/components/schemas/Snippets'
        tc_report:
          $ref: '#/components/schemas/TcReportObject'
        tc_snippets:
          $ref: '#/components/schemas/Snippets'
        mc_report:
          $ref: '#/components/schemas/McReportObject'
        agent_report:
          $ref: '#/components/schemas/AgentReportObject'
        topic_guardrails_report:
          $ref: '#/components/schemas/TgReportObject'
        cg_report:
          $ref: '#/components/schemas/CgReportObject'
        pi_report:
          $ref: '#/components/schemas/PiReportObject'
        pi_snippets:
          $ref: '#/components/schemas/Snippets'
    DbsReportObject:
      type: array
      items:
        $ref: '#/components/schemas/DbsEntryObject'
    UrlfEntryObject:
      type: object
      properties:
        url:
          type: string
          description: URL in the scan request
        risk_level:
          type: string
          description: Risk level associated with the URL, such as "high", "medium", or "low"
        action:
          type: string
          description: Action associated with the URL Category, such as "allow", "block", or "unknown"
        categories:
          type: array
          description: Categories associated with the URL
          items:
            type: string
    AgentEntryObject:
      type: object
      properties:
        category_type:
          type: string
          description: Agent threat category type, such as "tools misuse", "memory manipulation" and others
        verdict:
          type: string
          description: Verdict associated with the Agent threat Category, such as "malicious" or "benign"
    DlpPatternDetectionsObject:
      type: object
      properties:
        data_pattern_id:
          type: string
          description: Unique identifier for the data pattern matched
        version:
          type: integer
          description: Version of the data pattern matched
        name:
          type: string
          description: Name of the data pattern matched
        high_confidence_detections:
          $ref: '#/components/schemas/OffsetObject'
        medium_confidence_detections:
          $ref: '#/components/schemas/OffsetObject'
        low_confidence_detections:
          $ref: '#/components/schemas/OffsetObject'
    McReportObject:
      type: object
      properties:
        all_code_blocks:
          type: array
          items:
            type: string
            description: Code blocks extracted from prompt or response content
        code_analysis_by_type:
          type: array
          items:
            $ref: '#/components/schemas/McEntryObject'
        verdict:
          type: string
          description: Detection service verdict such as "malicious" or "benign"
        malware_script_report:
          $ref: '#/components/schemas/MalwareReportObject'
          description: Malware script scanning report details
        command_injection_report:
          $ref: '#/components/schemas/CmdInjectReportObject'
          description: Command injection scanning report details
  responses:
    Forbidden:
      description: Forbidden - Invalid API Key
      content:
        application/json:
          schema:
            type: object
            properties:
              error:
                type: object
                properties:
                  message:
                    type: string
                    example: Invalid API Key
    BadRequest:
      description: Bad Request - Request data is invalid or malformed
      content:
        application/json:
          schema:
            type: object
            properties:
              error:
                type: object
                properties:
                  message:
                    type: string
                    example: Request data is invalid or malformed
    MethodNotAllowed:
      description: Method Not Allowed - The method is not allowed
      content:
        application/json:
          schema:
            type: object
            properties:
              error:
                type: object
                properties:
                  message:
                    type: string
                    example: The method is not allowed
    NotFound:
      description: Not Found - Resource is not found
      content:
        application/json:
          schema:
            type: object
            properties:
              error:
                type: object
                properties:
                  message:
                    type: string
                    example: Resource is not found
    TooManyRequests:
      description: Too Many Requests - Request exceeds limit
      content:
        application/json:
          schema:
            type: object
            properties:
              error:
                type: object
                properties:
                  message:
                    type: string
                    example: Request exceeds limit
                  retry_after:
                    type: object
                    properties:
                      interval:
                        type: integer
                        example: 5
                      unit:
                        type: string
                        example: minute
    RequestTooLarge:
      description: Request Too Large - The request body is too large
      content:
        application/json:
          schema:
            type: object
            properties:
              error:
                type: object
                properties:
                  message:
                    type: string
                    example: The request body is too large
    UnsupportedMediaType:
      description: Unsupported Media Type - The media type is not supported
      content:
        application/json:
          schema:
            type: object
            properties:
              error:
                type: object
                properties:
                  message:
                    type: string
                    example: The media type is not supported
    Unauthenticated:
      description: Unauthenticated - Not Authenticated
      content:
        application/json:
          schema:
            type: object
            properties:
              error:
                type: object
                properties:
                  message:
                    type: string
                    example: Not Authenticated
  examples:
    ExampleMultipleThreatScanReports:
      summary: Example response with multiple threat scan report entries
      value:
      - detection_results:
        - action: allow
          data_type: prompt
          detection_service: malicious_code
          result_detail:
            mc_report:
              code_analysis_by_type: []
              verdict: benign
          verdict: benign
        - action: allow
          data_type: prompt
          detection_service: pi
          result_detail: {}
          verdict: benign
        - action: allow
          data_type: response
          detection_service: malicious_code
          result_detail:
            mc_report:
              code_analysis_by_type: []
              verdict: benign
          verdict: benign
        report_id: R46ea2f2b-0000-42e1-9972-bbc444628a26
        req_id: 1
        scan_id: 46ea2f2b-0000-42e1-9972-bbc444628a26
        transaction_id: '2882'
      - detection_results:
        - action: allow
          data_type: prompt
          detection_service: dlp
          result_detail:
            dlp_report:
              data_pattern_rule1_verdict: NOT_MATCHED
              data_pattern_rule2_verdict: ''
              dlp_profile_id: '11995043'
              dlp_profile_name: Sensitive Content
              dlp_report_id: 3550C248655A559664EF2C5A2F905D4E1C29DF04818616D52B2FD3884A86F3F3
          verdict: benign
        - action: allow
          data_type: prompt
          detection_service: pi
          result_detail: {}
          verdict: benign
        - action: allow
          data_type: prompt
          detection_service: tc
          result_detail:
            tc_report:
              confidence: ''
              verdict: benign
          verdict: benign
        - action: allow
          data_type: prompt
          detection_service: uf
          result_detail:
            urlf_report: []
          verdict: benign
        - action: allow
          data_type: response
          detection_service: dbs
          result_detail:
            dbs_report: []
          verdict: benign
        - action: allow
          data_type: response
          detection_service: dlp
          result_detail:
            dlp_report:
              data_pattern_rule1_verdict: NOT_MATCHED
              data_pattern_rule2_verdict: ''
              dlp_profile_id: '11995043'
              dlp_profile_name: Sensitive Content
              dlp_report_id: 1163C2B1618398358DE8DB8789C405AE87FECA33BECADF4BCE94780BD51C9A5C
          verdict: benign
        - action: block
          data_type: response
          detection_service: tc
          result_detail:
            tc_report:
              confidence: high
              verdict: malicious
          verdict: malicious
        - action: allow
          data_type: response
          detection_service: uf
          result_detail:
            urlf_report: []
          verdict: benign
        report_id: R46ea2f2b-0000-42e1-9972-bbc444628a26
        req_id: 2
        scan_id: 46ea2f2b-0000-42e1-9972-bbc444628a26
        transaction_id: '2082'
  securitySchemes:
    x-pan-token:
      description: API key token generated during [onboarding Prisma AIRS AI Runtime API intercept](https://docs.paloaltonetworks.com/ai-runtime-security/activation-and-onboarding/ai-runtime-security-api-intercept-overview/onboard-api-runtime-security-api-intercept-in-scm) in Strata Cloud Manager.
      in: header
      name: x-pan-token
      type: apiKey