---
title: Ninjaone API Integration on Truto
slug: ninjaone
category: Default
canonical: "https://truto.one/integrations/detail/ninjaone/"
---

# Ninjaone API Integration on Truto



**Category:** Default  
**Status:** Beta

## Unified APIs

### Unified User Directory API

- **Organizations** — Organizations are the top level entity in the source application. Users are associated with an organization.
- **Roles** — The Role object represents a role of a User.
- **Users** — The User object represents a User.

### Unified MDM API

- **Apps** — Core resource which represents a software application installed on a managed device. Installed software is typically mapped to installed applications, installed programs, packages, or inventory items depending on the underlying product.
- **Devices** — Core resource which represents a managed device in an MDM or RMM system. Devices are typically mapped to endpoints, nodes, or assets depending on the underlying product.
- **Organizations** — Organization represents the company or the entity using the MDM or RMM system. An Organization can have one or more Users, Devices and Apps enrolled.
- **Users** — Users represent the people using the underlying MDM or RMM system. They are usually called employees, contractors, admins, etc.

## MCP-ready AI tools

Truto exposes 21 tools for Ninjaone that AI agents can call directly.

- **list_all_ninjaone_users** — List users in Ninjaone. Returns user id, firstName, lastName, email, phone, enabled, administrator, userType, invitationStatus, organizationId, deviceIds, tags, custom fields, and roles if includeRoles is true.
- **list_all_ninjaone_activities** — List activities in Ninjaone. Returns activity log with fields id, activityTime, deviceId, severity, priority, seriesUid, activityType, statusCode, status, activityResult, sourceConfigUid, sourceName, subject, userId, message, type, and data.
- **list_all_ninjaone_alerts** — List active alerts in Ninjaone. Returns alert uid, deviceId, message, createTime, updateTime, sourceType, sourceConfigUid, sourceName, subject, userId, psaTicketId, ticketTemplateId, data, and detailed device information including id, organizationId, locationId, nodeClass, approvalStatus, offline status, displayName, systemName, dnsName, netbiosName, created, lastContact, lastUpdate, tags, maintenance status, and references.
- **list_all_ninjaone_devices** — List devices in Ninjaone. Returns device id, organizationId, locationId, nodeClass, approvalStatus, offline status, displayName, systemName, dnsName, netbiosName, created, lastContact, lastUpdate, tags, maintenance status, and references including organization, location, rolePolicy, policy, role, backupUsage, and warranty.
- **get_single_ninjaone_device_by_id** — Get device details by id in Ninjaone. Returns id, parentDeviceId, organizationId, locationId, nodeClass, nodeRoleId, rolePolicyId, policyId, approvalStatus, offline, displayName, systemName, dnsName, netbiosName, created, lastContact, lastUpdate, userData, tags, fields, maintenance status, references, ipAddresses, macAddresses, publicIP, notes, and deviceType.
- **update_a_ninjaone_device_by_id** — Update specific device information in Ninjaone using id. Allows updating displayName, userData, nodeRoleId, policyId, organizationId, locationId, and warranty details. Returns the updated device data in the response.
- **list_all_ninjaone_device_activity_logs** — Get activity logs for a device in Ninjaone using device_id. Returns activities array with id, activityTime, deviceId, severity, priority, seriesUid, activityType, statusCode, status, activityResult, sourceConfigUid, sourceName, subject, userId, message, type, and data fields.
- **list_all_ninjaone_device_alerts** — Get list of active alerts for device by id in Ninjaone. Returns alert uid, deviceId, message, createTime, updateTime, sourceType, sourceConfigUid, sourceName, subject, userId, psaTicketId, ticketTemplateId, data, and detailed device info including id, displayName, systemName, and status.
- **list_all_ninjaone_device_software_patch_history** — Get software patch installation history for device with device_id in Ninjaone. Returns patch id, productIdentifier, title, impact, status, type, and installedAt timestamp.
- **list_all_ninjaone_device_software** — Get a list of software installed on the device in NinjaOne. Requires device_id. Returns installDate, location, name, publisher, size, version, and productCode for each software.
- **list_all_ninjaone_software_inventory** — Get list of software installed on devices in Ninjaone. Returns installDate, location, name, publisher, size, version, productCode, deviceId, and timestamp for each software entry. Supports filtering by installedAfter and installedBefore dates.
- **list_all_ninjaone_tickets** — Run a board in Ninjaone to get a list of tickets matching the board condition and filters. Requires board_id. Returns ticket data array and metadata including columns, sortBy, attributes, filters, and export column names.
- **get_single_ninjaone_ticket_by_id** — Get information about a specific ticket in Ninjaone by id. Returns fields including id, version, clientId, subject, status (name, displayName, statusId), type, priority, severity, source, tags, ccList (uids, emails), createTime, deleted, and attributeValues.
- **list_all_ninjaone_ticket_boards** — List ticket boards in Ninjaone. Returns id, uid, name, description, conditions, createTime, updateTime, system flag, columns, sortBy, and ticketCount for each board.
- **list_all_ninjaone_device_disks** — Get device disk details for the device identified by device_id in NinjaOne. Returns bytesPerSector, description, interfaceType, manufacturer, mediaType, model, name, partitionCount, serialNumber, size, smartCapable, and status fields.
- **list_all_ninjaone_organizations** — List organizations in Ninjaone with detailed information including locations, policy mappings, and settings such as trayicon, splashtop, teamviewer, backup, and psa. Returns fields like id, name, description, locations, policies, and settings.
- **get_single_ninjaone_organization_by_id** — Get organization details in Ninjaone using id. Returns name, description, locations with addresses, policies with nodeRoleId and policyId, and settings for trayicon, teamviewer, splashtop, backup, and psa.
- **create_a_ninjaone_organization** — Create a new organization in Ninjaone. Returns organization details including id, name, description, nodeApprovalMode, tags, locations with id, and related settings configurations.
- **update_a_ninjaone_organization_by_id** — Update an existing organization in Ninjaone using id. Allows modifying the organization's name, description, nodeApprovalMode, tags, userData, and fields. Returns the updated organization details in the response.
- **list_all_ninjaone_search_devices** — Search devices in Ninjaone using query parameter q. Returns a list of devices matching the search term. Each device includes id, uid, displayName, systemName, and status fields in the response.
- **list_all_ninjaone_user_roles** — List user roles in Ninjaone. Returns id, name, type, and description for each role, along with members containing id, email, name, and source.

## How it works

1. **Link your customer's Ninjaone account.** Use Truto's frontend SDK; we handle every OAuth and API key flow so you don't need to create the OAuth app.
2. **Authentication is automatic.** Truto refreshes tokens, stores credentials securely, and injects them into every API request.
3. **Call Truto's API to reach Ninjaone.** The Proxy API is a 1-to-1 mapping of the Ninjaone API.
4. **Get a unified response format.** Every response uses a single shape, with cursor-based pagination and data in the `result` field.

## Use cases

- **Automate endpoint compliance evidence collection** — Compliance platforms can pull device inventories, installed software, disk encryption status, and patch history from NinjaOne to automatically generate audit evidence for SOC2, HIPAA, and ISO 27001 — eliminating manual screenshot collection for end users.
- **Sync IT assets into a unified hardware ledger** — IT asset management platforms can ingest NinjaOne's device fleet, software inventory, and organization hierarchy to maintain a real-time source of truth across all endpoint management tools their customers use.
- **Route NinjaOne alerts into external helpdesk workflows** — ITSM and helpdesk products can pull NinjaOne alerts and activity logs to automatically create and enrich support tickets with device context, reducing mean time to resolution without requiring technicians to switch tools.
- **Power per-endpoint billing for MSP clients** — Billing and PSA platforms can query NinjaOne organizations and their associated device counts to automate monthly invoicing for MSPs who charge clients on a per-device basis.
- **Enrich support tickets with real-time device telemetry** — Helpdesk and conversational AI products can search for a user's device in NinjaOne and surface hardware specs, activity logs, and active alerts directly inside the ticket UI, giving technicians immediate context.

## What you can build

- **Automated disk encryption audit dashboard** — Fetch all devices and their disk metadata via the Unified MDM API and NinjaOne disk endpoints to flag unencrypted volumes across the entire fleet.
- **Shadow IT detection from endpoint software inventory** — Continuously sync installed software across all managed devices using the software inventory endpoint and cross-reference against an approved application allowlist.
- **Multi-tenant organization provisioning** — Allow MSP-focused products to create and update NinjaOne organizations directly from their own onboarding flows, keeping client records in sync across billing, CRM, and endpoint management.
- **Device-to-user mapping for access reviews** — Combine the Unified User Directory API with the Unified MDM API to map every managed device to its assigned user, powering identity-aware compliance checks and access reviews.
- **Alert-to-ticket pipeline with device context** — Ingest NinjaOne alerts and device activity logs and attach full device details — OS version, patch history, active alerts — to tickets created in an external helpdesk system.
- **Patch compliance trend reporting** — Pull per-device software patch history to generate compliance trend reports showing patch deployment rates, overdue patches, and remediation timelines across organizations.

## FAQs

### What authentication method does the NinjaOne integration use?

NinjaOne uses OAuth 2.0 for API authentication. Truto handles the full OAuth flow — token exchange, refresh, and secure storage — so your end users simply authorize the connection and you never manage credentials directly.

### Which Truto Unified APIs does NinjaOne map to?

NinjaOne maps to the Unified User Directory API (Organizations, Roles, Users) and the Unified MDM API (Apps, Devices, Organizations, Users). This means you can read NinjaOne data using Truto's standardized schemas alongside other MDM and directory providers.

### Can I write data back to NinjaOne, or is the integration read-only?

The integration supports both read and write operations. You can create and update organizations, and update device records by ID, in addition to listing and fetching all supported resources.

### How does Truto handle pagination for large NinjaOne fleets?

Truto automatically manages cursor-based and offset pagination across all NinjaOne list endpoints. Whether your customer has 50 devices or 50,000, you get complete results through Truto's standardized pagination interface without writing provider-specific logic.

### Can I search for a specific device by hostname or other criteria?

Yes. The integration includes a device search endpoint (list_all_ninjaone_search_devices) that lets you query devices by specific criteria, which is useful for looking up a device in the context of a support ticket or user request.

### What device-level detail can I access beyond basic inventory?

Beyond core device metadata, you can fetch disk and partition details, installed software lists, software patch history, device-specific activity logs, and device-specific alerts — giving you deep telemetry for compliance, security posture, and troubleshooting use cases.

## Related reading

- [Launching the Unified MDM API: Integrate Iru, NinjaOne, and More](https://truto.one/blog/launching-the-unified-mdm-api-integrate-iru-ninjaone-and-more/) — Stop wrestling with fragmented MDM APIs. Truto's Unified MDM API normalizes devices, users, and apps across Iru (Kandji), NinjaOne, Intune, and more.
