Palo Alto Networks DLP API (Beta) API

Beta DLP APIs

OpenAPI Specification

palo-alto-networks-dlp-api-beta-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: public dlp DLP API (Beta) API
  version: 1.0.0
  description: DLP Public API
  license:
    name: MIT
    url: https://opensource.org/license/mit
  contact:
    email: support@paloaltonetworks.com
    name: Palo Alto Networks Technical Support
    url: https://support.paloaltonetworks.com
servers:
- url: https://api.dlp.paloaltonetworks.com
  description: Prod host
security:
- JWTAuth: []
tags:
- name: DLP API (Beta)
  description: Beta DLP APIs
paths:
  /v4/api/incidents:
    post:
      tags:
      - DLP API (Beta)
      summary: Retrieve initial incident records with token
      description: 'This API is used for the initial retrieval of incident details. It allows you to

        specify a time range, the desired page size, and an optional maximum number of rows

        to fetch. Upon successful execution, it returns a set of incident records and a

        pagination token that must be used for subsequent paginated requests via the

        GET /incidents API;

        '
      operationId: getIncidentInventory
      parameters:
      - name: include_data_profiles
        in: query
        description: Flag to include data profiles.
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/IncidentInventoryRequest'
            example:
              time_range: HOUR_24
        required: true
      responses:
        '200':
          description: Successful!
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/IncidentInventoryResponse'
              example:
                rows:
                - action: block
                  asset_name: test asset name
                  control_point: PRISMA_ACCESS
                  created_date: 1753121720515000
                  data_profile_id: '11995064'
                  destination: web-browsing
                  incident_id: 58feac56-e49d-43b3-ade3-c2d8e34ecd68
                  modified_date: 1753121720515739
                  policy_type: Network
                  report_id: '3082846756'
                  severity: '2'
                  source: palodlp11
                  source_region: US_STG
                  status: New
                  sub_policy_type: Data in Motion
                  url_domain: test url domain
                status: READY
                status_description: Query results are ready.
                query_token: test_token
                total_rows: 1
        '400':
          description: Bad Request
        '500':
          description: Internal Server Error
    get:
      tags:
      - DLP API (Beta)
      summary: Retrieve paginated incident records using token
      description: This API is used to fetch subsequent pages of incident records after an initial request to the POST /incidents API. It requires a token obtained from the initial POST request, along with page_size and offset to control pagination.
      operationId: getIncidentInventoryTableResults
      parameters:
      - name: token
        in: query
        description: The pagination token received from the initial POST /incidents API call. This token identifies the specific query for which results are being paginated.
        required: true
        schema:
          type: string
      - name: offset
        in: query
        description: The row offset from which to start fetching incident records. For the first paginated request, this would typically be page_size. For subsequent requests, it would be previous_offset + page_size
        required: true
        schema:
          type: string
      - name: pageSize
        in: query
        description: The maximum number of incident records to return in this paginated response. This value should be between 1 and 1000
        required: true
        schema:
          type: string
      - name: include_data_profiles
        in: query
        description: Flag to include data profiles
        schema:
          type: string
      responses:
        '200':
          description: Successful!
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/IncidentInventoryResponse'
              example:
                rows:
                - action: block
                  asset_name: test asset name
                  control_point: PRISMA_ACCESS
                  created_date: 1753121720515000
                  data_profile_id: '11995064'
                  destination: web-browsing
                  incident_id: 58feac56-e49d-43b3-ade3-c2d8e34ecd68
                  modified_date: 1753121720515739
                  policy_type: Network
                  report_id: '3082846756'
                  severity: '2'
                  source: palodlp11
                  source_region: US_STG
                  status: New
                  sub_policy_type: Data in Motion
                  url_domain: test url domain
                status: READY
                status_description: Query results are ready.
                query_token: test_token
                total_rows: 1
        '400':
          description: Bad Request
        '500':
          description: Internal Server Error
  /v4/api/incidents/download:
    post:
      tags:
      - DLP API (Beta)
      summary: Get signed download URL for incidents
      description: 'Generate a secure, time-limited URL (valid for 5 minutes) to directly download incident

        records as a CSV file. Define your desired dataset by providing a time_range, optional

        filter criteria, and maxRows.

        '
      operationId: exportIncidentsAndGetUrl
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ResultsDownloadRequest'
            example:
              time_range: HOUR_24
        required: true
      responses:
        '200':
          description: Successful!
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResultsDownloadResponse'
              example:
                download_url: https://storage.googleapis.com/casb-data-platform-prod-uim-inc-export/1494634703/incidents_20250721_205140_e3f288124dec432c8f94ed4f5b49b19b.csv.gz?test_signed_url
        '400':
          description: Bad Request
        '500':
          description: Internal Server Error
  /v4/api/incidents/management:
    post:
      tags:
      - DLP API (Beta)
      summary: Update key details for incidents
      description: 'Update key incident information like assignee details, resolution status, priority,

        tags, and notes. Provide the incident_ids for the incidents you want to change, along

        with an update_details object containing only the specific fields you wish to modify.

        '
      operationId: updateIncidents
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/IncidentUpdateRequest'
            example:
              incident_ids:
              - 5ba587fd-4b83-416d-998f-16d79c7da889
              - 58feac56-e49d-43b3-ade3-c2d8e34ecd68
              update_details:
                assignee_display_name: John Doe
                assignee_email: john.doe@example.com
                assignee_id: user123
                resolution_status: under_investigation
                priority: 2
                tag: security-review
                notes: Escalated for further investigation
                resolved_by: admin@example.com
        required: true
      responses:
        '200':
          description: Successful!
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/IncidentUpdateResults'
              example:
                success: 1
        '400':
          description: Bad Request
        '500':
          description: Internal Server Error
  /v4/api/incidents/{id}:
    get:
      tags:
      - DLP API (Beta)
      summary: Retrieve incident details by ID
      description: For a given incident id, return incident details.
      operationId: getIncidentDetails
      parameters:
      - name: id
        in: path
        description: Incident ID.
        required: true
        schema:
          type: string
      - name: includeSnippets
        in: query
        description: Include snippet details in the response.
        schema:
          type: boolean
          default: false
      responses:
        '200':
          description: Successful!
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/IncidentDetailResponse'
              example:
                rows:
                - id: 5ba587fd-4b83-416d-998f-16d79c7da889
                  tsg_id: '1016831479'
                  control_point: NGFW
                  created_date: 1752910252943000
                  modified_date: 1753137046114000
                  status: New
                  notes: test
                  severity: '5'
                  category: test
                  direction: upload
                  report_id: '229650498'
                  report_date: 1752910252937000
                  resolved_by: test
                  source: 188.188.188.10
                  destination: 185.125.188.57
                  url: test
                  priority: 1
                  action: block
                  asset_id: 5ba587fd-4b83-416d-998f-16d79c7da889
                  asset_name: UNKNOWN
                  asset_hash: test hash
                  asset_size: test
                  tag: test
                  asset_risk: 25
                  assigned_to: test
                  assignee_name: test
                  assignee_email: test
                  app_id: '109'
                  app_type: '0'
                  app_name: test
                  app_instance_id: test
                  app_tags:
                  - test1
                  - test2
                  data_profiles:
                  - id: '11995181'
                    name: AEL_Granular
                    version: test
                  data_patterns:
                  - id: 65779c793375232371f9886c
                    name: test
                    type: predefined
                    technique: regex
                    language: test
                    category_score: 0
                    high_confidence_frequency: 2
                    medium_confidence_frequency: 0
                    low_confidence_frequency: 4
                    sub_category_score: 0
                    total_detection_frequency: 4
                    total_strict_detection_frequency: 0
                    strict_detection_frequency: 0
                    detection_frequency: 4
                    weighted_frequency: 0
                    version: 1
                  peripheral_info:
                    group_id: ''
                    group_name: ''
                    id: test id
                    is_known: false
                    manufacturer_name: General
                    name: USB-4GB
                    product_id: '1000'
                    product_name: USB Flash Disk
                    serial_number: 0415090000013290
                    type: usb
                    vendor_id: 090C
                  policy:
                    policy_id: test
                    policy_type: network
                    policy_version: test
                  device_info:
                  - id: test
                    name: test
                    ip: 188.188.188.10
                    serial_number: 024401003837
                    loggedin_users:
                    - test
                  reason_for_action: test
                  endpoint_os_info:
                    dlp_client_version: test
                    gp_version: test
                    os_type: test
                    os_version: test
                  user_id: globaltestuser1
                  user_email: test
                  user_name: test
                  user_location: test
                  user_department: test
                  user_manager: test
                  exposure: test
                  exposure_details:
                    is_exposed_by_parent_folder: false
                    is_public_url: false
                    is_shared_url: false
                    is_sign_in_required: true
                    cloud_url: test cloud url
                    public_url: test public url
                status: READY
                status_description: Query results are ready.
                total_rows: 1
        '400':
          description: Bad Request
        '500':
          description: Internal Server Error
components:
  schemas:
    IncidentInventoryEntity:
      type: object
      properties:
        action:
          type: string
        asset_name:
          type: string
        assignee_email:
          type: string
        assignee_id:
          type: string
        assignee_name:
          type: string
        control_point:
          type: string
        created_date:
          type: integer
          format: int64
        data_profile_id:
          type: string
        destination:
          type: string
        incident_id:
          type: string
        modified_date:
          type: integer
          format: int64
        notes:
          type: string
        peripheral_name:
          type: string
        peripheral_type:
          type: string
        policy_type:
          type: string
        priority:
          type: integer
          format: int32
        report_id:
          type: string
        resolved_by:
          type: string
        severity:
          type: string
        source:
          type: string
        source_region:
          type: string
        status:
          type: string
        sub_policy_type:
          type: string
        tag:
          type: string
        url_domain:
          type: string
    DataProfile:
      type: object
      properties:
        id:
          type: string
        name:
          type: string
        version:
          type: string
    DataPattern:
      type: object
      properties:
        id:
          type: string
        name:
          type: string
        type:
          type: string
        technique:
          type: string
        language:
          type: string
        category_score:
          type: integer
          format: int32
        high_confidence_frequency:
          type: integer
          format: int32
        medium_confidence_frequency:
          type: integer
          format: int32
        low_confidence_frequency:
          type: integer
          format: int32
        sub_category_score:
          type: integer
          format: int32
        total_detection_frequency:
          type: integer
          format: int32
        total_strict_detection_frequency:
          type: integer
          format: int32
        strict_detection_frequency:
          type: integer
          format: int32
        detection_frequency:
          type: integer
          format: int32
        weighted_frequency:
          type: integer
          format: int32
        version:
          type: integer
          format: int32
    PeripheralInfo:
      type: object
      properties:
        group_id:
          type: string
        group_name:
          type: string
        id:
          type: string
        is_known:
          type: boolean
        manufacturer_name:
          type: string
        name:
          type: string
        product_id:
          type: string
        product_name:
          type: string
        serial_number:
          type: string
        type:
          type: string
        vendor_id:
          type: string
    IncidentUpdateDetails:
      type: object
      properties:
        notes:
          type: string
        assignee_id:
          type: string
        assignee_email:
          type: string
        assignee_display_name:
          type: string
        resolved_by:
          type: string
        resolution_status:
          type: string
        priority:
          type: integer
          format: int32
        tag:
          type: string
    EndpointOsInfo:
      type: object
      properties:
        dlp_client_version:
          type: string
        gp_version:
          type: string
        os_type:
          type: string
        os_version:
          type: string
    IncidentDetailEntity:
      type: object
      properties:
        id:
          type: string
        tsg_id:
          type: string
        control_point:
          type: string
        created_date:
          type: integer
          format: int64
        modified_date:
          type: integer
          format: int64
        status:
          type: string
        notes:
          type: string
        severity:
          type: string
        category:
          type: string
        direction:
          type: string
        report_id:
          type: string
        report_date:
          type: integer
          format: int64
        resolved_by:
          type: string
        source:
          type: string
        destination:
          type: string
        url:
          type: string
        priority:
          type: integer
          format: int32
        action:
          type: string
        asset_id:
          type: string
        asset_name:
          type: string
        asset_hash:
          type: string
        asset_size:
          type: string
        tag:
          type: string
        asset_risk:
          type: number
          format: double
        assigned_to:
          type: string
        assignee_name:
          type: string
        assignee_email:
          type: string
        app_id:
          type: string
        app_type:
          type: string
        app_name:
          type: string
        app_instance_id:
          type: string
        app_tags:
          type: array
          items:
            type: string
        data_profiles:
          type: array
          items:
            $ref: '#/components/schemas/DataProfile'
        data_patterns:
          type: array
          items:
            $ref: '#/components/schemas/DataPattern'
        peripheral_info:
          $ref: '#/components/schemas/PeripheralInfo'
        policy:
          $ref: '#/components/schemas/Policy'
        device_info:
          type: array
          items:
            $ref: '#/components/schemas/DeviceInfo'
        reason_for_action:
          type: string
        endpoint_os_info:
          $ref: '#/components/schemas/EndpointOsInfo'
        user_id:
          type: string
        user_email:
          type: string
        user_name:
          type: string
        user_location:
          type: string
        user_department:
          type: string
        user_manager:
          type: string
        exposure:
          type: string
        exposure_details:
          $ref: '#/components/schemas/ExposureDetails'
    ResultsDownloadResponse:
      type: object
      properties:
        download_url:
          type: string
    Policy:
      type: object
      properties:
        policy_id:
          type: string
        policy_type:
          type: string
        policy_version:
          type: string
    ErrorInfo:
      type: object
      properties:
        id:
          type: string
          minLength: 1
        error_message:
          type: string
          minLength: 1
        error_code:
          type: string
          minLength: 1
    IncidentDetailResponse:
      type: object
      properties:
        rows:
          type: array
          items:
            $ref: '#/components/schemas/IncidentDetailEntity'
        status:
          type: string
          enum:
          - READY
          - PENDING
        status_description:
          type: string
        query_token:
          type: string
    IncidentInventoryResponse:
      type: object
      properties:
        rows:
          type: array
          items:
            $ref: '#/components/schemas/IncidentInventoryEntity'
        status:
          type: string
          enum:
          - READY
          - PENDING
        status_description:
          type: string
        query_token:
          type: string
        total_rows:
          type: integer
          format: int64
    DeviceInfo:
      type: object
      properties:
        id:
          type: string
        name:
          type: string
        ip:
          type: string
        serial_number:
          type: string
        loggedin_users:
          type: array
          items:
            type: string
    IncidentUpdateRequest:
      type: object
      properties:
        incident_ids:
          type: array
          items:
            type: string
            format: uuid
          minItems: 1
        update_details:
          $ref: '#/components/schemas/IncidentUpdateDetails'
      required:
      - incident_ids
      - update_details
    IncidentInventoryRequest:
      type: object
      properties:
        filter:
          type: string
          description: "Filter expression string\n<br>Operators supported: =, in and AND\n<br>Pattern: {FilterName} = {value} or {FilterName} in ({value1}, {value2}, ...)\n<br>Supported FilterName values:\n- Action: Filter by action taken (e.g., 'block', 'allow')\n- ApplicationName: Filter by application name\n- Asset: Filter by asset name\n- AssigneeId: Filter by assignee user ID\n- AssigneeName: Filter by assignee display name\n- Channel: Filter by channel (e.g., 'PRISMA_ACCESS', 'NGFW')\n- DataPattern: Filter by detection types/data patterns (e.g., 'SSN', 'Credit Card')\n- DataProfile: Filter by data profile ID\n- Destination: Filter by destination\n- IncidentId: Filter by specific incident ID\n- Priority: Filter by priority level (numeric values 1-5)\n- ReportId: Filter by report ID\n- Severity: Filter by severity level\n        - 5 = Critical\n        - 4 = High\n        - 3 = Medium\n        - 2 = Low\n        - 1 = Informational\n- Source: Filter by source\n- Region: Filter by region (e.g., 'US', 'EU', 'UK', 'SG', 'IN', 'AU', 'CA', 'JP')\n- Status: Filter by incident status (e.g., 'New', 'open', 'under_investigation', 'closed')\n- UrlDomain: Filter by URL domain\n- Tag: Filter by incident tags\n\nExamples:\n- \"Tag = 'Needs Escalation'\"\n- \"Status in ('New','open','under_investigation')\"\n- \"UrlDomain = 'dlptest.com'\"\n- \"Channel = 'PRISMA_ACCESS' AND DataProfile in ('11995030','11995033')\"\n"
          example: Tag = 'Needs Escalation'
          minLength: 1
        time_range:
          type: string
          enum:
          - HOUR_1
          - HOUR_3
          - HOUR_24
          - DAY_7
          - DAY_30
          - DAY_90
          - CUSTOM
        start_time:
          type: integer
          format: int64
          writeOnly: true
          description: Required when time_range is CUSTOM. Start time as Unix timestamp in milliseconds(ms).
        end_time:
          type: integer
          format: int64
          writeOnly: true
          description: Required when time_range is CUSTOM. Start time as Unix timestamp in milliseconds(ms).
        columns:
          type: array
          items:
            type: string
          writeOnly: true
          description: Optional columns to include in the response
        sort_by:
          type: string
          writeOnly: true
          description: Optional field to sort by
        sort_order:
          type: string
          writeOnly: true
          description: Optional sort order (asc/desc)
        page_size:
          type: integer
          format: int32
          writeOnly: true
          description: Size for pagination
        max_rows:
          type: integer
          format: int32
          writeOnly: true
          example: 10000
          description: Maximum number of rows to return (optional, e.g., 1000)
      required:
      - time_range
    IncidentUpdateResults:
      type: object
      properties:
        success:
          type: integer
          format: int32
        error:
          $ref: '#/components/schemas/ErrorInfo'
    ResultsDownloadRequest:
      type: object
      properties:
        filter:
          type: string
          description: "Filter expression string\n<br>Operators supported: =, in and AND\n<br>Pattern: {FilterName} = {value} or {FilterName} in ({value1}, {value2}, ...)\n<br>Supported FilterName values:\n- Action: Filter by action taken (e.g., 'block', 'allow')\n- ApplicationName: Filter by application name\n- Asset: Filter by asset name\n- AssigneeId: Filter by assignee user ID\n- AssigneeName: Filter by assignee display name\n- Channel: Filter by channel (e.g., 'PRISMA_ACCESS', 'NGFW')\n- DataPattern: Filter by detection types/data patterns (e.g., 'SSN', 'Credit Card')\n- DataProfile: Filter by data profile ID\n- Destination: Filter by destination\n- IncidentId: Filter by specific incident ID\n- Priority: Filter by priority level (numeric values 1-5)\n- ReportId: Filter by report ID\n- Severity: Filter by severity level\n        - 5 = Critical\n        - 4 = High\n        - 3 = Medium\n        - 2 = Low\n        - 1 = Informational\n- Source: Filter by source\n- Region: Filter by region (e.g., 'US', 'EU', 'UK', 'SG', 'IN', 'AU', 'CA', 'JP')\n- Status: Filter by incident status (e.g., 'New', 'open', 'under_investigation', 'closed')\n- UrlDomain: Filter by URL domain\n- Tag: Filter by incident tags\n\nExamples:\n- \"Tag = 'Needs Escalation'\"\n- \"Status in ('New','open','under_investigation')\"\n- \"UrlDomain = 'dlptest.com'\"\n- \"Channel = 'PRISMA_ACCESS' AND DataProfile in ('11995030','11995033')\"\n"
          example: Tag = 'Needs Escalation'
        time_range:
          type: string
          enum:
          - HOUR_1
          - HOUR_3
          - HOUR_24
          - DAY_7
          - DAY_30
          - DAY_90
          - CUSTOM
        start_time:
          type: integer
          format: int64
          writeOnly: true
          description: Required when time_range is CUSTOM. Start time as Unix timestamp in milliseconds(ms).
        end_time:
          type: integer
          format: int64
          writeOnly: true
          description: Required when time_range is CUSTOM. End time as Unix timestamp in milliseconds(ms).
        columns:
          type: array
          items:
            type: string
          writeOnly: true
          description: Optional columns to include in the response
        sort_by:
          type: string
          writeOnly: true
          description: Optional field to sort by
        sort_order:
          type: string
          writeOnly: true
          description: Optional sort order (asc/desc)
        max_rows:
          type: integer
          format: int32
          writeOnly: true
          example: 10000
          description: Maximum number of rows to return (optional, e.g., 1000)
        token:
          type: string
      required:
      - time_range
    ExposureDetails:
      type: object
      properties:
        is_exposed_by_parent_folder:
          type: boolean
        is_public_url:
          type: boolean
        is_shared_url:
          type: boolean
        is_sign_in_required:
          type: boolean
        cloud_url:
          type: string
        public_url:
          type: string
  securitySchemes:
    JWTAuth:
      scheme: bearer
      type: http