Table of Contents


Overview

Jamf Pro is the Apple device management platform used by most enterprises that run Macs, iPhones and iPads at scale. It enrols Apple hardware, pushes configuration profiles and applications, enforces compliance policies, and maintains a detailed inventory record for every managed device. That inventory record is the part ReadyWorks is interested in: for each Mac, Jamf collects hardware identifiers, installed software, storage layout, FileVault encryption state, security posture, assigned user and purchasing detail, and refreshes it on a recurring inventory schedule.

The ReadyWorks connector talks to the modern Jamf Pro API over REST. It authenticates by sending the connection’s username and password as a Base64 Basic Authorization header to the bearer token endpoint (/api/v1/auth/token by default), reads the returned token from the token JSON node, and then presents it as Authorization: Bearer on every subsequent data call. Every shipped job then calls a single endpoint, /api/v1/computers-inventory, reads the results array, and writes it to its own staging table in the estate.

What separates the 24 shipped jobs from one another is the section query parameter. Jamf’s computer inventory endpoint returns a configurable slice of each computer record, and each ReadyWorks template asks for exactly one section and lands it in a table of its own. That gives you a normalised set of tables (hardware in one, applications in another, disk encryption in a third) rather than one very wide record per Mac, so you can enable only the sections you actually need and keep the rest switched off.

In a ReadyWorks context this is the Apple half of the endpoint estate. Pulling Jamf inventory alongside your Windows management source lets you reconcile a single device list across both platforms, match Macs to the people who hold them, find machines that have stopped checking in, check FileVault and security posture before a refresh or a migration wave, and assemble application inventory for rationalisation and licensing work. The purchasing and warranty section supports hardware refresh planning directly.

Direction: the connector is registered as bidirectional and the outbound job form is available, so you can build your own write-back jobs against the Jamf API. No outbound templates ship with it, so out of the box this connector reads only.

Connector Properties

PropertyValue
IdentifierJAMF
NameJAMF
DescriptionConnector for processing Jamf Rest API data.
Job TypesBoth Inbound and Outbound
Order150
EnabledYes
LockedYes
Block UpdateNo
Single AuthenticationNo
Windows OnlyNo
Connector Version2025-11-18
HooksNone
Additional Job FieldsNone
Image

Authentication Methods

The connector ships one authentication method. It exchanges a username and password for a short-lived Jamf Pro bearer token, then uses that token for the data calls.

MethodIdentifierBase MethodScriptOrderEnabledConfig Fields
JAMFJAMF_user_tokenJAMF_user_tokenjson_rest_api.php10Yes8

NOTE: The account used here needs a Jamf Pro privilege set that allows read access to computer inventory. A read-only account is sufficient for every shipped job.

Method 1: JAMF (JAMF_user_token)

Connect to a Jamf API Rest Connector

Sends the configured username and password as a Base64-encoded Basic Authorization header to the Bearer Token End Point, extracts the token from the JSON node named in Bearer Token JSON Node, and attaches it as a Bearer token on all subsequent requests. Both the endpoint and the node ship with working defaults for Jamf Pro (/api/v1/auth/token and token), so in normal use you only supply the API Domain and the credentials. Point API Domain at your Jamf Pro tenant URL, including the scheme.

Connection Configuration Fields (8)

OrderLabelTypeRequiredDefaultMax LenTooltip
10API DomaintextYes255Enter API domain of the Connection
30Server Temporary Working PathtextYesstorage/etl5255Enter path where temporary files are stored during data processing (exclude starting and ending backslash)
40UsernametextNo1024Enter username of the Connection
50PasswordpasswordNo64000Enter password of the Connection
190Bearer Token End PointtextNo/api/v1/auth/token500Enter API end point to request a bearer token for a username / password
200Bearer Token JSON NodetextNotoken255Enter JSON data node for bearer token
240Single AuthenticationradioYes0Choose if authentication is only to be done once and not on each enumeration or pagination loop
250Additional Job Fieldsfields_listNoEnter list of additional fields to add to staging data for all jobs

Authentication Configuration

Headers sent on the authentication call:

HeaderValueBase64
Content-Type:application/jsonOff
Authorization: Basic%user_name%:%user_pass%On

Headers sent on the data calls:

HeaderValueBase64
Content-Type:application/jsonOff
Authorization: Bearer%auth_data%Off

cURL options:

OptionAuthentication CallData Calls
USERAGENTMozilla/5.0 (Windows NT 6.1; Win64; x64; rv:47.0) Gecko/20100101 Firefox/47.0Same
SSL_VERIFYHOSTfalseSame
SSL_VERIFYPEERfalseSame
RETURNTRANSFERtrueSame
FOLLOWLOCATIONtrueSame
FAILONERRORtrueSame
POSTtrueNot set

NOTE: Jamf Pro bearer tokens are short-lived. This matters when you decide how to set Single Authentication: leaving it at No re-authenticates on every pagination loop, and setting it to Yes reuses one token for the whole run, which will start returning 401 responses if a job runs longer than the token lifetime.

Inbound Job Fields Enabled (44)

Inbound jobs expose the full REST job form, including the pagination and three-level enumeration groups, even though no shipped template uses either.

OrderLabelTypeRequiredDefaultTooltip
10Job DescriptiontextYesEnter description of the Job
20Job SchedulelookupYesDailySelect frequency Job should run
30EnabledradioYesYesChoose if Job is enabled
40Use Unparsed DataradioNoNoChoose if you wish to parse the incoming data, or leave it in its raw format
50Log Raw API CallsradioYesNoChoose if raw API calls are logged
70Destination TabletextYesEnter name of the destination table
80Data IdentitytextNoEnter identity of the Job
120Append New Data to Existing TablesradioNoNoChoose if new data will append to the existing destination table, or will create a new destination table
130Fields to IndextextNoEnter fields to index
170Method TypeselectYesGETSelect method type of the Job
190API End PointtextNoEnter API end point of the Job
200API Data Parametersfields_listNoEnter API data parameters of the Job
210Body Data Sending MethodselectYesJSON Encoded DataSelect method for sending the body data
220Raw JSON Body DatatextareaNoEnter the raw JSON body to send. Do not use body selections in the API Parameters if this is used.
230API Return Data NodetextNoEnter API return data node of the Job
250Pagination TypeselectNoNoneSelect request paging type of the Job
270API Pagination NodetextNoEnter API pagination node of the Job
280Pagination Offset StarttextNoEnter request paging offset start of the Job
290Pagination LimittextNoEnter request pagination limit of the Job
300Pagination Termination NodetextNoEnter request paging termination node and value of the Job
310Maximum API CallstextNoEnter maximum number of API calls for the Job to make
320Enumeration 1 TypeselectNoNoneEnter enumeration level 1 type
330Enumeration 1 ETL JoblookupNoSelect ETL job for the enumeration values
340Enumeration 1 Data Typedata_typeNoSelect the data type and fields for enumeration 1 values
350Enumeration 1 Keys End PointtextNoEnter enumeration 1 keys end point of the Job
360Enumeration 1 NodetextNoEnter enumeration 1 node of the Job
370Enumeration 1 Fieldsfields_listNoEnter enumeration 1 fields of the Job
380Enumeration 2 TypeselectNoNoneEnter enumeration level 2 type
390Enumeration 2 ETL JoblookupNoSelect ETL job for the enumeration 2 values
400Enumeration 2 Data Typedata_typeNoSelect the data type and fields for enumeration 2 values
410Enumeration 2 Keys End PointtextNoEnter enumeration 2 keys end point of the Job
420Enumeration 2 NodetextNoEnter enumeration 2 node of the Job
430Enumeration 2 Fieldsfields_listNoEnter enumeration 2 fields of the Job
440Enumeration 3 TypeselectNoNoneEnter enumeration level 3 type
450Enumeration 3 ETL JoblookupNoSelect ETL job for the enumeration 3 values
460Enumeration 3 Data Typedata_typeNoSelect the data type and fields for enumeration 3 values
470Enumeration 3 Keys End PointtextNoEnter enumeration 3 keys end point of the Job
480Enumeration 3 NodetextNoEnter enumeration 3 node of the Job
490Enumeration 3 Fieldsfields_listNoEnter enumeration 3 fields of the Job
500Pause EnumerationtextNoEnter values for pausing enumeration every X calls for Y seconds
510Kill Enumeration on ErrorradioNoNoChoose to stop the enumeration loop on an error or continue processing the loop
520Additional Fieldsfields_listNoEnter list of additional fields to add to staging data
550Retry PausetextNoEnter values for retrying a failed API connection. Retry X times, waiting Y seconds between each try, with an API timeout of Z seconds.
560OrdertextYesEnter order of the Job

Outbound Job Fields Enabled (13)

The outbound job form is fully enabled so you can author your own write-back jobs against the Jamf Pro API, although no outbound template ships with the connector.

OrderLabelTypeRequiredDefaultTooltip
10Job DescriptiontextYesEnter description of the Job
30EnabledradioYesYesChoose if Job is enabled
50Log Raw API CallsradioYesNoChoose if raw API calls are logged
170Method TypeselectYesGETSelect method type of the Job
180Data Sending MethodselectYesJSON Encoded DataSelect method for sending the outbound data
190API End PointtextNoEnter API end point of the Job
200API Data Parametersfields_listNoEnter API data parameters of the Job
210Body Data Sending MethodselectYesJSON Encoded DataSelect method for sending the body data
260Return Data Fields Listfields_listYesEnter return data fields of the Job
530Outbound Fields Listfields_listYesEnter outbound fields of the Job
540Ignore Empty Outbound FieldsradioNoYesIgnore, and do not include, any outbound fields that are empty and have no data
550Raw JSON Outbound TemplatetextareaNoEnter the raw JSON outbound template to send. This will replace any automated structures defined in the outbound fields.
560OrdertextYesEnter order of the Job

Inbound Job Templates (24)

All 24 inbound templates call the same endpoint, /api/v1/computers-inventory, and differ only in the section parameter they request and the table they write to. Twenty-three cover one inventory section each, and the twenty-fourth requests every section in a single call.

#Job DescriptionDestination TableAPI End PointEnabledWhat It Pulls
1Device Applicationsjamf_device_applications/api/v1/computers-inventoryNoThe APPLICATIONS section of the computer inventory: every application found on each Mac, with name, version, bundle identifier, install path, whether it is Mac App Store sourced and whether an update is available.
2Device Storagejamf_device_storage/api/v1/computers-inventoryNoThe STORAGE section: the boot drive plus each physical disk and partition, with capacity, available space, file system type, partition role and SMART status.
3Device Generaljamf_device_general/api/v1/computers-inventoryNoThe GENERAL section: the record-level facts about each Mac, including Jamf display name, last inventory update, last contact time, enrolment date, supervision and MDM capability flags, site and remote management state.
4Device Disk Encryptionjamf_device_disk_encryption/api/v1/computers-inventoryNoThe DISK_ENCRYPTION section: FileVault state per partition, the encryption percentage, and whether a personal or institutional recovery key has been escrowed to Jamf.
5Device Purchasingjamf_device_purchasing/api/v1/computers-inventoryNoThe PURCHASING section: purchase order number, vendor, purchase price, warranty expiry, AppleCare identifier, lease dates and the flags that mark a device as leased or purchased.
6Device User and Locationjamf_device_user_and_location/api/v1/computers-inventoryNoThe USER_AND_LOCATION section: the user assigned to each Mac in Jamf, with email address, position, department, building, room and phone number.
7Device Configuration Profilesjamf_device_configuration_profiles/api/v1/computers-inventoryNoThe CONFIGURATION_PROFILES section: each macOS configuration profile installed on the device, with display name, profile identifier, username scope and whether the profile is removable.
8Device Printersjamf_device_printers/api/v1/computers-inventoryNoThe PRINTERS section: printers mapped on each Mac, with the queue name, device URI and printer type or driver.
9Device Servicesjamf_device_services/api/v1/computers-inventoryNoThe SERVICES section: the macOS services and daemons Jamf detected running on the device.
10Device Hardwarejamf_device_hardware/api/v1/computers-inventoryNoThe HARDWARE section: model name and model identifier, serial number, processor type, speed and core count, installed memory, wired and wireless MAC addresses, battery capacity and boot ROM version.
11Device Local User Accountsjamf_device_local_user_accounts/api/v1/computers-inventoryNoThe LOCAL_USER_ACCOUNTS section: every local account on the Mac, with UID, home directory and its size, administrator flag, FileVault enablement and Secure Token status.
12Device Certificatesjamf_device_certificates/api/v1/computers-inventoryNoThe CERTIFICATES section: identity and CA certificates present in the device keychains, with common name, issuer, expiry date and whether the certificate carries an identity.
13Device Attachmentsjamf_device_attachments/api/v1/computers-inventoryNoThe ATTACHMENTS section: metadata for files attached to the Jamf computer record, with file name, size and MIME type. The file contents themselves are not retrieved.
14Device Pluginsjamf_device_plugins/api/v1/computers-inventoryNoThe PLUGINS section: browser and system plug-ins found on the device, with name, version and file path.
15Device Package Receiptsjamf_device_package_receipts/api/v1/computers-inventoryNoThe PACKAGE_RECEIPTS section: installer receipts on the Mac, split into packages installed by Jamf, packages installed by the macOS installer, and packages currently cached on the device.
16Device Securityjamf_device_security/api/v1/computers-inventoryNoThe SECURITY section: System Integrity Protection and Gatekeeper status, XProtect definition version, firewall state, Activation Lock, secure boot and external boot levels, and whether a bootstrap token has been escrowed.
17Device Operating Systemjamf_device_operating_system/api/v1/computers-inventoryNoThe OPERATING_SYSTEM section: macOS name, version and build number, Active Directory binding status, the FileVault 2 enabled users, and the software update device identifier.
18Device Licensed Softwarejamf_device_licensed_software/api/v1/computers-inventoryNoThe LICENSED_SOFTWARE section: the Jamf licensed software titles matched against each computer, used for license position reporting inside Jamf.
19Device iBeaconsjamf_device_ibeacons/api/v1/computers-inventoryNoThe IBEACONS section: the iBeacon regions each computer is currently within, as reported by Jamf’s beacon monitoring.
20Device Software Updatesjamf_device_software_updates/api/v1/computers-inventoryNoThe SOFTWARE_UPDATES section: Apple software updates available and pending on each Mac, with update name, version and package name.
21Device Extension Attributesjamf_device_extension_attributes/api/v1/computers-inventoryNoThe EXTENSION_ATTRIBUTES section: the custom inventory attributes your administrators have defined in Jamf, with the definition identifier, name, data type, input type and the value collected from each device. This is where site-specific inventory such as asset tags or cost centres usually lives.
22Device Content Cachingjamf_device_content_caching/api/v1/computers-inventoryNoThe CONTENT_CACHING section: the state of the macOS content caching service on the device, including cache size and space used, registration status, and the parent and peer caches it is associated with.
23Device Group Membershipsjamf_device_group_memberships/api/v1/computers-inventoryNoThe GROUP_MEMBERSHIPS section: every smart group and static group each computer belongs to, with group identifier, name and whether the membership is smart.
24Devices: All Datajamf_devices_all/api/v1/computers-inventoryNoThe same endpoint with all 23 sections requested at once, producing one very wide record per Mac in a single table rather than 23 narrow tables. It duplicates the entire content of the other 23 templates.

Job Template Configuration

Settings Common to All Twenty-Four Templates

SettingValue
EnabledNo
Job ScheduleDaily (15 1 * * *)
Allow Empty TableYes
Append Files to Same Destination TableNo
Append New Data to Existing TablesNo
Use Unparsed DataNo
Convert UUID-Keyed Objects to RowsNo
Ignore XML AttributesNo
Log Raw API CallsNo
Method TypeGET
API End Point/api/v1/computers-inventory
Body Data Sending MethodJSON Encoded Data
API Return Data Noderesults

Settings That Vary by Template

TemplateIDOrderDestination TableData Identity
Device Applications6220jamf_device_applicationsjamf_device_applications
Device Storage6930jamf_device_storagejamf_device_storage
Device General7040jamf_device_generaljamf_device_general
Device Disk Encryption7150jamf_device_disk_encryptionjamf_device_disk_encryption
Device Purchasing7260jamf_device_purchasingjamf_device_purchasing
Device User and Location7370jamf_device_user_and_locationjamf_device_user_and_location
Device Configuration Profiles7480jamf_device_configuration_profilesjamf_device_configuration_profiles
Device Printers7590jamf_device_printersjamf_device_printers
Device Services52100jamf_device_servicesjamf_device_services
Device Hardware53110jamf_device_hardwarejamf_device_hardware
Device Local User Accounts54120jamf_device_local_user_accountsjamf_device_local_user_accounts
Device Certificates55130jamf_device_certificatesjamf_device_certificates
Device Attachments56140jamf_device_attachmentsjamf_device_attachments
Device Plugins57150jamf_device_pluginsjamf_device_plugins
Device Package Receipts58160jamf_device_package_receiptsjamf_device_package_receipts
Device Security59170jamf_device_securityjamf_device_security
Device Operating System60180jamf_device_operating_systemjamf_device_operating_system
Device Licensed Software61190jamf_device_licensed_softwarejamf_device_licensed_software
Device iBeacons63200jamf_device_ibeaconsjamf_device_ibeacons
Device Software Updates64210jamf_device_software_updatesjamf_device_software_updates
Device Extension Attributes65220jamf_device_extension_attributesjamf_device_extension_attributes
Device Content Caching66230jamf_device_content_cachingjamf_device_content_caching
Device Group Memberships67240jamf_device_group_membershipsjamf_device_group_memberships
Devices: All Data68250jamf_devices_alljamf_devices_all

Job Parameters and Enumeration

Device Applications

API data parameters:

KeyValue
sectionAPPLICATIONS

Device Storage

API data parameters:

KeyValue
sectionSTORAGE

Device General

API data parameters:

KeyValue
sectionGENERAL

Device Disk Encryption

API data parameters:

KeyValue
sectionDISK_ENCRYPTION

Device Purchasing

API data parameters:

KeyValue
sectionPURCHASING

Device User and Location

API data parameters:

KeyValue
sectionUSER_AND_LOCATION

Device Configuration Profiles

API data parameters:

KeyValue
sectionCONFIGURATION_PROFILES

Device Printers

API data parameters:

KeyValue
sectionPRINTERS

Device Services

API data parameters:

KeyValue
sectionSERVICES

Device Hardware

API data parameters:

KeyValue
sectionHARDWARE

Device Local User Accounts

API data parameters:

KeyValue
sectionLOCAL_USER_ACCOUNTS

Device Certificates

API data parameters:

KeyValue
sectionCERTIFICATES

Device Attachments

API data parameters:

KeyValue
sectionATTACHMENTS

Device Plugins

API data parameters:

KeyValue
sectionPLUGINS

Device Package Receipts

API data parameters:

KeyValue
sectionPACKAGE_RECEIPTS

Device Security

API data parameters:

KeyValue
sectionSECURITY

Device Operating System

API data parameters:

KeyValue
sectionOPERATING_SYSTEM

Device Licensed Software

API data parameters:

KeyValue
sectionLICENSED_SOFTWARE

Device iBeacons

API data parameters:

KeyValue
sectionIBEACONS

Device Software Updates

API data parameters:

KeyValue
sectionSOFTWARE_UPDATES

Device Extension Attributes

API data parameters:

KeyValue
sectionEXTENSION_ATTRIBUTES

Device Content Caching

API data parameters:

KeyValue
sectionCONTENT_CACHING

Device Group Memberships

API data parameters:

KeyValue
sectionGROUP_MEMBERSHIPS

Devices: All Data

API data parameters:

KeyValue
sectionSee below

section:

APPLICATIONS,STORAGE,GENERAL,DISK_ENCRYPTION,PURCHASING,USER_AND_LOCATION,CONFIGURATION_PROFILES,PRINTERS,SERVICES,HARDWARE,LOCAL_USER_ACCOUNTS,CERTIFICATES,ATTACHMENTS,PLUGINS,PACKAGE_RECEIPTS,SECURITY,OPERATING_SYSTEM,LICENSED_SOFTWARE,IBEACONS,SOFTWARE_UPDATES,EXTENSION_ATTRIBUTES,CONTENT_CACHING,GROUP_MEMBERSHIPS

NOTE: Every template ships with Enabled set to No. Nothing runs until you enable the sections you want.

NOTE: Each enabled template performs its own full sweep of the computer inventory. Enabling all 24 means 24 complete passes over your Mac estate per run, so enable only the sections you will actually reconcile against.

NOTE: The templates cover computer inventory only. Mobile devices, Jamf users, policies, scripts and smart group definitions are not pulled by any shipped job, although you can add jobs for them on the same connection.

Outbound Job Templates (0)

No outbound templates ship with this connector. The outbound job form is enabled, so you can author write-back jobs against the Jamf Pro API yourself.

Preparing Jamf Pro

ReadyWorks connects to Jamf Pro through the Jamf Pro API using OAuth 2.0 client credentials. This method uses a dedicated API client with its own permissions, independent of any administrator account. Complete both steps below in Jamf Pro before configuring the connection in ReadyWorks.

Step 1: Create the API Role

The API role defines what ReadyWorks is allowed to read.

  1. In Jamf Pro, go to Settings > System > API Roles and Clients
  2. Open the API Roles tab and click New
  3. Enter a descriptive display name, for example ReadyWorks Read-Only
  4. Add the following privileges:
    1. Read Computers
    2. Read Computer Inventory Collection
    3. Read Smart Computer Groups
    4. Read Static Computer Groups
    5. Read Mobile Devices
    6. Read Smart Mobile Device Groups
    7. Read Static Mobile Device Groups
    8. Read Computer Extension Attributes
    9. Read Mobile Device Extension Attributes
    10. Read Departments
    11. Read Buildings
    12. Read Sites
    13. Read User
  5. Click Save

NOTE: Every privilege in this role is read-only. ReadyWorks uses this access to collect device inventory, group membership, and organizational data from Jamf Pro. It does not create, modify, or delete any objects in Jamf Pro.

Step 2: Create the API Client

The API client is the identity ReadyWorks authenticates as.

  1. On the API Clients tab, click New
  2. Enter a display name, for example ReadyWorks Integration
  3. Assign the API role created in the previous step
  4. Set an access token lifetime. The default is acceptable for most environments
  5. Click Save
  6. Click Edit, turn on Enable API Client, and save again
  7. Click Generate Client Secret and confirm
  8. Copy the client ID and client secret and store them securely. These values are needed to configure the connection in ReadyWorks.

NOTE: Jamf Pro displays the client secret only once. If it is lost, generate a new secret and update the ReadyWorks connection with the new value.

Last updated on 11/4/2026

Attachments