the protocol that allows instances to communicate is, but AFAIK there’s an API that apps use… the protocol is kinda just for how to push raw bulk data around, whilst the instance itself does things like filter based on “top”, “hot”, etc
also, in activitypub things like the actor (user), each comment, post, etc are individual objects which must be requested individually (or in a list via a search i think?), so any app that communicates via activitypub would need to make hundreds of requests to the instance to display a single post, comments, and user information!