This Week's Sponsor:

Kolide

Ensures that if a device isn’t secure it can’t access your apps.  It’s Device Trust for Okta.


Getting App Prices with Editorial

Editorial workflow

Editorial workflow

When I write on my iPad mini, I often need to look up and reference price of apps that I already own. That’s a surprisingly hard thing to do on an iOS device, so I decided to remove the annoyance caused by this problem with an Editorial workflow. I call it “Get App Price”.

If you own an app, searching for it in the iOS 7 App Store won’t show you the price information alongside the app’s icon and description – you’ll only get an Open or Install button. Unlike the Mac App Store, there is no separate pricing field in the app information at the bottom of the screen, which usually forces me to go to a developer’s website to find out what the price of an app is.1 There wouldn’t be any problem if Apple allowed Safari to open iTunes web previews without redirecting them straight to the App Store, which is what they do on OS X. I have tried to force Safari to open web previews, and I even downloaded browsers that can set a modified user agent string to trick iOS into thinking they’re desktop web browsers worthy of a web preview – eventually, the App Store app always opened, displaying no price.

I set out to create a simple workflow to fetch an app’s title and price directly from iTunes with no clipboard import or other middleman. I later found out that you can tap on the “Related” tab in the App Store or gift an app to view its price, but I had already created a workflow that’s faster than opening the App Store and tapping a bunch of buttons just to get a price. I’m a free man, and I deserve my own App Store lookup solution.2

The workflow is a simple way of querying the iTunes Search API and parsing a JSON response with Python, displaying results in a popover. The fact that this stuff is possible on an iPad never ceases to amaze me.

You can find documentation for the iTunes Search API here. Essentially, you need to construct a URL that contains parameters for media type, entity (iPhone apps, iPad apps, Mac apps), store (US, UK, etc), and input (your search term). Given this URL, a response is sent back containing results that can be parsed with JSON and displayed by extracting specific information from them and re-arranging them as we like in a visual list.

To make things more fun and integrated, I added support for affiliate links with tokens and campaign tracking codes. In the workflow, you will need to fill in this information with your affiliate data, otherwise leave them empty and you’ll still find and generate valid iTunes URLs. You can find out more about the iTunes affiliate program here.

Last, Markdown. The workflow can be used to just quickly look up a price, but if you go ahead and tap a result in a list, a Markdown link will be inserted in the text editor. But enough with the talking.

The workflow starts by asking you to add your affiliate token and campaign tracking code. These need to be in the &at=TOKEN and &ct=CAMPAIGN format, otherwise they won’t create a valid affiliate link. You can leave both empty if you don’t care, or leave the campaign empty if you don’t need it and just use an affiliate token. Both values are handled as variables in the workflow. If you need a refresher on the new affiliate links, Underscore’s article is a great place to start.

Editorial workflow

Editorial workflow

The workflow then asks you what type of app you’re looking for; this list will output a value that will be used for the entity parameter of the search API URL. Alas, results that aren’t specific to a single platform (such as iPhone + iPad apps) haven’t been that good in my experience. You need to pick one.

After the app type, the workflow will ask for an app’s name and save what you enter in a variable. The name you enter has two purposes: it’s used as a search term and it becomes the title of the Markdown link that can be optionally inserted in the editor. If you want to be extra picky, my suggestion would be to type app names properly so you don’t end up with “omnifocus” instead of “OmniFocus” in the Markdown link.3

A search URL is then constructed based on the criteria that you’ve chosen so far and saved into a variable called URL. This is used by a Python script that uses the requests module to query the iTunes API, parse JSON that iTunes sends back, and build a list out of available results. Note how the entire code is a straightforward adaptation of my previous work with Pinboard and Feed Wrangler workflows that’s been modified and simplified to work with iTunes.

If you uncomment line 10, you’ll be able to look at the kind of response sent by iTunes and play around with the keys in line 19 to build a list of results that fits your needs better. For my workflow, I have used the app’s name, formatted price, and URL parameters to create a list that, thanks to formattedPrice, shows “Free” for free apps but a numeric value (e.g. $2.99) for paid apps. At the end of the workflow, the final (affiliate or not) iTunes link is assembled, inserted in the editor, and copied to the clipboard is you tapped a result from the list of results.

Automated workflows don’t change lives but they can help you save time that you’d spend yelling at a computer. This is one of them. It’s saving me minutes I can spend doing other things that I enjoy such as hugging my girlfriend or FaceTiming my parents. You can download it here.


  1. I could reference my old reviews to find an app’s price, but prices change over time so that’s not a solution. ↩︎

  2. This sounded much more epic in my head. Apologies. ↩︎

  3. People who care about this stuff do exist, right? ↩︎

Unlock More with Club MacStories

Founded in 2015, Club MacStories has delivered exclusive content every week for over six years.

In that time, members have enjoyed nearly 400 weekly and monthly newsletters packed with more of your favorite MacStories writing as well as Club-only podcasts, eBooks, discounts on apps, icons, and services. Join today, and you’ll get everything new that we publish every week, plus access to our entire archive of back issues and downloadable perks.

The Club expanded in 2021 with Club MacStories+ and Club Premier. Club MacStories+ members enjoy even more exclusive stories, a vibrant Discord community, a rotating roster of app discounts, and more. And, with Club Premier, you get everything we offer at every Club level plus an extended, ad-free version of our podcast AppStories that is delivered early each week in high-bitrate audio.

Choose the Club plan that’s right for you:

  • Club MacStories: Weekly and monthly newsletters via email and the web that are brimming with app collections, tips, automation workflows, longform writing, a Club-only podcast, periodic giveaways, and more;
  • Club MacStories+: Everything that Club MacStories offers, plus exclusive content like Federico’s Automation Academy and John’s Macintosh Desktop Experience, a powerful web app for searching and exploring over 6 years of content and creating custom RSS feeds of Club content, an active Discord community, and a rotating collection of discounts, and more;
  • Club Premier: Everything in from our other plans and AppStories+, an extended version of our flagship podcast that’s delivered early, ad-free, and in high-bitrate audio.