# App Store Connect: “ITMS-91053: Missing API declaration”

> App Store Connect emails ITMS-91053: Missing API declaration. Add the required reason API to PrivacyInfo.xcprivacy, or update the SDK that uses it.

Canonical: https://app369.com/fix/itms-91053-missing-api-declaration/
Last updated: 2026-11-07

After an upload, App Store Connect emails ITMS-91053: Missing API declaration and names an API category, such as NSPrivacyAccessedAPICategoryUserDefaults. Your app, or an SDK inside it, uses an API that Apple requires a reason for, and no privacy manifest declares it. The fix is a privacy manifest with the right reason, in your app or in the SDK. Here it is in Apple’s words, or hand it over at a fixed price.

**Short answer**

Find which code uses the API named in the email. If it is your own code, add a PrivacyInfo.xcprivacy file to the app target in Xcode and list the API category with an approved reason under NSPrivacyAccessedAPITypes. If it is a third-party SDK, update it to a version that ships its own privacy manifest. Then rebuild and upload.

## **Why it’s flagged, and the fix**

1. 01 ### **The app has no privacy manifest for the API**
  > “Starting May 1, 2024, apps that don’t describe their use of required reason API in their privacy manifest file aren’t accepted by App Store Connect.” [**Apple, Describing use of required reason API**](https://developer.apple.com/documentation/bundleresources/describing-use-of-required-reason-api) Apple lists a set of APIs, such as user defaults, file timestamps, system boot time and disk space, that need a declared reason. Without one, the upload isn’t accepted.
2. 02 ### **Add PrivacyInfo.xcprivacy to the app target**
  > “By default, the file is named PrivacyInfo.xcprivacy; this is the required file name for bundled privacy manifests.” [**Apple, Privacy manifest files**](https://developer.apple.com/documentation/bundleresources/privacy-manifest-files) In Xcode, choose File > New File, pick App Privacy File, and check the app target. Add one entry per API category the email names, with the reason code that matches how your app uses it. These keys sit inside the top-level dict of PrivacyInfo.xcprivacy.```
<key>NSPrivacyAccessedAPITypes</key>
<array>
  <dict>
    <key>NSPrivacyAccessedAPIType</key>
    <string>NSPrivacyAccessedAPICategoryUserDefaults</string>
    <key>NSPrivacyAccessedAPITypeReasons</key>
    <array>
      <string>CA92.1</string>
    </array>
  </dict>
</array>
```
3. 03 ### **An SDK uses the API**
  > “If you use the API in your third-party SDK’s code, then you need to report the API in your third-party SDK’s privacy manifest file.” [**Apple, Describing use of required reason API**](https://developer.apple.com/documentation/bundleresources/describing-use-of-required-reason-api) If the API is in a third-party SDK or plugin, the SDK’s own manifest has to declare it. Update the SDK, or the Flutter plugin or React Native package that wraps it, to a version that includes a privacy manifest.
4. 04 ### **The reason has to match what the app does**
  > “Your app or third-party SDK must declare one or more approved reasons that accurately reflect your use of each of these APIs and the data derived from their use.” [**Apple, Describing use of required reason API**](https://developer.apple.com/documentation/bundleresources/describing-use-of-required-reason-api) Pick the reason from Apple’s list that describes your real use. CA92.1, for example, is Apple’s reason for user defaults that only your own app reads and writes. Check Apple’s list before you copy it.

Checked against the vendor’s docs on November 7, 2026: [Apple Developer: Describing use of required reason API](https://developer.apple.com/documentation/bundleresources/describing-use-of-required-reason-api); [Apple Developer: Privacy manifest files](https://developer.apple.com/documentation/bundleresources/privacy-manifest-files).

## **Rather hand it over?**

Fixed scope, fixed price, paid upfront. The work happens in writing; no call needed.

**Resubmit before Apple’s holiday slowdown**

Pay for the Diagnosis and send the rejection and access to the app by Monday, December 7 (US Eastern). The Diagnosis is back by Thursday, December 10. Pay for the Fix that day and it arrives as a pull request by Thursday, December 17, in time to build and resubmit before December 20.

In past years Apple said reviews may take longer around the holidays: [December 20 to 26 in 2024 (opens in a new tab)](https://developer.apple.com/news/?id=iwvebnw2), [December 22 to 27 in 2023 (opens in a new tab)](https://developer.apple.com/news/?id=uijoypq9), [December 23 to 27 in 2022 (opens in a new tab)](https://developer.apple.com/news/?id=xpkhwg3l). Apple hasn’t posted its 2026 dates yet (checked October 30). Approval stays Apple’s decision.

- [from $450**App Fix Ticket**One reproducible bug in an existing mobile or web app, diagnosed and fixed.**See scope and start**](https://app369.com/fixed-price/flutter-firebase-bug-fix/)
- [from $450**AI-Built App Rescue**A Lovable, Bolt or Cursor app checked end to end in 3 days, then its worst problems fixed at a fixed price.****No issues worth fixing, no charge.**** If the Launch Check finds nothing rated medium or higher, Simon refunds the full $450. You keep the report either way. This applies to the first 10 Launch Checks bought after October 30, 2026.**See scope and start**](https://app369.com/fixed-price/ai-app-rescue/)

Related: [**ITMS-90725 SDK version issue**](https://app369.com/fix/itms-90725-sdk-version-ios-26/) · [**App Store Guideline 5.1.1 data collection**](https://app369.com/fix/app-store-guideline-5-1-1-data-collection/) · [**TestFlight Missing Compliance**](https://app369.com/fix/testflight-missing-compliance/) · [**Privacy manifests in a Flutter app, step by step**](https://app369.com/blog/apple-privacy-manifest-itms-91053-itms-91061-flutter-fix-2026/)

Questions

## **More on this rejection**

<details>

<summary>**The email names an API I never call. Why? **+</summary>

Something in the app does: a Flutter plugin, a React Native package or another SDK. Search the built app’s frameworks for the API, or update your dependencies and upload again to see if the email stops.

</details>

<details>

<summary>**Does the privacy manifest change my App Store privacy labels? **+</summary>

Not by itself. The labels are set in App Store Connect; keep them consistent with what the app and its SDKs collect.

</details>

<details>

<summary>**Can you fix it for me? **+</summary>

If one bug is the whole problem, the App Fix Ticket covers it: a written diagnosis first, then the fix. If the app has more going on, the Launch Check is a written check of the whole app. Each issue found is rated critical, high, medium or low, with where it is and how it was confirmed. No issues worth fixing, no charge. If the Launch Check finds nothing rated medium or higher, Simon refunds the full $450. You keep the report either way. This applies to the first 10 Launch Checks bought after October 30, 2026.

</details>

A different error?

## **Describe it and get a written quote**

Send the error and what you were doing. You get a written scope, a fixed price and a timeline; Simon replies by email, usually within one business day.

[**Describe your problem **→](https://app369.com/contact/) [**All fixes**](https://app369.com/fix/)