watchTowr Findings API

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

Operations 6

GET /api/client/findings/list List all findings #
GET /api/client/findings/show/{id} Show the details of a finding #
GET /api/client/findings/statuses List available finding statuses #
GET /api/client/findings/export/{id} Export a finding as PDF #
POST /api/client/findings/retest/{finding_id} Start a retest of a specific finding #
POST /api/client/findings/status/{id} Update the status of a finding #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/watchtowr-findings-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

watchtowr-findings-api-openapi.yml Raw ↑
openapi: 3.2.0
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:
    NotFound:
      type: object
      properties:
        message:
          type: string
          example: Resource not found.
    UnprocessableContent:
      type: object
      properties:
        message:
          type: string
        errors:
          type: object
    ForbiddenResponse:
      type: object
      properties:
        message:
          type: string
          example: This action is unauthorized.
    Unauthorized:
      type: object
      properties:
        message:
          type: string
          example: Unauthenticated.
  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.