Skip to main content
Connect NinjaOne with a Web API client app. MSPilot uses it to sync organizations and devices into your clients. It does not run scripts or remote jobs in NinjaOne. You need a NinjaOne administrator who can create API apps.

Create a client app in NinjaOne

  1. In NinjaOne, go to Settings → Apps → API.
  2. Open the Client app IDs tab and click Add client app.
  3. Set Application platform to Web (PHP, Java, .Net Core, etc.). Don’t choose API Services (machine-to-machine). MSPilot sends you through NinjaOne authorization, which that platform doesn’t support.
  4. Set Name to MSPilot.
  5. Under Redirect URIs, add: https://app.mspilot.io/api/oauth/connections/ninjarmm/callback Use the hostname you actually sign in to. The URI must match exactly.
  6. Under Scopes, select Monitoring only. Leave others off.
  7. Under Allowed grant types, select Authorization code and Refresh token. Leave others off.
    Add Client App
  8. Click Add. Copy the Client ID and Client Secret to a password manager before you close the dialog. NinjaOne typically won’t show the secret again.
    Create Client Id And Secret

Connect NinjaOne

  1. In MSPilot, open Integrations and choose NinjaOne.
  2. Select the Instance that matches the URL you sign in to NinjaOne with — not the country your company is in. If you sign in at https://ca.ninjarmm.com, choose Canada.
  3. Paste Client ID and Client Secret.
  4. Click Connect NinjaOne, then approve access in NinjaOne when you’re redirected.
    Connect

After you connect

MSPilot syncs devices from NinjaOne into your clients. Map each client to the Ninja organization that should supply its device inventory. Each Ninja organization can map to only one client.

Install the agent

Connecting syncs devices. It does not install the agent.

Windows

On the client, open Deployment. Under AI applications, tick the apps to install, then choose Copy script (mspilot-deploy.ps1). The copy is a short launcher: replace any older MSPilot script saved in NinjaOne once. In NinjaOne, save it as MSPilot install and enroll, select the Windows devices, and run it as SYSTEM. When Claude Desktop is included, keep a user signed in during the run, and restart Windows if the job reports reboot_required=true. You do not schedule a pull job; the agent schedules its own. Details are on Install.

macOS

On the client, open Deployment, pick macOS, and choose Copy script. In NinjaOne, create a new script. Only change these fields: Save the script. Select the Apple Silicon Macs (macOS 12 or later) and run it. It runs as root, so nobody needs to be signed in. The signed-in user’s AI apps are configured right away; other users at their next sign-in, then every 3 minutes. You can schedule the same script daily; running it again is a safe repair. You do not schedule a pull job in your RMM; the agent runs its own config pull for each user at sign-in and every 3 minutes. What success and each exit code look like: macOS.
Last modified on October 19, 2026