How to get SharePoint Online user details from person or group column using REST API

REST API's are great way to query data from SharePoint Lists, Document libraries, Sites.

But if you refer to a Person (Person or Group) column using REST, you may encounter an exception "The query to field 'Approver' is not valid. The $select query string must specify the target fields and the $expand query string must contains Approver (Microsoft.SharePoint.SPException), where Approver is a person type field."

SharePoint REST API error - person column.PNG
SharePoint REST API error - person column

How to get SharePoint user details using REST ?

You can retrieve SharePoint user (Person or Group) details in REST call by using $expand OData query parameter. You cannot select all details together and need to specify which property to retrieve (say FirstName).

The same applies even for Lookup columns in SharePoint. This approach will work for all SharePoint versions.


Consider you have a custom SharePoint List "Payment Requests" with a person column "Approver".
We want to fetch the Title and Approver First Name.

Incorrect Query -'PaymentRequests')/items?$select=Title,Approver

Correct Query -'PaymentRequests')/items?$select=Title,Approver/FirstName&$expand=Approver/ID

Note that we are expanding the lookup using Approver/ID (Column/ID) and selecting required value as Approver/FirstName (Column/Property).

Similarly we can query and fetch other properties/attributes from the user profile for a given people/lookup column.
Here is a list of attributes which can be queried, replace and use with your $select query as Column/Property.

⚡️ Important - Use exact name with capitalization.


Some sample queries,

Get user Email address using REST'PaymentRequests')/items?$select=Title,Approver/EMail&$expand=Approver/ID

Get user Designation using REST'PaymentRequests')/items?$select=Title,Approver/JobTitle&$expand=Approver/ID

Get user Department using REST'PaymentRequests')/items?$select=Title,Approver/Department&$expand=Approver/ID


  • How to implement this with Angular JS? I cant' figure out.
    14 Dec 2020 16:12:42 GMT
  • This does not work in case of multiple entries in people field. Any suggestions?
    02 Dec 2020 13:19:44 GMT
  • I can achieve this by referring to your blog and able to fetch user name and email, but not able to get the profile picture. Can you help plz
    24 Nov 2020 17:44:01 GMT
  • I passed email in the expand query but not working.
    11 Nov 2020 20:20:49 GMT
  • Can you share the correct query for getting SharePoint user display name using Graph API? I want to use in an Azure hosted App.
    11 Nov 2020 09:11:43 GMT
  • I only get an ID, something wrong with the API call but don't understand. Can you share your email? I can share the query with you for checking.
    02 Nov 2020 12:12:32 GMT
  • Further comments disabled!
Try Out Code2care Dev Tools:


Android Java Linux Microsoft Google Python macOS Notepad++ Microsoft Teams CSS PHP SharePoint Html Linux C Programs Bootstrap jQuery Sublime Android Studio Facebook Eclipse WhatsApp News MySQL Json HowTos JavaScript FTP S3


Code2care is an initiative to publish and share varied knowledge in programming and technical areas gathered during day-to-day learnings and development activities.

Students and Software Developers can leverage this portal to find solutions to their various queries without re-inventing the wheel by referring to our easy to understand posts. Technical posts might include Learnings, Tutorials, Trouble-Shooting steps, Video Tutorials, Code Snippets, How Tos, Blogs, Articles, etc.
🎉 We are celebrating the 10th years of Code2care! Thank you for all your support! We hope we made a difference.
We strong support Gender Equality & Diversity.

We stand in solidarity with Ukraine - Make a donation to UNHCR -