Skip to main content

Greetings everyone!

I am working with the Jamf Pro API and cannot for the life of me figure out how to obtain a list of every title which is available in the Jamf App Catalog, even if I am not currently deploying it.

I have experimented with several existing endpoints including /api/v2/patch-software-title-configurations, but only ever seem to get titles which are currently being deployed or patched.

What I am trying to get is the FULL list of apps which would be present in Computers → MacApps → Jamf App Catalog → New → Jamf App Catalog, which (as of this posting) lists 265 titles.

In Context, I am creating a Python script to acquire, analyse, normalize and update data which resides across a number of data sets (Excel, SQL etc). When we are deploying a new app, I effectively want to know if that title is available in the Jamf App Catalog.

If someone could point me to the correct Classic or Jamf Pro API endpoint, it would be much appreciated!

 

Thank you all in advance!

This information is publicly posted already.  Why would you use the API for getting it?


Hi McAwesome:

While I could write Python code to go to the website and extract the related data from that URL, many things could potentially change.

Presuming there is an endpoint which does actually access this data, being able to create a full list of apps from the Jamf App Catalog (even those not deployed), in conjunction with the other API scripts and analysis that I run, would be significantly more productive. I’d rather not have to manually check 200+ apps for availability and/or status changes if at all possible.

 

If no such endpoint exists, then I will have to go the web scraping route but I’d rather not if at all possible.


@MakeItSo take a look at Tylers JNUC talk from Austin in 2023 - he is using undocumented API endpoints to work with the Mac app catalog. 

Its frustrating that this was a talk from 2 years ago and these are still undocumented, but they do still work.

 

Link to the talk: 

 


@grahamr 

A huge, massive “Thank You” for this resource reference!

This is EXACTLY what I was looking for!!

There is nothing quite like the exhuberance experienced (from a programming perspective) when something that has been driving you insane gets resolved!

 

For anyone else interested in this, two caveats:

  1. This is an undocumented API and could disappear tomorrow, though it appears it has been around for about 2 years now.
  1. The default page size is 100.

As of this post, there are 278 titles in the Jamf App Installer Catalog.

It seems that, unless you increase the page-size during your API call, it will default to 100 and you will only get information for the first 100 titles retrieved from the catalog. 

 

Therefore, your endpoint URL call needs to increase page-size.

Mine (in Python) is written as:

api_endpoint = f'{url}/api/v1/app-installers/titles?page-size=400'

(where url = the url for your Jamf Cloud instance i.e: <myreference>.jamfcloud.com