> ## Documentation Index
> Fetch the complete documentation index at: https://docs.airmdr.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Jamf (Just Another Management Framework) Protect

> Jamf Protect is a macOS-focused security solution developed by Jamf, and it provides endpoint protection, security visibility, and threat prevention tailored specifically for Apple devices, particularly macOS.

### Generate Jamf Protect Client Password and Client ID for API Authentication

To integrate with **Jamf Protect** via its API (for example, in order to use it with third-party tools like AirMDR, or custom apps), you need to generate the **Base URL**, **Client ID**, and **Client Password** via the Jamf Pro UI.

<Steps>
  <Step title="Create API Client Credentials in Jamf Protect">
    1. Login to the Jamf protect console with your credentials.
       * URL: `https://your-tennant.protect.jamfcloud.com`
    2. Provide the necessary credentials (**Email** and **Password**), and click **Sign In**.

           <Tip>
             Use an admin-level account with **privileges to manage API clients**.
           </Tip>
    3. User will be redirected to the **Overview** Dashboard.
    4. Click on the **Administrative** in the left navigation pane.

           <img src="https://mintcdn.com/airmdr/6WXLh1uC-UzYOlBG/images/Jamf5.png?fit=max&auto=format&n=6WXLh1uC-UzYOlBG&q=85&s=5226aa38abfb06c8f0759ef592db17d7" alt="Jamf5 Pn" width="1224" height="708" data-path="images/Jamf5.png" />
  </Step>

  <Step title="Create an API Client" stepNumber={2}>
    1. Select **Administrative** → **API Clients**.
    2. Click on “**Create API Client**”.

           <img src="https://mintcdn.com/airmdr/6WXLh1uC-UzYOlBG/images/Jamf11.png?fit=max&auto=format&n=6WXLh1uC-UzYOlBG&q=85&s=39ef4aa7557c218d9a1bcbceb1cc1bc7" alt="Jamf11 Pn" width="1370" height="766" data-path="images/Jamf11.png" />
    3. Fill in the Client Details form to create a new API client
       * **API Client Name**: A name for your integration (e.g., `AirMDRIntegration`, `AirMDRConnector`).
       * **Role Type**: Choose `Read Only` (Assign specific role or roles to this client API to limit access).
    4. Click **Save**.
  </Step>

  <Step title="Generate Client ID and Client Secret">
    <Warning>
      This is the only time the **API Client Password** will be displayed. \
      Copy and securely store the value before clicking **Dismiss**.
    </Warning>

    1. Afer saving, a dialog box will display with your **API Client Password.**

           <img src="https://mintcdn.com/airmdr/6WXLh1uC-UzYOlBG/images/Jamf6.png?fit=max&auto=format&n=6WXLh1uC-UzYOlBG&q=85&s=c905a4ec62c4cab5a52da6a531811d19" alt="Jamf6 Pn" title="Jamf6 Pn" style={{ width:"100%" }} width="754" height="492" data-path="images/Jamf6.png" />

           <Tip>
             Use "**Copy to Clipboard**" option and securely save the API Client Password.
           </Tip>
    2. Once you close or click **Dismiss** on the **API Client Password** dialog box, you will be redirected to **Administrative** → **API Clients** → **API Client Summary** page.
    3. Under the **Summary** tab, you can access

       * **Client ID**
       * **Token and API Endpoints**

           <Info>
             Jamf Protect uses GraphQL for its API, and each request must include an authorization header with the access token obtained using the above credentials.
           </Info>
  </Step>

  <Step title="Determine Base URL">
    * The **Base URL** is simply your Jamf Protect URL: \
      Example: [https://yourcompany.protect.jamfcloud.com](https://yourcompany.protect.jamfcloud.com)

    <Check>
      Email the **Base URL**, **Client ID** and **Client Password** to AirMDR \
      or \
      Self configure Jamf in the AirMDR Integrations Dashboard.
    </Check>
  </Step>
</Steps>

### Skills Provided by this Integration

| Skill ID                 | Purpose                                                                                                                                                                           |
| :----------------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Get Jamf Protect Devices | Fetch detailed device information from Jamf Protect including IP address, hostname, username, device type, operating system, and OS version.                                      |
| Get Jamf Protect Alerts  | Fetch alerts from JAMF Protect API with optional filters for severity, hostname, status, tags, actions, and event type. Returns a list of alerts matching the specified criteria. |

<Tip>
  To view the details of Input Parameters and Output for the respective skills

  * Go to [AirMDR → Jamf Protect](https://app.airmdr.com/integrations?search=Jamf) Integration page.
  * Select the **Skills** tab and click on the required listed skills.
</Tip>

### Jamf Protect API Testing

Open **cURL** and run the following command to check if your API Key is working:

Request

```
curl --request POST \
--header 'content-type: application/json' \
--url "<Base URL>/token" \
--data '{"client_id": "<CLIENT-ID>",
"password": "<API-CLIENT-PASSWORD>"}'
```

Response

```
{
    "access_token": <ACCESS_TOKEN>,
    "expires_in": 86400,
    "token_type": "Bearer"
}
```

### Configure Jamf in the AirMDR Integrations Dashboard

1. Navigate to [AirMDR](https://app.airmdr.com/auth/login), provide the credentials, and click **Login**

   <img src="https://mintcdn.com/airmdr/wnBXbVlE7mmN9W6R/images/Datadog11.png?fit=max&auto=format&n=wnBXbVlE7mmN9W6R&q=85&s=94afec6835b90abcec516831e584184f" alt="" width="443" height="568" data-path="images/Datadog11.png" />
2. Navigate to the AirMDR Integrations Dashboard in the left navigation pane and select **Integrations**

   <img src="https://mintcdn.com/airmdr/wnBXbVlE7mmN9W6R/images/Datadog9.png?fit=max&auto=format&n=wnBXbVlE7mmN9W6R&q=85&s=314cbc6e406f70453a592159150f36e2" alt="" width="311" height="473" data-path="images/Datadog9.png" />
3. Use the search option, enter the keyword "**Jamf**", select the **Connections** tab, and click **Create**.

   <img src="https://mintcdn.com/airmdr/6WXLh1uC-UzYOlBG/images/Jamf1.png?fit=max&auto=format&n=6WXLh1uC-UzYOlBG&q=85&s=babbe43d27b28b47404563969c8f735a" alt="Jamf1 Pn" width="2108" height="472" data-path="images/Jamf1.png" />
4. Enter an unique name to the Instance (e.g., `your org name-Jamf Protect`) to easily identify the user connection by AirMDR.
5. Enter the generated **Base URL**, **Client ID** and **Client Secret** in the Authentication Details field params, and click **Create.**

   <img src="https://mintcdn.com/airmdr/6WXLh1uC-UzYOlBG/images/Jamf9.png?fit=max&auto=format&n=6WXLh1uC-UzYOlBG&q=85&s=e0682aaa14833b3d581b9614300cccf7" alt="Jamf9 Pn" width="708" height="716" data-path="images/Jamf9.png" />
