canonical: https://jentic.com/apis/jamf.com/jamf

# Jamf Pro API

The Jamf Pro API manages Apple devices - macOS, iOS, iPadOS, and tvOS - across enterprise fleets. The 11.26.0 spec covers the modern Jamf Pro v1 and v2 endpoints for authentication, computer and mobile-device inventory, departments, and core device-management operations. Authentication uses bearer tokens minted from the /api/v1/auth/token endpoint after an initial basic-auth exchange, with keep-alive and invalidate flows for long-running integrations.

## For AI agents

Manage Apple device fleets - macOS computers, iOS and iPadOS mobiles, departments - through the Jamf Pro inventory and authentication APIs.

## Scope

Does not handle Windows or Android device management, software packaging, or Apple Business Manager enrolment - use for Jamf Pro Apple device inventory and core configuration only.

## Capabilities

- Mint bearer tokens from basic-auth credentials and rotate them via the keep-alive endpoint
- Inventory enrolled macOS computers and pull detailed hardware and software records
- Inventory enrolled iOS and iPadOS devices and update specific record sections
- List, create, and update organisational departments used in scoping policies
- Delete a computer record from inventory when a device is decommissioned

## Use cases

### Apple Fleet Inventory Reporting

IT teams report on the state of their Mac and iOS fleet for security and asset reviews. The /api/v1/computers-inventory and /api/v2/mobile-devices endpoints return paged inventory records with hardware, OS, and enrolment data, which an integration writes to a CMDB or BI warehouse for fleet-wide reporting and trend analysis.

Example prompt: Page through GET /api/v1/computers-inventory and write each record to the CMDB computers table

### Joiner-Mover-Leaver Device Lifecycle

When an employee leaves, IT must decommission their Mac in Jamf and remove it from inventory. PATCH /api/v1/computers-inventory/{id} updates the assignment fields and DELETE /api/v1/computers-inventory/{id} removes the record after wipe. Department updates on /api/v1/departments support reassignments during internal moves.

Example prompt: PATCH /api/v1/computers-inventory/{id} to clear the assignedUser field, then DELETE /api/v1/computers-inventory/{id} after the wipe completes

### Department-Scoped Policy Targeting

Security teams scope policies by department - different controls for finance, engineering, and contractors. POST /api/v1/departments creates the targeting groups, GET lists them, and updates align Jamf with the org structure pulled from HR. Policies referenced in Jamf can then be scoped to the right department without manual sync.

Example prompt: GET /api/v1/departments to list current names and POST any missing departments returned by the HRIS export

### AI Agent IT Operations Assistant

An IT operations assistant answers questions like 'how many Macs are running macOS 14?' or 'show me iPads not seen in 30 days'. Through Jentic the agent searches for 'jamf computer inventory', loads the GET /api/v1/computers-inventory schema, and executes with the bearer token managed in your Jentic One instance.

Example prompt: Search Jentic for 'jamf computer inventory', execute GET /api/v1/computers-inventory with a section filter for OS, and aggregate the macOS version counts

## Key endpoints

| Method | Path | Description |
| --- | --- | --- |
| POST | /api/v1/auth/token | Mint a bearer token from basic-auth credentials |
| POST | /api/v1/auth/keep-alive | Rotate a bearer token before expiry |
| POST | /api/v1/auth/invalidate-token | Invalidate the current bearer token |
| GET | /api/v1/computers-inventory | List enrolled macOS computers |
| GET | /api/v1/computers-inventory/{id} | Get a specific computer record |
| PATCH | /api/v1/computers-inventory/{id} | Partially update a computer record |
| GET | /api/v2/mobile-devices | List enrolled iOS and iPadOS devices |
| GET | /api/v1/departments | List organisational departments |

## Key resources

- **Authentication** — Bearer token minting, keep-alive, and invalidation
- **Computers Inventory** — macOS device records with hardware and software detail
- **Mobile Devices** — iOS, iPadOS, and tvOS device inventory and updates
- **Departments** — Organisational groupings used in policy scoping

## Why Jentic

- **Setup:** Wiring the Jamf Pro API by hand means exchanging basic-auth admin credentials for a bearer token, keeping that token alive, and targeting your own jamfcloud instance host yourself. Through Jentic you install once, import Jamf Pro from the API Directory, store the credentials once, and your agent calls it.
- **Permission scoping:** Jamf Pro puts the record id in the URL path (/api/v1/computers-inventory/{id}), so a rule can pin your agent to the read operations for inventory and departments. You choose the operations it may call, so a computer-inventory update is not included unless you add it.
- **Credential handling:** Your Jamf admin credentials are stored once, encrypted, by your own Jentic One instance, which mints and refreshes the Jamf bearer token at execution time. The raw credentials never enter the agent's prompt, logs, or context.
- **Discovery method:** Agents search Jentic by intent such as 'list Jamf computers' or 'read a department', and Jentic returns the matching Jamf Pro operation with its input schema so the agent calls the right endpoint without browsing the reference docs.

## Related APIs

- **Firebase API** — Mobile app backend services often deployed alongside MDM-managed devices
- **Twilio API** — SMS and voice channel for IT helpdesk notifications about device events
- **Stripe API** — Billing platform used for Jamf reseller subscriptions and IT service fees

## FAQ

### What authentication does the Jamf Pro API use?

The modern Jamf Pro API uses bearer tokens minted from POST /api/v1/auth/token after an initial basic-auth exchange with the Jamf admin credentials. Tokens expire and can be rotated via /api/v1/auth/keep-alive. Through Jentic the basic credentials live in the credential vault and the bearer token rotation is handled at execution time.

### Can I list all enrolled Mac computers with the Jamf Pro API?

Yes. GET /api/v1/computers-inventory returns paged records with hardware, software, and enrolment details. Use section query parameters to limit the response to the fields you need so large fleets can be paged efficiently.

### What are the rate limits for the Jamf Pro API?

Jamf does not publish a fixed numeric rate limit; throttling is applied per Jamf Cloud instance based on tier and CPU pressure. Treat 429 responses as a signal to back off, batch inventory pulls overnight, and cache departmental lookups locally.

### How do I retrieve computer inventory through Jentic?

Search Jentic for 'jamf computer inventory', load the GET /api/v1/computers-inventory operation schema, and execute with optional section filters. Jentic handles bearer token minting and rotation so the agent only supplies query parameters.

### Does this spec cover the Jamf Classic API?

No. The 11.26.0 spec covers the modern Jamf Pro API only. The Classic API is a separate XML-based interface still used for some legacy operations; if you need Classic endpoints you must integrate that interface directly outside this spec.

### Can I delete a computer record from inventory?

Yes. DELETE /api/v1/computers-inventory/{id} removes the record. Pair the call with a wipe command before deletion so that the device is sanitised and removed from MDM in a single workflow.

### Can I limit what my agent is allowed to do with the Jamf Pro API?

Yes. Because Jentic One is self-hosted, you set the rules that decide which Jamf Pro operations and credentials your agent may use. You can pin the agent to read-only calls such as GET /api/v1/computers-inventory and GET /api/v1/departments, so it lists Mac computers and departments but cannot run a PATCH update or DELETE on a computer record unless you explicitly add those operations. The record id sits in the URL path, so each inventory operation is scoped separately and nothing outside your allowed set is callable.
