Device Management
Jamf
API integration
Ship Device Management features without building the integration. Full Jamf API access via Proxy, normalized data through Unified APIs, and 30+ MCP-ready tools for AI agents — all extensible to your exact use case.
Talk to usUse Cases
Why integrate with Jamf
Common scenarios for SaaS companies building Jamf integrations for their customers.
Automate compliance checks across Apple device fleets
Compliance automation platforms can pull computer and mobile device inventory from Jamf to verify OS patch levels, disk encryption status, and installed applications — proving SOC 2 or ISO 27001 readiness without manual spreadsheets.
Sync Apple device inventory into a unified IT asset ledger
ITAM platforms can continuously ingest Macs, iPhones, and iPads from Jamf alongside other MDM sources, giving IT teams a single pane of glass for hardware lifecycle tracking, procurement planning, and depreciation reporting.
Automate user provisioning and offboarding in Jamf
HR and identity platforms can create Jamf users at hire and update or remove them at termination, ensuring the Apple device management layer stays in sync with the employee lifecycle without manual IT intervention.
Enrich helpdesk tickets with real-time device context
Support and ticketing platforms can look up the reporting employee's Jamf user record and linked devices to surface model, OS version, and serial number directly in the ticket — reducing resolution time and back-and-forth with end users.
Audit Jamf admin accounts for zero-trust security
Security and GRC platforms can enumerate Jamf admin accounts and their privilege sets to detect over-provisioned access, orphaned accounts, or policy violations as part of continuous access reviews.
What You Can Build
Ship these features with Truto + Jamf
Concrete product features your team can ship faster by leveraging Truto’s Jamf integration instead of building from scratch.
Real-time Apple fleet compliance dashboard
Pull computer inventory and mobile devices from Jamf via the Unified MDM API to flag unpatched OS versions, missing encryption, or blacklisted applications in a live compliance view.
Automated employee onboarding to Jamf
Create Jamf user records the moment a new hire is confirmed in your platform, so IT can map them to a device during zero-touch enrollment without any manual steps.
Cross-platform device inventory sync
Aggregate Jamf computer and mobile device data alongside other MDM sources using the Unified MDM API to maintain a single, always-current hardware asset register.
Installed app audit and visibility report
List mobile device applications managed in Jamf to detect outdated or unauthorized software across the fleet and surface actionable findings to security teams.
Jamf admin access review workflow
Enumerate all Jamf accounts and their privilege levels to power periodic access certification campaigns, automatically flagging accounts with excessive permissions.
Contextual device sidebar for support tickets
Look up a Jamf user by email and resolve their assigned mobile devices or computers to display serial number, model, and OS version inline within a helpdesk ticket.
SuperAI
Jamf AI agent tools
Comprehensive AI agent toolset with fine-grained control. Integrates with MCP clients like Cursor and Claude, or frameworks like LangChain.
list_all_jamf_accounts
List all account users or admin users in Jamf. Returns an array of account objects containing id and name fields for each account.
get_single_jamf_account_by_id
Get details of a specific account user or admin user in Jamf by id. Returns id, name, email, enabled status, access_level, privilege_set, site, and privileges related to JSS objects, settings, actions, and tools.
delete_a_jamf_account_by_id
Delete a specific account user or admin user in Jamf using its id. Returns a 200 OK response when the account is successfully deleted.
update_a_jamf_account_by_id
Update an existing account user or admin user in Jamf using the specified id. Returns updated fields including name, email_address, access_level, privilege_set, and enabled status.
create_a_jamf_account
Create a new account in Jamf using id. Requires id. Returns details such as name, email, full_name, access_level, and privilege_set in the response.
list_all_jamf_users
List all users in Jamf. Returns an array where each item includes size and user details such as id and name.
get_single_jamf_user_by_id
Get a specific user in Jamf by id. Returns fields such as id, name, full_name, email, phone_number, position, ldap_server, extension_attributes, sites, and links with related assets.
delete_a_jamf_user_by_id
Delete a user in Jamf by id. Requires id. Returns a confirmation of successful deletion.
update_a_jamf_user_by_id
Update an existing user in Jamf using id. This operation cannot be used to add computers, mobile devices, peripherals, or VPP assignments. Returns updated user details such as name, full_name, email, and phone_number.
create_a_jamf_user
Create a new user in Jamf by id. Requires id. The response includes created user details such as name, full_name, email, phone_number, and position. Cannot be used to add computers, mobile devices, peripherals, or VPP assignments.
list_all_jamf_mobile_devices
List all mobile-devices in Jamf. Returns id, name, serialNumber, wifiMacAddress, udid, phoneNumber, model, modelIdentifier, username, type, managementId, and softwareUpdateDeviceId for each device.
get_single_jamf_mobile_device_by_id
Get details for a specific mobile device in Jamf by id. Returns key fields including display_name, device_name, serial_number, model, and os_version.
create_a_jamf_mobile_device
Create a new mobile device in Jamf using id. Returns fields such as model_identifier for device type and os_name derived from API level for Android devices. id is required.
update_a_jamf_mobile_device_by_id
Update an existing mobile device in Jamf using id. Returns updated device details including general information, location, purchasing data, and extension attributes. The os_name field in android is derived from the API level and cannot be set.
delete_a_jamf_mobile_device_by_id
Delete a mobile device in Jamf by id. Requires id. Returns a success message on successful deletion.
list_all_jamf_search_mobile_devices
Search mobile devices in Jamf that match the provided match parameter. Requires match. Returns fields such as id, name, serial_number, os_version, model, managed, and location details in the response.
list_all_jamf_mobile_device_applications
List all mobile device applications in Jamf. Returns each application's id, name, display_name, bundle_id, version, and internal_app fields.
get_single_jamf_mobile_device_application_by_id
Get details of a specific mobile-device-application in Jamf using id. Returns key fields such as name, bundle_id, version, category, icon, and deployment_type for the application.
delete_a_jamf_mobile_device_application_by_id
Delete a mobile device application in Jamf by id. Requires id. Returns a confirmation upon successful deletion.
update_a_jamf_mobile_device_application_by_id
Update an existing mobile device application in Jamf using id. Requires id. Returns updated fields including general details, scope, self_service configuration, VPP settings, and app_configuration preferences (must use character entities).
create_a_jamf_mobile_device_application
Create a new mobile device application in Jamf using id. Returns details such as name, bundle_id, display_name, version, and configuration preferences. App configuration preferences must be listed using character entities.
list_all_jamf_computer_inventory
List paginated Computer Inventory records in Jamf. Returns key fields such as id, udid, general.name, general.platform, and hardware.model for each device.
create_a_jamf_computer_inventory
Create a new Computer Inventory record in Jamf. Returns id and href of the created record in the response.
update_a_jamf_computer_inventory_by_id
Update specific fields on a computer in Jamf using id. Returns the updated computer object including fields such as general, purchasing, userAndLocation, hardware, and operatingSystem details.
delete_a_jamf_computer_inventory_by_id
Delete a specific computer record in Jamf using id. Returns a 204 status when the computer is successfully removed or a 404 error if the computer id does not exist.
list_all_jamf_computer_inventory_v_4
List paginated Computer Inventory records in Jamf using the v4 endpoint (Jamf Pro 11.30.0 or later). Use section to choose which parts of each computer are returned, filter to narrow the results and sort to order them. Returns the id and udid of each computer plus the requested sections: general, hardware, operatingSystem, diskEncryption, security, userAndLocation, purchasing and applications. Needs the Read Computers privilege.
get_single_jamf_computer_inventory_v_4_by_id
Get one computer in Jamf by id using the v4 endpoint (Jamf Pro 11.30.0 or later). Use section to choose which parts of the computer are returned; only the GENERAL section is returned by default. Returns the id and udid plus the requested sections: general, hardware, operatingSystem, diskEncryption, security, userAndLocation, purchasing and applications. Returns a 404 error when the computer does not exist. Needs the Read Computers privilege.
create_a_jamf_computer_inventory_v_4
Create a computer record in Jamf using the v4 endpoint (Jamf Pro 11.30.0 or later). general.name is required; every other field is optional. Returns the id and href of the created computer. Needs the Create Computers privilege.
update_a_jamf_computer_inventory_v_4_by_id
Update a computer in Jamf by id using the v4 endpoint (Jamf Pro 11.30.0 or later). Send only the fields to change. Returns no content when the computer is updated and a 404 error when it does not exist. Needs the Update Computers privilege.
delete_a_jamf_computer_inventory_v_4_by_id
Remove a computer record from Jamf by id using the v4 endpoint (Jamf Pro 11.30.0 or later). Returns no content when the computer is removed and a 404 error when it does not exist. Needs the Delete Computers privilege.
list_all_jamf_mobile_device_inventory_v_2
List paginated mobile device inventory records in Jamf (iPhone, iPad, Apple TV, Apple Watch and Apple Vision devices) using the v2 detail endpoint. Use section to choose which parts of each device are returned, filter to narrow the results and sort to order them. Returns the mobileDeviceId and deviceType of each device plus the requested sections: general, hardware, userAndLocation, purchasing, security and applications. A device with unreadable data is returned with empty sections instead of failing the page. Needs the Read Mobile Devices privilege.
get_single_jamf_mobile_device_inventory_v_2_by_id
Get one mobile device in Jamf by its mobile device id, in the same shape as the mobile device inventory list. Use section to choose which parts of the device are returned; only the GENERAL section is returned by default. Returns the mobileDeviceId and deviceType plus the requested sections: general, hardware, userAndLocation, purchasing, security and applications. Returns a 404 error when the device does not exist. Needs the Read Mobile Devices privilege.
update_a_jamf_mobile_device_inventory_v_2_by_id
Update a mobile device in Jamf by its mobile device id using the v2 endpoint. Send only the fields to change. Returns id, name, assetTag, serialNumber, osVersion and managed for the updated device, a 403 error when the account may not modify the device and a 404 error when it does not exist. Needs the Update Mobile Devices privilege.
list_all_jamf_end_users
List paginated end users in Jamf (the users that devices are assigned to) using the v1 users endpoint (Jamf Pro 11.26.0 or later). Use filter to narrow the results and sort to order them. Returns id, username, realname, email, phone, position, enableCustomPhotoUrl, customPhotoUrl and managedAppleId for each user. Needs the Read User privilege.
get_single_jamf_end_user_by_id
Get one end user in Jamf by id using the v1 users endpoint. Returns id, username, realname, email, phone, position, enableCustomPhotoUrl, customPhotoUrl and managedAppleId. Returns a 404 error when the user does not exist. Needs the Read User privilege.
create_a_jamf_end_user
Create an end user in Jamf using the v1 users endpoint. Returns the id and href of the created user. Needs the Create User privilege.
update_a_jamf_end_user_by_id
Update an end user in Jamf by id using the v1 users endpoint. Jamf does not say whether this replaces the whole user or only the fields sent, so send every field you want to keep. Returns no content when the user is updated and a 404 error when the user does not exist. Needs the Update User privilege.
delete_a_jamf_end_user_by_id
Delete an end user in Jamf by id using the v1 users endpoint. Returns no content when the user is deleted and a 404 error when the user does not exist. Needs the Delete User privilege.
list_all_jamf_sites
List all sites in Jamf (the way a Jamf Pro instance is divided into groups of devices and users). Returns the id, divisionId and name of each site. The result is not paginated. Needs the Read Sites privilege.
Why Truto
Why use Truto’s MCP server for Jamf
Other MCP servers give you a static tool list for one app. Truto gives you a managed, multi-tenant MCP infrastructure across 850+ integrations.
Auto-generated, always up to date
Tools are dynamically generated from curated documentation — not hand-coded. As integrations evolve, tools stay current without manual maintenance.
Fine-grained access control
Scope each MCP server to read-only, write-only, specific methods, or tagged tool groups. Expose only what your AI agent needs — nothing more.
Multi-tenant by design
Each MCP server is scoped to a single connected account with its own credentials. The URL itself is the auth token — no shared secrets, no credential leaking across tenants.
Works with every MCP client
Standard JSON-RPC 2.0 protocol. Paste the URL into Claude, ChatGPT, Cursor, or any MCP-compatible agent framework — tools are discovered automatically.
Built-in auth, rate limits, and error handling
Tool calls execute through Truto’s proxy layer with automatic OAuth refresh, rate-limit handling, and normalized error responses. No raw API plumbing in your agent.
Expiring and auditable servers
Create time-limited MCP servers for contractors or automated workflows. Optional dual-auth requires both the URL and a Truto API token for high-security environments.
For your product
Ship Jamf tools in your product
Give the AI in your product access to each customer’s own Jamf account, with one MCP server per connected account.
Rather talk it through? Book a demo
For your own team
Use Jamf in ChatGPT or Claude yourself
Connect your company’s Jamf once, then ask in the AI you already use, with exactly your own access.
From the team behind Truto · 14-day free trial
Unified APIs
Unified APIs for Jamf
Skip writing code for every integration. Use Truto’s category-specific Unified APIs out of the box or customize the mappings with AI.
Unified User Directory API
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.
How It Works
From zero to integrated
Go live with Jamf in under an hour. No boilerplate, no maintenance burden.
Link your customer’s Jamf account
Use Truto’s frontend SDK to connect your customer’s Jamf account. We handle all OAuth and API key flows — you don’t need to create the OAuth app.
We handle authentication
Don’t spend time refreshing access tokens or figuring out secure storage. We handle it and inject credentials into every API request.
Call our API, we call Jamf
Truto’s Proxy API is a 1-to-1 mapping of the Jamf API. You call us, we call Jamf, and pass the response back in the same cycle.
Unified response format
Every response follows a single format across all integrations. We translate Jamf’s pagination into unified cursor-based pagination. Data is always in the result attribute.
FAQs
Common questions about Jamf on Truto
Authentication, rate limits, data freshness, and everything else you need to know before you integrate.
What authentication method does the Jamf integration use?
Jamf supports API token-based authentication. Your end users provide their Jamf Pro instance URL and credentials (or an API client with appropriate permissions), and Truto handles token generation and refresh transparently.
Which Unified APIs does the Jamf integration map to?
Jamf maps to two Unified APIs: the Unified MDM API (covering Devices, Apps, and Users resources) and the Unified User Directory API (covering Users and Roles). This lets you read and write Jamf data using a standardized schema shared across other MDM and directory providers.
Can I both read and write data to Jamf through Truto?
Yes. The integration supports full CRUD operations on users, mobile devices, computer inventory, mobile device applications, and admin accounts — so you can list, create, update, and delete records as needed.
How does Truto handle pagination when listing large Jamf datasets?
Truto manages pagination automatically. When you call list endpoints like list_all_jamf_computer_inventory or list_all_jamf_mobile_devices, Truto handles page cursors and aggregation behind the scenes, returning complete result sets without requiring you to manage offsets.
Can I search for specific mobile devices in Jamf?
Yes. The integration exposes a dedicated search endpoint (list_all_jamf_search_mobile_devices) that lets you query mobile devices by specific criteria, which is useful for looking up a device by serial number or user association without fetching the entire inventory.
What kind of device data can I access from Jamf through this integration?
You can access computer inventory (Macs) and mobile devices (iPhones, iPads), including hardware details, OS version, and serial numbers. You can also list and manage mobile device applications, which gives visibility into the software deployed across the fleet.
From the Blog
Jamf integration guides
Deep dives, architecture guides, and practical tutorials for building Jamf integrations.
Jamf
Get Jamf integrated into your app
Our team understands what it takes to make a Jamf integration successful. A short, crisp 30 minute call with folks who understand the problem.