NinjaOne
Visualize NinjaOne Users, Devices, Policies, Alerts, and monitor changes through queries and alerts.
- Installation
- Authorization
- Data Model
- Types
- Release Notes
Installation
Requirements
- A NinjaOne Client ID and Client Secret generated from a client application in your NinjaOne account. Only a NinjaOne system administrator can configure OAuth tokens and create the client application.
- The client application needs the Monitoring scope. This integration is read-only, and Monitoring grants read-only access to monitoring data and organization structure, which is sufficient for every endpoint it calls.
- You must have permission in JupiterOne to install new integrations.
Configuration in NinjaOne
Create a client application and generate a Client ID and Client Secret
- In the NinjaOne portal, go to Administration > Apps > API.
- Select the Client app IDs tab.
- Click Add client app.
- Choose an Application Platform that offers the Client credentials grant type, such as API Services (machine-to-machine) or Web (PHP, Java, .NET Core, etc.).
- Provide a Name for the client application.
- Under Scopes, select Monitoring.
- Under Allowed Grant Types, select Client credentials and
Refresh token. The integration's token request includes the
offline_accessscope along withmonitoring. - Click Save.
- Copy the Client Secret. It is shown only once and disappears when you close the window.
- Copy the Client ID. You will need both values when you configure the integration in JupiterOne.
Only system administrators may configure OAuth tokens for the NinjaOne Public API. See NinjaOne's OAuth token configuration guide for details.
Configuration in JupiterOne
- From the top navigation of the J1 Search homepage, select Integrations.
- Search for NinjaOne and select it.
- Click Add Instance and configure the following settings:
- Enter the Account Name by which you'd like to identify this NinjaOne
instance in JupiterOne. Ingested entities will have this value stored in
tag.AccountNamewhen Tag with Account Name is checked. - Enter a Description that will further assist your team when identifying the integration instance.
- Select a Polling Interval that you feel is sufficient for your monitoring
needs. You may leave this as
DISABLEDand manually execute the integration. - Select the NinjaOne Server URL for your region. This defaults to the US
region (
https://app.ninjarmm.com). The available regions are US, US2, EU, Oceania, and Canada. - Enter the NinjaOne Client ID generated in your NinjaOne client application.
- Enter the NinjaOne Client Secret generated in your NinjaOne client application.
- (Optional) Enter a Custom Fields Allow List: a comma-separated list of
NinjaOne custom field names to ingest onto
ninjaone_deviceentities ascustomField.<name>properties (for example,Browser Extensions,Asset Tag). Use each field's name as configured in NinjaOne. Leave this empty to skip custom field ingestion. Each field you list must have its API permission set to at least Read Only in its NinjaOne custom field permission settings, otherwise NinjaOne does not return its value over the API.
- Click Create Configuration once all values are provided.
Next steps
Now that your integration instance has been configured, it will begin running on the polling interval you provided, populating data within JupiterOne. Continue on to our Instance management guide to learn more about working with and editing integration instances.
OAuth Scopes
OAuth scopes that must be granted to the application or service principal.
Show OAuth Scopes (2)
monitoringoffline_access
Endpoints
API endpoints that the integration makes requests to.
Show Endpoints (7)
GET /v2/alertsGET /v2/device/{deviceId}/volumesGET /v2/devices-detailedGET /v2/policiesGET /v2/queries/custom-fieldsGET /v2/queries/softwareGET /v2/users
Documentation Links
Links to provider documentation relevant to setup and configuration.
Show Documentation Links (1)
Per-Step Breakdown
Detailed authorization requirements for each ingestion step.
Show all steps (4)
| Step | OAuth Scopes | Endpoints |
|---|---|---|
| Fetch NinjaOne Devices | monitoring, offline_access | GET /v2/devices-detailed, GET /v2/device/{deviceId}/volumes, GET /v2/queries/custom-fields |
| Fetch NinjaOne Incidents | monitoring, offline_access | GET /v2/alerts |
| Fetch NinjaOne Software | monitoring, offline_access | GET /v2/queries/software |
| Fetch NinjaOne Users | monitoring, offline_access | GET /v2/users |
Entities
The following entities are created:
| Resources | Entity _type | Entity _class |
|---|---|---|
| Account | ninjaone_account | Account |
| Application | ninjaone_application | Application |
| Device | ninjaone_device | Device |
| Incident | ninjaone_alert | Alert |
| Policy | ninjaone_controlpolicy | ControlPolicy |
| User | ninjaone_user | User |
Relationships
The following relationships are created:
Source Entity _type | Relationship _class | Target Entity _type |
|---|---|---|
ninjaone_account | OWNS | ninjaone_device |
ninjaone_account | HAS | ninjaone_application |
ninjaone_controlpolicy | ENFORCES | ninjaone_device |
ninjaone_device | HAS | ninjaone_alert |
ninjaone_device | INSTALLED | ninjaone_application |
ninjaone_user | OWNS | ninjaone_device |
Ninjaone Account
ninjaone_account inherits from Account
| Property | Type | Description | Specifications |
|---|---|---|---|
_key * | string | ||
mfaEnabled * | boolean | ||
name * | string |
Ninjaone Alert
ninjaone_alert inherits from Alert
| Property | Type | Description | Specifications |
|---|---|---|---|
_key * | string | ||
deviceId * | number | ||
message * | string | ||
name * | string | ||
sourceConfigUid * | string | ||
sourceName * | string | ||
sourceType | string | ||
subject | string | ||
ticketTemplateId | number | ||
userId | number |
Ninjaone Application
ninjaone_application inherits from Application
| Property | Type | Description | Specifications |
|---|---|---|---|
productCode * | string | null | ||
publisher * | string | null | ||
version * | string | null |
Ninjaone Controlpolicy
ninjaone_controlpolicy inherits from ControlPolicy
| Property | Type | Description | Specifications |
|---|---|---|---|
_key * | string | ||
description | string | ||
displayName * | string | ||
name * | string | ||
nodeClass * | string | ||
nodeClassDefault * | boolean | ||
parentPolicyId | number | ||
tags | array of strings |
Ninjaone Device
ninjaone_device inherits from Device
| Property | Type | Description | Specifications |
|---|---|---|---|
approvalStatus * | string | ||
biosSerialNumber | string | ||
bitLockerConversionStatus | string | Any of: FULLY_DECRYPTEDFULLY_ENCRYPTEDENCRYPTION_IN_PROGRESSDECRYPTION_IN_PROGRESSENCRYPTION_PAUSEDDECRYPTION_PAUSEDUNKNOWN | |
bitLockerEncryptionMethod | string | Any of: NONEAES_128_WITH_DIFFUSERAES_256_WITH_DIFFUSERAES_128AES_256HARDWARE_ENCRYPTIONXTS_AES_128XTS_AES_256UNKNOWN | |
bitLockerInitializedForProtection | boolean | ||
bitLockerLockStatus | string | Any of: UNKNOWNUNLOCKEDLOCKED | |
bitLockerProtectionStatus | string | Any of: UNPROTECTEDPROTECTEDUNKNOWNPENDING | |
bitLockerVolumeName | string | The name of the first volume with BitLocker enabled. Multiple volumes with BitLocker enabled will not be represented. | |
category * | string | ||
chassisType | string | ||
domainRole | string | ||
ipAddresses | array of strings | ||
isVirtualMachine | boolean | ||
lastLoggedInUser | string | ||
locationId * | number | ||
memoryCapacity | number | ||
name * | string | ||
nodeClass * | string | ||
nodeRoleId * | number | ||
numberOfProcessors | number | ||
organizationId * | number | ||
osArchitecture | string | ||
osBuildNumber | string | ||
osLanguage | string | ||
osLastBootOn | number | ||
osLocale | string | ||
osNeedsReboot | boolean | ||
osServicePackMajorVersion | number | ||
osServicePackMinorVersion | number | ||
policyId | number | ||
processorArchitectures | array of strings | ||
processorClockSpeeds | array of numbers | ||
processorMaxClockSpeeds | array of numbers | ||
processorNames | array of strings | ||
processorNumCores | array of numbers | ||
processorNumLogicalCores | array of numbers | ||
publicIP | string | ||
rolePolicyId * | number | ||
totalPhysicalMemory | string | ||
totalPhysicalMemoryInBytes | number |
Ninjaone User
ninjaone_user inherits from User
| Property | Type | Description | Specifications |
|---|---|---|---|
fields | array of strings | ||
invitationStatus * | string | ||
mustChangePassword * | boolean | ||
notifyAllClients * | boolean | ||
permitAllClients * | boolean | ||
phoneNumber * | string | ||
tags | array of strings | ||
userType * | string |
Release Notes
- 2026-04-08 — Improved OS details for NinjaOne device entities, adding OS build number alongside the OS name.
- 2026-02-23 — Added software inventory ingestion to NinjaOne, providing visibility into installed applications and versions across managed devices.
- 2025-12-09 — Added configuration option for NinjaOne server URL, supporting regional server endpoints for EU, US2, and Oceania deployments.