{"id":291,"date":"2017-09-06T00:00:00","date_gmt":"2017-09-06T07:00:00","guid":{"rendered":"http:\/\/officedevblogs.wpengine.com\/?p=291"},"modified":"2017-09-06T00:00:00","modified_gmt":"2017-09-06T07:00:00","slug":"people-api-available-in-microsoft-graph-v1","status":"publish","type":"post","link":"https:\/\/devblogs.microsoft.com\/microsoft365dev\/people-api-available-in-microsoft-graph-v1\/","title":{"rendered":"People API available in Microsoft Graph v1.0"},"content":{"rendered":"<div id=\"body-content\">\n<p>We&#8217;d like to give you a heads-up on some changes coming to the <a href=\"https:\/\/developer.microsoft.com\/en-us\/graph\/docs\/api-reference\/beta\/api\/person_get\">People API<\/a>.&nbsp;We have incorporated valuable feedback from customers during the preview period and will start rolling out the changes over the next couple of weeks to Microsoft Graph v1.0 and beta endpoints.<\/p>\n<p><strong>Update:<\/strong> The People API is now available in Microsoft Graph v1.0. To learn more about how to use the People API in v1.0, see our <a href=\"https:\/\/na01.safelinks.protection.outlook.com\/?url=https%3A%2F%2Fdeveloper.microsoft.com%2Fen-us%2Fgraph%2Fdocs%2Fapi-reference%2Fv1.0%2Fresources%2Fsocial_overview&amp;data=02%7C01%7Ctylerle%40microsoft.com%7Cdb2b9972fcc3498a9a0a08d4e361a445%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C636383455915552818&amp;sdata=TwSBch2%2F%2Fx4H%2B2NFiDaZsM0mZGsZVztxFzGIXZskVps%3D&amp;reserved=0\">reference documentation<\/a> and the article <a href=\"https:\/\/na01.safelinks.protection.outlook.com\/?url=https%3A%2F%2Fdeveloper.microsoft.com%2Fen-us%2Fgraph%2Fdocs%2Fconcepts%2Fpeople_example&amp;data=02%7C01%7Ctylerle%40microsoft.com%7Cdb2b9972fcc3498a9a0a08d4e361a445%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C636383455915552818&amp;sdata=b89Hvybvz5aAEndE%2B4nL2jxnSRDq569fQOAiVuyLsR4%3D&amp;reserved=0\">Get information about relevant people<\/a>.<\/p>\n<p>The updates described in this post are breaking changes. If you are using the People API in your app, you&#8217;ll need to update it to accommodate these changes.<\/p>\n<p><strong>Important: <\/strong>The updates described in this post will begin to roll out to the Microsoft Graph beta endpoint on September 7. If you have not already done so, we recommend that you start using the People API in Microsoft Graph v1.0 to avoid any issues caused by the breaking changes.<\/p>\n<h3>Permissions<\/h3>\n<p>The API now requires one of two scopes: <em>People.Read<\/em> or <em>People.Read.All<\/em>.<\/p>\n<ul>\n<li>People.Read will continue to be required for general People API calls, for example https:\/\/graph.microsoft.com\/beta\/me\/people\/. People.Read will require end user consent.<\/li>\n<li>We are introducing People.Read.All; which will be required to retrieve the people most relevant to a specified user in the signed-in user&rsquo;s organization (https:\/\/graph.microsoft.com\/v1.0\/users(&#8216;{id}&#8217;)\/people) calls. People.Read.All will require admin consent.<\/li>\n<\/ul>\n<h3>Person resource<\/h3>\n<ol>\n<li>We have consolidated the personType, mailboxType and sources properties into one property called personType.<\/li>\n<li>The new personType property consists of two strings, class and subclass:<br><code>&lt;ComplexType Name=\"personType\"&gt;<\/code><br><code>&nbsp;&nbsp;&nbsp; &lt;Property Name=\"class\" Type=\"Edm.String\"\/&gt;<\/code><br><code>&nbsp;&nbsp;&nbsp; &lt;Property Name=\"subclass\" Type=\"Edm.String\"\/&gt;<\/code><br><code>&lt;\/ComplexType&gt;<\/code><\/li>\n<\/ol>\n<p>The following are the possible values for class and subclass.<\/p>\n<table style=\"border-color: #0a0a0a\" border=\"1\">\n<tbody>\n<tr>\n<td width=\"105\" style=\"width: 200px;background-color: #b4c6e7\">\n<p style=\"padding-left: 30px\">class<\/p>\n<\/td>\n<td width=\"176\" style=\"width: 200px;background-color: #b4c6e7\">\n<p style=\"padding-left: 30px\">subclass<\/p>\n<\/td>\n<td width=\"289\" style=\"width: 400px;background-color: #b4c6e7\">\n<p style=\"padding-left: 30px\">Description<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td width=\"105\" style=\"width: 200px\">\n<p style=\"padding-left: 30px\">Person<\/p>\n<\/td>\n<td width=\"176\" style=\"width: 200px\">\n<p>&nbsp;<\/p>\n<\/td>\n<td width=\"289\" style=\"width: 400px\">\n<p>&nbsp;<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td width=\"105\" style=\"width: 200px\">\n<p>&nbsp;<\/p>\n<\/td>\n<td width=\"176\" style=\"width: 200px\">\n<p style=\"padding-left: 30px\">OrganizationUser<\/p>\n<\/td>\n<td width=\"289\" style=\"width: 400px\">\n<p style=\"padding-left: 30px\">User in the signed-in user&#8217;s organization.<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td width=\"105\" style=\"width: 200px;padding-left: 30px\">\n<p>&nbsp;<\/p>\n<\/td>\n<td width=\"176\" style=\"width: 200px\">\n<p style=\"padding-left: 30px\">PersonalContact<\/p>\n<\/td>\n<td width=\"289\" style=\"width: 400px\">\n<p style=\"padding-left: 30px\">Contact added to the signed-in user&#8217;s address book.<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td width=\"105\" style=\"width: 200px;padding-left: 30px\">\n<p>&nbsp;<\/p>\n<\/td>\n<td width=\"176\" style=\"width: 200px\">\n<p style=\"padding-left: 30px\">OrganizationContact<\/p>\n<\/td>\n<td width=\"289\" style=\"width: 400px\">\n<p style=\"padding-left: 30px\">Contact added to the organization&#8217;s address book.<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td width=\"105\" style=\"width: 200px\">\n<p>&nbsp;<\/p>\n<\/td>\n<td width=\"176\" style=\"width: 200px\">\n<p style=\"padding-left: 30px\">ImplicitContact<\/p>\n<\/td>\n<td width=\"289\" style=\"width: 400px\">\n<p style=\"padding-left: 30px\">Entity deemed relevant to the signed-in user based on communication, collaboration, or business signals.<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td width=\"105\" style=\"width: 200px;padding-left: 30px\">\n<p>&nbsp;<\/p>\n<\/td>\n<td width=\"176\" style=\"width: 200px\">\n<p style=\"padding-left: 30px\">Unknown<\/p>\n<\/td>\n<td width=\"289\" style=\"width: 400px\">\n<p>&nbsp;<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td width=\"105\" style=\"width: 200px\">\n<p style=\"padding-left: 30px\">Group<\/p>\n<\/td>\n<td width=\"176\" style=\"width: 200px;padding-left: 30px\">\n<p>&nbsp;<\/p>\n<\/td>\n<td width=\"289\" style=\"width: 400px\">\n<p>&nbsp;<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td width=\"105\" style=\"width: 200px;padding-left: 30px\">\n<p>&nbsp;<\/p>\n<\/td>\n<td width=\"176\" style=\"width: 200px\">\n<p style=\"padding-left: 30px\">UnifiedGroup<\/p>\n<\/td>\n<td width=\"289\" style=\"width: 400px\">\n<p style=\"padding-left: 30px\">Azure Active Directory group, such as an Office 365 group<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td width=\"105\" style=\"width: 200px;padding-left: 30px\">\n<p>&nbsp;<\/p>\n<\/td>\n<td width=\"176\" style=\"width: 200px\">\n<p style=\"padding-left: 30px\">ImplicitGroup<\/p>\n<\/td>\n<td width=\"289\" style=\"width: 400px\">\n<p style=\"padding-left: 30px\">Entity group deemed relevant to the signed-in user based on communication, collaboration, or business signals.<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td width=\"105\" style=\"width: 200px;padding-left: 30px\">\n<p>&nbsp;<\/p>\n<\/td>\n<td width=\"176\" style=\"width: 200px\">\n<p style=\"padding-left: 30px\">PublicDistributionList<\/p>\n<\/td>\n<td width=\"289\" style=\"width: 400px\">\n<p style=\"padding-left: 30px\">Public contact list in the signed-in user&#8217;s organization.<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td width=\"105\" style=\"width: 200px;padding-left: 30px\">\n<p>&nbsp;<\/p>\n<\/td>\n<td width=\"176\" style=\"width: 200px\">\n<p style=\"padding-left: 30px\">PersonalDistributionList<\/p>\n<\/td>\n<td width=\"289\" style=\"width: 400px\">\n<p style=\"padding-left: 30px\">Contact list in the signed-in user&#8217;s address book.<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td width=\"105\" style=\"width: 200px;padding-left: 30px\">\n<p>&nbsp;<\/p>\n<\/td>\n<td width=\"176\" style=\"width: 200px\">\n<p style=\"padding-left: 30px\">Unknown<\/p>\n<\/td>\n<td width=\"289\" style=\"width: 400px\">\n<p>&nbsp;<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td width=\"105\" style=\"width: 200px\">\n<p style=\"padding-left: 30px\">Other<\/p>\n<\/td>\n<td width=\"176\" style=\"width: 200px;padding-left: 30px\">\n<p>&nbsp;<\/p>\n<\/td>\n<td width=\"289\" style=\"width: 400px\">\n<p>&nbsp;<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td width=\"105\" style=\"width: 200px;padding-left: 30px\">\n<p>&nbsp;<\/p>\n<\/td>\n<td width=\"176\" style=\"width: 200px\">\n<p style=\"padding-left: 30px\">Room<\/p>\n<\/td>\n<td width=\"289\" style=\"width: 400px\">\n<p style=\"padding-left: 30px\">Room mailbox in the signed-in user&#8217;s organization.<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td width=\"105\" style=\"width: 200px;padding-left: 60px\">\n<p>&nbsp;<\/p>\n<\/td>\n<td width=\"176\" style=\"width: 200px\">\n<p style=\"padding-left: 30px\">Guest<\/p>\n<\/td>\n<td width=\"289\" style=\"width: 400px\">\n<p style=\"padding-left: 30px\">Azure Active Directory business-to-business (B2B) collaboration user.<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td width=\"105\" style=\"width: 200px;padding-left: 30px\">\n<p>&nbsp;<\/p>\n<\/td>\n<td width=\"176\" style=\"width: 200px\">\n<p style=\"padding-left: 30px\">Unknown<\/p>\n<\/td>\n<td width=\"289\" style=\"width: 400px\">\n<p>&nbsp;<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>\n<p>\n<p>3.&nbsp;Renamed the <strong>title<\/strong> property to <strong>jobTitle<\/strong> to align more closely with other APIs.<\/p>\n<p>4.&nbsp;Renamed the <strong>emailAddresses<\/strong> property to <strong>scoredEmailAddresses<\/strong>, which is now a collection of <strong>scoredEmailAddresses<\/strong>.<\/p>\n<p>5.&nbsp;Replaced the <strong>rankedEmailAddresses<\/strong> entity type by <strong>scoredEmailAddress<\/strong> type, which consists of two properties, <strong>address<\/strong> and <strong>relevanceScore<\/strong>.<\/p>\n<p><h3>Updated schema<\/h3>\n<p>The following is the schema that includes all the changes described in this post.<\/p>\n<p><code>&lt;EntityType Name=\"person\" BaseType=\"microsoft.graph.entity\"&gt;<\/code><br><code>&nbsp;&nbsp;&nbsp; &lt;Property Name=\"displayName\" Type=\"Edm.String\" \/&gt;<\/code><br><code>&nbsp;&nbsp;&nbsp; &lt;Property Name=\"givenName\" Type=\"Edm.String\" \/&gt;<\/code><br><code>&nbsp;&nbsp;&nbsp; &lt;Property Name=\"surname\" Type=\"Edm.String\" \/&gt;<\/code><br><code>&nbsp;&nbsp;&nbsp; &lt;Property Name=\"birthday\" Type=\"Edm.String\" \/&gt;<\/code><br><code>&nbsp;&nbsp;&nbsp; &lt;Property Name=\"personNotes\" Type=\"Edm.String\" \/&gt;<\/code><br><code>&nbsp;&nbsp;&nbsp; &lt;Property Name=\"imAddress\" Type=\"Edm.String\" \/&gt;<\/code><br><code>&nbsp;&nbsp;&nbsp; &lt;Property Name=\"isFavorite\" Type=\"Edm.Boolean\" \/&gt;<\/code><br><code>&nbsp;&nbsp;&nbsp; &lt;Property Name=\"scoredEmailAddresses\" Type=\"Collection(microsoft.graph.scoredEmailAddress)\" \/&gt;<\/code><br><code>&nbsp;&nbsp;&nbsp; &lt;Property Name=\"phones\" Type=\"Collection(microsoft.graph.phone)\" \/&gt;<\/code><br><code>&nbsp;&nbsp;&nbsp; &lt;Property Name=\"postalAddresses\" Type=\"Collection(microsoft.graph.location)\" \/&gt;<\/code><br><code>&nbsp;&nbsp;&nbsp; &lt;Property Name=\"websites\" Type=\"Collection(microsoft.graph.website)\" \/&gt;<\/code><br><code>&nbsp;&nbsp;&nbsp; &lt;Property Name=\"jobTitle\" Type=\"Edm.String\" \/&gt;<\/code><br><code>&nbsp;&nbsp;&nbsp; &lt;Property Name=\"companyName\" Type=\"Edm.String\" \/&gt;<\/code><br><code>&nbsp;&nbsp;&nbsp; &lt;Property Name=\"yomiCompany\" Type=\"Edm.String\" \/&gt;<\/code><br><code>&nbsp;&nbsp;&nbsp; &lt;Property Name=\"department\" Type=\"Edm.String\" \/&gt;<\/code><br><code>&nbsp;&nbsp;&nbsp; &lt;Property Name=\"officeLocation\" Type=\"Edm.String\" \/&gt;<\/code><br><code>&nbsp;&nbsp;&nbsp; &lt;Property Name=\"profession\" Type=\"Edm.String\" \/&gt;<\/code><br><code>&nbsp;&nbsp;&nbsp; &lt;Property Name=\"personType\" Type=\"microsoft.graph.personType\" \/&gt;<\/code><br><code>&nbsp;&nbsp;&nbsp; &lt;Property Name=\"userPrincipalName\" Type=\"Edm.String\" \/&gt;<\/code><br><code>&nbsp;&lt;\/EntityType&gt;<\/code><br><code>&nbsp;&lt;ComplexType Name=\"scoredEmailAddress\"&gt;<\/code><br><code>&nbsp;&nbsp;&nbsp; &lt;Property Name=\"address\" Type=\"Edm.String\" \/&gt;<\/code><br><code>&nbsp;&nbsp;&nbsp; &lt;Property Name=\"relevanceScore\" Type=\"Edm.Double\" \/&gt;<\/code><br><code>&nbsp;&lt;\/ComplexType&gt;<\/code><br><code>&nbsp;&lt;ComplexType Name=\"personType\"&gt;<\/code><br><code>&nbsp;&nbsp;&nbsp; &lt;Property Name=\"class\" Type=\"Edm.String\" \/&gt;<\/code><br><code>&nbsp;&nbsp;&nbsp; &lt;Property Name=\"subclass\" Type=\"Edm.String\" \/&gt;<\/code><br><code>&nbsp;&lt;\/ComplexType&gt;<\/code><\/p>\n<p><p>As a reminder, the updates described in this post are breaking changes. If you are using the People API in your app, you&rsquo;ll need to update it to accommodate these changes.<\/p>\n<p>After the changes are fully deployed in the next couple of weeks, you can start using the new schema in your app. We will also update our API documentation to reflect these changes. Please leave questions in the comment section below and happy coding!<\/p>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>We&#8217;d like to give you a heads-up on some changes coming to the People API.&nbsp;We have incorporated valuable feedback from customers during the preview period and will start rolling out the changes<\/p>\n","protected":false},"author":69077,"featured_media":25159,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[3,128,11],"tags":[18,35,12],"class_list":["post-291","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-microsoft-graph","category-microsoft-teams","category-office-add-ins","tag-excel","tag-onedrive","tag-outlook"],"acf":[],"blog_post_summary":"<p>We&#8217;d like to give you a heads-up on some changes coming to the People API.&nbsp;We have incorporated valuable feedback from customers during the preview period and will start rolling out the changes<\/p>\n","_links":{"self":[{"href":"https:\/\/devblogs.microsoft.com\/microsoft365dev\/wp-json\/wp\/v2\/posts\/291","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/devblogs.microsoft.com\/microsoft365dev\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/devblogs.microsoft.com\/microsoft365dev\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/microsoft365dev\/wp-json\/wp\/v2\/users\/69077"}],"replies":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/microsoft365dev\/wp-json\/wp\/v2\/comments?post=291"}],"version-history":[{"count":0,"href":"https:\/\/devblogs.microsoft.com\/microsoft365dev\/wp-json\/wp\/v2\/posts\/291\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/microsoft365dev\/wp-json\/wp\/v2\/media\/25159"}],"wp:attachment":[{"href":"https:\/\/devblogs.microsoft.com\/microsoft365dev\/wp-json\/wp\/v2\/media?parent=291"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/microsoft365dev\/wp-json\/wp\/v2\/categories?post=291"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/microsoft365dev\/wp-json\/wp\/v2\/tags?post=291"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}