Blog

Here are Apple’s 30 required reason APIs: you got some ‘splaining to do (and maybe 1 challenge)

By John Koetsier July 28, 2023

As promised back in June, Apple released its initial list of required reason APIs this morning in 5 categories: file timestamp APIs, system boot time APIs, disk space APIs, active keyboard APIs, and user defaults APIs. Most of them are obviously related to Apple’s goal of making device fingerprinting impossible or at least ineffective, but at least one of them might cause some challenges for most app developers.

Required reason APIs will need to be declared starting in fall of 2023 when you upload a new app or app update. As of fall, however, you’ll just receive an emailed notice if you haven’t declared a reason why you’re using the API. In spring of 2024, however, you’ll be required to select from a list of approved reasons for each required reason API before you can upload your app or update at all.

Here are the 30 APIs and functions that Apple has (so far) included in the list:

File timestamp APIs

  1. creationDate
  2. modificationDate
  3. fileModificationDate
  4. contentModificationDateKey
  5. creationDateKey
  6. getattrlist
  7. getattrlistbulk
  8. fgetattrlist
  9. stat
  10. fstat
  11. fstatat
  12. lstat
  13. getattrlistat

System boot time APIs

  1. systemUptime
  2. mach_absolute_time()

Disk space APIs

  1. volumeAvailableCapacityKey
  2. volumeAvailableCapacityForImportantUsageKey
  3. volumeAvailableCapacityForOpportunisticUsageKey
  4. volumeTotalCapacityKey
  5. systemFreeSize
  6. systemSize
  7. states
  8. statvfs
  9. fstatfs
  10. fstatvfs
  11. getattrlist
  12. fgetattrlist
  13. getattrlistat

Active keyboard APIs

  1. activeInputModes

User defaults APIs

  1. UserDefaults

Potential challenges for at least 1 category

It’s obvious that Apple is targeting parameters that adtech companies use for precise fingerprinting: levels of disk space, timestamps, and so on.

One required reason API might, however, be a bit more challenging for developers: user defaults. A significant percentage of developers use the UserDefaults API to store app preferences rather than saving them to a file. One estimate is perhaps 90% of apps do this. If so, quite a few developers will need to provide a reason or switch to a different method of enabling in-app preferences.

Measurement impact of required reason APIs

For developers and marketers who are already fully engaged with Apple’s SKAdNetwork attribution framework, submitting an answer for each required reason API should be simple and quick. In addition, there is zero measurement impact if you’re already running SKAN campaigns and using Singular’s modeling and your own first-party in-app events to enrich the resulting measurement data.

For others who might be accessing the 30% of the adtech inventory that still offers fingerprinting, this continues to close the door on tracking.

I would not be shocked if this list is semi-dynamic and changes somewhat over time as fingerprinting adtech vendors play some cat-and-mouse games with Apple over different data sources.

Stay up to date on the latest happenings in digital marketing

Simply send us your email and you’re in! We promise not to spam you.