watchTowr Findings API

The Findings API from watchTowr — 6 operation(s) for findings.

OpenAPI Specification

watchtowr-findings-api-openapi.yml Raw ↑
openapi: 3.0.3
info:
  title: watchTowr Platform Client Activity Log Findings API
  description: 'The watchTowr Platform Client API provides read and write access to your external attack surface managed by the watchTowr Preemptive Exposure Management platform: discovered assets (domains, subdomains, IP addresses and ranges, ports, containers, cloud storage, mobile applications, SaaS platforms and source code repositories), security findings, hunts, certificates, business units, points of interest, service listings, suspicious domains and the activity log. Data is retrieved over HTTPS using paginated list endpoints and authenticated with a per-tenant API bearer token. Reconstructed by API Evangelist from the official watchtowr/watchtowr-api-sdk (OpenAPI Generator) Python client.'
  version: '1.0'
  contact:
    name: watchTowr
    url: https://watchtowr.com
servers:
- url: https://{tenant}.{region}.watchtowr.io
  description: Per-tenant watchTowr Platform instance
  variables:
    tenant:
      default: your-tenant
      description: Your watchTowr tenant name
    region:
      default: your-region
      description: Your watchTowr region
security:
- bearerAuth: []
tags:
- name: Findings
paths:
  /api/client/findings/list:
    get:
      tags:
      - Findings
      summary: List all findings
      operationId: get_list_findings
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                type: object
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Unauthorized'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenResponse'
      parameters:
      - name: page
        in: query
        required: false
        description: Pagination page. The default value is 1.
        schema:
          type: number
      - name: page_size
        in: query
        required: false
        description: Pagination size. The default value is 10 and the maximum is 30.
        schema:
          type: number
  /api/client/findings/show/{id}:
    get:
      tags:
      - Findings
      summary: Show the details of a finding
      operationId: get_finding_details
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                type: object
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Unauthorized'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenResponse'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NotFound'
      parameters:
      - name: id
        in: path
        required: true
        description: Identifier of the id.
        schema:
          type: string
  /api/client/findings/statuses:
    get:
      tags:
      - Findings
      summary: List available finding statuses
      operationId: get_available_finding_statuses
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                type: object
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Unauthorized'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenResponse'
  /api/client/findings/export/{id}:
    get:
      tags:
      - Findings
      summary: Export a finding as PDF
      operationId: export_pdf_for_finding
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                type: object
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Unauthorized'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenResponse'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NotFound'
      parameters:
      - name: id
        in: path
        required: true
        description: Identifier of the id.
        schema:
          type: string
  /api/client/findings/retest/{finding_id}:
    post:
      tags:
      - Findings
      summary: Start a retest of a specific finding
      operationId: start_specific_finding_retest
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                type: object
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Unauthorized'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenResponse'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NotFound'
        '422':
          description: Unprocessable Content
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnprocessableContent'
      parameters:
      - name: finding_id
        in: path
        required: true
        description: Identifier of the finding_id.
        schema:
          type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
  /api/client/findings/status/{id}:
    post:
      tags:
      - Findings
      summary: Update the status of a finding
      operationId: update_finding_status
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                type: object
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Unauthorized'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenResponse'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NotFound'
        '422':
          description: Unprocessable Content
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnprocessableContent'
      parameters:
      - name: id
        in: path
        required: true
        description: Identifier of the id.
        schema:
          type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
components:
  schemas:
    Unauthorized:
      type: object
      properties:
        message:
          type: string
          example: Unauthenticated.
    UnprocessableContent:
      type: object
      properties:
        message:
          type: string
        errors:
          type: object
    NotFound:
      type: object
      properties:
        message:
          type: string
          example: Resource not found.
    ForbiddenResponse:
      type: object
      properties:
        message:
          type: string
          example: This action is unauthorized.
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: API key issued from the watchTowr Platform dashboard (Settings -> API Management / Integrations -> Client API), sent as a Bearer token.