What APIS are we allowed to use in apps?

I know that Apple doesn’t approve all APIS for use within apps. How do we know whether a public API will be approved or denied?

Welcome to the community!

What have you heard about Apple not letting you use any API?

I’m pretty sure you can use any API out there as long as you’re using it correctly following the guidelines

hm ok, I wasn’t sure because it seems like if we build our app on some public API, and that API is changed, then it would break our app which seems like something Apple would guard against – however, App Store Review Guidelines - Apple Developer 2.5.1 seems like we can use Public APIs.

Yes this is possible, but no it isn’t something Apple guards against, basically your app just wouldn’t work. You’d try to make a network call and it would fail, which your app should handle that failed state

2.5.1 is saying to use an API appropriately

1 Like

Hi @MP1!

Expanding more into @mikaelacaron answer – 2.5.1 is describing that you may only use public APIs that Apple offers within its dev frameworks (think of UIKit, AVFoundation, CoreData, SwiftUI, etc). Using private or hidden APIs is generally not a safe practice, as it may pose a security risk for the user. One of the common ways to force access to native private APIs is by method swizzling, which was somehow abused in objc days.

If you don’t use any private or hidden APIs within UIKit, SwiftUI or any foundation frameworks, then I think you’re good for 2.5.1.

If you mean to say that you’re using a publicly accessible RESTful API, then as Mikaela pointed out that your app would just break functionality. If that’s the case, you should just have to update your app to accommodate any breaking updates with the API that you use.