This protocol allows protocol clients to gain access to user profile information through a middle-tier application server, instead of a back-end database server. A typical scenario is a protocol client fetching user profile properties, such as the name, email address, picture URL, or colleagues of one or more users, by using user credentials, such as an user name or security identifier (SID), or another field, such as the user profile record identifier, that identify those users. The middle-tier application server caches user profile fields that are commonly used and exposes them to protocol clients through this protocol. Consequently, this protocol helps distribute the load from the database tier to the application tier; it helps the protocol server scale to handle higher loads because read requests for commonly used fields are the operations performed most frequently. In addition, this protocol is designed for bulk operations. Protocol clients can use this protocol to gain access to user profile information for many users simultaneously, and the corresponding response can contain data for as many users as requested. This feature optimizes the efficiency of operations for a large user base.