NinjaOne Vulnerability Management API

Vulnerability Management

Operations 3

GET /v2/vulnerability/scan-groups Fetch all Scan Groups #
GET /v2/vulnerability/scan-groups/{scan-group-id} Fetch Scan Group #
POST /v2/vulnerability/scan-groups/{scan-group-id}/upload Upload CSV #

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/ninjaone-vulnerability-management-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

ninjaone-vulnerability-management-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: NinjaOne Public API 2.0 Asset Tags Vulnerability Management API
  description: NinjaOne Public API documentation.
  contact:
    email: api@ninjarmm.com
  version: 2.0.9-draft
servers:
- url: https://app.ninjarmm.com/v2
  description: Base URL declared by the provider in apis.yml (roadmap#122).
security:
- oauth2:
  - monitoring
  - management
  - control
- sessionKey:
  - monitoring
  - management
  - control
tags:
- name: Vulnerability Management
  description: Vulnerability Management
paths:
  /v2/vulnerability/scan-groups:
    get:
      tags:
      - Vulnerability Management
      summary: Fetch all Scan Groups
      description: Fetches all Scan Groups.
      operationId: fetchAllScanGroups
      responses:
        '200':
          description: Scan Groups were found successfully.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/PublicScanGroup'
  /v2/vulnerability/scan-groups/{scan-group-id}:
    get:
      tags:
      - Vulnerability Management
      summary: Fetch Scan Group
      description: Fetches a single Scan Group by ID.
      operationId: fetchScanGroupById
      parameters:
      - name: scan-group-id
        in: path
        description: Unique ID of the scan group to upload CSV to
        required: true
        schema:
          type: integer
          format: int64
      responses:
        '200':
          description: Scan Group was found successfully.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PublicScanGroup'
        '404':
          description: The Scan group was not found by the given scan-group-id.
  /v2/vulnerability/scan-groups/{scan-group-id}/upload:
    post:
      tags:
      - Vulnerability Management
      summary: Upload CSV
      description: "Upload CSV to an existing scan group. The uploaded CSV must contain the columns defined in the \nscan group which map to the Ninja machine identifier (hostname, IP address, or MAC address) and the CVE ID."
      operationId: updateScanGroup
      parameters:
      - name: scan-group-id
        in: path
        description: Unique ID of the scan group to upload CSV to
        required: true
        schema:
          type: integer
          format: int64
      requestBody:
        description: Multi-part form data which contains the CSV file to upload
        content:
          multipart/form-data:
            schema:
              type: object
            encoding:
              csv:
                contentType: text/csv
      responses:
        '200':
          description: Upload was accepted and is being processed
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PublicScanGroup'
        '404':
          description: Scan group was not found by the given scan-group-id
components:
  schemas:
    PublicScanGroup:
      type: object
      properties:
        id:
          type: integer
          format: int64
        groupName:
          type: string
        fileName:
          type: string
        status:
          type: string
          enum:
          - COMPLETE
          - IN_PROGRESS
          - FAILED
        vendor:
          type: string
        thirdPartyApiTile:
          type: string
        deviceIdHeader:
          type: string
        deviceInternalMapping:
          type: string
        cveIdHeader:
          type: string
        lastFileUploadDate:
          type: string
        recordsProcessed:
          type: integer
          format: int32
  securitySchemes:
    oauth2:
      type: http
      scheme: bearer
      bearerFormat: bearer
    sessionKey:
      type: apiKey
      name: sessionKey
      in: cookie